PageSourceSearch

https://www.medadataresearch.com/contact

html medadataresearch.com collected 2026-10-02 00:31:20 UTC 425,715 bytes, 3,018 lines download raw bytes

1<!DOCTYPE html><html lang="en"><head><meta name="description" content="MedaData facilitates expert research services with an unmatched real-world psychiatric dataset.">
2<meta name="keywords" content="psychiatric medications, real-world data, real-world evidence, real world data, prospective study, research services, behavioral health">
3<meta property="og:title" content="CONTACT">
4<meta property="og:description" content="MedaData facilitates expert research services with an unmatched real-world psychiatric dataset.">
5<meta property="og:image" content="https://htmlpub.com/api/og?id=gg1x1lcpx32tjslsbqxxqmm5&amp;v=1790196147035">
6<meta property="og:image:width" content="1200">
7<meta property="og:image:height" content="630">
8<meta property="og:url" content="https://www.medadataresearch.com/contact">
9<meta name="twitter:url" content="https://www.medadataresearch.com/contact">
10<meta property="og:type" content="website">
11<meta property="og:site_name" content="www.medadataresearch.com">
12<meta property="og:locale" content="en_US">
13<meta property="fb:app_id" content="4198265810445529">
14<meta name="twitter:card" content="summary_large_image">
15<meta name="twitter:title" content="CONTACT">
16<meta name="twitter:description" content="MedaData facilitates expert research services with an unmatched real-world psychiatric dataset.">
17<meta name="twitter:image" content="https://htmlpub.com/api/og?id=gg1x1lcpx32tjslsbqxxqmm5&amp;v=1790196147035">
18<meta name="twitter:image:width" content="1200">
19<meta name="twitter:image:height" content="630">
20<meta name="robots" content="index, follow">
21<link rel="canonical" href="https://www.medadataresearch.com/contact">
22<link rel="icon" href="https://www.medadataresearch.com/api/library/c0hftw5fl4hxscgzg7fflpki">
23<title>CONTACT</title><style data-hp-2739 data-hp-3884>@media (max-width:959px){.site-header .column:has([data-widget-type="LpNavReact"]),.site-header .column:has([data-widget-type="LpButtonReact"]),.site-header .column:has([data-widget-type="LpSpaceReact"]){display:none !important}.site-header .site-nav .layout+.layout{display:none !important}.site-header .js-mobile-nav-trigger{opacity:1 !important}.site-header .js-image-logo,.site-header .site-nav .container{transition:none !important}}</style>
24    <meta charset="utf-8">
25    <!-- BUILT WITH LEADPAGES https://www.leadpages.com -->
26    <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
27    <meta name="viewport" content="width=device-width, initial-scale=1">
28    
29    
30    
31    
32    
33    
34    
35    <meta name="leadpages-served-by" content="sites">
36    <meta name="leadpages-serving-domain" content="www.medadataresearch.com">
37    <meta name="leadpages-legacy-pixel-domain" content="https://my.leadpages.net">
38    <meta name="leadpages-meta-id" content="W9DsqEXC6MfLusABMHro35:ea3eeb3d-594c-ef0d-5345-b40c17a81024">
39    <meta name="leadpages-edition" content="TM8JZpNhSs3WFrcrnyfAM3">
40    <meta name="active-route" content="ea3eeb3d-594c-ef0d-5345-b40c17a81024">
41      
42    
43    <link rel="stylesheet" href="https://classic-assets.leadpages.com/static-leadpages-net/fonts/font-awesome/6.4.2/css/all.min.css" referrerpolicy="no-referrer">
44    <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin="">
45    <link rel="preload" as="style" href="https://fonts.googleapis.com/css?family=Lato:300,400,500,700|Montserrat:300,400,500,700|Roboto:300,400,500,700">
46    <link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Lato:300,400,500,700|Montserrat:300,400,500,700|Roboto:300,400,500,700" type="text/css" referrerpolicy="no-referrer" media="print" onload="this.media='all'">
47    
48    
49    <style data-id="run-styles">/*! normalize.css v3.0.2 | MIT License | git.io/normalize */html{font-family:sans-serif;-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%}body{margin:0}article,aside,details,figcaption,figure,footer,header,hgroup,main,menu,nav,section,summary{display:block}audio,canvas,progress,video{display:inline-block;vertical-align:baseline}audio:not([controls]){display:none;height:0}[hidden],template{display:none}a{background-color:transparent}a:active,a:hover{outline:0}abbr[title]{border-bottom:1px dotted}b,strong{font-weight:bold}dfn{font-style:italic}h1{font-size:2em;margin:.67em 0}mark{background:#ff0;color:#000}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sup{top:-0.5em}sub{bottom:-0.25em}img{border:0}svg:not(:root){overflow:hidden}figure{margin:1em 40px}hr{-moz-box-sizing:content-box;box-sizing:content-box;height:0}pre{overflow:auto}
49code,kbd,pre,samp{font-family:monospace,monospace;font-size:1em}button,input,optgroup,select,textarea{color:inherit;font:inherit;margin:0}button{overflow:visible}button,select{text-transform:none}button,html input[type=button],input[type=reset],input[type=submit]{-webkit-appearance:button;cursor:pointer}button[disabled],html input[disabled]{cursor:default}button::-moz-focus-inner,input::-moz-focus-inner{border:0;padding:0}input{line-height:normal}input[type=checkbox],input[type=radio]{box-sizing:border-box;padding:0}input[type=number]::-webkit-inner-spin-button,input[type=number]::-webkit-outer-spin-button{height:auto}input[type=search]{-webkit-appearance:textfield;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box}input[type=search]::-webkit-search-cancel-button,input[type=search]::-webkit-search-decoration{-webkit-appearance:none}fieldset{border:1px solid silver;margin:0 2px;padding:.35em .625em .75em}legend{border:0;padding:0}textarea{overflow:auto}optgroup{font-weight:bold}table{border-collapse:collapse;border-spacing:0}td,th{padding:0}*,*::before,*::after{box-sizing:border-box}html{height:100%;width:100%}html{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%;background-color:#fff;box-sizing:border-box;color:#000;font-family:Roboto,sans-serif;font-size:1em;line-height:1.5;min-height:100%;position:relative}html.is-leadbox{background-color:transparent}body{min-height:100%}h1,h2,h3,h4,h1.jumbo{margin:0}p{margin:0}a{font-size:inherit}img{max-width:100%;width:100%}section{position:relative;transition:opacity .5s ease-in,min-height .5s ease-in,height .5s ease-in}.container{width:100%}.row-compose,.widget-row,.layout,.inner-column,.column{position:relative}.site-header .layout{align-items:center;min-height:64px}.column{display:flex;flex-direction:column}.inner-column{flex:1 1 auto}.inner-column:not(.area-placeholder){min-height:1px}.widget{word-wrap:break-word;padding:1vw;padding:1cqw}.leadbox .widget{padding:1vw;padding:1cqw}.bar .widget{padding:1vw;padding:1cqw}.has-background-image{background-position:center center;background-repeat:no-repeat}.has-background-size-cover{background-size:cover}.has-background-size-center{background-size:contain}.has-background-size-repeat{background-repeat:repeat}.flex-display{display:flex}.flex-direction-column{flex-direction:column}.flex-direction-column .container{min-height:1px}.flex-direction-row{flex-direction:row}.flex-justify-flex-start{justify-content:flex-start}.flex-justify-center{justify-content:center}.flex-justify-flex-end{justify-content:flex-end}[class*=section-arrow--]::before{border:solid transparent;border-color:rgba(0,0,0,0);content:"";height:0;pointer-events:none;position:absolute;width:0;z-index:1}.section-arrow--top::before{border-bottom-color:inherit;border-width:0 30px 18px;bottom:100%;left:50%;transform:translateX(-50%)}.section-arrow--bottom::before{border-top-color:inherit;border-width:18px 30px 0;left:50%;top:100%;transform:translateX(-50%)}.section-arrow--left::before{border-bottom-color:inherit;border-width:0 30px 24px;bottom:100%;right:50%;transform:translateX(50%)}@media(min-width: 48em){.section-arrow--left::before{border-bottom-color:transparent;border-right-color:inherit;border-width:30px 24px 30px 0;bottom:0;right:100%;top:50%;transform:translateY(-50%) translateX(0)}}.section-arrow--right::before{border-top-color:inherit;border-width:24px 30px 0;left:50%;top:100%;transform:translateX(-50%)}@media(min-width: 48em){.section-arrow--right::before{border-left-color:inherit;border-top-color:transparent;border-width:30px 0 30px 24px;left:100%;top:50%;transform:translateY(-50%) translateX(0)}}.page .is-delayed{min-height:0;height:0;opacity:0;overflow:hidden;padding-bottom:0;padding-top:0}.is-visible{height:auto;opacity:1;overflow:visible}.lp-text a,.lp-text-react a,.lp-headline a{color:inherit;text-decoration:underline}.lp-text a>span,.lp-text-react a>span,.lp-headline a>span{color:inherit;text-decoration:underline}.lp-text a:hover,.lp-text a:active,.lp-text-react a:hover,.lp-text-react a:active,.lp-headline a:hover,.lp-headline a:active{text-decoration:none}.lp-text a:hover>span,.lp-text a:active>span,.lp-text-react a:hover>span,.lp-text-react a:active>span,.lp-headline a:hover>span,.lp-headline a:active>span{text-decoration:none}.lp-blog-feed a{text-decoration:none}.lp-blog-feed a:hover,.lp-blog-feed a:active{text-decoration:none}.lp-blog-feed a:hover>span,.lp-blog-feed a:active>span{text-decoration:none}.lp-blog-feed a.pagination-arrow{color:inherit;margin:auto 40px}.lp-blog-feed a.pagination-arrow.disabled{color:inherit;pointer-events:none;opacity:.3}.lp-blog-post a{color:inherit;text-decoration:none}.lp-blog-post a>span{color:inherit;text-decoration:none}.lp-blog-post a:hover,.lp-blog-post a:active{text-decoration:none}.lp-blog-post a:hover>span,.lp-blog-post a:active>span{text-decoration:none}.lp-blog-post a.pagination-arrow{margin:auto 40px}.lp-blog-post a.pagination-arrow.disabled{pointer-events:none;opacity:.3}.lp-post-body p{min-height:18px;margin:20px 0}.lp-post-body h1,.lp-post-body h2,.lp-post-body h3,.lp-post-body h4,.lp-post-body h5,.lp-post-body h6{margin:24px 0}.lp-post-body img{width:auto}.widget-widget>iframe{max-width:100%;width:100%}.inner-composite{display:flex}.page grammarly-btn{display:none}.page .lp-form__input+span,.page .lp-form-react__input+span{display:none !important}@media(max-width: 480px){.hidden-mobile{display:none !important}}@media(min-width: 481px)and (max-width: 768px){.hidden-tablet{display:none !important}}@media(min-width: 769px){.hidden-desktop{display:none !important}}
49.hide-section{display:none}form .widget-column{padding-top:1vw;padding-bottom:1vw;padding-top:1cqw;padding-bottom:1cqw}form .widget-column .widget{padding-bottom:0;padding-top:0}form .widget-column .widget .lp-button-react-wrapper{margin-top:12px}form[data-form-id] button:disabled{opacity:.5;pointer-events:none;transition:opacity 7.5s ease}@keyframes animation-circular-rotate{0%{transform-origin:50% 50%}100%{transform:rotate(360deg)}}@-webkit-keyframes animation-circular-rotate{0%{transform-origin:50% 50%}100%{transform:rotate(360deg)}}@-webkit-keyframes animation-circular-progress{0%{stroke-dasharray:1px,200px;stroke-dashoffset:0px}50%{stroke-dasharray:100px,200px;stroke-dashoffset:-15px}100%{stroke-dasharray:100px,200px;stroke-dashoffset:-125px}}@keyframes animation-circular-progress{0%{stroke-dasharray:1px,200px;stroke-dashoffset:0px}50%{stroke-dasharray:100px,200px;stroke-dashoffset:-15px}100%{stroke-dasharray:100px,200px;stroke-dashoffset:-125px}}.container{margin-left:auto;margin-right:auto;max-width:1140px}.container--fluid{max-width:none}.flex{display:flex;flex-direction:row;flex-wrap:wrap;margin-left:0;margin-right:0;max-width:100%}[class*=flex__]{flex:0 0 auto;min-height:1px;padding-left:0;padding-right:0}.flex--12 .flex__item--xs-1{flex-basis:8.3333333333%;max-width:8.3333333333%}.flex--12 .flex__item--xs-2{flex-basis:16.6666666667%;max-width:16.6666666667%}.flex--12 .flex__item--xs-3{flex-basis:25%;max-width:25%}.flex--12 .flex__item--xs-4{flex-basis:33.3333333333%;max-width:33.3333333333%}.flex--12 .flex__item--xs-5{flex-basis:41.6666666667%;max-width:41.6666666667%}.flex--12 .flex__item--xs-6{flex-basis:50%;max-width:50%}.flex--12 .flex__item--xs-7{flex-basis:58.3333333333%;max-width:58.3333333333%}.flex--12 .flex__item--xs-8{flex-basis:66.6666666667%;max-width:66.6666666667%}.flex--12 .flex__item--xs-9{flex-basis:75%;max-width:75%}.flex--12 .flex__item--xs-10{flex-basis:83.3333333333%;max-width:83.3333333333%}.flex--12 .flex__item--xs-11{flex-basis:91.6666666667%;max-width:91.6666666667%}.flex--12 .flex__item--xs-12{flex-basis:100%;max-width:100%}.flex--12 .flex__offset--xs-1{margin-left:8.3333333333%}.flex--12 .flex__offset--xs-2{margin-left:16.6666666667%}.flex--12 .flex__offset--xs-3{margin-left:25%}.flex--12 .flex__offset--xs-4{margin-left:33.3333333333%}.flex--12 .flex__offset--xs-5{margin-left:41.6666666667%}.flex--12 .flex__offset--xs-6{margin-left:50%}.flex--12 .flex__offset--xs-7{margin-left:58.3333333333%}.flex--12 .flex__offset--xs-8{margin-left:66.6666666667%}.flex--12 .flex__offset--xs-9{margin-left:75%}.flex--12 .flex__offset--xs-10{margin-left:83.3333333333%}.flex--12 .flex__offset--xs-11{margin-left:91.6666666667%}.flex--10 .flex__item--xs-1{flex-basis:10%;max-width:10%}.flex--10 .flex__item--xs-2{flex-basis:20%;max-width:20%}.flex--10 .flex__item--xs-3{flex-basis:30%;max-width:30%}.flex--10 .flex__item--xs-4{flex-basis:40%;max-width:40%}.flex--10 .flex__item--xs-5{flex-basis:50%;max-width:50%}.flex--10 .flex__item--xs-6{flex-basis:60%;max-width:60%}.flex--10 .flex__item--xs-7{flex-basis:70%;max-width:70%}.flex--10 .flex__item--xs-8{flex-basis:80%;max-width:80%}.flex--10 .flex__item--xs-9{flex-basis:90%;max-width:90%}.flex--10 .flex__item--xs-10{flex-basis:100%;max-width:100%}.flex--10 .flex__offset--xs-1{margin-left:10%}.flex--10 .flex__offset--xs-2{margin-left:20%}.flex--10 .flex__offset--xs-3{margin-left:30%}.flex--10 .flex__offset--xs-4{margin-left:40%}.flex--10 .flex__offset--xs-5{margin-left:50%}.flex--10 .flex__offset--xs-6{margin-left:60%}.flex--10 .flex__offset--xs-7{margin-left:70%}.flex--10 .flex__offset--xs-8{margin-left:80%}.flex--10 .flex__offset--xs-9{margin-left:90%}.flex--xs-start{justify-content:flex-start}.flex--xs-center{justify-content:center}.flex--xs-end{justify-content:flex-end}.flex--xs-around{justify-content:space-around}.flex--xs-between{justify-content:space-between}.flex--xs-top{align-items:flex-start}.flex--xs-middle{align-items:center}.flex--xs-bottom{align-items:flex-end}.flex--xs-first{order:-1}.flex--xs-last{order:1}.flex__item--xs-auto{flex:1 1 auto}.flex__item--xs-grow{flex-grow:1}.flex__item--xs-no-grow{flex-grow:0}.flex__item--xs-shrink{flex-shrink:1}.flex__item--xs-no-shrink{flex-shrink:0}.flex__item--xs-none{flex:none}.flex--xs-inline-flex{display:inline-flex}.flex--xs-flex-nowrap{flex-wrap:nowrap}.flex--xs-flex-wrap-rev{flex-wrap:wrap-reverse}.flex--xs-horizontal-rev{flex-direction:column-reverse}.flex--xs-vertical{flex-direction:column}.flex--xs-vertical-rev{flex-direction:row-reverse}@media(min-width: 480px){.flex--12 .flex__item--sm-1{flex-basis:8.3333333333%;max-width:8.3333333333%}.flex--12 .flex__item--sm-2{flex-basis:16.6666666667%;max-width:16.6666666667%}.flex--12 .flex__item--sm-3{flex-basis:25%;max-width:25%}.flex--12 .flex__item--sm-4{flex-basis:33.3333333333%;max-width:33.3333333333%}.flex--12 .flex__item--sm-5{flex-basis:41.6666666667%;max-width:41.6666666667%}.flex--12 .flex__item--sm-6{flex-basis:50%;max-width:50%}.flex--12 .flex__item--sm-7{flex-basis:58.3333333333%;max-width:58.3333333333%}.flex--12 .flex__item--sm-8{flex-basis:66.6666666667%;max-width:66.6666666667%}.flex--12 .flex__item--sm-9{flex-basis:75%;max-width:75%}.flex--12 .flex__item--sm-10{flex-basis:83.3333333333%;max-width:83.3333333333%}.flex--12 .flex__item--sm-11{flex-basis:91.6666666667%;max-width:91.6666666667%}.flex--12 .flex__item--sm-12{flex-basis:100%;max-width:100%}.flex--12 .flex__offset--sm-1{margin-left:8.3333333333%}.flex--12 .flex__offset--sm-2{margin-left:16.6666666667%}.flex--12 .flex__offset--sm-3{margin-left:25%}.flex--12 .flex__offset--sm-4{margin-left:33.3333333333%}.flex--12 .flex__offset--sm-5{margin-left:41.6666666667%}.flex--12 .flex__offset--sm-6{margin-left:50%}.flex--12 .flex__offset--sm-7{margin-left:58.3333333333%}.flex--12 .flex__offset--sm-8{margin-left:66.6666666667%}.flex--12 .flex__offset--sm-9{margin-left:75%}.flex--12 .flex__offset--sm-10{margin-left:83.3333333333%}.flex--12 .flex__offset--sm-11{margin-left:91.6666666667%}.flex--10 .flex__item--sm-1{flex-basis:10%;max-width:10%}.flex--10 .flex__item--sm-2{flex-basis:20%;max-width:20%}.flex--10 .flex__item--sm-3{flex-basis:30%;max-width:30%}.flex--10 .flex__item--sm-4{flex-basis:40%;max-width:40%}.flex--10 .flex__item--sm-5{flex-basis:50%;max-width:50%}.flex--10 .flex__item--sm-6{flex-basis:60%;max-width:60%}.flex--10 .flex__item--sm-7{flex-basis:70%;max-width:70%}.flex--10 .flex__item--sm-8{flex-basis:80%;max-width:80%}.flex--10 .flex__item--sm-9{flex-basis:90%;max-width:90%}.flex--10 .flex__item--sm-10{flex-basis:100%;max-width:100%}.flex--10 .flex__offset--sm-1{margin-left:10%}.flex--10 .flex__offset--sm-2{margin-left:20%}.flex--10 .flex__offset--sm-3{margin-left:30%}.flex--10 .flex__offset--sm-4{margin-left:40%}.flex--10 .flex__offset--sm-5{margin-left:50%}.flex--10 .flex__offset--sm-6{margin-left:60%}.flex--10 .flex__offset--sm-7{margin-left:70%}.flex--10 .flex__offset--sm-8{margin-left:80%}.flex--10 .flex__offset--sm-9{margin-left:90%}.flex--sm-start{justify-content:flex-start}.flex--sm-center{justify-content:center}.flex--sm-end{justify-content:flex-end}.flex--sm-around{justify-content:space-around}.flex--sm-between{justify-content:space-between}.flex--sm-top{align-items:flex-start}.flex--sm-middle{align-items:center}.flex--sm-bottom{align-items:flex-end}.flex--sm-first{order:-1}.flex--sm-last{order:1}
49.flex__item--sm-auto{flex:1 1 auto}.flex__item--sm-grow{flex-grow:1}.flex__item--sm-no-grow{flex-grow:0}.flex__item--sm-shrink{flex-shrink:1}.flex__item--sm-no-shrink{flex-shrink:0}.flex__item--sm-none{flex:none}.flex--sm-inline-flex{display:inline-flex}.flex--sm-flex-nowrap{flex-wrap:nowrap}.flex--sm-flex-wrap-rev{flex-wrap:wrap-reverse}.flex--sm-horizontal-rev{flex-direction:column-reverse}.flex--sm-vertical{flex-direction:column}.flex--sm-vertical-rev{flex-direction:row-reverse}}@media(min-width: 768px){.flex--12 .flex__item--md-1{flex-basis:8.3333333333%;max-width:8.3333333333%}.flex--12 .flex__item--md-2{flex-basis:16.6666666667%;max-width:16.6666666667%}.flex--12 .flex__item--md-3{flex-basis:25%;max-width:25%}.flex--12 .flex__item--md-4{flex-basis:33.3333333333%;max-width:33.3333333333%}.flex--12 .flex__item--md-5{flex-basis:41.6666666667%;max-width:41.6666666667%}.flex--12 .flex__item--md-6{flex-basis:50%;max-width:50%}.flex--12 .flex__item--md-7{flex-basis:58.3333333333%;max-width:58.3333333333%}.flex--12 .flex__item--md-8{flex-basis:66.6666666667%;max-width:66.6666666667%}.flex--12 .flex__item--md-9{flex-basis:75%;max-width:75%}.flex--12 .flex__item--md-10{flex-basis:83.3333333333%;max-width:83.3333333333%}.flex--12 .flex__item--md-11{flex-basis:91.6666666667%;max-width:91.6666666667%}.flex--12 .flex__item--md-12{flex-basis:100%;max-width:100%}.flex--12 .flex__offset--md-1{margin-left:8.3333333333%}.flex--12 .flex__offset--md-2{margin-left:16.6666666667%}.flex--12 .flex__offset--md-3{margin-left:25%}.flex--12 .flex__offset--md-4{margin-left:33.3333333333%}.flex--12 .flex__offset--md-5{margin-left:41.6666666667%}.flex--12 .flex__offset--md-6{margin-left:50%}.flex--12 .flex__offset--md-7{margin-left:58.3333333333%}.flex--12 .flex__offset--md-8{margin-left:66.6666666667%}.flex--12 .flex__offset--md-9{margin-left:75%}.flex--12 .flex__offset--md-10{margin-left:83.3333333333%}.flex--12 .flex__offset--md-11{margin-left:91.6666666667%}.flex--10 .flex__item--md-1{flex-basis:10%;max-width:10%}.flex--10 .flex__item--md-2{flex-basis:20%;max-width:20%}.flex--10 .flex__item--md-3{flex-basis:30%;max-width:30%}.flex--10 .flex__item--md-4{flex-basis:40%;max-width:40%}.flex--10 .flex__item--md-5{flex-basis:50%;max-width:50%}.flex--10 .flex__item--md-6{flex-basis:60%;max-width:60%}.flex--10 .flex__item--md-7{flex-basis:70%;max-width:70%}.flex--10 .flex__item--md-8{flex-basis:80%;max-width:80%}.flex--10 .flex__item--md-9{flex-basis:90%;max-width:90%}.flex--10 .flex__item--md-10{flex-basis:100%;max-width:100%}.flex--10 .flex__offset--md-1{margin-left:10%}.flex--10 .flex__offset--md-2{margin-left:20%}.flex--10 .flex__offset--md-3{margin-left:30%}.flex--10 .flex__offset--md-4{margin-left:40%}.flex--10 .flex__offset--md-5{margin-left:50%}.flex--10 .flex__offset--md-6{margin-left:60%}.flex--10 .flex__offset--md-7{margin-left:70%}.flex--10 .flex__offset--md-8{margin-left:80%}.flex--10 .flex__offset--md-9{margin-left:90%}.flex--md-start{justify-content:flex-start}.flex--md-center{justify-content:center}.flex--md-end{justify-content:flex-end}.flex--md-around{justify-content:space-around}.flex--md-between{justify-content:space-between}.flex--md-top{align-items:flex-start}.flex--md-middle{align-items:center}.flex--md-bottom{align-items:flex-end}.flex--md-first{order:-1}.flex--md-last{order:1}.flex__item--md-auto{flex:1 1 auto}.flex__item--md-grow{flex-grow:1}.flex__item--md-no-grow{flex-grow:0}.flex__item--md-shrink{flex-shrink:1}.flex__item--md-no-shrink{flex-shrink:0}.flex__item--md-none{flex:none}.flex--md-inline-flex{display:inline-flex}.flex--md-flex-nowrap{flex-wrap:nowrap}.flex--md-flex-wrap-rev{flex-wrap:wrap-reverse}.flex--md-horizontal-rev{flex-direction:column-reverse}.flex--md-vertical{flex-direction:column}.flex--md-vertical-rev{flex-direction:row-reverse}}@media(min-width: 1024px){.flex--12 .flex__item--lg-1{flex-basis:8.3333333333%;max-width:8.3333333333%}.flex--12 .flex__item--lg-2{flex-basis:16.6666666667%;max-width:16.6666666667%}.flex--12 .flex__item--lg-3{flex-basis:25%;max-width:25%}.flex--12 .flex__item--lg-4{flex-basis:33.3333333333%;max-width:33.3333333333%}.flex--12 .flex__item--lg-5{flex-basis:41.6666666667%;max-width:41.6666666667%}.flex--12 .flex__item--lg-6{flex-basis:50%;max-width:50%}.flex--12 .flex__item--lg-7{flex-basis:58.3333333333%;max-width:58.3333333333%}.flex--12 .flex__item--lg-8{flex-basis:66.6666666667%;max-width:66.6666666667%}.flex--12 .flex__item--lg-9{flex-basis:75%;max-width:75%}.flex--12 .flex__item--lg-10{flex-basis:83.3333333333%;max-width:83.3333333333%}.flex--12 .flex__item--lg-11{flex-basis:91.6666666667%;max-width:91.6666666667%}.flex--12 .flex__item--lg-12{flex-basis:100%;max-width:100%}.flex--12 .flex__offset--lg-1{margin-left:8.3333333333%}.flex--12 .flex__offset--lg-2{margin-left:16.6666666667%}.flex--12 .flex__offset--lg-3{margin-left:25%}.flex--12 .flex__offset--lg-4{margin-left:33.3333333333%}.flex--12 .flex__offset--lg-5{margin-left:41.6666666667%}.flex--12 .flex__offset--lg-6{margin-left:50%}.flex--12 .flex__offset--lg-7{margin-left:58.3333333333%}.flex--12 .flex__offset--lg-8{margin-left:66.6666666667%}.flex--12 .flex__offset--lg-9{margin-left:75%}.flex--12 .flex__offset--lg-10{margin-left:83.3333333333%}.flex--12 .flex__offset--lg-11{margin-left:91.6666666667%}.flex--10 .flex__item--lg-1{flex-basis:10%;max-width:10%}.flex--10 .flex__item--lg-2{flex-basis:20%;max-width:20%}.flex--10 .flex__item--lg-3{flex-basis:30%;max-width:30%}.flex--10 .flex__item--lg-4{flex-basis:40%;max-width:40%}.flex--10 .flex__item--lg-5{flex-basis:50%;max-width:50%}.flex--10 .flex__item--lg-6{flex-basis:60%;max-width:60%}.flex--10 .flex__item--lg-7{flex-basis:70%;max-width:70%}.flex--10 .flex__item--lg-8{flex-basis:80%;max-width:80%}.flex--10 .flex__item--lg-9{flex-basis:90%;max-width:90%}.flex--10 .flex__item--lg-10{flex-basis:100%;max-width:100%}.flex--10 .flex__offset--lg-1{margin-left:10%}.flex--10 .flex__offset--lg-2{margin-left:20%}.flex--10 .flex__offset--lg-3{margin-left:30%}.flex--10 .flex__offset--lg-4{margin-left:40%}.flex--10 .flex__offset--lg-5{margin-left:50%}.flex--10 .flex__offset--lg-6{margin-left:60%}.flex--10 .flex__offset--lg-7{margin-left:70%}.flex--10 .flex__offset--lg-8{margin-left:80%}.flex--10 .flex__offset--lg-9{margin-left:90%}.flex--lg-start{justify-content:flex-start}.flex--lg-center{justify-content:center}.flex--lg-end{justify-content:flex-end}.flex--lg-around{justify-content:space-around}.flex--lg-between{justify-content:space-between}.flex--lg-top{align-items:flex-start}.flex--lg-middle{align-items:center}.flex--lg-bottom{align-items:flex-end}.flex--lg-first{order:-1}.flex--lg-last{order:1}.flex__item--lg-auto{flex:1 1 auto}.flex__item--lg-grow{flex-grow:1}.flex__item--lg-no-grow{flex-grow:0}.flex__item--lg-shrink{flex-shrink:1}.flex__item--lg-no-shrink{flex-shrink:0}.flex__item--lg-none{flex:none}.flex--lg-inline-flex{display:inline-flex}.flex--lg-flex-nowrap{flex-wrap:nowrap}.flex--lg-flex-wrap-rev{flex-wrap:wrap-reverse}.flex--lg-horizontal-rev{flex-direction:column-reverse}.flex--lg-vertical{flex-direction:column}.flex--lg-vertical-rev{flex-direction:row-reverse}}@media(min-width: 1280px){.flex--12 .flex__item--xl-1{flex-basis:8.3333333333%;max-width:8.3333333333%}.flex--12 .flex__item--xl-2{flex-basis:16.6666666667%;max-width:16.6666666667%}.flex--12 .flex__item--xl-3{flex-basis:25%;max-width:25%}.flex--12 .flex__item--xl-4{flex-basis:33.3333333333%;max-width:33.3333333333%}.flex--12 .flex__item--xl-5{flex-basis:41.6666666667%;max-width:41.6666666667%}.flex--12 .flex__item--xl-6{flex-basis:50%;max-width:50%}.flex--12 .flex__item--xl-7{flex-basis:58.3333333333%;max-width:58.3333333333%}.flex--12 .flex__item--xl-8{flex-basis:66.6666666667%;max-width:66.6666666667%}.flex--12 .flex__item--xl-9{flex-basis:75%;max-width:75%}.flex--12 .flex__item--xl-10{flex-basis:83.3333333333%;max-width:83.3333333333%}.flex--12 .flex__item--xl-11{flex-basis:91.6666666667%;max-width:91.6666666667%}.flex--12 .flex__item--xl-12{flex-basis:100%;max-width:100%}.flex--12 .flex__offset--xl-1{margin-left:8.3333333333%}.flex--12 .flex__offset--xl-2{margin-left:16.6666666667%}.flex--12 .flex__offset--xl-3{margin-left:25%}.flex--12 .flex__offset--xl-4{margin-left:33.3333333333%}.flex--12 .flex__offset--xl-5{margin-left:41.6666666667%}.flex--12 .flex__offset--xl-6{margin-left:50%}.flex--12 .flex__offset--xl-7{margin-left:58.3333333333%}.flex--12 .flex__offset--xl-8{margin-left:66.6666666667%}.flex--12 .flex__offset--xl-9{margin-left:75%}.flex--12 .flex__offset--xl-10{margin-left:83.3333333333%}.flex--12 .flex__offset--xl-11{margin-left:91.6666666667%}.flex--10 .flex__item--xl-1{flex-basis:10%;max-width:10%}.flex--10 .flex__item--xl-2{flex-basis:20%;max-width:20%}.flex--10 .flex__item--xl-3{flex-basis:30%;max-width:30%}.flex--10 .flex__item--xl-4{flex-basis:40%;max-width:40%}.flex--10 .flex__item--xl-5{flex-basis:50%;max-width:50%}.flex--10 .flex__item--xl-6{flex-basis:60%;max-width:60%}.flex--10 .flex__item--xl-7{flex-basis:70%;max-width:70%}.flex--10 .flex__item--xl-8{flex-basis:80%;max-width:80%}.flex--10 .flex__item--xl-9{flex-basis:90%;max-width:90%}.flex--10 .flex__item--xl-10{flex-basis:100%;max-width:100%}.flex--10 .flex__offset--xl-1{margin-left:10%}.flex--10 .flex__offset--xl-2{margin-left:20%}.flex--10 .flex__offset--xl-3{margin-left:30%}.flex--10 .flex__offset--xl-4{margin-left:40%}.flex--10 .flex__offset--xl-5{margin-left:50%}.flex--10 .flex__offset--xl-6{margin-left:60%}.flex--10 .flex__offset--xl-7{margin-left:70%}.flex--10 .flex__offset--xl-8{margin-left:80%}.flex--10 .flex__offset--xl-9{margin-left:90%}.flex--xl-start{justify-content:flex-start}.flex--xl-center{justify-content:center}.flex--xl-end{justify-content:flex-end}.flex--xl-around{justify-content:space-around}.flex--xl-between{justify-content:space-between}.flex--xl-top{align-items:flex-start}.flex--xl-middle{align-items:center}.flex--xl-bottom{align-items:flex-end}.flex--xl-first{order:-1}.flex--xl-last{order:1}.flex__item--xl-auto{flex:1 1 auto}.flex__item--xl-grow{flex-grow:1}.flex__item--xl-no-grow{flex-grow:0}.flex__item--xl-shrink{flex-shrink:1}.flex__item--xl-no-shrink{flex-shrink:0}.flex__item--xl-none{flex:none}.flex--xl-inline-flex{display:inline-flex}.flex--xl-flex-nowrap{flex-wrap:nowrap}.flex--xl-flex-wrap-rev{flex-wrap:wrap-reverse}.flex--xl-horizontal-rev{flex-direction:column-reverse}.flex--xl-vertical{flex-direction:column}.flex--xl-vertical-rev{flex-direction:row-reverse}}.font-scale-1{font-size:.5625rem}.font-scale-2{font-size:.625rem}.font-scale-3{font-size:.75rem}.font-scale-4{font-size:.875rem}.font-scale-5{font-size:1rem}.font-scale-6{font-size:1.125rem}.font-scale-7{font-size:1.3125rem}.font-scale-8{font-size:1.5rem}.font-scale-9{font-size:1.6875rem}.font-scale-10{font-size:1.875rem}.font-scale-11{font-size:2.0625rem}.font-scale-12{font-size:2.25rem}.font-scale-13{font-size:2.5rem}.font-scale-14{font-size:2.75rem}.font-scale-15{font-size:3rem}.font-scale-16{font-size:3.25rem}.font-scale-17{font-size:3.5rem}.font-scale-18{font-size:3.75rem}@media(min-width: 480px){.font-scale-1{font-size:.5625rem}.font-scale-2{font-size:.625rem}.font-scale-3{font-size:.75rem}.font-scale-4{font-size:.875rem}.font-scale-5{font-size:1rem}.font-scale-6{font-size:1.125rem}.font-scale-7{font-size:1.3125rem}.font-scale-8{font-size:1.5rem}.font-scale-9{font-size:1.75rem}.font-scale-10{font-size:2rem}.font-scale-11{font-size:2.375rem}.font-scale-12{font-size:2.75rem}.font-scale-13{font-size:3.125rem}.font-scale-14{font-size:3.5rem}.font-scale-15{font-size:3.875rem}.font-scale-16{font-size:4.25rem}.font-scale-17{font-size:4.625rem}.font-scale-18{font-size:5rem}}@media(min-width: 768px){.font-scale-1{font-size:.625rem}.font-scale-2{font-size:.75rem}.font-scale-3{font-size:.875rem}.font-scale-4{font-size:1rem}.font-scale-5{font-size:1.125rem}.font-scale-6{font-size:1.25rem}.font-scale-7{font-size:1.5rem}.font-scale-8{font-size:1.75rem}.font-scale-9{font-size:2rem}.font-scale-10{font-size:2.5rem}.font-scale-11{font-size:3rem}.font-scale-12{font-size:3.5rem}.font-scale-13{font-size:4rem}.font-scale-14{font-size:4.5rem}.font-scale-15{font-size:5rem}.font-scale-16{font-size:5.5rem}.font-scale-17{font-size:6rem}.font-scale-18{font-size:6.5rem}}.line-height-scale-1{line-height:.875}.line-height-scale-2{line-height:1}.line-height-scale-3{line-height:1.125}.line-height-scale-4{line-height:1.25}.line-height-scale-5{line-height:1.375}.line-height-scale-6{line-height:1.5}.line-height-scale-7{line-height:1.625}.line-height-scale-8{line-height:1.75}.line-height-scale-9{line-height:1.875}.line-height-scale-10{line-height:2}.lp-text-react p,.lp-text-react h1,.lp-text-react h2,.lp-text-react h3{min-height:1em;white-space:pre-wrap}.lp-text-react p:empty:before,.lp-text-react h1:empty:before,.lp-text-react h2:empty:before,.lp-text-react h3:empty:before{content:" ";white-space:pre}p.gutter-bottom-1,.lp-list.gutter-bottom-1{margin-bottom:0em}p.gutter-bottom-2,.lp-list.gutter-bottom-2{margin-bottom:0.25em}p.gutter-bottom-3,.lp-list.gutter-bottom-3{margin-bottom:0.4375em}
49p.gutter-bottom-4,.lp-list.gutter-bottom-4{margin-bottom:0.5em}p.gutter-bottom-5,.lp-list.gutter-bottom-5{margin-bottom:0.5625em}p.gutter-bottom-6,.lp-list.gutter-bottom-6{margin-bottom:0.625em}p.gutter-bottom-7,.lp-list.gutter-bottom-7{margin-bottom:0.6875em}p.gutter-bottom-8,.lp-list.gutter-bottom-8{margin-bottom:0.75em}p.gutter-bottom-9,.lp-list.gutter-bottom-9{margin-bottom:0.8125em}p.gutter-bottom-10,.lp-list.gutter-bottom-10{margin-bottom:0.875em}p.gutter-bottom-11,.lp-list.gutter-bottom-11{margin-bottom:0.9375em}p.gutter-bottom-12,.lp-list.gutter-bottom-12{margin-bottom:1em}p.gutter-bottom-13,.lp-list.gutter-bottom-13{margin-bottom:1.25em}p.gutter-bottom-14,.lp-list.gutter-bottom-14{margin-bottom:1.5em}h1.gutter-bottom-1,h2.gutter-bottom-1,h3.gutter-bottom-1{padding-bottom:0em}h1.gutter-bottom-2,h2.gutter-bottom-2,h3.gutter-bottom-2{padding-bottom:0.25em}h1.gutter-bottom-3,h2.gutter-bottom-3,h3.gutter-bottom-3{padding-bottom:0.4375em}h1.gutter-bottom-4,h2.gutter-bottom-4,h3.gutter-bottom-4{padding-bottom:0.5em}h1.gutter-bottom-5,h2.gutter-bottom-5,h3.gutter-bottom-5{padding-bottom:0.5625em}h1.gutter-bottom-6,h2.gutter-bottom-6,h3.gutter-bottom-6{padding-bottom:0.625em}h1.gutter-bottom-7,h2.gutter-bottom-7,h3.gutter-bottom-7{padding-bottom:0.6875em}h1.gutter-bottom-8,h2.gutter-bottom-8,h3.gutter-bottom-8{padding-bottom:0.75em}h1.gutter-bottom-9,h2.gutter-bottom-9,h3.gutter-bottom-9{padding-bottom:0.8125em}h1.gutter-bottom-10,h2.gutter-bottom-10,h3.gutter-bottom-10{padding-bottom:0.875em}h1.gutter-bottom-11,h2.gutter-bottom-11,h3.gutter-bottom-11{padding-bottom:0.9375em}h1.gutter-bottom-12,h2.gutter-bottom-12,h3.gutter-bottom-12{padding-bottom:1em}h1.gutter-bottom-13,h2.gutter-bottom-13,h3.gutter-bottom-13{padding-bottom:1.25em}h1.gutter-bottom-14,h2.gutter-bottom-14,h3.gutter-bottom-14{padding-bottom:1.5em}.lp-button{text-decoration:none}.is-bold{font-weight:700}.is-italic{font-style:italic}.is-strikethrough{text-decoration:line-through}.is-underline,.is-underline label{text-decoration:underline}.is-strikethrough.is-underline{text-decoration:line-through underline}.text-align-left{text-align:left}.text-align-right{text-align:right}.text-align-center{text-align:center}.lp-list{list-style:none;margin:0;padding:0}.lp-list.text-align-left li{padding-left:24px}.lp-list.text-align-left li::before{position:absolute}.lp-list.text-align-left.lp-list--numbered li{padding-left:30px}.lp-list.text-align-left.lp-list--icon li{padding-left:1.5em}.lp-list li{position:relative;width:100%;white-space:pre-wrap}.lp-list li:not(:last-child){margin-bottom:.5em}.lp-list li::before{display:inline-block;font-size:1em;font-weight:700}.lp-list--numbered{counter-reset:numbered}.lp-list--numbered.text-align-left li::before{left:-3px;top:1px}.lp-list--numbered.text-align-center li::before,.lp-list--numbered.text-align-right li::before{margin-right:10px}.lp-list--numbered li{counter-increment:numbered}.lp-list--numbered li::before{content:counter(numbered)}.lp-list--bullet.text-align-center li,.lp-list--bullet.text-align-right li{padding-left:12px}.lp-list--bullet li::before{content:"•";text-align:center;transform:scale(1.5);transform-origin:center right}.lp-list--checkmark.text-align-left li{padding-left:20px}.lp-list--checkmark.text-align-left li::before{left:2px;top:2px}.lp-list--checkmark.text-align-center li::before,.lp-list--checkmark.text-align-right li::before{transform:translateY(-3px)}.lp-list--checkmark li::before{content:"";font-family:"Font Awesome 5 Free";font-weight:900;transform:scale(0.85)}.lp-list--icon.text-align-center li::before,.lp-list--icon.text-align-right li::before{transform:translateY(-3px)}.lp-list--checkmark.text-align-left.font-scale-1 li{padding-left:15px}.lp-list--checkmark.text-align-left.font-scale-1 li::before{left:-4px}.lp-list--checkmark.text-align-left.font-scale-2 li{padding-left:15px}.lp-list--checkmark.text-align-left.font-scale-2 li::before{left:-4px}.lp-list--checkmark.text-align-left.font-scale-3 li{padding-left:15px}.lp-list--checkmark.text-align-left.font-scale-3 li::before{left:-4px}.lp-list--checkmark.text-align-left.font-scale-4 li::before{left:-6px}.lp-list--checkmark.text-align-left.font-scale-5 li::before{left:-6px}.lp-list--checkmark.text-align-left.font-scale-6 li::before{left:-6px}.lp-list--checkmark.text-align-left.font-scale-7 li{padding-left:25px}.lp-list--checkmark.text-align-left.font-scale-7 li::before{left:-10px}.lp-list--checkmark.text-align-left.font-scale-8 li{padding-left:25px}.lp-list--checkmark.text-align-left.font-scale-8 li::before{left:-10px}.lp-list--checkmark.text-align-left.font-scale-9 li{padding-left:25px}.lp-list--checkmark.text-align-left.font-scale-9 li::before{left:-10px}.lp-list--checkmark.text-align-left.font-scale-10 li{padding-left:25px}.lp-list--checkmark.text-align-left.font-scale-10 li::before{left:-10px}.lp-list--checkmark.text-align-left.font-scale-10 li{padding-left:35px}.lp-list--checkmark.text-align-left.font-scale-11 li{padding-left:1.05em}.lp-list--checkmark.text-align-left.font-scale-11 li::before{left:-0.1em}.lp-list--checkmark.text-align-left.font-scale-12 li{padding-left:1.05em}.lp-list--checkmark.text-align-left.font-scale-12 li::before{left:-0.1em}.lp-list--checkmark.text-align-left.font-scale-13 li{padding-left:1.05em}.lp-list--checkmark.text-align-left.font-scale-13 li::before{left:-0.1em}.lp-list--checkmark.text-align-left.font-scale-14 li{padding-left:1.05em}.lp-list--checkmark.text-align-left.font-scale-14 li::before{left:-0.1em}.lp-list--checkmark.text-align-left.font-scale-15 li{padding-left:1.05em}.lp-list--checkmark.text-align-left.font-scale-15 li::before{left:-0.1em}.lp-list--checkmark.text-align-left.font-scale-16 li{padding-left:1.05em}.lp-list--checkmark.text-align-left.font-scale-16 li::before{left:-0.1em}.lp-list--checkmark.text-align-left.font-scale-17 li{padding-left:1.05em}.lp-list--checkmark.text-align-left.font-scale-17 li::before{left:-0.1em}.lp-list--checkmark.text-align-left.font-scale-18 li{padding-left:1.05em}.lp-list--checkmark.text-align-left.font-scale-18 li::before{left:-0.1em}.lp-list--bullet.text-align-left.font-scale-1 li{padding-left:15px}.lp-list--bullet.text-align-left.font-scale-1 li::before{top:2px;left:-2px}.lp-list--bullet.text-align-left.font-scale-2 li{padding-left:15px}.lp-list--bullet.text-align-left.font-scale-2 li::before{top:2px;left:-2px}.lp-list--bullet.text-align-left.font-scale-3 li{padding-left:15px}.lp-list--bullet.text-align-left.font-scale-3 li::before{top:2px;left:-2px}.lp-list--bullet.text-align-left.font-scale-4 li{padding-left:20px}.lp-list--bullet.text-align-left.font-scale-4 li::before{left:0}.lp-list--bullet.text-align-left.font-scale-5 li{padding-left:20px}.lp-list--bullet.text-align-left.font-scale-5 li::before{left:0}.lp-list--bullet.text-align-left.font-scale-6 li{padding-left:20px}.lp-list--bullet.text-align-left.font-scale-6 li::before{left:0}.lp-list--bullet.text-align-left.font-scale-7 li::before{left:2px}.lp-list--bullet.text-align-left.font-scale-8 li::before{left:2px}.lp-list--bullet.text-align-left.font-scale-9 li::before{left:2px}.lp-list--bullet.text-align-left.font-scale-10 li{padding-left:35px}.lp-list--bullet.text-align-left.font-scale-10 li::before{left:6px}.lp-list--bullet.text-align-left.font-scale-11 li{padding-left:1.05em}.lp-list--bullet.text-align-left.font-scale-11 li::before{left:.25em;line-height:.75em;top:.18em}.lp-list--bullet.text-align-left.font-scale-12 li{padding-left:1.05em}.lp-list--bullet.text-align-left.font-scale-12 li::before{left:.25em;line-height:.75em;top:.18em}.lp-list--bullet.text-align-left.font-scale-13 li{padding-left:1.05em}.lp-list--bullet.text-align-left.font-scale-13 li::before{left:.25em;line-height:.75em;top:.18em}.lp-list--bullet.text-align-left.font-scale-14 li{padding-left:1.05em}.lp-list--bullet.text-align-left.font-scale-14 li::before{left:.25em;line-height:.75em;top:.18em}.lp-list--bullet.text-align-left.font-scale-15 li{padding-left:1.05em}.lp-list--bullet.text-align-left.font-scale-15 li::before{left:.25em;line-height:.75em;top:.18em}.lp-list--bullet.text-align-left.font-scale-16 li{padding-left:1.05em}.lp-list--bullet.text-align-left.font-scale-16 li::before{left:.25em;line-height:.75em;top:.18em}.lp-list--bullet.text-align-left.font-scale-17 li{padding-left:1.05em}.lp-list--bullet.text-align-left.font-scale-17 li::before{left:.25em;line-height:.75em;top:.18em}.lp-list--bullet.text-align-left.font-scale-18 li{padding-left:1.05em}.lp-list--bullet.text-align-left.font-scale-18 li::before{left:.25em;line-height:.75em;top:.18em}.lp-list--numbered.text-align-left.font-scale-1 li{padding-left:15px}.lp-list--numbered.text-align-left.font-scale-1 li:nth-child(n+10){padding-left:20px}.lp-list--numbered.text-align-left.font-scale-1 li::before{left:-3px}.lp-list--numbered.text-align-left.font-scale-2 li{padding-left:15px}.lp-list--numbered.text-align-left.font-scale-2 li:nth-child(n+10){padding-left:20px}.lp-list--numbered.text-align-left.font-scale-2 li::before{left:-3px}.lp-list--numbered.text-align-left.font-scale-3 li{padding-left:15px}.lp-list--numbered.text-align-left.font-scale-3 li:nth-child(n+10){padding-left:20px}.lp-list--numbered.text-align-left.font-scale-3 li::before{left:-3px}.lp-list--numbered.text-align-left.font-scale-4 li{padding-left:20px}.lp-list--numbered.text-align-left.font-scale-4 li:nth-child(n+10){padding-left:30px}.lp-list--numbered.text-align-left.font-scale-4 li::before{left:-3px}.lp-list--numbered.text-align-left.font-scale-5 li{padding-left:20px}.lp-list--numbered.text-align-left.font-scale-5 li:nth-child(n+10){padding-left:30px}.lp-list--numbered.text-align-left.font-scale-5 li::before{left:-3px}.lp-list--numbered.text-align-left.font-scale-6 li{padding-left:20px}.lp-list--numbered.text-align-left.font-scale-6 li:nth-child(n+10){padding-left:30px}.lp-list--numbered.text-align-left.font-scale-6 li::before{left:-3px}.lp-list--numbered.text-align-left.font-scale-7 li{padding-left:25px}.lp-list--numbered.text-align-left.font-scale-7 li:nth-child(n+10){padding-left:45px}.lp-list--numbered.text-align-left.font-scale-7 li::before{left:-3px}.lp-list--numbered.text-align-left.font-scale-8 li{padding-left:25px}.lp-list--numbered.text-align-left.font-scale-8 li:nth-child(n+10){padding-left:45px}.lp-list--numbered.text-align-left.font-scale-8 li::before{left:-3px}.lp-list--numbered.text-align-left.font-scale-9 li{padding-left:25px}.lp-list--numbered.text-align-left.font-scale-9 li:nth-child(n+10){padding-left:45px}.lp-list--numbered.text-align-left.font-scale-9 li::before{left:-3px}.lp-list--numbered.text-align-left.font-scale-10 li{padding-left:35px}.lp-list--numbered.text-align-left.font-scale-10 li:nth-child(n+10){padding-left:60px}.lp-list--numbered.text-align-left.font-scale-10 li::before{left:-2px}.lp-list--numbered.text-align-left.font-scale-11 li{padding-left:1.05em}.lp-list--numbered.text-align-left.font-scale-11 li:nth-child(n+10){padding-left:1.625em}.lp-list--numbered.text-align-left.font-scale-11 li::before{left:-2px;line-height:.75em;top:.18em}.lp-list--numbered.text-align-left.font-scale-12 li{padding-left:1.05em}.lp-list--numbered.text-align-left.font-scale-12 li:nth-child(n+10){padding-left:1.625em}.lp-list--numbered.text-align-left.font-scale-12 li::before{left:-2px;line-height:.75em;top:.18em}.lp-list--numbered.text-align-left.font-scale-13 li{padding-left:1.05em}.lp-list--numbered.text-align-left.font-scale-13 li:nth-child(n+10){padding-left:1.625em}.lp-list--numbered.text-align-left.font-scale-13 li::before{left:-2px;line-height:.75em;top:.18em}.lp-list--numbered.text-align-left.font-scale-14 li{padding-left:1.05em}.lp-list--numbered.text-align-left.font-scale-14 li:nth-child(n+10){padding-left:1.625em}.lp-list--numbered.text-align-left.font-scale-14 li::before{left:-2px;line-height:.75em;top:.18em}.lp-list--numbered.text-align-left.font-scale-15 li{padding-left:1.05em}.lp-list--numbered.text-align-left.font-scale-15 li:nth-child(n+10){padding-left:1.625em}.lp-list--numbered.text-align-left.font-scale-15 li::before{left:-2px;line-height:.75em;top:.18em}.lp-list--numbered.text-align-left.font-scale-16 li{padding-left:1.05em}.lp-list--numbered.text-align-left.font-scale-16 li:nth-child(n+10){padding-left:1.625em}.lp-list--numbered.text-align-left.font-scale-16 li::before{left:-2px;line-height:.75em;top:.18em}.lp-list--numbered.text-align-left.font-scale-17 li{padding-left:1.05em}.lp-list--numbered.text-align-left.font-scale-17 li:nth-child(n+10){padding-left:1.625em}.lp-list--numbered.text-align-left.font-scale-17 li::before{left:-2px;line-height:.75em;top:.18em}.lp-list--numbered.text-align-left.font-scale-18 li{padding-left:1.05em}.lp-list--numbered.text-align-left.font-scale-18 li:nth-child(n+10){padding-left:1.625em}.lp-list--numbered.text-align-left.font-scale-18 li::before{left:-2px;line-height:.75em;top:.18em}.lp-list--icon.text-align-left li::before{left:-6px}.lp-list--icon.text-align-left.font-scale-1 li{padding-left:20px}.lp-list--icon.text-align-left.font-scale-2 li{padding-left:20px}.lp-list--icon.text-align-left.font-scale-3 li{padding-left:20px}.lp-list--icon.text-align-left.font-scale-7 li{padding-left:40px}.lp-list--icon.text-align-left.font-scale-8 li{padding-left:40px}.lp-list--icon.text-align-left.font-scale-9 li{padding-left:40px}.lp-list--icon.text-align-left.font-scale-10 li{padding-left:40px}.lp-list--icon.text-align-left.font-scale-10 li{padding-left:55px}.lp-list--icon.text-align-left.font-scale-11 li::before{left:-5px}.lp-list--icon.text-align-left.font-scale-12 li::before{left:-5px}.lp-list--icon.text-align-left.font-scale-13 li::before{left:-5px}.lp-list--icon.text-align-left.font-scale-14 li::before{left:-5px}.lp-list--icon.text-align-left.font-scale-15 li::before{left:-5px}.lp-list--icon.text-align-left.font-scale-16 li::before{left:-5px}.lp-list--icon.text-align-left.font-scale-17 li::before{left:-5px}.lp-list--icon.text-align-left.font-scale-18 li::before{left:-5px}@media(max-width: 480px){.lp-list--checkmark.text-align-left.font-scale-7 li::before{left:-5px}.lp-list--checkmark.text-align-left.font-scale-8 li::before{left:-5px}.lp-list--checkmark.text-align-left.font-scale-9 li::before{left:-5px}.lp-list--checkmark.text-align-left.font-scale-10 li::before{left:-5px}.lp-list--checkmark.text-align-left.font-scale-11 li::before{left:-5px}.lp-list--checkmark.text-align-left.font-scale-12 li::before{left:-5px}.lp-list--checkmark.text-align-left.font-scale-13 li::before{left:-5px}.lp-list--checkmark.text-align-left.font-scale-14 li::before{left:-5px}.lp-list--checkmark.text-align-left.font-scale-15 li::before{left:-5px}.lp-list--checkmark.text-align-left.font-scale-16 li::before{left:-5px}.lp-list--checkmark.text-align-left.font-scale-17 li::before{left:-5px}.lp-list--checkmark.text-align-left.font-scale-18 li::before{left:-5px}.lp-list--numbered.text-align-left.font-scale-1 li:nth-child(n+10){padding-left:20px}.lp-list--numbered.text-align-left.font-scale-2 li:nth-child(n+10){padding-left:20px}.lp-list--numbered.text-align-left.font-scale-3 li:nth-child(n+10){padding-left:20px}.lp-list--numbered.text-align-left.font-scale-4 li:nth-child(n+10){padding-left:25px}.lp-list--numbered.text-align-left.font-scale-5 li:nth-child(n+10){padding-left:25px}.lp-list--numbered.text-align-left.font-scale-6 li:nth-child(n+10){padding-left:25px}.lp-list--numbered.text-align-left.font-scale-7 li:nth-child(n+10){padding-left:35px}.lp-list--numbered.text-align-left.font-scale-8 li:nth-child(n+10){padding-left:35px}.lp-list--numbered.text-align-left.font-scale-9 li:nth-child(n+10){padding-left:35px}.lp-list--numbered.text-align-left.font-scale-10 li:nth-child(n+10){padding-left:40px}.lp-list--icon.text-align-left.font-scale-7 li{padding-left:28px}.lp-list--icon.text-align-left.font-scale-7 li::before{left:-5px}.lp-list--icon.text-align-left.font-scale-8 li{padding-left:28px}.lp-list--icon.text-align-left.font-scale-8 li::before{left:-5px}.lp-list--icon.text-align-left.font-scale-9 li{padding-left:28px}.lp-list--icon.text-align-left.font-scale-9 li::before{left:-5px}.lp-list--icon.text-align-left.font-scale-10 li{padding-left:35px}.lp-list--icon.text-align-left.font-scale-11 li{padding-left:1.25em}.lp-list--icon.text-align-left.font-scale-11 li::before{left:-5px}.lp-list--icon.text-align-left.font-scale-12 li{padding-left:1.25em}.lp-l
49ist--icon.text-align-left.font-scale-12 li::before{left:-5px}.lp-list--icon.text-align-left.font-scale-13 li{padding-left:1.25em}.lp-list--icon.text-align-left.font-scale-13 li::before{left:-5px}.lp-list--icon.text-align-left.font-scale-14 li{padding-left:1.25em}.lp-list--icon.text-align-left.font-scale-14 li::before{left:-5px}.lp-list--icon.text-align-left.font-scale-15 li{padding-left:1.25em}.lp-list--icon.text-align-left.font-scale-15 li::before{left:-5px}.lp-list--icon.text-align-left.font-scale-16 li{padding-left:1.25em}.lp-list--icon.text-align-left.font-scale-16 li::before{left:-5px}.lp-list--icon.text-align-left.font-scale-17 li{padding-left:1.25em}.lp-list--icon.text-align-left.font-scale-17 li::before{left:-5px}.lp-list--icon.text-align-left.font-scale-18 li{padding-left:1.25em}.lp-list--icon.text-align-left.font-scale-18 li::before{left:-5px}}[data-widget-type=lp-image-text] .composite-box,[data-widget-type=lp-calendar-text] .composite-box{align-items:stretch}[data-widget-type=lp-image-text] .composite-column-compose,[data-widget-type=lp-calendar-text] .composite-column-compose{display:flex}[data-widget-type=lp-image-text] .layout-TC .composite-column-compose,[data-widget-type=lp-image-text] .layout-BC .composite-column-compose,[data-widget-type=lp-calendar-text] .layout-TC .composite-column-compose,[data-widget-type=lp-calendar-text] .layout-BC .composite-column-compose{flex-direction:column}[data-widget-type=lp-image-text] .layout-TR .composite-row-compose,[data-widget-type=lp-image-text] .layout-CR .composite-row-compose,[data-widget-type=lp-image-text] .layout-BR .composite-row-compose,[data-widget-type=lp-image-text] .layout-TL .composite-row-compose,[data-widget-type=lp-image-text] .layout-CL .composite-row-compose,[data-widget-type=lp-image-text] .layout-BL .composite-row-compose,[data-widget-type=lp-calendar-text] .layout-TR .composite-row-compose,[data-widget-type=lp-calendar-text] .layout-CR .composite-row-compose,[data-widget-type=lp-calendar-text] .layout-BR .composite-row-compose,[data-widget-type=lp-calendar-text] .layout-TL .composite-row-compose,[data-widget-type=lp-calendar-text] .layout-CL .composite-row-compose,[data-widget-type=lp-calendar-text] .layout-BL .composite-row-compose{flex:1 1 100%;flex-direction:row}[data-widget-type=lp-image-text] .layout-TR .composite-row-compose,[data-widget-type=lp-image-text] .layout-TL .composite-row-compose,[data-widget-type=lp-calendar-text] .layout-TR .composite-row-compose,[data-widget-type=lp-calendar-text] .layout-TL .composite-row-compose{align-items:flex-start}[data-widget-type=lp-image-text] .layout-CR .composite-row-compose,[data-widget-type=lp-image-text] .layout-CL .composite-row-compose,[data-widget-type=lp-calendar-text] .layout-CR .composite-row-compose,[data-widget-type=lp-calendar-text] .layout-CL .composite-row-compose{align-items:center}[data-widget-type=lp-image-text] .layout-BR .composite-row-compose,[data-widget-type=lp-image-text] .layout-BL .composite-row-compose,[data-widget-type=lp-calendar-text] .layout-BR .composite-row-compose,[data-widget-type=lp-calendar-text] .layout-BL .composite-row-compose{align-items:flex-end}@media(max-width: 767px){.section .composite{padding:8px}}.leadbox .section,.leadbox .page>section{padding:initial}@media(max-width: 479px){.inner-column{padding:8px}}@media(min-width: 480px)and (max-width: 767px){.inner-column{padding:12px}}/*# sourceMappingURL=page-styles.css.map */</style>
50    <style>
51      .body--nav-open { overflow-y: hidden; }
52    </style>
53
54    
54<script>
55      // Force window to top on page load, so hash can be smooth scrolled later.
56      if (window.location.hash) {
57        window.LPSite = {};
58        try {
59          window.LPSite.hashCache = decodeURIComponent(window.location.hash);
60        } catch {
61          window.LPSite.hashCache = window.location.hash;
62        }
63        window.history.replaceState(null, null, '#');
64      }
65    </script>
65
66
67    
68    <meta name="page-analytics-property" content="5bfsYKqwKVVj4DKifSpfmD-default-prop">
69    
69<script type="text/javascript">
70      (function(a,c,d,b,e,f){a[d]=b;a[b]||(a[b]=function(){a[b].q=a[b].q||[];a[b].q.push(arguments)},d=c.createElement(e),d.async=!0,d.src=f,c=c.getElementsByTagName(e)[0],c.parentNode.insertBefore(d,c))})(window,document,"LeadPagesCenterObject","center","script","https://js.center.io/center.js");
71      center('create', '5bfsYKqwKVVj4DKifSpfmD-default-prop', '5bfsYKqwKVVj4DKifSpfmD-default-prop', {customId: 'site-W9DsqEXC6MfLusABMHro35'});
72    
73       center('send','view','site','W9DsqEXC6MfLusABMHro35:ea3eeb3d-594c-ef0d-5345-b40c17a81024',null,{customId:'site-W9DsqEXC6MfLusABMHro35:ea3eeb3d-594c-ef0d-5345-b40c17a81024'});
74    </script>
74
75    <meta name="google-adsense-platform-account" content="ca-host-pub-5592227420017134">
76    <meta name="google-adsense-platform-domain" content="leadpages.com">
77    
78  <style id="htmlpub-migrated-fonts">
79@font-face{font-family:'Gilroy';src:url(/api/library/sz42kbmwlnmp2axnkz1h65ur) format('woff2'),url(/api/library/ka584cqmtwn1iu24jix4cubx) format('woff');font-weight:400;font-style:normal;font-display:swap;}
80@font-face{font-family:'Gilroy';src:url(/api/library/xwngolxl72eba9hwfdqt6m1v) format('woff2'),url(/api/library/axm2epjpba4ippddok750uew) format('woff');font-weight:700;font-style:normal;font-display:swap;}
81</style>
82</head>
83
84  <body><a href="https://pages.lpcontent.net/cdn-cgi/content?id=tBdkPxbqbJW7xGHoaN_k4B_bLhenv4lk9v9AkFIkJ5I-1790901077.4676342-1.2.1.1-Ib.hlhYi3Db16nOy_yyynK47y_a9EB6rqTgpZUvF5CkghPgD.gxlfaHgL3aLlMi." aria-hidden="true" rel="nofollow noopener" style="display: none !important; visibility: hidden !important"></a>
85    
86    <style data-emotion-css="16l4s3y r2ag0e 119qg5r 2jofpk 10xsv1r 1x26rdx mi4w0s">.page-background{position:fixed;height:100vh;top:0;left:0;right:0;bottom:0;z-index:-1;background-color:rgb(0,0,40);}section{margin:0 auto;}.container{max-width:1140px;}@media (min-width:calc(1140px / 16)em){.widget{padding:calc(1140px / 100);}}h1{color:rgb(0,0,0);font-family:"Gilroy",sans-serif;font-weight:bold;font-style:normal;}h2{color:rgb(0,0,0);font-family:"Gilroy",sans-serif;font-weight:bold;font-style:normal;}h3{color:rgb(0,0,0);font-family:"Lato",sans-serif;font-weight:normal;font-style:normal;}p{color:rgb(0,0,0);font-family:"Montserrat",sans-serif;font-weight:normal;font-style:normal;}ul{color:rgb(0,0,0);font-family:"Montserrat",sans-serif;font-weight:normal;font-style:normal;}h1{font-size:5.5rem;}h2{font-size:1.75rem;}h3{font-size:1.125rem;}p{font-size:1rem;}ul{font-size:1rem;}.lp-list.lp-list--bullet.text-align-left li::before{left:0;}.lp-list.lp-list--bullet.text-align-left li{padding-left:20px;}.lp-list.lp-list--numbered.text-align-left li::before{left:-3px;}.lp-list.lp-list--numbered.text-align-left li{padding-left:20px;}.lp-list.lp-list--numbered.text-align-left li:nth-child(n + 10){padding-left:30px;}@media only screen and (max-width:480px){.lp-list.lp-list--numbered.text-align-left li:nth-child(n + 10){padding-left:25px;}}.lp-list.lp-list--icon.text-align-left li::before{left:-6px;}.lp-list.lp-list--checkmark.text-align-left li::before{left:-6px;}h1{padding-bottom:0em;}h2{padding-bottom:0em;}h3{padding-bottom:0em;}p{margin-bottom:0em;}p,.lp-list{margin-bottom:0em;}ul{margin-bottom:0em;}h1{line-height:1.25;}h2{line-height:1.125;}h3{line-height:1.125;}p{line-height:1.625;}ul{line-height:1.625;}@media (min-width:480px){h1{font-size:4.25rem;}}@media (min-width:768px){h1{font-size:5.5rem;}}@media (min-width:480px){h2{font-size:1.5rem;}}@media (min-width:768px){h2{font-size:1.75rem;}}@media (min-width:480px){h3{font-size:1rem;}}@media (min-width:768px){h3{font-size:1.125rem;}}@media (min-width:480px){p{font-size:0.875rem;}}@media (min-width:768px){p{font-size:1rem;}}@media (min-width:480px){ul{font-size:0.875rem;}}@media (min-width:768px){ul{font-size:1rem;}}.lp-alert,.lp-calendar-react .date,.lp-calendar-react .month,.lp-form-v2-input-react{font-family:"Montserrat",sans-serif;}.lp-form-v2-input-react{color:rgb(0,0,0);}form.is-disabled .error-prompt--disabled{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;}form.is-disabled .form-field,form.is-disabled .lp-button-react,form.is-disabled .lp-product-summary-react{opacity:0.4;pointer-events:none;}form.is-invalid .error-prompt--invalid{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;}form.has-info .error-prompt--info{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;}</style><style data-emotion-css="1rm4c50">.css-1rm4c50 .mobile-nav-trigger{position:absolute;right:23px;top:20px;opacity:0;}.css-1rm4c50 .column.mobile-hide-column{display:none;}.css-1rm4c50 .layout.mobile-hide-layout{display:none;}.css-1rm4c50 .mobile-nav-trigger--show{opacity:1;}</style><div class="site-header js-site-header css-1rm4c50" data-scrolling="static" data-min-height="3" data-max-height="3" data-min-font-size="2" data-max-font-size="4" data-min-logo-width="37" data-max-logo-width="234" data-persist-part-id="qs9a6748nxuai4pt21t7fok6" data-persist-part-kind="header"><style data-emotion-css="p62xri">.css-p62xri .flexed-header .layout{-webkit-flex-wrap:nowrap;-ms-flex-wrap:nowrap;flex-wrap:nowrap;}.css-p62xri .flexed-header .layout .column:nth-of-type(1){-webkit-flex:0 0 auto;-ms-flex:0 0 auto;flex:0 0 auto;max-width:initial;}.css-p62xri .flexed-header .layout .column:nth-of-type(2){-webkit-flex:1 1 auto;-ms-flex:1 1 auto;flex:1 1 auto;max-width:initial;}.css-p62xri .flexed-header .layout .column:nth-of-type(3){-webkit-flex:0 0 auto;-ms-flex:0 0 auto;flex:0 0 auto;max-width:initial;}.css-p62xri .flexed-header .widget{padding:16px;}</style><div class="site-nav css-p62xri"><style data-emotion-css="1wpoh5r">.css-1wpoh5r{background-color:rgba(0,0,40,1);border-color:rgba(0,0,40,1);background-size:cover;background-position:center center;background-repeat:no-repeat;}.css-1wpoh5r > .container{padding-top:3vw;padding-right:vw;padding-bottom:3vw;padding-left:vw;padding-top:3cqw;padding-right:cqw;padding-bottom:3cqw;padding-left:cqw;}.site-header .css-1wpoh5r > .container{padding-top:10px;padding-right:0;padding-bottom:10px;padding-left:0;-webkit-transition:padding 0.03s ease;transition:padding 0.03s ease;}.bar .css-1wpoh5r{padding:0 50px;}@media (max-width:23.75em){.bar .css-1wpoh5r{padding:0 25px;}}@media (min-width:71.25em){.css-1wpoh5r > .container{padding-top:34.2px;padding-right:NaNpx;padding-bottom:34.2px;padding-left:NaNpx;}}</style><section class="header-section flexed-header section css-1wpoh5r" data-guid="73350b05-d41a-3dc1-cb68-113151418d66"><div class="container" id="header-section"><div class="layout flex flex--12" data-guid="ae79c9ba-59cd-a394-35a8-fdcd98d55279"><style data-emotion-css="1gailv9">.css-1gailv9{padding-top:0vw;padding-right:0vw;padding-bottom:0vw;padding-left:0vw;padding-top:0cqw;padding-right:0cqw;padding-bottom:0cqw;padding-left:0cqw;}@media(min-width:71.25em){.css-1gailv9.column{padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;}.css-1gailv9.column > .inner-column{padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:11.4px;}}</style><div class="column flex__item--md-3 flex__item--xs-12 css-1gailv9" data-guid="8d9ba638-a259-7f37-177f-a111bca28b3e">
86<style data-emotion-css="19wqggs">.css-19wqggs{background-color:rgba(0,0,0,0);border-color:rgba(0,0,0,0);border-radius:0px;background-size:cover;background-position:center center;background-repeat:no-repeat;padding-top:0vw;padding-right:0vw;padding-bottom:0vw;padding-left:1vw;padding-top:0cqw;padding-right:0cqw;padding-bottom:0cqw;padding-left:1cqw;}.bar .css-19wqggs{padding-top:0;padding-bottom:0;}</style><div class="inner-column css-19wqggs"><style data-emotion-css="47r3vg">.section--center-widgets .css-47r3vg{-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;}@media (max-width:767px){.bar .css-47r3vg{-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;}}</style><div class="row flex flex--12 css-47r3vg"><style data-emotion-css="8x0d4x">.section--center-widgets .css-8x0d4x{-webkit-flex-basis:auto;-ms-flex-preferred-size:auto;flex-basis:auto;max-width:100%;}</style><div class="composite flex__item--md-12 flex__item--xs-12 css-8x0d4x"><div class="inner-composite flex flex--12"><div class="widget-column flex__item--md-12 flex__item--xs-12"><div class="widget-row flex flex--12"><div class="flex__item--md-12 flex__item--xs-12"><div data-widget-id="7129c46e-fbe1-bcb1-c959-1dd94d8a4399" class="widget"><div><style data-emotion-css="94ohs6">@media (max-width:959px){.css-94ohs6{text-align:center;}}</style><div class="css-94ohs6"><style data-emotion-css="11g9kr1">.css-11g9kr1{-webkit-text-decoration:none;text-decoration:none;}</style><a data-widget-link="true" href="./" target="_top" data-link-type="site-route" data-route-guid="97724f5e-6fe3-cbd6-45e5-143e3151233f" data-route-slug="" class="css-11g9kr1 lp-image-react-container lp-icon-react__icon--linked" data-widget-type="LpLogoReact"><style data-emotion-css="1mzizu">.css-1mzizu{width:234px;vertical-align:bottom;}</style><img class="js-image-logo header-logo-element css-1mzizu" src="/api/library/n9yuu925tnjn98vo14aplkcc" alt="" data-image-upload-source="builder3"></a></div></div></div></div></div></div></div></div></div></div></div><style data-emotion-css="12b8izt">.css-12b8izt{padding-top:0vw;padding-right:0vw;padding-bottom:0vw;padding-left:0vw;padding-top:0cqw;padding-right:0cqw;padding-bottom:0cqw;padding-left:0cqw;}@media(min-width:71.25em){.css-12b8izt.column{padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;}.css-12b8izt.column > .inner-column{padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;}}</style><div class="column flex__item--md-6 flex__item--xs-12 css-12b8izt" data-guid="d7fdabec-73fc-161f-5df6-47d544b69729"><style data-emotion-css="c14f2p">.css-c14f2p{background-color:rgba(0,0,0,0);border-color:rgba(0,0,0,0);border-radius:0px;background-size:cover;background-position:center center;background-repeat:no-repeat;padding-top:0vw;padding-right:0vw;padding-bottom:0vw;padding-left:0vw;padding-top:0cqw;padding-right:0cqw;padding-bottom:0cqw;padding-left:0cqw;}.bar .css-c14f2p{padding-top:0;padding-bottom:0;}</style><div class="inner-column css-c14f2p"><div class="row flex flex--12 css-47r3vg"><div class="composite flex__item--md-12 flex__item--xs-12 css-8x0d4x"><div class="inner-composite flex flex--12"><div class="widget-column flex__item--md-12 flex__item--xs-12"><div class="widget-row flex flex--12"><div class="flex__item--md-12 flex__item--xs-12"><div data-widget-id="e18f8904-4a5a-3b8f-76c7-901eb763e2ce" class="widget"><style data-emotion-css="idf1c2">.css-idf1c2{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;}.css-idf1c2 .lp-nav__link{display:inline-block;cursor:pointer;position:relative;font-weight:bold;-webkit-text-decoration:none;text-decoration:none;}.css-idf1c2 .lp-nav__link:hover:after{bottom:0;opacity:0.7;-webkit-transition:all 0.1s ease;transition:all 0.1s ease;}.css-idf1c2 .lp-nav__link:after{content:'';position:absolute;bottom:-6px;height:2px;width:100%;left:0;right:0;opacity:0;pointer-events:none;}.css-idf1c2 .lp-nav__link.lp-nav__link--active:after{bottom:0;opacity:1;}.css-idf1c2 .lp-nav__link.lp-subnav__link:hover:after{left:-12px;}.css-idf1c2 .lp-nav__link.lp-subnav__link:after{left:-18px;height:70%;width:2px;bottom:0;top:50%;-webkit-transform:translateY(-50%);-ms-transform:translateY(-50%);transform:translateY(-50%);}.css-idf1c2 .lp-nav__link.lp-subnav__link.lp-nav__link--active:after{left:-12px;}.css-idf1c2 .lp-subnav--popper{display:none;z-index:999;}.css-idf1c2 .lp-subnav--popper.lp-subnav--open{display:block;}.css-idf1c2 .lp-subnav--popper.lp-subnav--open .lp-subnav{display:block;}@media (max-width:959px){.css-idf1c2 .lp-nav__link{width:100%;}.css-idf1c2 .lp-nav__link:hover:after{left:-12px;}.css-idf1c2 .lp-nav__link:after{left:-18px;height:70%;width:2px;bottom:0;top:50%;-webkit-transform:translateY(-50%);-ms-transform:translateY(-50%);transform:translateY(-50%);}.css-idf1c2 .lp-nav__link.lp-nav__link--active:after{left:-12px;}}
86.css-idf1c2.w-e18f8904-4a5a-3b8f-76c7-901eb763e2ce{-webkit-box-pack:end;-webkit-justify-content:flex-end;-ms-flex-pack:end;justify-content:flex-end;font-family:"Gilroy",sans-serif;font-size:calc(0.8em + (0.1em * 1));}.css-idf1c2.w-e18f8904-4a5a-3b8f-76c7-901eb763e2ce .lp-nav__link{color:rgba(255,255,255,1);font-weight:bold;font-style:normal;margin-left:calc(12px + 0.3em);margin-right:12px;padding:calc(10px + 0.2em) 0;}.css-idf1c2.w-e18f8904-4a5a-3b8f-76c7-901eb763e2ce .lp-nav__link:hover,.css-idf1c2.w-e18f8904-4a5a-3b8f-76c7-901eb763e2ce .lp-nav__link.lp-nav__link--active[data-link-type="site-route"]{color:rgba(255,255,255,1);}.css-idf1c2.w-e18f8904-4a5a-3b8f-76c7-901eb763e2ce .lp-nav__link:hover svg,.css-idf1c2.w-e18f8904-4a5a-3b8f-76c7-901eb763e2ce .lp-nav__link.lp-nav__link--active[data-link-type="site-route"] svg{fill:rgba(255,255,255,1);}.css-idf1c2.w-e18f8904-4a5a-3b8f-76c7-901eb763e2ce .lp-nav__link:hover:after,.css-idf1c2.w-e18f8904-4a5a-3b8f-76c7-901eb763e2ce .lp-nav__link.lp-nav__link--active[data-link-type="site-route"]:after{background-color:rgba(255,255,255,1);}@media (min-width:958px){.css-idf1c2.w-e18f8904-4a5a-3b8f-76c7-901eb763e2ce .lp-nav__link-container:last-child .lp-nav__link{margin-right:12px;}.css-idf1c2.w-e18f8904-4a5a-3b8f-76c7-901eb763e2ce .lp-nav__link-container:last-child .lp-nav__link.lp-subnav__link{margin-right:0px;}.css-idf1c2.w-e18f8904-4a5a-3b8f-76c7-901eb763e2ce .lp-nav__link-container:first-child .lp-nav__link{margin-left:12px;}.css-idf1c2.w-e18f8904-4a5a-3b8f-76c7-901eb763e2ce .lp-nav__link-container:first-child .lp-nav__link.lp-subnav__link{margin-left:0px;}}.css-idf1c2.w-e18f8904-4a5a-3b8f-76c7-901eb763e2ce .lp-nav__link.lp-subnav__link{margin-left:12px;margin-right:calc(12px + 0.3em);padding:calc(10px + 0.2em) 0;}</style><div class="lp-nav w-e18f8904-4a5a-3b8f-76c7-901eb763e2ce flex-end css-idf1c2" data-widget-type="LpNavReact"><style data-emotion-css="1oevijs">.css-1oevijs{position:relative;z-index:999;}@media (max-width:959px){.css-1oevijs{width:100%;}}</style><div class="lp-nav__link-container css-1oevijs"><a data-widget-link="true" href="./" target="_top" data-link-type="site-route" data-route-guid="97724f5e-6fe3-cbd6-45e5-143e3151233f" data-route-slug="" class="lp-nav__link">ABOUT US</a></div><div class="lp-nav__link-container css-1oevijs"><style data-emotion-css="gbl7kh">.css-gbl7kh{padding-right:24px !important;}@media (min-width:960px){.css-gbl7kh::after{width:calc(100% - 24px) !important;}}</style><a data-widget-link="true" href="the-data" target="_top" data-link-type="site-route" data-route-guid="061d5db1-628f-7184-9027-75dee7c7a4e2" data-route-slug="the-data" class="lp-nav__link css-gbl7kh">THE DATA<style data-emotion-css="k7ybhg">.css-k7ybhg{fill:rgba(255,255,255,1);cursor:pointer;margin-left:6px;}.css-k7ybhg.subnav__icon--mobile{display:none;}@media (max-width:959px){.css-k7ybhg.subnav__icon--mobile{display:inline-block;-webkit-transform:rotate(0);-ms-transform:rotate(0);transform:rotate(0);-webkit-transition:0.1s all ease;transition:0.1s all ease;margin:0em 0 0 0;position:absolute;right:0;}.css-k7ybhg.subnav__icon--mobile[data-collapsed='false']{-webkit-transform:rotate(180deg);-ms-transform:rotate(180deg);transform:rotate(180deg);}}.css-k7ybhg.subnav__icon--desktop{display:none;position:absolute;top:50%;right:0;-webkit-transform:translateY(-50%);-ms-transform:translateY(-50%);transform:translateY(-50%);}@media (min-width:960px){.css-k7ybhg.subnav__icon--desktop{display:inline-block;}}.lp-subnav .css-k7ybhg.subnav__icon--desktop{-webkit-transform:translateY(-50%) rotate(-90deg);-ms-transform:translateY(-50%) rotate(-90deg);transform:translateY(-50%) rotate(-90deg);}</style><svg xmlns="http://www.w3.org/2000/svg" width="10" height="5" viewBox="0 0 10 5" class="subnav__icon--desktop css-k7ybhg"><polygon points="0 0 5 5 10 0"></polygon></svg></a><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" class="subnav__icon--mobile js-mobile-subnav-trigger css-k7ybhg" data-collapsed="true"><path d="M7.41 8.59L12 13.17l4.59-4.58L18 10l-6 6-6-6 1.41-1.41z"></path><path fill="none" d="M0 0h24v24H0V0z"></path></svg><style data-emotion-css="1cck64h">.css-1cck64h{position:relative;background:rgba(0,0,40,1);padding:0 0 0 32px;overflow:hidden;-webkit-transition:height 0.3s ease-out;transition:height 0.3s ease-out;height:0px;}@media (min-width:960px){.css-1cck64h{display:none;overflow:initial;min-width:168px;max-width:320px;height:auto;border-radius:3px;box-shadow:0 3px 6px 0 rgba(0,0,0,0.23),0 3px 6px 0 rgba(0,0,0,0.16);padding:12px;-webkit-transition:-webkit-transform 0.5s ease 0.2s;-webkit-transition:transform 0.5s ease 0.2s;transition:transform 0.5s ease 0.2s;-webkit-transform:translateY(-20px);-ms-transform:translateY(-20px);transform:translateY(-20px);}.css-1cck64h.lp-subnav--animate-in{-webkit-transform:translateY(0);-ms-transform:translateY(0);transform:translateY(0);}.css-1cck64h .lp-nav__link.lp-subnav__link{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:justify;
86-webkit-justify-content:space-between;-ms-flex-pack:justify;justify-content:space-between;overflow-wrap:break-word;word-break:break-all;word-break:break-word;word-wrap:break-word;}}@media (max-width:959px){.css-1cck64h > div:last-of-type{padding-bottom:16px;}}</style><div class="lp-subnav w-e18f8904-4a5a-3b8f-76c7-901eb763e2ce css-1cck64h" data-collapsed="true"><a data-widget-link="true" href="the-team" target="_top" data-link-type="site-route" data-route-guid="91141048-1f0c-bdcd-9bc2-48ba13e20bb1" data-route-slug="the-team" class="lp-nav__link lp-subnav__link">THE TEAM</a><a data-widget-link="true" href="capabilities" target="_top" data-link-type="site-route" data-route-guid="df09f96c-b099-7245-5d8f-cb6c65240644" data-route-slug="capabilities" class="lp-nav__link lp-subnav__link">PARTNERSHIP</a></div></div><div class="lp-nav__link-container css-1oevijs"><a data-widget-link="true" href="publications" target="_top" data-link-type="site-route" data-route-guid="8e78de7e-a298-2c43-1708-b32c8818f2f8" data-route-slug="publications" class="lp-nav__link">PUBLICATIONS</a></div></div></div></div></div></div></div></div></div></div></div><style data-emotion-css="1n30rf1">.css-1n30rf1{padding-top:0vw;padding-right:0vw;padding-bottom:0vw;padding-left:0vw;padding-top:0cqw;padding-right:0cqw;padding-bottom:0cqw;padding-left:0cqw;}@media(min-width:71.25em){.css-1n30rf1.column{padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;}.css-1n30rf1.column > .inner-column{padding-top:0px;padding-right:11.4px;padding-bottom:0px;padding-left:0px;}}</style><div class="column flex__item--md-3 flex__item--xs-12 css-1n30rf1" data-guid="34cec33a-552a-89e3-f374-423639e6cf9a"><style data-emotion-css="1vwrro9">.css-1vwrro9{background-color:rgba(0,0,0,0);border-color:rgba(0,0,0,0);border-radius:0px;background-size:cover;background-position:center center;background-repeat:no-repeat;padding-top:0vw;padding-right:1vw;padding-bottom:0vw;padding-left:0vw;padding-top:0cqw;padding-right:1cqw;padding-bottom:0cqw;padding-left:0cqw;}.bar .css-1vwrro9{padding-top:0;padding-bottom:0;}</style><div class="inner-column css-1vwrro9"><div class="row flex flex--12 css-47r3vg"><div class="composite flex__item--md-12 flex__item--xs-12 css-8x0d4x"><div class="inner-composite flex flex--12"><div class="widget-column flex__item--md-12 flex__item--xs-12"><div class="widget-row flex flex--12"><div class="flex__item--md-12 flex__item--xs-12"><div data-widget-id="ff17a9e5-c4b6-9ecc-0971-8cd97bc1170f" class="widget"><style data-emotion-css="y13kug">.css-y13kug{position:relative;z-index:0;text-align:center;}</style><div class="lp-button-react-wrapper css-y13kug" data-widget-type="LpButtonReact"><style data-emotion-css="1qxvm0z">.css-1qxvm0z{-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;display:-webkit-inline-box;display:-webkit-inline-flex;display:-ms-inline-flexbox;display:inline-flex;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;border-style:solid;border-width:1px;text-align:center;font-family:'Lato',sans-serif;text-shadow:none;-webkit-transition:color 0.2s linear,background 0.2s linear,border-color 0.2s linear, text-shadow 0.2s linear;transition:color 0.2s linear,background 0.2s linear,border-color 0.2s linear, text-shadow 0.2s linear;-webkit-text-decoration:none;text-decoration:none;position:relative;width:100%;font-weight:bold;min-height:36px;min-width:72px;padding:8px 18px;background:transparent;font-family:"Montserrat",sans-serif;border-radius:10000px;}.css-1qxvm0z::before{border-radius:10000px;}.css-1qxvm0z,.css-1qxvm0z:focus,.css-1qxvm0z:active{border-color:rgb(17,209,219);color:rgb(17,209,219);}.css-1qxvm0z:hover{background-color:rgb(17,209,219);color:rgb(0,0,0);}</style><a data-widget-link="true" href="contact" target="_top" data-link-type="site-route" data-route-guid="ea3eeb3d-594c-ef0d-5345-b40c17a81024" data-route-slug="contact" class="lp-button-react w-ff17a9e5-c4b6-9ecc-0971-8cd97bc1170f lp-button-react--full is-bold lp-button-react--small lp-button-react--line font-scale-3 line-height-scale-3 css-1qxvm0z">CONTACT US</a></div></div></div></div></div></div></div></div></div></div></div></div></section></div><div class="js-mobile-nav-trigger mobile-nav-trigger" data-qa-selector="side-nav-menu-trigger"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" class="fas fa-bars lp-icon-react__icon"><path d="M0 0h24v24H0z" fill="none"></path><path d="M3 18h18v-2H3v2zm0-5h18v-2H3v2zm0-7v2h18V6H3z" fill="rgba(255, 255, 255, 1)"></path></svg></div><style data-emotion-css="4prg6b">.css-4prg6b{position:fixed;top:0;bottom:0;right:0;width:240px;background-color:rgba(0,0,40,1);z-index:11;-webkit-transform:translateX(100%);-ms-transform:translateX(100%);transform:translateX(100%);-webkit-transition:-webkit-transform 0.2s ease-out;-webkit-transition:transform 0.2s ease-out;transition:transform 0.2s ease-out;padding:24px;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-flow:column nowrap;-ms-flex-flow:column nowrap;flex-flow:column nowrap;overflow-y:auto;}.css-4prg6b.show-side-nav{-webkit-transform:translateX(0);-ms-transform:translateX(0);transform:translateX(0);-webkit-transition:-webkit-transform 0.2s ease-in;-webkit-transition:transform 0.2s ease-in;transition:transform 0.2s ease-in;}</style><div class="js-side-nav css-4prg6b"><style data-emotion-css="ow1ier">.css-ow1ier{padding-bottom:24px;}</style><div class="css-ow1ier"><style data-emotion-css="lsqhzm">.css-lsqhzm{font-size:21px;}</style><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" class="js-close-side-nav lp-icon-react__icon css-lsqhzm" aria-hidden="true"><path d="M19 6.41L17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z" fill="rgba(255, 255, 255, 1)"></path><path d="M0 0h24v24H0z" fill="none"></path></svg></div><style data-emotion-css="l8o4jq">.css-l8o4jq .composite .widget{padding:0;}.css-l8o4jq .composite .widget .lp-nav{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-flow:column nowrap;-ms-flex-flow:column nowrap;flex-flow:column nowrap;-webkit-box-pack:start;
86-webkit-justify-content:flex-start;-ms-flex-pack:start;justify-content:flex-start;-webkit-align-items:flex-start;-webkit-box-align:flex-start;-ms-flex-align:flex-start;align-items:flex-start;}.css-l8o4jq .composite .widget .lp-nav__link{margin:0;padding:0.2em 0;cursor:pointer;position:relative;font-weight:bold;-webkit-text-decoration:none;-webkit-text-decoration:none;text-decoration:none;}</style><div class="css-l8o4jq"><div class="composite flex__item--md-12 flex__item--xs-12 css-8x0d4x"><div class="inner-composite flex flex--12"><div class="widget-column flex__item--md-12 flex__item--xs-12"><div class="widget-row flex flex--12"><div class="flex__item--md-12 flex__item--xs-12"><div data-widget-id="e18f8904-4a5a-3b8f-76c7-901eb763e2ce" class="widget"><div class="lp-nav w-e18f8904-4a5a-3b8f-76c7-901eb763e2ce flex-end css-idf1c2" data-widget-type="LpNavReact"><div class="lp-nav__link-container css-1oevijs"><a data-widget-link="true" href="./" target="_top" data-link-type="site-route" data-route-guid="97724f5e-6fe3-cbd6-45e5-143e3151233f" data-route-slug="" class="lp-nav__link">ABOUT US</a></div><div class="lp-nav__link-container css-1oevijs"><a data-widget-link="true" href="the-data" target="_top" data-link-type="site-route" data-route-guid="061d5db1-628f-7184-9027-75dee7c7a4e2" data-route-slug="the-data" class="lp-nav__link css-gbl7kh">THE DATA<svg xmlns="http://www.w3.org/2000/svg" width="10" height="5" viewBox="0 0 10 5" class="subnav__icon--desktop css-k7ybhg"><polygon points="0 0 5 5 10 0"></polygon></svg></a><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" class="subnav__icon--mobile js-mobile-subnav-trigger css-k7ybhg" data-collapsed="true"><path d="M7.41 8.59L12 13.17l4.59-4.58L18 10l-6 6-6-6 1.41-1.41z"></path><path fill="none" d="M0 0h24v24H0V0z"></path></svg><div class="lp-subnav w-e18f8904-4a5a-3b8f-76c7-901eb763e2ce css-1cck64h" data-collapsed="true"><a data-widget-link="true" href="the-team" target="_top" data-link-type="site-route" data-route-guid="91141048-1f0c-bdcd-9bc2-48ba13e20bb1" data-route-slug="the-team" class="lp-nav__link lp-subnav__link">THE TEAM</a><a data-widget-link="true" href="capabilities" target="_top" data-link-type="site-route" data-route-guid="df09f96c-b099-7245-5d8f-cb6c65240644" data-route-slug="capabilities" class="lp-nav__link lp-subnav__link">PARTNERSHIP</a></div></div><div class="lp-nav__link-container css-1oevijs"><a data-widget-link="true" href="publications" target="_top" data-link-type="site-route" data-route-guid="8e78de7e-a298-2c43-1708-b32c8818f2f8" data-route-slug="publications" class="lp-nav__link">PUBLICATIONS</a></div></div></div></div></div></div></div></div></div><style data-emotion-css="1qtcj7h">.css-1qtcj7h{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;padding:24px 0 96px;}.css-1qtcj7h .composite{width:100%;}</style><div class="css-1qtcj7h"><div class="composite flex__item--md-12 flex__item--xs-12 css-8x0d4x"><div class="inner-composite flex flex--12"><div class="widget-column flex__item--md-12 flex__item--xs-12"><div class="widget-row flex flex--12"><div class="flex__item--md-12 flex__item--xs-12"><div data-widget-id="ff17a9e5-c4b6-9ecc-0971-8cd97bc1170f" class="widget"><div class="lp-button-react-wrapper css-y13kug" data-widget-type="LpButtonReact"><a data-widget-link="true" href="contact" target="_top" data-link-type="site-route" data-route-guid="ea3eeb3d-594c-ef0d-5345-b40c17a81024" data-route-slug="contact" class="lp-button-react w-ff17a9e5-c4b6-9ecc-0971-8cd97bc1170f lp-button-react--full is-bold lp-button-react--small lp-button-react--line font-scale-3 line-height-scale-3 css-1qxvm0z">CONTACT US</a></div></div></div></div></div></div></div></div></div><style data-emotion-css="j5w9t3">.css-j5w9t3.side-nav-shield{display:none;}.css-j5w9t3.side-nav-shield.side-nav-shield--show{background-color:rgba(0,0,0,0.4);bottom:0;display:block;left:0;position:fixed;right:0;top:0;z-index:10;}</style><div class="js-side-nav-shield side-nav-shield css-j5w9t3"></div>
86<script data-persist-part-script-for="qs9a6748nxuai4pt21t7fok6">
87(function(){
88  var root = document.currentScript && document.currentScript.closest('[data-persist-part-id]');
89  if (!root || root.__hpHeaderRuntimeInit) return;
90  root.__hpHeaderRuntimeInit = true;
91  "use strict";function ownKeys(t,e){var o=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);e&&(n=n.filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable})),o.push.apply(o,n)}return o}function _objectSpread(t){for(var e=1;e<arguments.length;e++){var o=null!=arguments[e]?arguments[e]:{};e%2?ownKeys(o,!0).forEach(function(e){_defineProperty(t,e,o[e])}):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(o)):ownKeys(o).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(o,e))})}return t}function _defineProperty(e,t,o){return t in e?Object.defineProperty(e,t,{value:o,enumerable:!0,configurable:!0,writable:!0}):e[t]=o,e}function _slicedToArray(e,t){return _arrayWithHoles(e)||_iterableToArrayLimit(e,t)||_nonIterableRest()}function _nonIterableRest(){throw new TypeError("Invalid attempt to destructure non-iterable instance")}function _iterableToArrayLimit(e,t){if(Symbol.iterator in Object(e)||"[object Arguments]"===Object.prototype.toString.call(e)){var o=[],n=!0,r=!1,a=void 0;try{for(var i,c=e[Symbol.iterator]();!(n=(i=c.next()).done)&&(o.push(i.value),!t||o.length!==t);n=!0);}catch(e){r=!0,a=e}finally{try{n||null==c.return||c.return()}finally{if(r)throw a}}return o}}function _arrayWithHoles(e){if(Array.isArray(e))return e}!function(a,u){function t(e){var t=_slicedToArray(e.match(/(\d+)(px|em)/),2)[1];return parseInt(t,10)}function e(e){return 5*(e-1)}function o(e){return 1.2+.2*(e-1)}function n(o){var n=1<arguments.length&&void 0!==arguments[1]?arguments[1]:"ease";return function(e){var t=" ".concat(e,"s ").concat(n);return o.map(function(e){return e+t}).join(", ")}}var i=n(["font-size"]),c=n(["width"]),s=n(["padding-top","padding-bottom"]),f=n(["top"],"linear");function r(e){return e.getBoundingClientRect().height}function l(e){return e.getBoundingClientRect().top}function S(o,n){return function(e,t){return o?Math.max(e,t*n):e}}var _,d,g,h,m,y,p,v,L,E=20,O={BODY_NAV_OPEN:"body--nav-open",FLEXED_HEADER:"flexed-header",FULL_ROW:"flex__item--md-12",HALF_ROW:"flex__item--md-6",MOBILE_HIDE_COLUMN:"mobile-hide-column",MOBILE_HIDE_LAYOUT:"mobile-hide-layout",NAV_LINK:"lp-nav__link",QUARTER_ROW:"flex__item--md-3",SHOW_NAV:"show-side-nav",SHOW_NAV_SHIELD:"side-nav-shield--show",SHOW_NAV_TRIGGER:"mobile-nav-trigger--show",STICKY:"sticky",STICKY_NAV_SCROLLED_DOWN:"scrolled-down",SUBNAV_TRIGGER:"js-mobile-subnav-trigger"},b=function(){var e=u.querySelector(".site-nav"),t=e.querySelectorAll(".layout"),o=t[0],n=t[1],r=_objectSpread({body:u.body,hamburger:u.querySelector(".js-mobile-nav-trigger"),headerSpacer:u.querySelector(".js-header-spacer"),imageLogo:e.querySelector(".js-image-logo"),header:u.querySelector(".site-header"),siteNavContainer:e.querySelector(".container"),siteNavSection:e.querySelector("section"),firstRow:o,secondRow:n,textLogo:e.querySelector(".js-text-logo")},n&&{logoWidgetColumn:o.querySelector(".column:nth-of-type(2)"),logoWidget:o.querySelector(".column:nth-of-type(2) .widget")},{columnSpacers:[],bar:null});r.siteNavPaddedElement=r.secondRow||r.siteNavContainer,r.headerSpacer&&(r.headerTrack=r.headerSpacer.querySelector(".js-header-track"));for(var a=r.header.querySelectorAll(".column"),i=0;i<a.length;i+=1){var c=a[i],s=c.querySelector('[data-widget-type="LpNavReact"]'),l=c.querySelector('[data-widget-type="LpButtonReact"]'),d=c.querySelector('[data-widget-type="LpSpaceReact"]');s&&(r.columnNav=c),l&&(r.columnCta=c),d&&r.columnSpacers.push(c)}return r.sideNav=r.header.querySelector(".js-side-nav"),r.closeSideNav=r.sideNav.querySelector(".js-close-side-nav"),r.sideNavShield=r.header.querySelector(".js-side-nav-shield"),r}(),R=b.header.dataset,N=R&&R.scrolling,w=e(R&&R.minHeight),A=e(R&&R.maxHeight),x=o(R&&R.minFontSize),I=o(R&&R.maxFontSize),T=R&&R.minLogoWidth,C=R&&R.maxLogoWidth,q={text:1.4,image:Math.max(65,R.minLogoWidth||100),padding:e(1)},H=a.matchMedia("(min-width: ".concat(960,"px)")),W=0,D=0,M=!1,j=!1,B=1;function k(){return H.matches}function P(e,t){e&&!e.classList.contains(t)&&e.classList.add(t)}function V(e,t){e&&e.classList.contains(t)&&e.classList.remove(t)}function F(){b.sideNav.classList.toggle(O.SHOW_NAV),b.sideNavShield.classList.toggle(O.SHOW_NAV_SHIELD),b.body.classList.toggle(O.BODY_NAV_OPEN)}function U(){V(b.sideNav,O.SHOW_NAV),V(b.sideNavShield,O.SHOW_NAV_SHIELD),V(b.body,O.BODY_NAV_OPEN)}function Y(e){var t=!!e.target.dataset.widgetLink,o=e.target.classList.contains(O.NAV_LINK);(t||o)&&U()}function G(e){var t=e.target;t.classList.contains(O.SUBNAV_TRIGGER)||(t=t.parentElement);for(var o,n=t.parentElement,r=0;r<n.children.length;r+=1){var a=n.children[r];a.classList.contains("lp-subnav")&&(o=a)}o&&("true"===o.getAttribute("data-collapsed")?(function(t){var e=t.scrollHeight;t.style.height="".concat(e,"px"),t.addEventListener("transitionend",function e(){t.removeEventListener("transitionend",e),t.style.height="auto"}
91),t.setAttribute("data-collapsed","false")}(o),o.setAttribute("data-collapsed","false"),t.setAttribute("data-collapsed","false")):(function(e){var t=e.scrollHeight,o=e.style.transition;e.style.transition="",requestAnimationFrame(function(){e.style.height="".concat(t,"px"),e.style.transition=o,requestAnimationFrame(function(){e.style.height="".concat(0,"px")})}),e.setAttribute("data-collapsed","true")}(o),t.setAttribute("data-collapsed","true")))}function z(e,t){var o=t.text,n=t.image,r=t.padding;"sticky"!==N||b.secondRowLogo||(b.textLogo?b.textLogo.style.cssText="font-size: ".concat(o,"em; transition: ").concat(i(e),";"):b.imageLogo.style.cssText="width: ".concat(n,"px; transition: ").concat(c(e),";")),b.siteNavPaddedElement.style.cssText="padding: ".concat(r,"px 0; transition: ").concat(s(e),";")}function K(e){e?(b.imageLogo&&(b.imageLogo.style.cssText=""),v&&z(.1,v),b.header.classList.contains(O.SHOW_NAV)&&U(),P(b.siteNavSection,O.FLEXED_HEADER),V(b.columnCta,O.MOBILE_HIDE_COLUMN),V(b.columnNav,O.MOBILE_HIDE_COLUMN),b.columnSpacers.forEach(function(e){return V(e,O.MOBILE_HIDE_COLUMN)}),V(b.hamburger,O.SHOW_NAV_TRIGGER),V(b.secondRow,O.MOBILE_HIDE_LAYOUT)):(v||(v={}),b.textLogo&&b.textLogo.style&&b.textLogo.style.fontSize&&(v.text=t(b.textLogo.style.fontSize)),b.imageLogo&&b.imageLogo.style&&b.imageLogo.style.fontSize&&(v.image=t(b.imageLogo.style.width)),b.siteNavPaddedElement&&b.siteNavPaddedElement.style&&b.siteNavPaddedElement.style.paddingTop&&(v.padding=t(b.siteNavPaddedElement.style.paddingTop)),z(.1,q),V(b.siteNavSection,O.FLEXED_HEADER),P(b.columnCta,O.MOBILE_HIDE_COLUMN),P(b.columnNav,O.MOBILE_HIDE_COLUMN),b.columnSpacers.forEach(function(e){return P(e,O.MOBILE_HIDE_COLUMN)}),P(b.hamburger,O.SHOW_NAV_TRIGGER),P(b.secondRow,O.MOBILE_HIDE_LAYOUT))}var X=function e(t){var o=["lpages","googleapis","localhost"],n=u.querySelector('meta[name="leadpages-serving-domain"]');if(n&&o.push(n.getAttribute("content")),o.some(function(e){return-1!==t.origin.indexOf(e)})){if("REPOSITION"===t.data.type)_=t.data.payload.position;else if("LOAD"===t.data.type)_=t.data.payload.position,b.bar=u.querySelector(".lp-bar__pusher");else if("CLOSE"===t.data.type)return b.bar=null,a.removeEventListener("message",e),d&&a.cancelAnimationFrame(d),void(d=a.requestAnimationFrame(function(){b.header.style.top=j?"".concat(b.header.getBoundingClientRect().top-W,"px"):0,W=0}));d&&a.cancelAnimationFrame(d),d=a.requestAnimationFrame(function(){j&&function(e){var t=e.type;"LOAD"!==t&&"RESIZE"!==t&&"REPOSITION"!==t||("bottom"===_&&0!==W?(b.header.style.top="".concat(l(b.header)-W,"px"),W=0):"top"===_&&(g&&(clearTimeout(g),g=null),g=setTimeout(function(){if("top"===_){var e=r(b.bar);b.header.style.top="".concat(l(b.header)+(e-W),"px"),W=e,g=null}},350)))}(t.data),d=null})}};function Q(){L&&(L.unobserve(b.headerTrack),L.disconnect(),L=null);var e=b.header.getBoundingClientRect().height,t=b.headerTrack.getBoundingClientRect().height;b.headerTrack.style.minHeight="".concat(Math.max(t,e),"px"),(L=new IntersectionObserver(te,{threshold:function(e){if(e<=0)return 0;for(var t=[],o=1;o<=e;o+=1)t.push(o/e);return t}(b.headerTrack.getBoundingClientRect().height)})).observe(b.headerTrack)}function Z(){k()?function(e,t){var o="".concat(I,"em"),n="".concat(A,"px 0"),r="".concat(C,"px"),a=e.cloneNode(!0);a.querySelectorAll("[id]").forEach(function(e){e.removeAttribute("id")});var i=a.querySelector(".js-text-logo"),c=a.querySelector(".js-image-logo"),s=a.querySelector(".site-nav .container"),l=a.querySelector(".scrolled-down");if(l&&l.classList.remove("scrolled-down"),a.style.position="fixed",a.style.top="9999px",i&&(i.style.fontSize=o,i.style.transition=null),c&&(c.style.width=r,c.style.transition=null),s.style.padding=n,s.style.transition=null,b.body.appendChild(a),b.textLogo){var d=a.getBoundingClientRect().height;b.body.removeChild(a),t(d)}else p=function(){setTimeout(function(){var e=a.getBoundingClientRect().height;b.body.removeChild(a),t(e)},E)},(m=new Image).onload=p,m.onerror=p,m.src=b.imageLogo.src}(b.header,function(e){b.headerSpacer.style.height="".concat(e,"px"),Q()}):b.headerSpacer.style.height="".concat(b.header.getBoundingClientRect().height,"px")}function J(){if(0<(a.scrollY||a.pageYOffset)&&(b.header.classList.add(O.STICKY),b.headerSpacer.classList.add(O.STICKY),j=!0,a.removeEventListener("scroll",J),b.bar&&"top"===_)){var e=r(b.bar);b.header.style.transition=f(0),b.header.style.top="".concat(l(b.header)+(e-W),"px"),W=e}}var $,ee,te=($=function(e){if(0!==e.length){var t,o,n,r,a,i=e.reduce(function(e,t){return t.time>e.time?t:e},{time:-1/0}),c=i.isIntersecting,s=i.boundingClientRect,l=i.intersectionRect,d=l.height/s.height,u=S(c,d),g=b.firstRow&&b.secondRow,h=0<s.height?s.top:s.top-s.height;if(g){var m=b.firstRow.getBoundingClientRect().height,y=-1*m;t=S(c,Math.min(1,l.height/(s.height-m)))(w,A),o=Math.max(y,h),b.bar&&"top"===_&&(o=0<o?W:o+W),a=h<=y,n=T,r=x}else t=u(w,A),o=b.bar&&"top"===_?W:0,n=u(T,C),r=u(x,I);var p=function(e,t){var o=2<arguments.length&&void 0!==arguments[2]?arguments[2]:300,n=3<arguments.length&&void 0!==arguments[3]?arguments[3]:.3,r=_slicedToArray([e,t].sort(function(e,t){return e-t}),2),a=r[0],i=r[1];return Math.min(1,(i-a)/o)*n}(D,o,300,.25),v=function(e,t){return Math.max(.07,.3*Math.abs(e-t))}(B,d);B=d,D=o;var L={text:r,image:n,padding:t};b.header.style.transition=f(p),b.header.style.top="".concat(o,"px"),b.header.classList.toggle(O.STICKY_NAV_SCROLLED_DOWN,h<0),g&&(b.secondRowLogo.classList.toggle("fade-in",a),b.secondRowLogo.classList.toggle("allow-pointer-events",a)),z(v,L),M||(M=!0,setTimeout(function(){requestAnimationFrame(function(){Z()})},p+20))}},function(){for(var e=this,t=arguments.length,o=new Array(t),n=0;n<t;n++)o[n]=arguments[n];ee&&a.cancelAnimationFrame(ee),ee=a.requestAnimationFrame(function(){$.apply(e,o)})});function oe(){if(b.secondRow){b.secondRowWidgets=b.secondRow.querySelectorAll(".widget");var e="font-size: ".concat(x,"em;"),t="width: ".concat(T,"px;");if(1<b.secondRowWidgets.length){var o=b.logoWidget.childNodes[0].cloneNode(!0);b.secondRowLogo=b.textLogo?o.querySelector(".js-text-logo"):o.querySelector(".js-image-logo"),b.secondRowLogoWidget=b.secondRowWidgets[0],b.secondRowLogo.style.cssText=b.textLogo?e:t,b.secondRowLogoWidget.innerHTML="",b.secondRowLogoWidget.appendChild(o)}else{var n=b.logoWidgetColumn.cloneNode(!0);b.secondRowLogoWidget=n.querySelector(".widget"),b.secondRowLogo=b.textLogo?n.querySelector(".js-text-logo"):n.querySelector(".js-image-logo");var r=b.secondRow.querySelector(".column");r.classList.remove(O.FULL_ROW),r.classList.add(O.HALF_ROW),n.classList.remove(O.HALF_ROW),n.classList.add(O.QUARTER_ROW),b.secondRowLogo.style.cssText=b.textLogo?e:t,b.secondRow.prepend(n)}a.headerNav&&b.secondRowLogoWidget.querySelector("a").addEventListener("click",a.headerNav.handleNavLinkClick)}Q()}function ne(e){e?oe():(L&&(L.unobserve(b.headerTrack),L.disconnect(),L=null),m&&(m.removeEventListener("load",p),m.removeEventListener("error",p)),y&&(y.removeEventListener("load",h),y.removeEventListener("error",h)),M=!(B=1))}function re(e){var t=e.matches;K(t),"sticky"===N&&ne(t)}!function(){H.addListener(re),b.closeSideNav.addEventListener("click",U),b.hamburger.addEventListener("click",F),b.sideNav.addEventListener("click",Y),b.sideNavShield.addEventListener("click",U);var e=k();e||(b.hamburger.classList.add(O.SHOW_NAV_TRIGGER),b.columnCta&&b.columnCta.classList.add(O.MOBILE_HIDE_COLUMN),b.columnSpacers.forEac
91h(function(e){return e.classList.add(O.MOBILE_HIDE_COLUMN)}),b.columnNav.classList.add(O.MOBILE_HIDE_COLUMN));for(var t=u.querySelectorAll(".js-mobile-subnav-trigger"),o=0;o<t.length;o+=1)t[o].addEventListener("click",G);K(e),"sticky"===N&&(a.addEventListener("resize",function(r){var a,i=1<arguments.length&&void 0!==arguments[1]?arguments[1]:100;return function(){for(var e=this,t=arguments.length,o=new Array(t),n=0;n<t;n++)o[n]=arguments[n];clearTimeout(a),a=setTimeout(function(){r.apply(e,o)},i)}}(Z,200)),a.addEventListener("message",X),a.addEventListener("scroll",J),b.bar||(b.bar=u.querySelector(".lp-bar__pusher")),e&&(b.textLogo?oe():(h=function(){setTimeout(function(){oe()},E)},(y=new Image).onload=h,y.onerror=h,y.src=b.imageLogo.src)))}()}(window,document);
92})();
93</script>
93</div>
94    <div class="page-background">
95    </div>
96    <style data-emotion-css="16l4s3y r2ag0e 119qg5r 2jofpk 10xsv1r 1x26rdx mi4w0s">.page-background{position:fixed;height:100vh;top:0;left:0;right:0;bottom:0;z-index:-1;background-color:rgb(0,0,40);}section{margin:0 auto;}.container{max-width:1140px;}@media (min-width:calc(1140px / 16)em){.widget{padding:calc(1140px / 100);}}h1{color:rgb(0,0,0);font-family:"Gilroy",sans-serif;font-weight:bold;font-style:normal;}h2{color:rgb(0,0,0);font-family:"Gilroy",sans-serif;font-weight:bold;font-style:normal;}h3{color:rgb(0,0,0);font-family:"Lato",sans-serif;font-weight:normal;font-style:normal;}p{color:rgb(0,0,0);font-family:"Montserrat",sans-serif;font-weight:normal;font-style:normal;}ul{color:rgb(0,0,0);font-family:"Montserrat",sans-serif;font-weight:normal;font-style:normal;}h1{font-size:5.5rem;}h2{font-size:1.75rem;}h3{font-size:1.125rem;}p{font-size:1rem;}ul{font-size:1rem;}.lp-list.lp-list--bullet.text-align-left li::before{left:0;}.lp-list.lp-list--bullet.text-align-left li{padding-left:20px;}.lp-list.lp-list--numbered.text-align-left li::before{left:-3px;}.lp-list.lp-list--numbered.text-align-left li{padding-left:20px;}.lp-list.lp-list--numbered.text-align-left li:nth-child(n + 10){padding-left:30px;}@media only screen and (max-width:480px){.lp-list.lp-list--numbered.text-align-left li:nth-child(n + 10){padding-left:25px;}}.lp-list.lp-list--icon.text-align-left li::before{left:-6px;}.lp-list.lp-list--checkmark.text-align-left li::before{left:-6px;}h1{padding-bottom:0em;}h2{padding-bottom:0em;}h3{padding-bottom:0em;}p{margin-bottom:0em;}p,.lp-list{margin-bottom:0em;}ul{margin-bottom:0em;}h1{line-height:1.25;}h2{line-height:1.125;}h3{line-height:1.125;}p{line-height:1.625;}ul{line-height:1.625;}@media (min-width:480px){h1{font-size:4.25rem;}}@media (min-width:768px){h1{font-size:5.5rem;}}@media (min-width:480px){h2{font-size:1.5rem;}}@media (min-width:768px){h2{font-size:1.75rem;}}@media (min-width:480px){h3{font-size:1rem;}}@media (min-width:768px){h3{font-size:1.125rem;}}@media (min-width:480px){p{font-size:0.875rem;}}@media (min-width:768px){p{font-size:1rem;}}@media (min-width:480px){ul{font-size:0.875rem;}}@media (min-width:768px){ul{font-size:1rem;}}.lp-alert,.lp-calendar-react .date,.lp-calendar-react .month,.lp-form-v2-input-react{font-family:"Montserrat",sans-serif;}.lp-form-v2-input-react{color:rgb(0,0,0);}form.is-disabled .error-prompt--disabled{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;}form.is-disabled .form-field,form.is-disabled .lp-button-react,form.is-disabled .lp-product-summary-react{opacity:0.4;pointer-events:none;}form.is-invalid .error-prompt--invalid{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;}form.has-info .error-prompt--info{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;}</style><style data-emotion-css="1o3acgz">.css-1o3acgz{background-image:linear-gradient(rgba(0,0,0,0),rgba(0,0,0,0)),url(undefined);}</style><div class="site css-1o3acgz"><div class="route" data-slug="contact" data-guid="ea3eeb3d-594c-ef0d-5345-b40c17a81024" data-page-title="CONTACT" data-description="MedaData facilitates expert research services with an unmatched real-world psychiatric dataset." data-keywords="psychiatric medications, real-world data, real-world evidence, real world data, prospective study, research services, behavioral health" data-robots=""><div class="page"><style data-emotion-css="jhnazd">.css-jhnazd{background-color:rgba(0,0,0,0);border-color:rgba(0,0,0,0);background-image:linear-gradient(rgba(0,0,40,1),rgba(0,0,40,1)),url("/api/library/gn0i4zk6obrji7bxh2yi8he1");background-size:cover;background-position:center center;background-repeat:no-repeat;}.css-jhnazd > .container{padding-top:3vw;padding-right:2vw;padding-bottom:0vw;padding-left:2vw;padding-top:3cqw;padding-right:2cqw;padding-bottom:0cqw;padding-left:2cqw;}.site-header .css-jhnazd > .container{padding-top:10px;padding-right:0;padding-bottom:10px;padding-left:0;-webkit-transition:padding 0.03s ease;transition:padding 0.03s ease;}.bar .css-jhnazd{padding:0 50px;}@media (max-width:23.75em){.bar .css-jhnazd{padding:0 25px;}}@media (min-width:71.25em){.css-jhnazd > .container{padding-top:34.2px;padding-right:22.8px;padding-bottom:0px;padding-left:22.8px;}}</style><section class="has-background-image has-background-size-cover section css-jhnazd" data-guid="06d80a7c-36b3-9ffa-92e1-101f9d47160b" data-background="/api/library/gn0i4zk6obrji7bxh2yi8he1"><div class="container" id="hero"><div class="layout flex flex--12" data-guid="530dc145-382e-8987-3895-f35e9f6cd1f5"><style data-emotion-css="i2ziv0">.css-i2ziv0{padding-top:0vw;padding-right:0vw;padding-bottom:0vw;padding-left:0vw;padding-top:0cqw;padding-right:0cqw;padding-bottom:0cqw;padding-left:0cqw;}@media(min-width:71.25em){.css-i2ziv0.column{padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;}.css-i2ziv0.column > .inner-column{padding-top:79.8px;padding-right:114px;padding-bottom:34.2px;padding-left:114px;}}</style><div class="column flex__item--md-12 flex__item--xs-12 css-i2ziv0" data-guid="3376778b-86f6-23b1-0fc2-506f5f911c59"><style data-emotion-css="de71n7">
96.css-de71n7{background-color:rgba(255,255,255,1);border-color:rgba(255,255,255,1);border-radius:0px;background-size:cover;background-position:center center;background-repeat:no-repeat;padding-top:7vw;padding-right:10vw;padding-bottom:3vw;padding-left:10vw;padding-top:7cqw;padding-right:10cqw;padding-bottom:3cqw;padding-left:10cqw;}.bar .css-de71n7{padding-top:0;padding-bottom:0;}</style><div class="inner-column css-de71n7"><style data-emotion-css="47r3vg">.section--center-widgets .css-47r3vg{-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;}@media (max-width:767px){.bar .css-47r3vg{-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;}}</style><div class="row flex flex--12 css-47r3vg"><style data-emotion-css="8x0d4x">.section--center-widgets .css-8x0d4x{-webkit-flex-basis:auto;-ms-flex-preferred-size:auto;flex-basis:auto;max-width:100%;}</style><div class="composite flex__item--md-12 flex__item--xs-12 css-8x0d4x"><div class="inner-composite flex flex--12"><div class="widget-column flex__item--md-12 flex__item--xs-12"><div class="widget-row flex flex--12"><div class="flex__item--md-12 flex__item--xs-12"><div data-widget-id="7ab95289-be97-6509-7935-bf7348fc8d78" class="widget"><div class="lp-text-react lp-headline-react" data-widget-type="LpTextReact"><h1 class="lp-headline text-align-center font-scale-11 line-height-scale-4 gutter-bottom-1 headline">We’d love to hear from you.</h1></div></div></div></div></div></div></div></div><div class="row flex flex--12 css-47r3vg"><div class="composite flex__item--md-12 flex__item--xs-12 css-8x0d4x"><div class="inner-composite flex flex--12"><div class="widget-column flex__item--md-12 flex__item--xs-12"><div class="widget-row flex flex--12"><div class="flex__item--md-12 flex__item--xs-12"><div data-widget-id="20876d79-fde9-6cfa-3db3-4b0bd97270cf" class="widget"><div class="lp-text-react lp-headline-react" data-widget-type="LpTextReact"><p class="text-align-left">Whether you have a question or want to get started right away, we’ve got you. We may be busy, but we’ll get back to you within 24 hours.</p></div></div></div></div></div></div></div></div></div></div></div></div></section><style data-emotion-css="9hbkbi">.css-9hbkbi{background-color:rgba(255,255,255,1);border-color:rgba(255,255,255,1);background-size:cover;background-position:center center;background-repeat:no-repeat;}.css-9hbkbi > .container{padding-top:5vw;padding-right:10vw;padding-bottom:6vw;padding-left:10vw;padding-top:5cqw;padding-right:10cqw;padding-bottom:6cqw;padding-left:10cqw;}.site-header .css-9hbkbi > .container{padding-top:20px;padding-right:0;padding-bottom:20px;padding-left:0;-webkit-transition:padding 0.03s ease;transition:padding 0.03s ease;}.bar .css-9hbkbi{padding:0 50px;}@media (max-width:23.75em){.bar .css-9hbkbi{padding:0 25px;}}@media (min-width:71.25em){.css-9hbkbi > .container{padding-top:57px;padding-right:114px;padding-bottom:68.4px;padding-left:114px;}}</style><section class="section css-9hbkbi" data-guid="6391cf75-a2b5-eb0a-7baa-eae1d8b7a216"><div class="container" id="image-text"><div class="layout flex flex--12" data-guid="7ac7c5e6-be36-73c7-2e0c-e992c3f36af8"><style data-emotion-css="vfaad">.css-vfaad{padding-top:0vw;padding-right:0vw;padding-bottom:0vw;padding-left:0vw;padding-top:0cqw;padding-right:0cqw;padding-bottom:0cqw;padding-left:0cqw;}@media(min-width:71.25em){.css-vfaad.column{padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;}.css-vfaad.column > .inner-column{padding-top:11.4px;padding-right:11.4px;padding-bottom:11.4px;padding-left:11.4px;}}</style><div class="column flex__item--md-2 flex__item--xs-12 css-vfaad" data-guid="be6e2fa4-db91-f7d2-709c-1ac11dbd0d75"><style data-emotion-css="eeduzr">.css-eeduzr{background-color:rgba(0,0,0,0);border-color:rgba(0,0,0,0);border-radius:0px;background-size:cover;background-position:center center;background-repeat:no-repeat;padding-top:1vw;padding-right:1vw;padding-bottom:1vw;padding-left:1vw;padding-top:1cqw;padding-right:1cqw;padding-bottom:1cqw;padding-left:1cqw;}.bar .css-eeduzr{padding-top:0;padding-bottom:0;}</style><div class="inner-column css-eeduzr"></div></div><div class="column flex__item--md-8 flex__item--xs-12 css-vfaad" data-guid="f69fc444-2738-9e69-a88f-0413aa318ff1"><div class="inner-column css-eeduzr"><div class="row flex flex--12 css-47r3vg"><div class="composite flex__item--md-12 flex__item--xs-12 css-8x0d4x"><div class="inner-composite flex flex--12"><div class="widget-column flex__item--md-12 flex__item--xs-12"><div class="widget-row flex flex--12"><div class="flex__item--md-12 flex__item--xs-12"><div data-widget-id="261572da-53b1-3f4c-23ab-0b0ac443c384" class="widget"><div class="lp-text-react lp-headline-react" data-widget-type="LpTextReact"><h1 class="lp-headline text-align-left font-scale-9 line-height-scale-3 gutter-bottom-1 headline">We just need a little info from you.</h1></div></div></div></div></div></div></div></div><div class="row flex flex--12 css-47r3vg"><div class="composite flex__item--md-12 flex__item--xs-12 css-8x0d4x"><div class="inner-composite flex flex--12"></div><div>
96<form name="medadata_jan_3_2023_11_28_28_a" data-persist-form-source-id="Gf5benkZZbHmqHkAVuzG6m" data-success-message="Thank you! Your submission has been received."><div class="widget-column flex__item--md-12 flex__item--xs-12"><div class="widget-row flex flex--12"><div class="flex__item--md-12 flex__item--xs-12"><div data-widget-id="e96c7448-259d-212f-306b-c4734ff96f2e" class="widget"><style data-emotion-css="1tzflw6">.css-1tzflw6 .confirm-existence{display:none;}.css-1tzflw6 .error-prompt{-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;border:1px solid #4c515d;border-radius:3px;color:#4c515d;display:none;margin-bottom:12px;padding:18px;}.css-1tzflw6 .error-prompt .error-prompt__icon{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-flex:0 0 48px;-ms-flex:0 0 48px;flex:0 0 48px;}.css-1tzflw6 .error-prompt .error-prompt__icon .disabled-checkout{height:30px;width:48px;}.css-1tzflw6 .error-prompt .error-prompt__details{margin-left:12px;}.css-1tzflw6 .error-prompt .error-prompt__details .error-title{color:inherit;font-weight:700;}.css-1tzflw6 .error-prompt .error-prompt__details .error-description{color:inherit;}.css-1tzflw6 .error-prompt.error-prompt--invalid{color:#fa3246;border-color:#fa3246;background-color:#fee0e3;}.css-1tzflw6 .error-prompt.error-prompt--invalid .error-prompt__icon{-webkit-flex-basis:16px;-ms-flex-preferred-size:16px;flex-basis:16px;}.css-1tzflw6 .error-prompt.error-prompt--invalid .error-prompt__icon .error-line{width:16px;height:16px;}.css-1tzflw6 .error-prompt.error-prompt--invalid .error-prompt__icon .error-line path{fill:#fa3246;}.css-1tzflw6 .lp-form-react__input--billing{padding:0.4em 0.5em !important;background-color:white;}.css-1tzflw6 .form-field{margin-bottom:12px;}.css-1tzflw6 .form-field.last-visible{margin-bottom:0;}.css-1tzflw6 .form-field.input-hidden{display:none;}.css-1tzflw6 .lp-form-field .lp-form-field__field-block-title{font-weight:700;}.css-1tzflw6 .lp-form-react__group{width:100%;}.css-1tzflw6 .lp-form-react__group.is-success{-webkit-animation:animation-1dcx35r 1s;animation:animation-1dcx35r 1s;}.css-1tzflw6 .lp-form-react__group.js-required{margin-bottom:12px;}.css-1tzflw6 .lp-form-react__group.js-required .lp-form-react__input{border:1px solid #fa3246;box-shadow:#fa3246 0 0 1.5px 1px;}.css-1tzflw6 .lp-form-react__group.js-required .lp-form-react__error--required{opacity:1;height:auto;margin-top:6px;}.css-1tzflw6 .lp-form-react__group.js-invalid .lp-form-react__input{border:1px solid #fa3246;box-shadow:#fa3246 0 0 1.5px 1px;}.css-1tzflw6 .lp-form-react__group.js-invalid .lp-form-react__error--invalid{opacity:1;height:auto;margin-top:6px;}.css-1tzflw6 .lp-form-react__group.js-stripe-invalid .lp-form-react__input{border:1px solid #fa3246;box-shadow:#fa3246 0 0 1.5px 1px;}.css-1tzflw6 .lp-form-react__group.js-stripe-invalid .lp-form-react__error--stripe-invalid{opacity:1;height:auto;margin-top:6px;}.css-1tzflw6 .lp-form-react__label{-webkit-flex:0 0 100%;-ms-flex:0 0 100%;flex:0 0 100%;}.css-1tzflw6 .lp-form-react__input{display:block;width:100%;height:2em;margin:0;padding:0 0.5em;line-height:inherit;border-radius:3px;-webkit-transition:border-color 200ms ease;transition:border-color 200ms ease;}.css-1tzflw6 .lp-form-react__textarea{padding:0.5em;height:auto;resize:none;}.css-1tzflw6 .lp-form-react__error{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:baseline;-webkit-box-align:baseline;-ms-flex-align:baseline;align-items:baseline;width:100%;font-size:0.75em;text-align:left;color:#fa3246;font-weight:400;-webkit-text-decoration:none;text-decoration:none;font-style:normal;margin:0;height:0;opacity:0;overflow:hidden;-webkit-transition:all 200ms ease;transition:all 200ms ease;}.css-1tzflw6 .lp-form-react__error i{margin-right:6px;}.css-1tzflw6 .lp-form-react-radio-container,.css-1tzflw6 .lp-form-react-checkbox-container{line-height:1;margin-bottom:6px;-webkit-flex:0 0 100%;-ms-flex:0 0 100%;flex:0 0 100%;width:100%;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;}.css-1tzflw6 .lp-form-react-radio-container:first-of-type,.css-1tzflw6 .lp-form-react-checkbox-container:first-of-type{margin-top:6px;}.css-1tzflw6 .lp-form-react-radio-container:last-of-type,.css-1tzflw6 .lp-form-react-checkbox-container:last-of-type{margin-bottom:12px;}.css-1tzflw6 input[type='radio'].lp-form-react-radio{opacity:0;width:0;}.css-1tzflw6 input[type='radio'].lp-form-react-radio:focus + label:hover .lp-form-react-radio-button .lp-form-react-radio-button__checked{opacity:0.6;}.css-1tzflw6 input[type='radio'].lp-form-react-radio + label{cursor:pointer;}.css-1tzflw6 input[type='radio'].lp-form-react-radio + label .lp-form-react-radio-button{display:inline-block;position:relative;width:16px;height:16px;vertical-align:middle;margin:0 6px 0 0;cursor:pointer;}.css-1tzflw6 input[type='radio'].lp-form-react-radio + label .lp-form-react-radio-button .lp-form-react-radio-button__unchecked,.css-1tzflw6 input[type='radio'].lp-form-react-radio + label .lp-form-react-radio-button .lp-form-react-radio-button__checked{position:absolute;top:0;left:0;width:16px;height:16px;-webkit-transition:opacity 0.3s ease;transition:opacity 0.3s ease;}.css-1tzflw6 input[type='radio'].lp-form-react-radio + label .lp-form-react-radio-button .lp-form-react-radio-button__unchecked path,.css-1tzflw6 input[type='radio'].lp-form-react-radio + label .lp-form-react-radio-button .lp-form-react-radio-button__checked path{fill:#4c515d;}.css-1tzflw6 input[type='radio'].lp-form-react-radio + label .lp-form-react-radio-button .lp-form-react-radio-button__unchecked{z-index:1;opacity:1;}.css-1tzflw6 input[type='radio'].lp-form-react-radio + label .lp-form-react-radio-button .lp-form-react-radio-button__checked{z-index:0;opacity:0;}.css-1tzflw6 input[type='radio'].lp-form-react-radio + label:hover .lp-form-react-radio-button .lp-form-react-radio-button__checked{opacity:0.6;}.css-1tzflw6 input[type='radio'].lp-form-react-radio:checked + label .lp-form-react-radio-button .lp-form-react-radio-button__checked,.css-1tzflw6 input[type='radio'].lp-form-react-radio:checked + label:hover .lp-form-react-radio-button .lp-form-react-radio-button__checked{opacity:1;}.css-1tzflw6 input.lp-form-react-checkbox[type='checkbox']{display:none;}.css-1tzflw6 input.lp-form-react-checkbox[type='checkbox'] + label{cursor:pointer;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;}.css-1tzflw6 input.lp-form-react-checkbox[type='checkbox'] + label:hover span svg,.css-1tzflw6 input.lp-form-react-checkbox[type='checkbox'] + label:focus span svg,.css-1tzflw6 input.lp-form-react-checkbox[type='checkbox'] + label:active span svg{opacity:1;}.css-1tzflw6 input.lp-form-react-checkbox[type='checkbox'] + label .checkbox{height:16px;margin:0;-webkit-transition:background-color 0.3s ease,border-color 0.3s ease;transition:background-color 0.3s ease,border-color 0.3s ease;}.css-1tzflw6 input.lp-form-react-checkbox[type='checkbox'] + label .checkbox .lp-form-react__checkbox-label-container{position:relative;width:20px;height:20px;}.css-1tzflw6 input.lp-form-react-checkbox[type='checkbox'] + label .checkbox .checkbox__unchecked,.css-1tzflw6 input.lp-form-react-checkbox[type='checkbox'] + label .checkbox .checkbox__checked{position:absolute;top:0;left:0;width:16px;height:16px;-webkit-transition:opacity 0.3s ease;transition:opacity 0.3s ease;}.css-1tzflw6 input.lp-form-react-checkbox[type='checkbox'] + label .checkbox .checkbox__unchecked path,.css-1tzflw6 input.lp-form-react-checkbox[type='checkbox'] + label .checkbox .checkbox__checked path{fill:#4c515d;}.css-1tzflw6 input.lp-form-react-checkbox[type='checkbox'] + label .checkbox .checkbox__unchecked{z-index:1;opacity:1;}.css-1tzflw6 input.lp-form-react-checkbox[type='checkbox'] + label .checkbox .checkbox__checked{z-index:0;opacity:0;}.css-1tzflw6 input.lp-form-react-checkbox[type='checkbox']:checked + label .checkbox .checkbox__checked,.css-1tzflw6 input.lp-form-react-checkbox[type='checkbox']:checked + label:hover .checkbox .checkbox__checked{opacity:1;}@media (hover:hover){.css-1tzflw6 input.lp-form-react-checkbox[type='checkbox'] + label:hover .checkbox .checkbox__checked{opacity:0.6;}}.css-1tzflw6 select.lp-form-react-select{height:2em;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex:0 0 100%;-ms-flex:0 0 100%;flex:0 0 100%;padding:0;background-color:#fff;}.css-1tzflw6 .flex-container{margin-left:-12px;margin-right:-12px;}.css-1tzflw6 .flex.flex-form [class*='flex__item--']{padding-left:12px;padding-right:12px;}.css-1tzflw6 .labels-are-inside input::-webkit-input-placeholder{font-size:1em;font-weight:inherit;opacity:1;}.css-1tzflw6 .labels-are-inside input::-moz-placeholder{font-size:1em;font-weight:inherit;opacity:1;}.css-1tzflw6 .labels-are-inside input:-ms-input-placeholder{font-size:1em;font-weight:inherit;opacity:1;}.css-1tzflw6 .labels-are-inside input::placeholder{font-size:1em;font-weight:inherit;opacity:1;}.css-1tzflw6 .labels-are-inside textarea::-webkit-input-placeholder{font-size:1em;font-weight:inherit;opacity:1;}.css-1tzflw6 .labels-are-inside textarea::-moz-placeholder{font-size:1em;font-weight:inherit;opacity:1;}.css-1tzflw6 .labels-are-inside textarea:-ms-input-placeholder{font-size:1em;font-weight:inherit;opacity:1;}.css-1tzflw6 .labels-are-inside textarea::placeholder{font-size:1em;font-weight:inherit;opacity:1;}
96.css-1tzflw6 .labels-are-inside .coupon-entered .apply-coupon-button{top:0.4em;}.css-1tzflw6 input.lp-form-react__input::-webkit-input-placeholder{font-size:1em;}.css-1tzflw6 input.lp-form-react__input::-moz-placeholder{font-size:1em;}.css-1tzflw6 input.lp-form-react__input:-ms-input-placeholder{font-size:1em;}.css-1tzflw6 input.lp-form-react__input::-webkit-input-placeholder{font-size:1em;}.css-1tzflw6 input.lp-form-react__input::-moz-placeholder{font-size:1em;}.css-1tzflw6 input.lp-form-react__input:-ms-input-placeholder{font-size:1em;}.css-1tzflw6 input.lp-form-react__input::placeholder{font-size:1em;}.css-1tzflw6 textarea.lp-form-react__textarea::-webkit-input-placeholder{font-size:1em;}.css-1tzflw6 textarea.lp-form-react__textarea::-moz-placeholder{font-size:1em;}.css-1tzflw6 textarea.lp-form-react__textarea:-ms-input-placeholder{font-size:1em;}.css-1tzflw6 textarea.lp-form-react__textarea::-webkit-input-placeholder{font-size:1em;}.css-1tzflw6 textarea.lp-form-react__textarea::-moz-placeholder{font-size:1em;}.css-1tzflw6 textarea.lp-form-react__textarea:-ms-input-placeholder{font-size:1em;}.css-1tzflw6 textarea.lp-form-react__textarea::placeholder{font-size:1em;}.css-1tzflw6 .lp-form-react__input{border:1px solid rgb(189,189,189);color:#020020;font-size:inherit;}.css-1tzflw6 .lp-form-react__input:focus{border:1px solid rgb(189,189,189);box-shadow:rgb(189,189,189) 0 0 1.5px 1px;outline:0;}.css-1tzflw6 .lp-form-react__input::-webkit-input-placeholder{color:#767676;opacity:1;}.css-1tzflw6 .lp-form-react__input::-moz-placeholder{color:#767676;opacity:1;}.css-1tzflw6 .lp-form-react__input:-ms-input-placeholder{color:#767676;opacity:1;}.css-1tzflw6 .lp-form-react__input::placeholder{color:#767676;opacity:1;}.css-1tzflw6 .StripeElement--focus{border:1px solid rgb(189,189,189);box-shadow:rgb(189,189,189) 0 0 1.5px 1px;outline:0;}.css-1tzflw6 .lp-form-react__label{color:rgba(76,81,93,1);font-family:"Montserrat",sans-serif;}.css-1tzflw6 .labels-are-inside .lp-form-react__input{color:#020020;}.css-1tzflw6 .labels-are-inside .lp-form-react__input::-webkit-input-placeholder{color:rgba(76,81,93,1);font-family:"Montserrat",sans-serif;}.css-1tzflw6 .labels-are-inside .lp-form-react__input::-moz-placeholder{color:rgba(76,81,93,1);font-family:"Montserrat",sans-serif;}.css-1tzflw6 .labels-are-inside .lp-form-react__input:-ms-input-placeholder{color:rgba(76,81,93,1);font-family:"Montserrat",sans-serif;}.css-1tzflw6 .labels-are-inside .lp-form-react__input::placeholder{color:rgba(76,81,93,1);font-family:"Montserrat",sans-serif;}.css-1tzflw6 .lp-form-react-radio{font-family:"Montserrat",sans-serif;}.css-1tzflw6 .lp-form-react-radio + label{color:rgb(189,189,189);font-family:"Montserrat",sans-serif;}.css-1tzflw6 .lp-form-react-radio + label .lp-form-react-radio-button__unchecked path,.css-1tzflw6 .lp-form-react-radio + label .lp-form-react-radio-button__checked path{fill:rgb(189,189,189);}.css-1tzflw6 .lp-form-field__field-block-title{font-family:"Montserrat",sans-serif;color:rgba(76,81,93,1);}.css-1tzflw6 select.lp-form-react-select{border:1px solid rgb(189,189,189);font-family:"Montserrat",sans-serif;}.css-1tzflw6 select.lp-form-react-select:focus{outline-color:rgb(189,189,189);}.css-1tzflw6 .lp-form-react__select-option{font-family:"Montserrat",sans-serif;}.css-1tzflw6 input.lp-form-react-checkbox[type='checkbox'] + label{color:rgba(76,81,93,1);font-family:"Montserrat",sans-serif;}.css-1tzflw6 input.lp-form-react-checkbox[type='checkbox'] + label .checkbox__unchecked path,.css-1tzflw6 input.lp-form-react-checkbox[type='checkbox'] + label .checkbox__checked path{fill:rgb(189,189,189);}.css-1tzflw6 .lp-form-react__description{color:rgba(76,81,93,1);font-family:"Montserrat",sans-serif;font-size:0.875rem;}.css-1tzflw6 .lp-form-react__privacy-link{color:rgba(76,81,93,1);-webkit-text-decoration:underline;text-decoration:underline;padding:10px 0;}.css-1tzflw6 .lp-form-react__privacy-link a{color:inherit;}.css-1tzflw6 .lp-form-react__confirm label,.css-1tzflw6 .lp-form-react__order-bump-checkbox label{font-size:0.875rem;}</style>
96<div class="lp-form-react w-e96c7448-259d-212f-306b-c4734ff96f2e css-1tzflw6" data-widget-type="LpInputReact"><div class="error-prompt error-prompt--disabled"><div class="error-prompt__icon"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 48 30" class="disabled-checkout"><path style="fill:#656A78" d="M36.8 1h-30c-1.7 0-3 1.3-3 3v20c0 1.7 1.3 3 3 3h24.8c-0.1-0.1-0.1-0.1-0.2-0.2 -0.6-0.6-1-1.2-1.4-1.8H6.8c-0.5 0-1-0.5-1-1V12h32v2.1c0.7 0.1 1.4 0.3 2 0.6V4C39.8 2.3 38.5 1 36.8 1zM37.8 6h-32V4c0-0.5 0.5-1 1-1h30c0.5 0 1 0.5 1 1V6z"></path><path style="fill:#FA5A6A" d="M36.7 14c2.1 0 3.8 0.7 5.3 2.2s2.2 3.2 2.2 5.3 -0.7 3.8-2.2 5.3S38.8 29 36.7 29s-3.8-0.7-5.3-2.2c-1.5-1.5-2.2-3.2-2.2-5.3s0.7-3.8 2.2-5.3C32.9 14.7 34.6 14 36.7 14zM37.4 22.2v-4.5h-1.5v4.5H37.4zM37.4 25.3v-1.5h-1.5v1.5H37.4z"></path></svg></div><div class="error-prompt__details"><p class="error-title"></p><p class="error-description"></p></div></div><div class="error-prompt error-prompt--invalid"><div class="error-prompt__icon"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 100 100" class="error-line"><g data-name="Layer 2"><g data-name="Layer 1"><path d="M50 10a39.9 39.9 0 0 1 15.3 2.9 40.1 40.1 0 0 1 12.9 8.8 40.1 40.1 0 0 1 8.8 12.9A39.7 39.7 0 0 1 90 50a39.9 39.9 0 0 1-2.9 15.3 40.2 40.2 0 0 1-8.8 12.9 40.3 40.3 0 0 1-13 8.8A39.6 39.6 0 0 1 50 90a39.9 39.9 0 0 1-15.3-2.9 39.8 39.8 0 0 1-12.9-8.8 40.4 40.4 0 0 1-8.8-12.9A39.6 39.6 0 0 1 10 50a40 40 0 0 1 2.9-15.3 39.8 39.8 0 0 1 8.8-12.9 40.1 40.1 0 0 1 12.9-8.8A39.8 39.8 0 0 1 50 10ZM50 0A48.4 48.4 0 0 0 14.7 14.7 48.4 48.4 0 0 0 0 50 48.4 48.4 0 0 0 14.7 85.3 48.3 48.3 0 0 0 50 100 48.4 48.4 0 0 0 85.3 85.3 48.3 48.3 0 0 0 100 50 48.4 48.4 0 0 0 85.3 14.7 48.3 48.3 0 0 0 50 0h0Z"></path><path d="M55 55V24.8H45V55Zm0 20.3V65.1H45V75.3Z"></path></g></g></svg></div><div class="error-prompt__details"><p class="error-description"></p></div></div><div class="error-prompt error-prompt--info"><div class="error-prompt__icon"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 48 30" class="disabled-checkout"><path style="fill:#656A78" d="M36.8 1h-30c-1.7 0-3 1.3-3 3v20c0 1.7 1.3 3 3 3h24.8c-0.1-0.1-0.1-0.1-0.2-0.2 -0.6-0.6-1-1.2-1.4-1.8H6.8c-0.5 0-1-0.5-1-1V12h32v2.1c0.7 0.1 1.4 0.3 2 0.6V4C39.8 2.3 38.5 1 36.8 1zM37.8 6h-32V4c0-0.5 0.5-1 1-1h30c0.5 0 1 0.5 1 1V6z"></path><path style="fill:#FA5A6A" d="M36.7 14c2.1 0 3.8 0.7 5.3 2.2s2.2 3.2 2.2 5.3 -0.7 3.8-2.2 5.3S38.8 29 36.7 29s-3.8-0.7-5.3-2.2c-1.5-1.5-2.2-3.2-2.2-5.3s0.7-3.8 2.2-5.3C32.9 14.7 34.6 14 36.7 14zM37.4 22.2v-4.5h-1.5v4.5H37.4zM37.4 25.3v-1.5h-1.5v1.5H37.4z"></path></svg></div><div class="error-prompt__details"><p class="error-title"></p><p class="error-description"></p></div></div><div data-input-container="true" class="form-field font-scale-4"><div class="lp-form-react__group js-form-group" id="input-73b32524fba3dbeda8637d768f79a52a-Gf5benkZZbHmqHkAVuzG6m"><label for="73b32524fba3dbeda8637d768f79a52a-Gf5benkZZbHmqHkAVuzG6m" class="lp-form-react__label"><span>First Name</span><input type="text" autocomplete="given-name" class="lp-form-react__input js-input-mapping " id="73b32524fba3dbeda8637d768f79a52a-Gf5benkZZbHmqHkAVuzG6m" style="font-family:&quot;Montserrat&quot;, sans-serif" data-url="" maxlength="500" placeholder="First Name" name="first_name" value=""></label><label for="73b32524fba3dbeda8637d768f79a52a-Gf5benkZZbHmqHkAVuzG6m" class="lp-form-react__error lp-form-react__error--required"><i class="fas fa-exclamation-circle"></i><span>Please enter your First Name</span></label><label for="73b32524fba3dbeda8637d768f79a52a-Gf5benkZZbHmqHkAVuzG6m" class="lp-form-react__error lp-form-react__error--invalid"><i class="fas fa-exclamation-circle"></i><span>Please enter a valid First Name</span></label></div></div><div data-input-container="true" class="form-field font-scale-4"><div class="lp-form-react__group js-form-group" id="input-e6a1c359f6aaa31e03dbb5ccf164cf8d-Gf5benkZZbHmqHkAVuzG6m"><label for="e6a1c359f6aaa31e03dbb5ccf164cf8d-Gf5benkZZbHmqHkAVuzG6m" class="lp-form-react__label"><span>Last Name</span><input type="text" autocomplete="family-name" class="lp-form-react__input js-input-mapping " id="e6a1c359f6aaa31e03dbb5ccf164cf8d-Gf5benkZZbHmqHkAVuzG6m" style="font-family:&quot;Montserrat&quot;, sans-serif" data-url="" maxlength="500" placeholder="Last Name" name="last_name" value=""></label><label for="e6a1c359f6aaa31e03dbb5ccf164cf8d-Gf5benkZZbHmqHkAVuzG6m" class="lp-form-react__error lp-form-react__error--required"><i class="fas fa-exclamation-circle"></i><span>Please enter your Last Name</span></label><label for="e6a1c359f6aaa31e03dbb5ccf164cf8d-Gf5benkZZbHmqHkAVuzG6m" class="lp-form-react__error lp-form-react__error--invalid"><i class="fas fa-exclamation-circle"></i><span>Please enter a valid Last Name</span></label></div></div><div data-input-container="true" class="form-field font-scale-4"><div class="lp-form-react__group js-form-group" id="input-5d358d4e97fedc91eb4d7c8eecf372a8-Gf5benkZZbHmqHkAVuzG6m"><label for="5d358d4e97fedc91eb4d7c8eecf372a8-Gf5benkZZbHmqHkAVuzG6m" class="lp-form-react__label"><span>Email</span><input type="email" autocomplete="email" class="lp-form-react__input js-input-mapping " id="5d358d4e97fedc91eb4d7c8eecf372a8-Gf5benkZZbHmqHkAVuzG6m" style="font-family:&quot;Montserrat&quot;, sans-serif" data-url="" maxlength="500" placeholder="Email address" name="email" required="" value=""></label><label for="5d358d4e97fedc91eb4d7c8eecf372a8-Gf5benkZZbHmqHkAVuzG6m" class="lp-form-react__error lp-form-react__error--required"><i class="fas fa-exclamation-circle"></i><span>Please enter your Email</span></label><label for="5d358d4e97fedc91eb4d7c8eecf372a8-Gf5benkZZbHmqHkAVuzG6m" class="lp-form-react__error lp-form-react__error--invalid"><i class="fas fa-exclamation-circle"></i><span>Please enter a valid Email</span></label></div></div><div data-input-container="true" class="form-field font-scale-4 last-visible"><div class="lp-form-react__group js-form-group" id="input-0096f36417320b5436955662a452de24-Gf5benkZZbHmqHkAVuzG6m"><label for="0096f36417320b5436955662a452de24-Gf5benkZZbHmqHkAVuzG6m" class="lp-form-react__label"><span>Comment</span><textarea class="lp-form-react__input lp-form-react__textarea js-input-mapping" id="0096f36417320b5436955662a452de24-Gf5benkZZbHmqHkAVuzG6m" style="font-family:&quot;Montserrat&quot;, sans-serif" data-url="" rows="4" placeholder="Comment" name="comment"></textarea></label><label for="" class="lp-form-react__error lp-form-react__error--required"><i class="fas fa-exclamation-circle"></i><span>Please enter your Comment</span></label></div></div><div class="confirm-existence"><label class="confirm-existence__label" for="confirm-existence">If you are human, leave this blank.<input type="text" class="confirm-existence__input" name="confirm-existence"></label></div></div></div></div></div><div class="widget-row flex flex--12"><div class="flex__item--md-12 flex__item--xs-12"><div data-widget-id="1c1362ab-089e-4352-1d39-532ac0159faa" class="widget"><style data-emotion-css="y13kug">.css-y13kug{position:relative;z-index:0;text-align:center;}</style><div class="lp-button-react-wrapper css-y13kug" data-widget-type="LpButtonReact"><style data-emotion-css="2kalac">.css-2kalac{-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;display:-webkit-inline-box;display:-webkit-inline-flex;display:-ms-inline-flexbox;display:inline-flex;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;-webkit-box-pack:center;
96-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;border-style:solid;border-width:1px;text-align:center;font-family:'Lato',sans-serif;text-shadow:none;-webkit-transition:color 0.2s linear,background 0.2s linear,border-color 0.2s linear, text-shadow 0.2s linear;transition:color 0.2s linear,background 0.2s linear,border-color 0.2s linear, text-shadow 0.2s linear;-webkit-text-decoration:none;text-decoration:none;position:relative;width:100%;font-weight:bold;min-height:36px;min-width:72px;padding:8px 18px;font-family:"Roboto",sans-serif;border-radius:10000px;}.css-2kalac.is-loading,.css-2kalac.is-loading:hover,.css-2kalac.is-loading:active,.css-2kalac.is-loading:focus,.css-2kalac.is-success,.css-2kalac.is-success:hover,.css-2kalac.is-success:active,.css-2kalac.is-success:focus{color:transparent;text-shadow:none;}.css-2kalac.is-loading .lp-button-loading,.css-2kalac.is-success .lp-button-success{display:block;}.css-2kalac.is-loading:hover .lp-button-loading svg{stroke:rgba(255,255,255,1);}.css-2kalac.is-success:hover .lp-button-success svg{fill:rgba(255,255,255,1);}.css-2kalac .lp-button-loading{-webkit-animation:animation-circular-rotate 1.4s linear infinite;animation:animation-circular-rotate 1.4s linear infinite;display:none;position:absolute;width:24px;height:24px;top:50%;left:50%;margin-left:-12px;margin-top:-12px;}.css-2kalac .lp-button-loading svg{stroke:rgba(255,255,255,1);display:block;}.css-2kalac .lp-button-loading svg circle{-webkit-animation:animation-circular-progress 1.4s ease-in-out infinite;animation:animation-circular-progress 1.4s ease-in-out infinite;stroke-dasharray:80px,200px;stroke-dashoffset:0px;-webkit-transform-origin:0px 0px;-ms-transform-origin:0px 0px;transform-origin:0px 0px;}.css-2kalac .lp-button-success{display:none;position:absolute;width:24px;height:24px;top:50%;left:50%;margin-left:-12px;margin-top:-12px;}.css-2kalac .lp-button-success svg{stroke:none;fill:rgba(255,255,255,1);display:block;}.css-2kalac::before{border-radius:10000px;}.css-2kalac,.css-2kalac:focus,.css-2kalac:active{border-color:rgb(12,10,74);background:rgb(12,10,74);color:rgba(255,255,255,1);}.css-2kalac:hover{background-color:rgb(4,3,23);border-color:rgb(4,3,23);color:rgba(255,255,255,1);}</style><button type="submit" class="lp-button-react w-1c1362ab-089e-4352-1d39-532ac0159faa lp-button-react--full is-bold lp-button-react--small lp-button-react--flat lp-btn-flat font-scale-4 line-height-scale-3 css-2kalac" formtarget="_top">SUBMIT
97<div class="lp-button-loading">
98  <svg viewBox="22 22 44 44" aria-hidden="true">
99    <circle cx="44" cy="44" r="20.2" fill="none" stroke-width="3.6"></circle>
100  </svg>
101</div>
102<div class="lp-button-success">
103  <svg viewBox="0 0 24 24" aria-hidden="true">
104    <path d="M9 16.17L4.83 12l-1.42 1.41L9 19 21 7l-1.41-1.41z"></path>
105  </svg>
106</div>
107</button></div></div></div></div></div></form><div class="form-errors"></div></div></div></div></div></div><div class="column flex__item--md-2 flex__item--xs-12 css-vfaad" data-guid="f296f258-30b4-ea2f-9c05-c9adda8c81cc"><div class="inner-column css-eeduzr"></div></div></div></div></section><style data-emotion-css="1wslggt">.css-1wslggt{background-color:rgba(255,255,255,1);border-color:rgba(255,255,255,1);background-size:cover;background-position:center center;background-repeat:no-repeat;}.css-1wslggt > .container{padding-top:0vw;padding-right:1vw;padding-bottom:6vw;padding-left:1vw;padding-top:0cqw;padding-right:1cqw;padding-bottom:6cqw;padding-left:1cqw;}.site-header .css-1wslggt > .container{padding-top:-5px;padding-right:0;padding-bottom:-5px;padding-left:0;-webkit-transition:padding 0.03s ease;transition:padding 0.03s ease;}.bar .css-1wslggt{padding:0 50px;}@media (max-width:23.75em){.bar .css-1wslggt{padding:0 25px;}}@media (min-width:71.25em){.css-1wslggt > .container{padding-top:0px;padding-right:11.4px;padding-bottom:68.4px;padding-left:11.4px;}}</style><section class="section css-1wslggt" data-guid="f3daf65f-2785-bc8a-1f64-15e1c4e5d12a"><div class="container" id="next"><div class="layout flex flex--12" data-guid="b765f8ff-8937-b9e8-5dad-d1b7b3d1fbbd"><style data-emotion-css="1m43sgt">.css-1m43sgt{padding-top:0vw;padding-right:0vw;padding-bottom:0vw;padding-left:0vw;padding-top:0cqw;padding-right:0cqw;padding-bottom:0cqw;padding-left:0cqw;}@media(min-width:71.25em){.css-1m43sgt.column{padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;}.css-1m43sgt.column > .inner-column{padding-top:68.4px;padding-right:114px;padding-bottom:68.4px;padding-left:114px;}}</style><div class="column flex__item--md-12 flex__item--xs-12 css-1m43sgt" data-guid="578cffa1-23b5-e8b5-f44f-eabc537eb622"><style data-emotion-css="dukh25">.css-dukh25{background-color:rgba(244,244,244,1);border-color:rgba(244,244,244,1);border-radius:0px;background-size:cover;background-position:center center;background-repeat:no-repeat;padding-top:6vw;padding-right:10vw;padding-bottom:6vw;padding-left:10vw;padding-top:6cqw;padding-right:10cqw;padding-bottom:6cqw;padding-left:10cqw;}.bar .css-dukh25{padding-top:0;padding-bottom:0;}</style><div class="inner-column css-dukh25"><div class="row flex flex--12 css-47r3vg"><div class="composite flex__item--md-12 flex__item--xs-12 css-8x0d4x"><div class="inner-composite flex flex--12"><div class="widget-column flex__item--md-12 flex__item--xs-12"><div class="widget-row flex flex--12"><div class="flex__item--md-12 flex__item--xs-12"><div data-widget-id="b1c4748c-30eb-1eca-d641-10d5914c3e3d" class="widget">
107<style data-emotion-css="1yltisf">.css-1yltisf{text-align:center;}</style><div class="css-1yltisf"><div><style data-emotion-css="1ud3fu4">.css-1ud3fu4{display:inline-block;vertical-align:middle;max-width:57px;}@media (max-width:530px){.site-header .composite .widget .css-1ud3fu4{max-width:calc(100% - 80px);}}</style><img class="lp-image-react w-b1c4748c-30eb-1eca-d641-10d5914c3e3d css-1ud3fu4" src="/api/library/ff6h513ypy0jppswnlxk9jsd" data-image-upload-source="" alt="" style="width:100%"></div></div></div></div></div></div></div></div></div><div class="row flex flex--12 css-47r3vg"><div class="composite flex__item--md-12 flex__item--xs-12 css-8x0d4x"><div class="inner-composite flex flex--12"><div class="widget-column flex__item--md-12 flex__item--xs-12"><div class="widget-row flex flex--12"><div class="flex__item--md-12 flex__item--xs-12"><div data-widget-id="5bc2512e-4966-41e5-de35-576c3f7a41d2" class="widget"><div class="lp-text-react lp-headline-react" data-widget-type="LpTextReact"><h2 class="lp-headline text-align-center subhead">Don’t just take it from us.</h2></div></div></div></div></div></div></div></div><div class="row flex flex--12 css-47r3vg"><div class="composite flex__item--md-12 flex__item--xs-12 css-8x0d4x"><div class="inner-composite flex flex--12"><div class="widget-column flex__item--md-12 flex__item--xs-12"><div class="widget-row flex flex--12"><div class="flex__item--md-12 flex__item--xs-12"><div data-widget-id="dbed73f8-5f4b-dbae-8ff4-3099b8b60977" class="widget"><div class="lp-text-react lp-headline-react" data-widget-type="LpTextReact"><p class="text-align-center font-scale-5 line-height-scale-8 gutter-bottom-1">Check out some research from our team.</p></div></div></div></div></div></div></div></div><div class="row flex flex--12 css-47r3vg"><div class="composite flex__item--md-12 flex__item--xs-12 css-8x0d4x"><div class="inner-composite flex flex--12"><div class="widget-column flex__item--md-12 flex__item--xs-12"><div class="widget-row flex flex--12"><div class="flex__item--md-12 flex__item--xs-12"><div data-widget-id="cfba5b11-f512-d7fb-f6a1-213e652c7eca" class="widget"><style data-emotion-css="piwg9t">.css-piwg9t{position:relative;z-index:0;text-align:center;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;}</style><div class="lp-button-react-wrapper css-piwg9t" data-widget-type="LpButtonReact"><style data-emotion-css="ronf9c">.css-ronf9c{-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;display:-webkit-inline-box;display:-webkit-inline-flex;display:-ms-inline-flexbox;display:inline-flex;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;border-style:solid;border-width:1px;text-align:center;font-family:'Lato',sans-serif;text-shadow:none;-webkit-transition:color 0.2s linear,background 0.2s linear,border-color 0.2s linear, text-shadow 0.2s linear;transition:color 0.2s linear,background 0.2s linear,border-color 0.2s linear, text-shadow 0.2s linear;-webkit-text-decoration:none;text-decoration:none;position:relative;font-weight:bold;min-height:36px;min-width:72px;padding:8px 18px;background:transparent;font-family:"Montserrat",sans-serif;border-radius:10000px;}.css-ronf9c::before{border-radius:10000px;}.css-ronf9c,.css-ronf9c:focus,.css-ronf9c:active{border-color:rgb(17,209,219);color:rgb(17,209,219);}.css-ronf9c:hover{background-color:rgb(17,209,219);color:rgb(0,0,0);}</style><a data-widget-link="true" href="https://www.rcbm.net/behavioral-medicine/publications/" target="_top" data-link-type="external" class="lp-button-react w-cfba5b11-f512-d7fb-f6a1-213e652c7eca is-bold lp-button-react--small lp-button-react--line font-scale-3 line-height-scale-3 css-ronf9c" contenteditable="false">VIEW RESEARCH</a></div></div></div></div></div></div></div></div></div></div></div></div></section><style data-emotion-css="y5jwta">.css-y5jwta{background-color:rgba(255,1,66,1);border-color:rgba(255,1,66,1);background-image:linear-gradient(rgba(0,0,0,0),rgba(0,0,0,0)),url("/api/library/itl9beglicem2ujptt3583j7");background-size:cover;background-position:center center;background-repeat:no-repeat;min-height:90vh;}.css-y5jwta > .container{padding-top:1vw;padding-right:1vw;padding-bottom:1vw;padding-left:1vw;padding-top:1cqw;padding-right:1cqw;padding-bottom:1cqw;padding-left:1cqw;}.site-header .css-y5jwta > .container{padding-top:0px;padding-right:0;padding-bottom:0px;padding-left:0;-webkit-transition:padding 0.03s ease;transition:padding 0.03s ease;}.bar .css-y5jwta{padding:0 50px;}@media (max-width:23.75em){.bar .css-y5jwta{padding:0 25px;}}@media (min-width:71.25em){.css-y5jwta > .container{padding-top:11.4px;padding-right:11.4px;padding-bottom:11.4px;padding-left:11.4px;}}</style><section class="flex-display flex-direction-column flex-justify-center has-background-image has-background-size-cover section css-y5jwta" data-guid="9c06339c-8feb-7c2f-bc81-d69595d5c092" data-background="/api/library/itl9beglicem2ujptt3583j7"><div class="container" id="pre-footer"><div class="layout flex flex--12" data-guid="f713cdd2-a204-c2c6-2cc6-1c4c32d68934"><div class="column flex__item--md-12 flex__item--xs-12 css-vfaad" data-guid="3bf7a45c-2f0b-af69-886d-e92f1b87ab14"><div class="inner-column css-eeduzr"><div class="row flex flex--12 css-47r3vg"><div class="composite flex__item--md-12 flex__item--xs-12 css-8x0d4x"><div class="inner-composite flex flex--12"><div class="widget-column flex__item--md-12 flex__item--xs-12"><div class="widget-row flex flex--12"><div class="flex__item--md-12 flex__item--xs-12"><div data-widget-id="c7db772d-79f4-e5df-4855-4ac3fa89377f" class="widget"><div class="css-1yltisf"><div><style data-emotion-css="spfjl0">.css-spfjl0{display:inline-block;vertical-align:middle;max-width:325px;}@media (max-width:530px){.site-header .composite .widget .css-spfjl0{max-width:calc(100% - 80px);}}</style><img class="lp-image-react w-c7db772d-79f4-e5df-4855-4ac3fa89377f css-spfjl0" src="/api/library/jba8j1110pobjxggzfl7jk12" data-image-upload-source="" alt="" style="width:100%"></div></div></div></div></div></div></div></div></div><div class="row flex flex--12 css-47r3vg"><div class="composite flex__item--md-12 flex__item--xs-12 css-8x0d4x"><div class="inner-composite flex flex--12"><div class="widget-column flex__item--md-12 flex__item--xs-12"><div class="widget-row flex flex--12"><div class="flex__item--md-12 flex__item--xs-12"><div data-widget-id="23ee011d-5e2e-1ba1-b69f-dab9bdbfbbda" class="widget"><div class="lp-text-react lp-headline-react" data-widget-type="LpTextReact"><h1 class="lp-headline text-align-center font-scale-13 line-height-scale-3 gutter-bottom-1 headline"><span style="color: rgb(255, 249, 246);">
107Let’s work together.</span></h1></div></div></div></div></div></div></div></div><div class="row flex flex--12 css-47r3vg"><div class="composite flex__item--md-6 flex__item--xs-12 css-8x0d4x"><div class="inner-composite flex flex--6"><div class="widget-column flex__item--md-12 flex__item--xs-12"><div class="widget-row flex flex--12"><div class="flex__item--md-12 flex__item--xs-12"><div data-widget-id="c86bcf91-5e8c-3f2e-52f3-b72733eaacb3" class="widget"><style data-emotion-css="1klih5i">.css-1klih5i{height:6px;}@media (min-width:48em){.css-1klih5i{height:48px;}}</style><div class="lp-space-react w-c86bcf91-5e8c-3f2e-52f3-b72733eaacb3 css-1klih5i" data-widget-type="LpSpaceReact"></div></div></div></div></div></div></div><div class="composite flex__item--md-6 flex__item--xs-12 css-8x0d4x"><div class="inner-composite flex flex--6"><div class="widget-column flex__item--md-12 flex__item--xs-12"><div class="widget-row flex flex--12"><div class="flex__item--md-12 flex__item--xs-12"><div data-widget-id="f811a443-b23c-9c97-fb2f-712afc6adf93" class="widget"><div class="lp-space-react w-f811a443-b23c-9c97-fb2f-712afc6adf93 css-1klih5i" data-widget-type="LpSpaceReact"></div></div></div></div></div></div></div></div></div></div></div><div class="layout flex flex--12" data-guid="01686f31-1463-f6e7-a18a-b85b35681c62"><div class="column flex__item--md-12 flex__item--xs-12 css-vfaad" data-guid="2cc893d2-bec4-f839-54a3-9d3a221f5fd1"><div class="inner-column css-eeduzr"><div class="row flex flex--12 css-47r3vg"><div class="composite flex__item--md-12 flex__item--xs-12 css-8x0d4x"><div class="inner-composite flex flex--12"><div class="widget-column flex__item--md-12 flex__item--xs-12"><div class="widget-row flex flex--12"><div class="flex__item--md-12 flex__item--xs-12"><div data-widget-id="e974b337-3544-d4b2-9a54-ea772ed308d3" class="widget"><div class="lp-space-react w-e974b337-3544-d4b2-9a54-ea772ed308d3 css-1klih5i" data-widget-type="LpSpaceReact"></div></div></div></div></div></div></div></div></div></div></div></div></section><div class="site-footer" data-persist-part-id="apxw2xi0j3r0ruuw2sslotfh" data-persist-part-kind="footer"><style data-emotion-css="1c2c5tq">.css-1c2c5tq{background-color:rgba(0,0,40,1);border-color:rgba(0,0,40,1);background-size:cover;background-position:center center;background-repeat:no-repeat;}.css-1c2c5tq > .container{padding-top:1vw;padding-right:1vw;padding-bottom:1vw;padding-left:1vw;padding-top:1cqw;padding-right:1cqw;padding-bottom:1cqw;padding-left:1cqw;}.site-header .css-1c2c5tq > .container{padding-top:0px;padding-right:0;padding-bottom:0px;padding-left:0;-webkit-transition:padding 0.03s ease;transition:padding 0.03s ease;}.bar .css-1c2c5tq{padding:0 50px;}@media (max-width:23.75em){.bar .css-1c2c5tq{padding:0 25px;}}@media (min-width:71.25em){.css-1c2c5tq > .container{padding-top:11.4px;padding-right:11.4px;padding-bottom:11.4px;padding-left:11.4px;}}</style><section class="section css-1c2c5tq" data-guid="349c532b-2f13-d978-5171-4b35b55195bb"><div class="container" id="site-footer"><div class="layout flex flex--12" data-guid="aad8b62e-1d0a-e63d-afbe-086e9e3c6338"><div class="column flex__item--md-12 flex__item--xs-12 css-vfaad" data-guid="ecf20179-d41e-a7a8-1f27-323fbe640175"><div class="inner-column css-eeduzr"><div class="row flex flex--12 css-47r3vg"><div class="composite flex__item--md-12 flex__item--xs-12 css-8x0d4x"><div class="inner-composite flex flex--12"><div class="widget-column flex__item--md-12 flex__item--xs-12"><div class="widget-row flex flex--12"><div class="flex__item--md-12 flex__item--xs-12"><div data-widget-id="ef0be4dc-d8b6-63cb-86f5-eb6a7dab0c08" class="widget"><div class="lp-text-react lp-headline-react" data-widget-type="LpTextReact"><p class="text-align-center"><span style="color: rgb(255, 255, 255);">© 2022 All Rights Reserved&nbsp;</span></p></div></div></div></div></div></div></div></div></div></div></div></div></section></div></div></div></div>
108      
108<script src="https://embed.lpcontent.net/leadboxes/current/embed.js" async="" defer=""></script>
108
109    
110      
111
112<script type="text/javascript" data-scriptname="TAILOR">(function(){var exports={};var module={exports: exports};"use strict";function initFunc(){console.assert(window.sup&&window.sup.Tailor,"tailor successfully loaded")}Object.defineProperty(exports,"__esModule",{value:!0}),function(t){function e(t,s){if(!t||!t.parentElement)return null;if(t.parentElement)var i=t.parentElement.querySelectorAll(s);if(i&&1===Array.prototype.filter.call(i,function(e){return e===t}).length)return t;return e(t.parentElement,s)}function s(t){var e;for(e in this.rules=[],this.readQueue=[],this.writeQueue=[],this.opts={parentSelector:"[data-widget-id]"},t)this.opts[e]=t[e]}function i(t){return parseInt(t,10)}function r(t,e){return function(s){return t(s)?e:""}}function n(t,e,s){return s=Math.round(s),(!t||s>=t)&&(!e||s<=e)}s.prototype.register=function(t){if(t&&this.isValid(t.el)){for(var e in t.classFunctions=this.parseBreakPoints(t.breakPoints),t.classNames=[],t.breakPoints)t.classNames.push(t.breakPoints[e]);this.rules.push(t),this.triggerReCalcClassNames()}},s.prototype.isValid=function(t){return!!(t&&e(t,this.opts.parentSelector))},s.prototype.parseBreakPoints=function(t){var e,s=[];for(var a in t){var o=t[a];switch(a.charAt(0)){case"<":e=n.bind(this,null,parseInt(a.slice(1),10));break;case">":e=n.bind(this,parseInt(a.slice(1),10),null);break;default:var u=a.split("-").map(i);e=n.bind(this,u[0],u[1])}s.push(r(e,o))}return s},s.prototype.triggerReCalcClassNames=function(){this.timeout&&clearTimeout(this.timeout),this.timeout=setTimeout(this.reCalcClassNames.bind(this),150)},s.prototype.stillValid=function(t){return!!this.isValid(t.el)||(this.remove(t),!1)},s.prototype.makeTasks=function(s){var i={},r=[];return i.el=s.el,i.add=s.classFunctions.reduce(function(s,n){var a,o=e(i.el,this.opts.parentSelector);a=function(e){var s=t.getComputedStyle(e,null),i=s.getPropertyValue("padding-left"),r=s.getPropertyValue("padding-right");return parseFloat(i)+parseFloat(r)}(o);var u=n(o.offsetWidth-a<t.innerWidth?o.offsetWidth-a:t.innerWidth);return u&&(r.push(u),i.el.classList.contains(u)||s.push(u)),s}.bind(this),[]),i.remove=s.classNames.filter(function(t){return-1===r.indexOf(t)&&i.el.classList.contains(t)},this),i},s.prototype.reCalcClassNames=function(){this.readQueue=this.rules.slice(0),this.writeQueue=this.readQueue.filter(this.stillValid,this).map(this.makeTasks,this),this.writeClassNames()},s.prototype.writeClassNames=function(){for(;this.writeQueue.length;){var t=this.writeQueue.pop();t.add.forEach(function(e){t.el.classList.add(e)}),t.remove.forEach(function(e){t.el.classList.remove(e)})}},s.prototype.remove=function(t){this.rules=this.rules.filter(function(e){return e!==t})},t.sup=t.sup||{},t.sup.Tailor=s,t.sup.tailor=new s,t.addEventListener("resize",t.sup.tailor.triggerReCalcClassNames.bind(t.sup.tailor))}(window),exports.default=initFunc;;var i=module.exports.default||module.exports;return typeof i==="function"?i.apply(null, arguments):void 0;}());</script>
vendor: 1 bytes, line 112
112
113<script type="text/javascript" data-scriptname="MAPPER">(function(){var exports={};var module={exports: exports};"use strict";function unwrapExports(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}function createCommonjsModule(e,r){return e(r={exports:{}},r.exports),r.exports}Object.defineProperty(exports,"__esModule",{value:!0});var _typeof_1=createCommonjsModule(function(e){function r(t){return e.exports=r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},e.exports.__esModule=!0,e.exports.default=e.exports,r(t)}e.exports=r,e.exports.__esModule=!0,e.exports.default=e.exports});unwrapExports(_typeof_1);var toPrimitive_1=createCommonjsModule(function(e){var r=_typeof_1.default;e.exports=function(e,t){if("object"!=r(e)||!e)return e;var o=e[Symbol.toPrimitive];if(void 0!==o){var n=o.call(e,t||"default");if("object"!=r(n))return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)},e.exports.__esModule=!0,e.exports.default=e.exports});unwrapExports(toPrimitive_1);var toPropertyKey_1=createCommonjsModule(function(e){var r=_typeof_1.default;e.exports=function(e){var t=toPrimitive_1(e,"string");return"symbol"==r(t)?t:t+""},e.exports.__esModule=!0,e.exports.default=e.exports});unwrapExports(toPropertyKey_1);var defineProperty=createCommonjsModule(function(e){e.exports=function(e,r,t){return(r=toPropertyKey_1(r))in e?Object.defineProperty(e,r,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[r]=t,e},e.exports.__esModule=!0,e.exports.default=e.exports}),_defineProperty=unwrapExports(defineProperty),arrayWithHoles=createCommonjsModule(function(e){e.exports=function(e){if(Array.isArray(e))return e},e.exports.__esModule=!0,e.exports.default=e.exports});unwrapExports(arrayWithHoles);var iterableToArrayLimit=createCommonjsModule(function(e){e.exports=function(e,r){var t=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=t){var o,n,u,i,a=[],s=!0,p=!1;try{if(u=(t=t.call(e)).next,0===r){if(Object(t)!==t)return;s=!1}else for(;!(s=(o=u.call(t)).done)&&(a.push(o.value),a.length!==r);s=!0);}catch(e){p=!0,n=e}finally{try{if(!s&&null!=t.return&&(i=t.return(),Object(i)!==i))return}finally{if(p)throw n}}return a}},e.exports.__esModule=!0,e.exports.default=e.exports});unwrapExports(iterableToArrayLimit);var arrayLikeToArray=createCommonjsModule(function(e){e.exports=function(e,r){(null==r||r>e.length)&&(r=e.length);for(var t=0,o=Array(r);t<r;t++)o[t]=e[t];return o},e.exports.__esModule=!0,e.exports.default=e.exports});unwrapExports(arrayLikeToArray);var unsupportedIterableToArray=createCommonjsModule(function(e){e.exports=function(e,r){if(e){if("string"==typeof e)return arrayLikeToArray(e,r);var t={}.toString.call(e).slice(8,-1);return"Object"===t&&e.constructor&&(t=e.constructor.name),"Map"===t||"Set"===t?Array.from(e):"Arguments"===t||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t)?arrayLikeToArray(e,r):void 0}},e.exports.__esModule=!0,e.exports.default=e.exports});unwrapExports(unsupportedIterableToArray);var nonIterableRest=createCommonjsModule(function(e){e.exports=function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")},e.exports.__esModule=!0,e.exports.default=e.exports});unwrapExports(nonIterableRest);var slicedToArray=createCommonjsModule(function(e){e.exports=function(e,r){return arrayWithHoles(e)||iterableToArrayLimit(e,r)||unsupportedIterableToArray(e,r)||nonIterableRest()},e.exports.__esModule=!0,e.exports.default=e.exports}),_slicedToArray=unwrapExports(slicedToArray);function ownKeys(e,r){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);r&&(o=o.filter(function(r){return Object.getOwnPropertyDescriptor(e,r).enumerable})),t.push.apply(t,o)}return t}function _objectSpread(e){for(var r=1;r<arguments.length;r++){var t=null!=arguments[r]?arguments[r]:{};
113r%2?ownKeys(Object(t),!0).forEach(function(r){_defineProperty(e,r,t[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):ownKeys(Object(t)).forEach(function(r){Object.defineProperty(e,r,Object.getOwnPropertyDescriptor(t,r))})}return e}function getLocationSearch(){return window.location.search||""}function getQueryString(){return getLocationSearch().replace("?","")}function serializeQueryString(e){return Object.keys(e).map(function(r){return"".concat(encodeURIComponent(r),"=").concat(encodeURIComponent(e[r]))}).join("&")}function deserializeQueryString(e){return e.split("&").reduce(function(e,r){var t=e,o=r.split("="),n=_slicedToArray(o,2),u=n[0],i=void 0===u?"":u,a=n[1],s=void 0===a?"":a;return""!==i&&""!==s&&(t[decodeURIComponent(i)]=decodeURIComponent(s)),t},{})}function getQueryValue(e){return deserializeQueryString(getQueryString())[e]}function appendToQuery(e,r){return serializeQueryString(_objectSpread(_objectSpread({},deserializeQueryString(e)),r))}function addQueriesToUrl(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"",r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if(0===Object.keys(r).length)return e;var t=e.split("?"),o=_slicedToArray(t,2),n=o[0],u=o[1],i=void 0===u?"":u;if(!i)return[n].concat(serializeQueryString(r)).join("?");var a=i.split("#"),s=_slicedToArray(a,2),p=s[0],c=s[1],l=void 0===c?"":c;return p=appendToQuery(p,r),l&&(p="".concat(p,"#").concat(l)),"".concat(n,"?").concat(p)}function module$1(){window.sup||(window.sup={}),window.sup.widgetTypes||(window.sup.widgetTypes={}),window.sup.widgets||(window.sup.widgets=[]),window.sup.register=function(e,r){window.sup.widgetTypes[e]=r,window.sup.scan(e)},window.sup.scan=function(e){var r=window.sup.widgetTypes[e];if(r&&"function"==typeof r){var t=document.querySelectorAll('[data-widget-type="'.concat(e,'"]'));Array.prototype.forEach.call(t,function(e){window.sup.widgets.push(r(e))})}};var e=getQueryValue("customerToken");if(e){var r=document.querySelectorAll("[data-widget-link]");Array.prototype.forEach.call(r,function(r){r.href=addQueriesToUrl(r.href,{customerToken:e})})}}exports.default=module$1;;var i=module.exports.default||module.exports;return typeof i==="function"?i.apply(null, arguments):void 0;}());</script>
vendor: 1 bytes, line 113
113
114<script type="text/javascript" data-scriptname="IFRAME">(function(){var exports={};var module={exports: exports};"use strict";function initFunc(){if(window.FB||/(marketplace\/template|suppress_hero=true)/.test(window.location.href)){var e=document.querySelectorAll(".section");Array.prototype.slice.call(e).forEach(function(e){var t=e;if(t.style.minHeight&&-1!==t.style.minHeight.indexOf("vh")){var i=10*parseInt(t.style.minHeight,10);t.style.minHeight="".concat(i,"px")}})}}Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=initFunc;;var i=module.exports.default||module.exports;return typeof i==="function"?i.apply(null, arguments):void 0;}());</script>
vendor: 1 bytes, line 114
114
115<script type="text/javascript" data-scriptname="INTERSECTION_OBSERVER">(function(){var exports={};var module={exports: exports};"use strict";function initFunc(){}Object.defineProperty(exports,"__esModule",{value:!0}),function(t,e){function n(t){this.time=t.time,this.target=t.target,this.rootBounds=t.rootBounds,this.boundingClientRect=t.boundingClientRect,this.intersectionRect=t.intersectionRect||{top:0,bottom:0,left:0,right:0,width:0,height:0},this.isIntersecting=!!t.intersectionRect;var e=this.boundingClientRect,n=e.width*e.height,o=this.intersectionRect,i=o.width*o.height;this.intersectionRatio=n?Number((i/n).toFixed(4)):this.isIntersecting?1:0}function o(t,e){var n,o,i,r=e||{};if("function"!=typeof t)throw new Error("callback must be a function");if(r.root&&1!=r.root.nodeType)throw new Error("root must be an Element");this._checkForIntersections=(n=this._checkForIntersections.bind(this),o=this.THROTTLE_TIMEOUT,i=null,function(){i||(i=setTimeout(function(){n(),i=null},o))}),this._callback=t,this._observationTargets=[],this._queuedEntries=[],this._rootMarginValues=this._parseRootMargin(r.rootMargin),this.thresholds=this._initThresholds(r.threshold),this.root=r.root||null,this.rootMargin=this._rootMarginValues.map(function(t){return t.value+t.unit}).join(" ")}function i(t,e,n,o){"function"==typeof t.addEventListener?t.addEventListener(e,n,o||!1):"function"==typeof t.attachEvent&&t.attachEvent("on"+e,n)}function r(t,e,n,o){"function"==typeof t.removeEventListener?t.removeEventListener(e,n,o||!1):"function"==typeof t.detatchEvent&&t.detatchEvent("on"+e,n)}function s(t){var e;try{e=t.getBoundingClientRect()}catch(t){}return e?(e.width&&e.height||(e={top:e.top,right:e.right,bottom:e.bottom,left:e.left,width:e.right-e.left,height:e.bottom-e.top}),e):{top:0,bottom:0,left:0,right:0,width:0,height:0}}function h(t,e){for(var n=e;n;){if(n==t)return!0;n=c(n)}return!1}function c(t){var e=t.parentNode;return e&&11==e.nodeType&&e.host?e.host:e&&e.assignedSlot?e.assignedSlot.parentNode:e}"IntersectionObserver"in t&&"IntersectionObserverEntry"in t&&"intersectionRatio"in t.IntersectionObserverEntry.prototype?"isIntersecting"in t.IntersectionObserverEntry.prototype||Object.defineProperty(t.IntersectionObserverEntry.prototype,"isIntersecting",{get:function(){return this.intersectionRatio>0}}):(o.prototype.THROTTLE_TIMEOUT=100,o.prototype.POLL_INTERVAL=null,o.prototype.USE_MUTATION_OBSERVER=!0,o.prototype.observe=function(t){if(!this._observationTargets.some(function(e){return e.element==t})){if(!t||1!=t.nodeType)throw new Error("target must be an Element");this._registerInstance(),this._observationTargets.push({element:t,entry:null}),this._monitorIntersections(),this._checkForIntersections()}},o.prototype.unobserve=function(t){this._observationTargets=this._observationTargets.filter(function(e){return e.element!=t}),this._observationTargets.length||(this._unmonitorIntersections(),this._unregisterInstance())},o.prototype.disconnect=function(){this._observationTargets=[],this._unmonitorIntersections(),this._unregisterInstance()},o.prototype.takeRecords=function(){var t=this._queuedEntries.slice();return this._queuedEntries=[],t},o.prototype._initThresholds=function(t){var e=t||[0];return Array.isArray(e)||(e=[e]),e.sort().filter(function(t,e,n){if("number"!=typeof t||isNaN(t)||t<0||t>1)throw new Error("threshold must be a number between 0 and 1 inclusively");return t!==n[e-1]})},o.prototype._parseRootMargin=function(t){var e=(t||"0px").split(/\s+/).map(function(t){var e=/^(-?\d*\.?\d+)(px|%)$/.exec(t);if(!e)throw new Error("rootMargin must be specified in pixels or percent");return{value:parseFloat(e[1]),unit:e[2]}});return e[1]=e[1]||e[0],e[2]=e[2]||e[0],e[3]=e[3]||e[1],e},o.prototype._monitorIntersections=function(){this._monitoringIntersections||(this._monitoringIntersections=!0,this.POLL_INTERVAL?this._monitoringInterval=setInterval(this._checkForIntersections,this.POLL_INTERVAL):(i(t,"resize",this._checkForIntersections,!0),i(e,"scroll",this._checkForIntersections,!0),this.USE_MUTATION_OBSERVER&&"MutationObserver"in t&&(this._domObserver=new MutationObserver(this._checkForIntersections),this._domObserver.observe(e,{attributes:!0,childList:!0,characterData:!0,subtree:!0}))))},o.prototype._unmonitorIntersections=function(){this._monitoringIntersections&&(this._monitoringIntersections=!1,clearInterval(this._monitoringInterval),this._monitoringInterval=null,r(t,"resize",this._checkForIntersections,!0),r(e,"scroll",this._checkForIntersections,!0),this._domObserver&&(this._domObserver.disconnect(),this._domObserver=null))},o.prototype._checkForIntersections=function(){var e=this._rootIsInDom(),o=e?this._getRootRect():{top:0,bottom:0,left:0,right:0,width:0,height:0};
115this._observationTargets.forEach(function(i){var r=i.element,h=s(r),c=this._rootContainsTarget(r),u=i.entry,a=e&&c&&this._computeTargetAndRootIntersection(r,o),l=i.entry=new n({time:t.performance&&performance.now&&performance.now(),target:r,boundingClientRect:h,rootBounds:o,intersectionRect:a});u?e&&c?this._hasCrossedThreshold(u,l)&&this._queuedEntries.push(l):u&&u.isIntersecting&&this._queuedEntries.push(l):this._queuedEntries.push(l)},this),this._queuedEntries.length&&this._callback(this.takeRecords(),this)},o.prototype._computeTargetAndRootIntersection=function(n,o){if("none"!=t.getComputedStyle(n).display){for(var i,r,h,u,a,l,p,d,g=s(n),f=c(n),_=!1;!_;){var v=null,m=1==f.nodeType?t.getComputedStyle(f):{};if("none"==m.display)return;if(f==this.root||f==e?(_=!0,v=o):f!=e.body&&f!=e.documentElement&&"visible"!=m.overflow&&(v=s(f)),v&&(i=v,r=g,h=void 0,u=void 0,a=void 0,l=void 0,p=void 0,d=void 0,h=Math.max(i.top,r.top),u=Math.min(i.bottom,r.bottom),a=Math.max(i.left,r.left),l=Math.min(i.right,r.right),d=u-h,!(g=(p=l-a)>=0&&d>=0&&{top:h,bottom:u,left:a,right:l,width:p,height:d})))break;f=c(f)}return g}},o.prototype._getRootRect=function(){var t;if(this.root)t=s(this.root);else{var n=e.documentElement,o=e.body;t={top:0,left:0,right:n.clientWidth||o.clientWidth,width:n.clientWidth||o.clientWidth,bottom:n.clientHeight||o.clientHeight,height:n.clientHeight||o.clientHeight}}return this._expandRectByRootMargin(t)},o.prototype._expandRectByRootMargin=function(t){var e=this._rootMarginValues.map(function(e,n){return"px"==e.unit?e.value:e.value*(n%2?t.width:t.height)/100}),n={top:t.top-e[0],right:t.right+e[1],bottom:t.bottom+e[2],left:t.left-e[3]};return n.width=n.right-n.left,n.height=n.bottom-n.top,n},o.prototype._hasCrossedThreshold=function(t,e){var n=t&&t.isIntersecting?t.intersectionRatio||0:-1,o=e.isIntersecting?e.intersectionRatio||0:-1;if(n!==o)for(var i=0;i<this.thresholds.length;i++){var r=this.thresholds[i];if(r==n||r==o||r<n!=r<o)return!0}},o.prototype._rootIsInDom=function(){return!this.root||h(e,this.root)},o.prototype._rootContainsTarget=function(t){return h(this.root||e,t)},o.prototype._registerInstance=function(){},o.prototype._unregisterInstance=function(){},t.IntersectionObserver=o,t.IntersectionObserverEntry=n)}(window,document),exports.default=initFunc;;var i=module.exports.default||module.exports;return typeof i==="function"?i.apply(null, arguments):void 0;}());</script>
115
116
117<script type="text/javascript" data-scriptname="CONVERSION_CLICK">(function(){var exports={};var module={exports: exports};"use strict";function setup(){var e=document.querySelector('meta[name="leadpages-meta-id"]').content,t=document.querySelector('meta[name="active-route"]'),n=document.querySelectorAll("a[data-widget-link][data-conversion-click]");Array.prototype.forEach.call(n,function(n){var o="external"===n.dataset.linkType&&"_top"===n.target;n.addEventListener("click",function(c){if(window.center&&window.center.loaded){var a=t&&t.content?{customId:"site-".concat(e,":").concat(t.content)}:{};(o=o&&!n.getAttribute("data-standalone-leadbox"))&&(c.preventDefault(),a.callback=function(){window.top.location.href=n.href});try{window.center("get","identity",function(){return window.center("send","conversion",null,null,null,a)})}catch(e){o&&(window.top.location.href=n.href)}}})})}function initFunc(){"complete"===document.readyState?setup():window.addEventListener("DOMContentLoaded",setup)}Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=initFunc,exports.setup=setup;;var i=module.exports.default||module.exports;return typeof i==="function"?i.apply(null, arguments):void 0;}());</script>
vendor: 1 bytes, line 117
117
118<script type="text/javascript" data-scriptname="POWERED_BY">(function(){var exports={};var module={exports: exports};"use strict";function addPoweredBy(){var e='\n    <div id="powered-by-container" class="powered-by__container">\n      <div class="powered-by__sub_container">\n        <div class="powered-by__top_container">\n          <svg height="24" viewBox="0 0 28 28" fill="none" xmlns="http://www.w3.org/2000/svg" style="margin-right:6px">\n            <g clip-path="url(#paint0_angular_26_506_clip_path)"><g transform="matrix(-0.00960912 0.00960912 -0.0100269 -0.0100269 19.0863 8.76573)"><foreignObject x="-1608.46" y="-1608.46" width="3216.92" height="3216.92"><div xmlns="http://www.w3.org/1999/xhtml" style="background:conic-gradient(from 90deg,rgba(255, 255, 255, 1) 0deg,rgba(255, 255, 255, 0.8) 216deg,rgba(255, 255, 255, 0) 360deg);height:100%;width:100%;opacity:1"></div></foreignObject></g></g><path fill-rule="evenodd" clip-rule="evenodd" d="M11.8138 0.000976562C10.0343 0.000976562 8.5918 1.44349 8.5918 3.22293V8.59277H19.3317V19.3326H11.8138C10.0343 19.3326 8.5918 17.8901 8.5918 16.1107V16.1108C8.5918 17.8902 10.0343 19.3327 11.8137 19.3327H24.7016C26.481 19.3327 27.9236 17.8902 27.9236 16.1108V0.000976562H11.8138Z"/>\n            <g clip-path="url(#paint1_angular_26_506_clip_path)"><g transform="matrix(0.00960912 -0.00960912 0.0100269 0.0100269 10.4945 17.3575)"><foreignObject x="-1608.46" y="-1608.46" width="3216.92" height="3216.92"><div xmlns="http://www.w3.org/1999/xhtml" style="background:conic-gradient(from 90deg,rgba(255, 255, 255, 1) 0deg,rgba(255, 255, 255, 0.9) 144deg,rgba(255, 255, 255, 0.8) 216deg,rgba(255, 255, 255, 0) 360deg);height:100%;width:100%;opacity:1"></div></foreignObject></g></g><path fill-rule="evenodd" clip-rule="evenodd" d="M3.22 8.59277C1.44164 8.59277 0 10.0344 0 11.8128V24.7026C0 26.482 1.44251 27.9245 3.22195 27.9245H16.1118C17.8901 27.9245 19.3318 26.4829 19.3318 24.7045V8.59277H19.3317V19.3326H11.8138C10.0344 19.3326 8.59186 17.8901 8.59186 16.1107V8.59277H3.22Z"/>\n            <defs><clipPath id="paint0_angular_26_506_clip_path"><path fill-rule="evenodd" clip-rule="evenodd" d="M11.8138 0.000976562C10.0343 0.000976562 8.5918 1.44349 8.5918 3.22293V8.59277H19.3317V19.3326H11.8138C10.0343 19.3326 8.5918 17.8901 8.5918 16.1107V16.1108C8.5918 17.8902 10.0343 19.3327 11.8137 19.3327H24.7016C26.481 19.3327 27.9236 17.8902 27.9236 16.1108V0.000976562H11.8138Z"/></clipPath><clipPath id="paint1_angular_26_506_clip_path"><path fill-rule="evenodd" clip-rule="evenodd" d="M3.22 8.59277C1.44164 8.59277 0 10.0344 0 11.8128V24.7026C0 26.482 1.44251 27.9245 3.22195 27.9245H16.1118C17.8901 27.9245 19.3318 26.4829 19.3318 24.7045V8.59277H19.3317V19.3326H11.8138C10.0344 19.3326 8.59186 17.8901 8.59186 16.1107V8.59277H3.22Z"/></clipPath></defs>\n          </svg>\n          <div class="powered-by__top_text">\n            Powered by Leadpages\n          </div>\n        </div>\n        <div class="powered-by__bottom_container">\n          <div class="powered-by__bottom_header">Turn Clicks into Customers</div>\n          <div class="powered-by__bottom_body">Create your own code-free websites, landing pages, and conversion tools with a free, 14-day trial.</div>\n          <div class="powered-by__bottom_link"><a href="https://lp.leadpages.com/powered-by-leadpages/?utm_source=Leadpages&utm_medium=customerpages&utm_campaign=powered_by" target="_blank">Get Started →</a></div>\n        </div>\n      </div>\n    </div>\n  ',n='\n    <link\n      rel="preload"\n      href="https://classic-assets.leadpages.com/static-leadpages-net/fonts/opensans/OpenSans-Regular.woff2"\n      as="font"\n      type="font/woff2"\n      crossorigin\n    />\n    <link\n      rel="preload"\n      href="https://classic-assets.leadpages.com/static-leadpages-net/fonts/opensans/OpenSans-Bold.woff2"\n      as="font"\n      type="font/woff2"\n      crossorigin\n    />\n    <link\n      href="https://classic-assets.leadpages.com/static-leadpages-net/fonts/opensans_typeset.css"\n      rel="stylesheet"\n      type="text/css"\n    />\n    <style id="powered-by-style">\n      .powered-by__container {\n        position: relative;\n        min-height: 36px;\n        background-color: #000;\n        transition: all 1s ease-in;\n      }\n      .powered-by__sub_container {\n        justify-content: flex-start;\n        flex-direction: column;\n        position: absolute;\n        transition: top .2s ease-in;\n        background-color: #000;\n        overflow: hidden;\n        top: 0px;\n        left: 0px;\n        right: 0px;\n        bottom: 0px;\n      }\n      .powered-by__container:hover .powered-by__sub_container {\n        top: -142px;\n      }\n      .powered-by__container:hover .powered-by__top_container {\n        min-height: 66px;\n      }\n      .powered-by__bottom_container {\n        flex-direction: column;\n        text-align: center;\n      }\n      .powered-by__top_container,\n      .powered-by__bottom_container,\n      .powered-by__bottom_top_bar,\n      .powered-by__container {\n        display: flex;\n        width: 100%;\n        justify-content: center;\n        align-items: center;\n        font-family: "Open Sans", "Segoe UI", Helvetica, Arial, sans-serif;\n        font-size: 14px;\n        line-height: 12px;\n        color: #FFF;\n      }\n      .powered-by__bottom_top_bar {\n        padding-bottom: 24px;\n      }\n      .powered-by__top_container {\n        transition: all .1s ease-in .1s;\n        min-height: 36px;\n      }\n      .powered-by__top_text {\n        cursor: default;\n      }\n      .powered-by__bottom_header {\n        flex-direction: column;\n        text-align: center;\n        margin-bottom: 8px;\n        font-weight: 700;\n      }\n      .powered-by__bottom_body {\n        flex-direction: column;\n        text-align: center;\n        line-height: 18px;\n        letter-spacing: 0;\n        width: 350px;\n        margin-bottom: 18px;\n      }\n      .powered-by__bottom_link a {\n        font-weight: 700;\n        font-size: 16px;\n        color: #FFF;\n        text-decoration: none;\n      }\n    </style>\n  ',t=document.getElementById("powered-by-style");t?t.outerHTML=n:document.head.insertAdjacentHTML("beforeend",n);var o=document.getElementById("powered-by-container");
118o?o.outerHTML=e:document.body.insertAdjacentHTML("beforeend",e)}function setup(){var e=!!document.cookie.split("; ").find(function(e){return"lpPoweredBy=1"===e});if(!1===e)try{e="1"===new URLSearchParams(window.location.search).get("lpPoweredBy")}catch(e){}!0===e&&addPoweredBy()}function init(){"complete"===document.readyState?setup():window.addEventListener("DOMContentLoaded",setup)}Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=init;;var i=module.exports.default||module.exports;return typeof i==="function"?i.apply(null, arguments):void 0;}());</script>
vendor: 1 bytes, line 118
118
119<script type="text/javascript" data-scriptname="REDUCE_MOTION">(function(){var exports={};var module={exports: exports};"use strict";function toggleThumbnail(e){document.querySelectorAll("iframe").forEach(function(t){var n=t.getAttribute("src");if(n){var o=t.parentElement.querySelector('[data-qa-selector="background-video-thumbnail"]'),c=function(e,t){e&&(e.style.display=t)},a=function(e){t.setAttribute("src","".concat(e,"&cb=").concat((new Date).getTime()))};n.includes("youtube.com")&&o?(c(o,e?"block":"none"),c(t,e?"none":"block")):n.includes("wistia.net")?a(n.replace(/autoPlay=(true|false)/,"autoPlay=".concat(!e))):n.includes("vimeo.com")&&a(n.replace("autoplay=".concat(e?1:0),"autoplay=".concat(e?0:1)))}})}function handleMotionPreference(){toggleThumbnail(window.matchMedia("(prefers-reduced-motion: reduce)").matches)}"undefined"!=typeof window&&(document.addEventListener("DOMContentLoaded",handleMotionPreference),window.matchMedia("(prefers-reduced-motion: reduce)").addEventListener("change",handleMotionPreference));;var i=module.exports.default||module.exports;return typeof i==="function"?i.apply(null, arguments):void 0;}());</script>
vendor: 1 bytes, line 119
119
vendor: 4,203 bytes, line 120
120<script type="text/javascript" data-scriptname="SMOOTHSCROLL">"use strict";function _typeof(o){return(_typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(o){return typeof o}:function(o){return o&&"function"==typeof Symbol&&o.constructor===Symbol&&o!==Symbol.prototype?"symbol":typeof o})(o)}!function(n,f){if(!("scrollBehavior"in f.documentElement.style&&!0!==n.__forceSmoothScrollPolyfill__)){var o,t=n.HTMLElement||n.Element,i=468,p={scroll:n.scroll||n.scrollTo,scrollBy:n.scrollBy,elementScroll:t.prototype.scroll||d,scrollIntoView:t.prototype.scrollIntoView},a=n.performance&&n.performance.now?n.performance.now.bind(n.performance):Date.now,l=(o=n.navigator.userAgent,new RegExp(["MSIE ","Trident/","Edge/"].join("|")).test(o)?1:0);n.scroll=n.scrollTo=function(){void 0!==arguments[0]&&(!0!==e(arguments[0])?s.call(n,f.body,void 0!==arguments[0].left?~~arguments[0].left:n.scrollX||n.pageXOffset,void 0!==arguments[0].top?~~arguments[0].top:n.scrollY||n.pageYOffset):p.scroll.call(n,void 0!==arguments[0].left?arguments[0].left:"object"!==_typeof(arguments[0])?arguments[0]:n.scrollX||n.pageXOffset,void 0!==arguments[0].top?arguments[0].top:void 0!==arguments[1]?arguments[1]:n.scrollY||n.pageYOffset))},n.scrollBy=function(){void 0!==arguments[0]&&(e(arguments[0])?p.scrollBy.call(n,void 0!==arguments[0].left?arguments[0].left:"object"!==_typeof(arguments[0])?arguments[0]:0,void 0!==arguments[0].top?arguments[0].top:void 0!==arguments[1]?arguments[1]:0):s.call(n,f.body,~~arguments[0].left+(n.scrollX||n.pageXOffset),~~arguments[0].top+(n.scrollY||n.pageYOffset)))},t.prototype.scroll=t.prototype.scrollTo=function(){if(void 0!==arguments[0])if(!0!==e(arguments[0])){var o=arguments[0].left,t=arguments[0].top;s.call(this,this,void 0===o?this.scrollLeft:~~o,void 0===t?this.scrollTop:~~t)}else{if("number"==typeof arguments[0]&&void 0===arguments[1])throw new SyntaxError("Value could not be converted");p.elementScroll.call(this,void 0!==arguments[0].left?~~arguments[0].left:"object"!==_typeof(arguments[0])?~~arguments[0]:this.scrollLeft,void 0!==arguments[0].top?~~arguments[0].top:void 0!==arguments[1]?~~arguments[1]:this.scrollTop)}},t.prototype.scrollBy=function(){void 0!==arguments[0]&&(!0!==e(arguments[0])?this.scroll({left:~~arguments[0].left+this.scrollLeft,top:~~arguments[0].top+this.scrollTop,behavior:arguments[0].behavior}):p.elementScroll.call(this,void 0!==arguments[0].left?~~arguments[0].left+this.scrollLeft:~~arguments[0]+this.scrollLeft,void 0!==arguments[0].top?~~arguments[0].top+this.scrollTop:~~arguments[1]+this.scrollTop))},t.prototype.scrollIntoView=function(){if(!0!==e(arguments[0])){var o=function(o){for(var t,l,e;!1==((o=o.parentNode)===f.body)&&!1===(l=r(t=o,"Y")&&c(t,"Y"),e=r(t,"X")&&c(t,"X"),l||e););return o}(this),t=o.getBoundingClientRect(),l=this.getBoundingClientRect();o!==f.body?(s.call(this,o,o.scrollLeft+l.left-t.left,o.scrollTop+l.top-t.top),"fixed"!==n.getComputedStyle(o).position&&n.scrollBy({left:t.left,top:t.top,behavior:"smooth"})):n.scrollBy({left:l.left,top:l.top,behavior:"smooth"})}else p.scrollIntoView.call(this,void 0===arguments[0]||arguments[0])}}function d(o,t){this.scrollLeft=o,this.scrollTop=t}function e(o){if(null===o||"object"!==_typeof(o)||void 0===o.behavior||"auto"===o.behavior||"instant"===o.behavior)return!0;if("object"===_typeof(o)&&"smooth"===o.behavior)return!1;throw new TypeError("behavior member of ScrollOptions "+o.behavior+" is not a valid value for enumeration ScrollBehavior.")}function r(o,t){return"Y"===t?o.clientHeight+l<o.scrollHeight:"X"===t?o.clientWidth+l<o.scrollWidth:void 0}function c(o,t){var l=n.getComputedStyle(o,null)["overflow"+t];return"auto"===l||"scroll"===l}function y(o){var t,l,e,r=(a()-o.startTime)/i;t=function(o){return.5*(1-Math.cos(Math.PI*o))}(r=1<r?1:r),l=o.startX+(o.x-o.startX)*t,e=o.startY+(o.y-o.startY)*t,o.method.call(o.scrollable,l,e),l===o.x&&e===o.y||n.requestAnimationFrame(y.bind(n,o))}function s(o,t,l){var e,r,i,c,s=a();c=o===f.body?(r=(e=n).scrollX||n.pageXOffset,i=n.scrollY||n.pageYOffset,p.scroll):(r=(e=o).scrollLeft,i=o.scrollTop,d),y({scrollable:e,method:c,startTime:s,startX:r,startY:i,x:t,y:l})}}(window,document);</script>
vendor: 1 bytes, line 120
120
121<script type="text/javascript" data-scriptname="CUSTOMEVENT">"use strict";!function(){if("function"==typeof window.CustomEvent)return;function t(t,e){e=e||{bubbles:!1,cancelable:!1,detail:void 0};var n=document.createEvent("CustomEvent");return n.initCustomEvent(t,e.bubbles,e.cancelable,e.detail),n}t.prototype=window.Event.prototype,window.CustomEvent=t}();</script>
vendor: 1 bytes, line 121
121
122<script type="text/javascript" data-scriptname="forEach">"use strict";window.NodeList&&!NodeList.prototype.forEach&&(NodeList.prototype.forEach=Array.prototype.forEach);</script>
vendor: 1 bytes, line 122
122
123<script type="text/javascript" data-scriptname="siteCommon">"use strict";var LPSite=window.LPSite||{};function navigateToRoute(e){if("NAVIGATE_TO_ROUTE"===e.data.type){var t=e.data.url;if(window.headerNav&&window.headerNav.router&&window.headerNav.showPage){var n=""===t||!!document.querySelector("[data-home-slug=".concat(t,"]"))?window.headerNav.homePage:document.querySelector("[data-slug=".concat(t,"]"));window.headerNav.router.navigate(t),window.headerNav.showPage(n)}else{var i=window.location,a=i.protocol,o=i.hostname;window.location.href="".concat(a,"//").concat(o,"/").concat(t)}}}LPSite.const={},LPSite.util={},"undefined"!=typeof global&&(global.LPSite=LPSite),function(){this.MIN_DESKTOP_WIDTH=960,this.MQ_DESKTOP=window.matchMedia("(min-width: ".concat(this.MIN_DESKTOP_WIDTH,"px)")),this.MQ_PREFERS_REDUCED_MOTION=window.matchMedia("(prefers-reduced-motion: reduce)"),this.HEADER_CLASS="js-site-header",this.LINK_CLASS="lp-nav__link",this.ACTIVE_LINK_CLASS="lp-nav__link--active",this.SUBNAV_CLASS="lp-subnav__link",this.SUBNAV_NAVIGATED_CLASS="lp-subnav--navigated"}.apply(LPSite.const),function(){var i=this;this.isDesktop=function(){return LPSite.const.MQ_DESKTOP.matches},this.prefersReducedMotion=function(){return LPSite.const.MQ_PREFERS_REDUCED_MOTION.matches},this.stripHash=function(e){return e.slice(0,e.lastIndexOf("#"))},this.stripTrailingSlash=function(e){return e.replace(/\/$/,"")},this.getCurrentPageBaseUrl=function(){try{var e=new URL(window.location.href),t=e.protocol,n=e.host,i=e.pathname,a=i.endsWith("/")?i.slice(0,-1):i;return"".concat(t,"//").concat(n).concat(a)}catch(e){return console.error("Failed to parse the window location href:",e),null}},this.addNavigateToRouteListener=function(){return window.addEventListener("message",navigateToRoute)},this.getSubnavTrigger=function(e){for(var t=e.parentElement.parentElement.parentElement.parentElement,n=null,i=0;i<t.children.length;i+=1){var a=t.children[i];if(a.classList.contains(LPSite.const.LINK_CLASS)){n=a;break}}return n},this.closeParentSubnav=function(e){var t=e.parentElement.parentElement.parentElement,n=i.getSubnavTrigger(e);i.isDesktop()&&requestAnimationFrame(function(){t.classList.add(LPSite.const.SUBNAV_NAVIGATED_CLASS),t.addEventListener("transitionend",function e(){t.removeEventListener("transitionend",e),n.addEventListener("mouseover",function e(){n.removeEventListener("mouseover",e),requestAnimationFrame(function(){t.classList.remove(LPSite.const.SUBNAV_NAVIGATED_CLASS)})})})})}}.apply(LPSite.util);</script>
vendor: 1 bytes, line 123
123
124<script type="text/javascript" data-scriptname="DELAY_SCRIPT">"use strict";!function(){var e=document.querySelectorAll("[data-delay-display-seconds]");[].forEach.call(e,function(e){var s=e.getAttribute("data-delay-display-seconds");setTimeout(function(){e.classList.add("is-visible"),e.classList.remove("is-delayed"),e.classList.remove("hide-section"),window.sup.tailor.triggerReCalcClassNames()},1e3*s)})}();</script>
vendor: 1 bytes, line 124
124
125<script type="text/javascript" data-scriptname="IMAGE_CLICKGUARD_SCRIPT">"use strict";window.addEventListener("contextmenu",function(t){var e=t.target.getAttribute("data-image-upload-source");"shutterstock_api"!==e&&"getty_api"!==e||t.preventDefault()});</script>
vendor: 1 bytes, line 125
125
126<script type="text/javascript" data-scriptname="SUBMISSION">(function(){var exports={};var module={exports: exports};"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var commonjsGlobal="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{};function commonjsRequire(){throw new Error("Dynamic requires are not currently supported by rollup-plugin-commonjs")}function unwrapExports(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}function createCommonjsModule(e,t){return e(t={exports:{}},t.exports),t.exports}var _typeof_1=createCommonjsModule(function(e){function t(r){return e.exports=t="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},e.exports.__esModule=!0,e.exports.default=e.exports,t(r)}e.exports=t,e.exports.__esModule=!0,e.exports.default=e.exports}),_typeof=unwrapExports(_typeof_1),toPrimitive_1=createCommonjsModule(function(e){var t=_typeof_1.default;e.exports=function(e,r){if("object"!=t(e)||!e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var o=n.call(e,r||"default");if("object"!=t(o))return o;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===r?String:Number)(e)},e.exports.__esModule=!0,e.exports.default=e.exports});unwrapExports(toPrimitive_1);var toPropertyKey_1=createCommonjsModule(function(e){var t=_typeof_1.default;e.exports=function(e){var r=toPrimitive_1(e,"string");return"symbol"==t(r)?r:r+""},e.exports.__esModule=!0,e.exports.default=e.exports});unwrapExports(toPropertyKey_1);var defineProperty=createCommonjsModule(function(e){e.exports=function(e,t,r){return(t=toPropertyKey_1(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e},e.exports.__esModule=!0,e.exports.default=e.exports}),_defineProperty=unwrapExports(defineProperty),arrayWithHoles=createCommonjsModule(function(e){e.exports=function(e){if(Array.isArray(e))return e},e.exports.__esModule=!0,e.exports.default=e.exports});unwrapExports(arrayWithHoles);var iterableToArrayLimit=createCommonjsModule(function(e){e.exports=function(e,t){var r=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=r){var n,o,i,a,s=[],u=!0,l=!1;try{if(i=(r=r.call(e)).next,0===t){if(Object(r)!==r)return;u=!1}else for(;!(u=(n=i.call(r)).done)&&(s.push(n.value),s.length!==t);u=!0);}catch(e){l=!0,o=e}finally{try{if(!u&&null!=r.return&&(a=r.return(),Object(a)!==a))return}finally{if(l)throw o}}return s}},e.exports.__esModule=!0,e.exports.default=e.exports});unwrapExports(iterableToArrayLimit);var arrayLikeToArray=createCommonjsModule(function(e){e.exports=function(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=Array(t);r<t;r++)n[r]=e[r];return n},e.exports.__esModule=!0,e.exports.default=e.exports});unwrapExports(arrayLikeToArray);var unsupportedIterableToArray=createCommonjsModule(function(e){e.exports=function(e,t){if(e){if("string"==typeof e)return arrayLikeToArray(e,t);var r={}.toString.call(e).slice(8,-1);return"Object"===r&&e.constructor&&(r=e.constructor.name),"Map"===r||"Set"===r?Array.from(e):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?arrayLikeToArray(e,t):void 0}},e.exports.__esModule=!0,e.exports.default=e.exports});unwrapExports(unsupportedIterableToArray);var nonIterableRest=createCommonjsModule(function(e){e.exports=function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")},e.exports.__esModule=!0,e.exports.default=e.exports});unwrapExports(nonIterableRest);var slicedToArray=createCommonjsModule(function(e){e.exports=function(e,t){return arrayWithHoles(e)||iterableToArrayLimit(e,t)||unsupportedIterableToArray(e,t)||nonIterableRest()},e.exports.__esModule=!0,e.exports.default=e.exports}),_slicedToArray=unwrapExports(slicedToArray);function ownKeys(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),r.push.apply(r,n)}return r}function _objectSpread(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};
126t%2?ownKeys(Object(r),!0).forEach(function(t){_defineProperty(e,t,r[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):ownKeys(Object(r)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))})}return e}function createElement(e){return document.createElement(e)}function getLocationSearch(){return window.location.search||""}function generateUUID(){var e=(new Date).getTime();return"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,function(t){var r=16*(e+Math.random())%16|0;return("x"===t?r:7&r|8).toString(16)})}function getQueryString(){return getLocationSearch().replace("?","")}function getNextUrlWithCurrentPageParameters(e){var t=getQueryString();return t?"".concat(e).concat(-1!==e.indexOf("?")?"&":"?").concat(t):e}function serializeQueryString(e){return Object.keys(e).map(function(t){return"".concat(encodeURIComponent(t),"=").concat(encodeURIComponent(e[t]))}).join("&")}function deserializeQueryString(e){return e.split("&").reduce(function(e,t){var r=e,n=t.split("="),o=_slicedToArray(n,2),i=o[0],a=void 0===i?"":i,s=o[1],u=void 0===s?"":s;return""!==a&&""!==u&&(r[decodeURIComponent(a)]=decodeURIComponent(u)),r},{})}function appendToQuery(e,t){return serializeQueryString(_objectSpread(_objectSpread({},deserializeQueryString(e)),t))}function addQueriesToUrl(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"",t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if(0===Object.keys(t).length)return e;var r=e.split("?"),n=_slicedToArray(r,2),o=n[0],i=n[1],a=void 0===i?"":i;if(!a)return[o].concat(serializeQueryString(t)).join("?");var s=a.split("#"),u=_slicedToArray(s,2),l=u[0],c=u[1],d=void 0===c?"":c;return l=appendToQuery(l,t),d&&(l="".concat(l,"#").concat(d)),"".concat(o,"?").concat(l)}function buildRedirectUrl(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r="";if(e){var n=e.indexOf("#"),o=-1===n?"":e.substr(n),i=getNextUrlWithCurrentPageParameters(-1===n?e:e.substr(0,n));i=addQueriesToUrl(i,t),r="".concat(i).concat(o)}return r}function serializeInput(e){return"".concat(encodeURIComponent(e.getAttribute("name")),"=").concat(encodeURIComponent(e.value))}var CHECK_INPUTS=["radio","checkbox"];function shouldSerializeInput(e){return!e.getAttribute("data-lp-payments")&&(!!e.getAttribute("name")&&!!e[CHECK_INPUTS.indexOf(e.type)>-1?"checked":"value"])}function toggleClass(e,t){var r=!(arguments.length>2&&void 0!==arguments[2])||arguments[2],n=e.className?e.className.split(" "):[],o=n.indexOf(t);r&&-1===o?n.push(t):r||-1===o||n.splice(o,1),e.className=n.join(" ")}function queryForElementValue(e,t){var r=e.querySelector(t);return r&&r.value||""}var sslCheck=/^https:/i;function checkForSSL(){return sslCheck.test(window.location.href)}function ownKeys$1(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),r.push.apply(r,n)}return r}function _objectSpread$1(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?ownKeys$1(Object(r),!0).forEach(function(t){_defineProperty(e,t,r[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):ownKeys$1(Object(r)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))})}return e}var META_TAG_MAP={"leadpages-meta-id":"id","leadpages-served-by":"served_by","leadpages-serving-tags":"serving_tags","leadpages-legacy-pixel-domain":"serving_domain"},DEFAULT_META={id:-1,served_by:"",type:"optin",pageId:"",serving_tags:"",serving_domain:"",uuid:generateUUID()};function metaPropForElement(e){return e&&e.name&&META_TAG_MAP[e.name]||null}function mapMetaData(e){return Array.prototype.reduce.call(e,function(e,t){var r=metaPropForElement(t);return r?_objectSpread$1(_objectSpread$1({},e),{},_defineProperty({},r,t.content)):e},_objectSpread$1({},DEFAULT_META))}function getMetaElements(){return document.querySelectorAll("meta")}function gatherMetaData(){return mapMetaData(getMetaElements())}var classCallCheck=createCommonjsModule(function(e){e.exports=function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")},e.exports.__esModule=!0,e.exports.default=e.exports}),_classCallCheck=unwrapExports(classCallCheck),createClass=createCommonjsModule(function(e){function t(e,t){for(var r=0;r<t.length;r++){var n=t[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,toPropertyKey_1(n.key),n)}}e.exports=function(e,r,n){return r&&t(e.prototype,r),n&&t(e,n),Object.defineProperty(e,"prototype",{writable:!1}),e},e.exports.__esModule=!0,e.exports.default=e.exports}),_createClass=unwrapExports(createClass),es6Promise=createCommonjsModule(function(e,t){e.exports=function(){function e(e){return"function"==typeof e}var t=Array.isArray?Array.isArray:function(e){return"[object Array]"===Object.prototype.toString.call(e)},r=0,n=void 0,o=void 0,i=function(e,t){p[r]=e,p[r+1]=t,2===(r+=2)&&(o?o(h):g())},a="undefined"!=typeof window?window:void 0,s=a||{},u=s.MutationObserver||s.WebKitMutationObserver,l="undefined"==typeof self&&"undefined"!=typeof process&&"[object process]"==={}.toString.call(process),c="undefined"!=typeof Uint8ClampedArray&&"undefined"!=typeof importScripts&&"undefined"!=typeof MessageChannel;function d(){var e=setTimeout;return function(){return e(h,1)}}var p=new Array(1e3);function h(){for(var e=0;e<r;e+=2){var t=p[e],n=p[e+1];t(n),p[e]=void 0,p[e+1]=void 0}r=0}var y,f,m,C,g=void 0;function _(e,t){var r=this,n=new this.constructor(S);void 0===n[E]&&F(n);var o=r._state;if(o){var a=arguments[o-1];i(function(){return k(o,n,a,r._result)})}else D(r,n,e,t);return n}function v(e){if(e&&"object"===_typeof(e)&&e.constructor===this)return e;var t=new this(S);return I(t,e),t}l?g=function(){return process.nextTick(h)}:u?(f=0,m=new u(h),C=document.createTextNode(""),m.observe(C,{characterData:!0}
vendor: 3,776 bytes, line 126
126),g=function(){C.data=f=++f%2}):c?((y=new MessageChannel).port1.onmessage=h,g=function(){return y.port2.postMessage(0)}):g=void 0===a&&"function"==typeof commonjsRequire?function(){try{var e=Function("return this")().require("vertx");return void 0!==(n=e.runOnLoop||e.runOnContext)?function(){n(h)}:d()}catch(e){return d()}}():d();var E=Math.random().toString(36).substring(2);function S(){}var b=void 0,A=1,P=2,T={error:null};function O(e){try{return e.then}catch(e){return T.error=e,T}}function L(t,r,n){r.constructor===t.constructor&&n===_&&r.constructor.resolve===v?function(e,t){t._state===A?N(e,t._result):t._state===P?w(e,t._result):D(t,void 0,function(t){return I(e,t)},function(t){return w(e,t)})}(t,r):n===T?(w(t,T.error),T.error=null):void 0===n?N(t,r):e(n)?function(e,t,r){i(function(e){var n=!1,o=function(e,t,r,n){try{e.call(t,r,n)}catch(e){return e}}(r,t,function(r){n||(n=!0,t!==r?I(e,r):N(e,r))},function(t){n||(n=!0,w(e,t))},e._label);!n&&o&&(n=!0,w(e,o))},e)}(t,r,n):N(t,r)}function I(e,t){var r,n;e===t?w(e,new TypeError("You cannot resolve a promise with itself")):(n=_typeof(r=t),null===r||"object"!==n&&"function"!==n?N(e,t):L(e,t,O(t)))}function R(e){e._onerror&&e._onerror(e._result),M(e)}function N(e,t){e._state===b&&(e._result=t,e._state=A,0!==e._subscribers.length&&i(M,e))}function w(e,t){e._state===b&&(e._state=P,e._result=t,i(R,e))}function D(e,t,r,n){var o=e._subscribers,a=o.length;e._onerror=null,o[a]=t,o[a+A]=r,o[a+P]=n,0===a&&e._state&&i(M,e)}function M(e){var t=e._subscribers,r=e._state;if(0!==t.length){for(var n=void 0,o=void 0,i=e._result,a=0;a<t.length;a+=3)n=t[a],o=t[a+r],n?k(r,n,o,i):o(i);e._subscribers.length=0}}function k(t,r,n,o){var i=e(n),a=void 0,s=void 0,u=void 0,l=void 0;if(i){if((a=function(e,t){try{return e(t)}catch(e){return T.error=e,T}}(n,o))===T?(l=!0,s=a.error,a.error=null):u=!0,r===a)return void w(r,new TypeError("A promises callback cannot return that same promise."))}else a=o,u=!0;r._state!==b||(i&&u?I(r,a):l?w(r,s):t===A?N(r,a):t===P&&w(r,a))}var U=0;function F(e){e[E]=U++,e._state=void 0,e._result=void 0,e._subscribers=[]}var j=function(){function e(e,r){this._instanceConstructor=e,this.promise=new e(S),this.promise[E]||F(this.promise),t(r)?(this.length=r.length,this._remaining=r.length,this._result=new Array(this.length),0===this.length?N(this.promise,this._result):(this.length=this.length||0,this._enumerate(r),0===this._remaining&&N(this.promise,this._result))):w(this.promise,new Error("Array Methods must be provided an Array"))}return e.prototype._enumerate=function(e){for(var t=0;this._state===b&&t<e.length;t++)this._eachEntry(e[t],t)},e.prototype._eachEntry=function(e,t){var r=this._instanceConstructor,n=r.resolve;if(n===v){var o=O(e);if(o===_&&e._state!==b)this._settledAt(e._state,t,e._result);else if("function"!=typeof o)this._remaining--,this._result[t]=e;else if(r===x){var i=new r(S);L(i,e,o),this._willSettleAt(i,t)}else this._willSettleAt(new r(function(t){return t(e)}),t)}else this._willSettleAt(n(e),t)},e.prototype._settledAt=function(e,t,r){var n=this.promise;n._state===b&&(this._remaining--,e===P?w(n,r):this._result[t]=r),0===this._remaining&&N(n,this._result)},e.prototype._willSettleAt=function(e,t){var r=this;D(e,void 0,function(e){return r._settledAt(A,t,e)},function(e){return r._settledAt(P,t,e)})},e}(),x=function(){function t(e){this[E]=U++,this._result=this._state=void 0,this._subscribers=[],S!==e&&("function"!=typeof e&&function(){throw new TypeError("You must pass a resolver function as the first argument to the promise constructor")}(),this instanceof t?function(e,t){try{t(function(t){I(e,t)},function(t){w(e,t)})}catch(t){w(e,t)}}(this,e):function(){throw new TypeError("Failed to construct 'Promise': Please use the 'new' operator, this object c
126onstructor cannot be called as a function.")}())}return t.prototype.catch=function(e){return this.then(null,e)},t.prototype.finally=function(t){var r=this.constructor;return e(t)?this.then(function(e){return r.resolve(t()).then(function(){return e})},function(e){return r.resolve(t()).then(function(){throw e})}):this.then(t,t)},t}();return x.prototype.then=_,x.all=function(e){return new j(this,e).promise},x.race=function(e){var r=this;return t(e)?new r(function(t,n){for(var o=e.length,i=0;i<o;i++)r.resolve(e[i]).then(t,n)}):new r(function(e,t){return t(new TypeError("You must pass an array to race."))})},x.resolve=v,x.reject=function(e){var t=new this(S);return w(t,e),t},x._setScheduler=function(e){o=e},x._setAsap=function(e){i=e},x._asap=i,x.polyfill=function(){var e=void 0;if(void 0!==commonjsGlobal)e=commonjsGlobal;else if("undefined"!=typeof self)e=self;else try{e=Function("return this")()}catch(e){throw new Error("polyfill failed because global object is unavailable in this environment")}var t=e.Promise;if(t){var r=null;try{r=Object.prototype.toString.call(t.resolve())}catch(e){}if("[object Promise]"===r&&!t.cast)return}e.Promise=x},x.Promise=x,x}()});function ownKeys$2(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),r.push.apply(r,n)}return r}function _objectSpread$2(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?ownKeys$2(Object(r),!0).forEach(function(t){_defineProperty(e,t,r[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):ownKeys$2(Object(r)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))})}return e}var FETCH_DEFAULTS={method:"GET",headers:{}};function makeParams(e){return Object.keys(e).map(function(t){return"".concat(encodeURIComponent(t),"=").concat(encodeURIComponent(e[t]))}).join("&")}function rebuildUrlWithParams(e,t){var r=makeParams(t),n=e.split("?"),o=_slicedToArray(n,2),i=o[0],a=o[1];return a&&(r="".concat(r,"&").concat(a)),"".concat(i,"?").concat(r)}var _ctaLayoutsMap,_contentTypes$SITE,_contentTypes$PAGE,_contentWidths,Request=function(){function e(){var t=this,r=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};_classCallCheck(this,e),this.opts=this.hashDefaults(r),this.xhr=new XMLHttpRequest,this.promise=new es6Prom
126ise(function(e,r){t.reject=r,t.resolve=e}),this.xhr.onreadystatechange=function(){return t.handleStateChange()},this.xhr.ontimeout=function(){return t.handleReject()}}return _createClass(e,[{key:"handleStateChange",value:function(){var e=this.xhr;4===e.readyState&&(0===e.status||e.status>=400?this.handleReject():this.handleSuccess())}},{key:"handleReject",value:function(){return this.reject(this.xhr)}},{key:"handleSuccess",value:function(){var e=this.xhr,t=this.resolve;try{t(JSON.parse(e.response,e))}catch(r){t(e.response)}}},{key:"hashDefaults",value:function(e){return _objectSpread$2(_objectSpread$2({},FETCH_DEFAULTS),e)}},{key:"setTimeout",value:function(e){this.xhr.timeout=e}},{key:"prepare",value:function(e,t,r){var n=_objectSpread$2(_objectSpread$2({},r),{},{url:t});return n.params&&(n.url=rebuildUrlWithParams(t,n.params)),e.open(n.method,n.url,!0),n.timeout&&this.setTimeout(n.timeout),Object.keys(n.headers).forEach(function(t){return e.setRequestHeader(t,n.headers[t])}),n}},{key:"send",value:function(e){var t=this.xhr,r=this.opts,n=this.promise,o=this.prepare(t,e,r);return t.send(o.body),n}}]),e}();function fetch(e,t){return new fetch.Request(t).send(e)}fetch.Request=Request;var _widgetTypes$COUNTDOW,_widgetTypes$PROGRESS,_widgetTypes$CALENDAR,_widgetTypes$CHECKOUT,_widgetVerbiages,_errorMessages,headerLayoutTypes={LNl:"LNl",LNlC:"LNlC",LNm:"LNm",LNmC:"LNmC",LNr:"LNr",LNrC:"LNrC",NlL_:"NlL_",NlL_C:"NlL_C",L$Nm:"L$Nm",L$_NmC:"L$_NmC"}
126,ctaLayoutsMap=(_defineProperty(_ctaLayoutsMap={},headerLayoutTypes.LNl,headerLayoutTypes.LNlC),_defineProperty(_ctaLayoutsMap,headerLayoutTypes.LNlC,headerLayoutTypes.LNl),_defineProperty(_ctaLayoutsMap,headerLayoutTypes.LNm,headerLayoutTypes.LNmC),_defineProperty(_ctaLayoutsMap,headerLayoutTypes.LNmC,headerLayoutTypes.LNm),_defineProperty(_ctaLayoutsMap,headerLayoutTypes.LNr,headerLayoutTypes.LNrC),_defineProperty(_ctaLayoutsMap,headerLayoutTypes.LNrC,headerLayoutTypes.LNr),_defineProperty(_ctaLayoutsMap,headerLayoutTypes.NlL_,headerLayoutTypes.NlL_C),_defineProperty(_ctaLayoutsMap,headerLayoutTypes.NlL_C,headerLayoutTypes.NlL_),_defineProperty(_ctaLayoutsMap,headerLayoutTypes.L$Nm,headerLayoutTypes.L$_NmC),_defineProperty(_ctaLayoutsMap,headerLayoutTypes.L$_NmC,headerLayoutTypes.L$Nm),_ctaLayoutsMap),widgetTypes={HEADLINE:"LpHeadlineReact",TEXT:"LpTextReact",FORM:"lp-form-react",FORM_V2:"lp-form-v2-react",FORM_V2_INPUT:"LpFormV2InputReact",CHECKOUT:"lp-checkout-react",BUTTON:"LpButtonReact",LINK:"LpLinkReact",IMAGE:"LpImageReact",LOGO:"LpLogoReact",IMAGE_AND_TEXT:"lpImageTextReact",NAV:"LpNavReact",SPACE:"LpSpaceReact",VIDEO:"LpVideoReact",ICON:"LpIconReact",LINE:"LpLineReact",COUNTDOWN:"LpCountdownTimerReact",PROGRESS_BAR:"LpProgressbarReact",SHARE:"LpShareReact",LIKE:"LpLikeReact",HTML:"LpHtmlReact",CALENDAR:"LpCalendarReact",CALENDLY:"LpCalendlyEmbedReact",OPEN_TABLE:"LpOpenTableEmbedReact",PRODUCT_SUMMARY:"LpProductSummaryReact",INPUT:"LpInputReact",BLOG_FEED:"LpBlogFeedReact",BLOG_POST:"LpBlogPostReact"},contentTypes={BAR:"LeadbarV3",BOX:"LeadboxV3",PAGE:"LeadpageV3",SITE:"SiteV3"},linkTypes={CALENDLY:"calendly",EXTERNAL:"external",LEADPAGE:"leadpage",LEADBOX:"leadbox",SECTION:"section",SITE_ROUTE:"site-route",ROUTE_SECTION:"route-section",REMAIN:"remain",DEFAULT:"default"},widgetLanguages={English:"en",Spanish:"es",French:"fr",German:"de",Portuguese:"pt-BR",Italian:"it"},contentSizes={small:"small",medium:"medium",large:"large"},contentWidths=(_defineProperty(_contentWidths={},contentTypes.SITE,(_defineProperty(_contentTypes$SITE={},contentSizes.small,"960px"),_defineProperty(_contentTypes$SITE,contentSizes.medium,"1140px"),_defineProperty(_contentTypes$SITE,contentSizes.large,"1280px"),_contentTypes$SITE)),_defineProperty(_contentWidths,contentTypes.PAGE,(_defineProperty(_contentTypes$PAGE={},contentSizes.small,"800px"),_defineProperty(_contentTypes$PAGE,contentSizes.medium,"960px"),_defineProperty(_contentTypes$PAGE,contentSizes.large,"1140px"),_contentTypes$PAGE)),_contentWidths),English=widgetLanguages.English,Spanish=widgetLanguages.Spanish,French=widgetLanguages.French,German=widgetLanguages.German,Portuguese=widgetLanguages.Portuguese,Italian=widgetLanguages.Italian,widgetVerbiages=(_defineProperty(_widgetVerbiages={},widgetTypes.COUNTDOWN,(_defineProperty(_widgetTypes$COUNTDOW={},English,{Days:"Days",Hours:"Hours",Minutes:"Minutes",Seconds:"Seconds"}),_defineProperty(_widgetTypes$COUNTDOW,Spanish,{Days:"Dias",Hours:"Horas",Minutes:"Minutos",Seconds:"Segundos"}),_defineProperty(_widgetTypes$COUNTDOW,French,{Days:"Jours",Hours:"Heures",Minutes:"Minutes",Seconds:"Secondes"}),_defineProperty(_widgetTypes$COUNTDOW,German,{Days:"Tage",Hours:"Stunden",Minutes:"Minuten",Seconds:"Sekunden"}),_defineProperty(_widgetTypes$COUNTDOW,Portuguese,{Days:"Dias",Hours:"Horas",Minutes:"Minutos",Seconds:"Segundos"}),_defineProperty(_widgetTypes$COUNTDOW,Italian,{Days:"Giorni",Hours:"Ore",Minutes:"Minuti",Seconds:"Secondi"}),_widgetTypes$COUNTDOW)),_defineProperty(_widgetVerbiages,widgetTypes.PROGRESS_BAR,(_defineProperty(_widgetTypes$PROGRESS={},English,{Complete:"Complete"}),_defineProperty(_widgetTypes$PROGRESS,Spanish,{Complete:"Completo"}),_defineProperty(_widgetTypes$PROGRESS,French,{Complete:"Terminé"}),_defineProperty(_widgetTypes$PROGRESS,German,{Complete:"Abgeschlossen"}),_defineProperty(_widgetTypes$PROGRESS,Portuguese,{Complete:"Completo"}),_defineProperty(_widgetTypes$PROGRESS,Italian,{Complete:"Completato"}),_widgetTypes$PROGRESS)),_defineProperty(_widgetVerbiages,widgetTypes.CALENDAR,(_defineProperty(_widgetTypes$CALENDAR={},English,{January:"January",February:"February",March:"March",April:"April",May:"May",June:"June",July:"July",August:"August",September:"September",October:"October",November:"November",December:"December"}),_defineProperty(_widgetTypes$CALENDAR,Spanish,{January:"Enero",February:"Febrero",March:"Marcha",April:"Abril",May:"Mayo",June:"Junio",July:"Julio",August:"Agosto",September:"Septiembre",October:"Octubre",November:"Noviembre",December:"Diciembre"}),_defineProperty(_widgetTypes$CALENDAR,French,{January:"Janvier",February:"Février",March:"Mars",April:"Avril",May:"Mai",June:"Juin",July:"Juillet",August:"Août",September:"Septembre",October:"Octobre",November:"Novembre",December:"Décembre"}),_defineProperty(_widgetTypes$CALENDAR,German,{January:"Januar",February:"Februar",March:"März",April:"April",May:"Mai",June:"Juni",July:"Juli",August:"August",September:"September",October:"Oktober",November:"November",December:"Dezember"}),_defineProperty(_widgetTypes$CALENDAR,Portuguese,{January:"Janeiro",February:"Fevereiro",March:"Março",April:"Abril",May:"Maio",June:"Junho",July:"Julho",August:"Agosto",September:"Setembro",October:"Outubro",November:"Novembro",December:"Dezembro"}),_defineProperty(_widgetTypes$CALENDAR,Italian,{January:"Gennaio",February:"Febbraio",March:"Marzo",April:"Aprile",May:"Maggio",June:"Giugno",July:"Luglio",August:"Agosto",September:"Settembre",October:"Ottobre",November:"Novembre",December:"Dicembre"}),_widgetTypes$CALENDAR)),_defineProperty(_widgetVerbiages,widgetTypes.CHECKOUT,(_defineProperty(_widgetTypes$CHECKOUT={},English,{Pay:"Pay",OrderSummary:"Order Summary",ShippingInformation:"Shipping Information",CreditCard:"Credit Card",Name:"Name",AddressLine1:"Address Line 1",AddressLine2:"Address Line 2",Country:"Country",Day:"day",EveryDay:function(e){return"every ".concat(e," days")},Week:"week",EveryWeek:function(e){return"every ".concat(e," weeks")},Month:"month",EveryMonth:function(e){return"every ".concat(e," months")},Year:"year",EveryYear:function(e){return"every ".concat(e," year")},ZipFields:{PostalCode:"Postal Code",ZipCode:"Zip Code",Pin:"Pin"},CityFields:{City:"City",TownCity:"Town or City",Suburb:"Suburb"},StateFields:{State:"State",Province:"Province",Department:"Department"},OrderBump:{CheckboxLabel:function(e){return"Yes, add ".concat(e," -")}},Coupon:{Apply:"Apply",Remove:"Remove"}}),_defineProperty(_widgetTypes$CHECKOUT,Spanish,{Pay:"Paga",OrderSummary:"Resumen de la Orden",ShippingInformation:"Información de envío",CreditCard:"Tarjeta de Crédito",Name:"Nombre",AddressLine1:"Dirección Línea 1",AddressLine2:"Dirección Línea 2",Country:"Paí
126s",Day:"día",EveryDay:function(e){return"cada ".concat(e," diario")},Week:"semana",EveryWeek:function(e){return"cada ".concat(e," semanas")},Month:"mes",EveryMonth:function(e){return"cada ".concat(e," meses")},Year:"año",EveryYear:function(e){return"cada ".concat(e," años")},ZipFields:{PostalCode:"Código Postal",ZipCode:"Código Postal",Pin:"Código Postal"},CityFields:{City:"Ciudad",TownCity:"Pueblo o Ciudad",Suburb:"Suburbio"},StateFields:{State:"Estado",Province:"Provincia",Department:"Departamento"},OrderBump:{CheckboxLabel:function(e){return"Sí, agregue ".concat(e," -")}},Coupon:{Apply:"Aplicar",Remove:"Eliminar"}}),_defineProperty(_widgetTypes$CHECKOUT,French,{Pay:"Payez",OrderSummary:"Récapitulatif de la Commande",ShippingInformation:"Informations sur la livraison",CreditCard:"Carte de crédit",Name:"Nom",AddressLine1:"Adresse 1",AddressLine2:"Adresse 2",Country:"De Campagne",Day:"jour",EveryDay:function(e){return"tous les ".concat(e," jours")},Week:"semaine",EveryWeek:function(e){return"toutes les ".concat(e," semaines")},Month:"mois",EveryMonth:function(e){return"tous les ".concat(e," mois")},Year:"an",EveryYear:function(e){return"tous les ".concat(e," ans")},ZipFields:{PostalCode:"Code Postal",ZipCode:"Code Postal",Pin:"Code Postal"},CityFields:{City:"Ville",TownCity:"Ville",Suburb:"Banlieue"},StateFields:{State:"État",Province:"Province",Department:"Département"},OrderBump:{CheckboxLabel:function(e){return"Oui, ajouter ".concat(e," -")}},Coupon:{Apply:"Appliquer",Remove:"Supprimer"}}),_defineProperty(_widgetTypes$CHECKOUT,German,{Pay:"Zahlen Sie",OrderSummary:"Bestellübersicht",ShippingInformation:"Versandinformationen",CreditCard:"Kreditkarte",Name:"Name",AddressLine1:"Anschrift Zeile 1",AddressLine2:"Anschrift Zeile 2",Country:"Land",Day:"tag",EveryDay:function(e){return"alle ".concat(e," tage")},Week:"woche",EveryWeek:function(e){return"alle ".concat(e," wochen")},Month:"monat",EveryMonth:function(e){return"alle ".concat(e," monate")},Year:"jahr",EveryYear:function(e){return"alle ".concat(e," jahre")},ZipFields:{PostalCode:"Postleitzahl",ZipCode:"Postleitzahl",Pin:"Postleitzahl"},CityFields:{City:"Stadt",TownCity:"Stadt",Suburb:"Vorort"},StateFields:{State:"Zustand",Province:"Provinz",Department:"Abteilung"},OrderBump:{CheckboxLabel:function(e){return"Ja, hinzufügen ".concat(e," -")}},Coupon:{Apply:"Anwenden",Remove:"Entfernen"}}),_defineProperty(_widgetTypes$CHECKOUT,Portuguese,{Pay:"Pague",OrderSummary:"Resumo do Pedido",ShippingInformation:"Informação de envio",CreditCard:"Cartão de Crédito",Name:"Nome",AddressLine1:"Endereço Linha 1",AddressLine2:"Endereço Linha 2",Country:"Terra",Day:"dia",EveryDay:function(e){return"a cada ".concat(e," dias")},Week:"semana",EveryWeek:function(e){return"a cada ".concat(e," semanas")},Month:"mês",EveryMonth:function(e){return"a cada ".concat(e," meses")},Year:"ano",EveryYear:function(e){return" a cada ".concat(e," anos")},ZipFields:{PostalCode:"Código Postal",ZipCode:"Código Postal",Pin:"Código Postal"},CityFields:{City:"Cidade",TownCity:"Vila ou Cidade",Suburb:"Subúrbio"},StateFields:{State:"Estado",Province:"Província",Department:"Departamento"},OrderBump:{CheckboxLabel:function(e){return"Sim, adicione ".concat(e," -")}},Coupon:{Apply:"Aplicar",Remove:"Remover"}}),_defineProperty(_widgetTypes$CHECKOUT,Italian,{Pay:"Paga",OrderSummary:"Riepilogo dell'ordine",ShippingInformation:"Informazioni sulla spedizione",CreditCard:"Carta di Credito",Name:"Nome",AddressLine1:"Indirizzo Linea 1",AddressLine2:"Indirizzo Linea 2",Country:"Nazione",Day:"giorno",EveryDay:function(e){return"ogni ".concat(e," giorni")},Week:"settimana",EveryWeek:function(e){return"ogni ".concat(e," settimane")},Month:"mese",EveryMonth:function(e){return"ogni ".concat(e," mesi")},Year:"anno",EveryYear:function(e){return" ogni ".concat(e," annis")},ZipFields:{PostalCode:"Codice Postale",ZipCode:"Codice Postale",Pin:"Codice Postale"},CityFields:{City:"Città",TownCity:"Paese o Città",Suburb:"Sobborgo"},StateFields:{State:"Stato",Province:"Provincia",Department:"Dipartimento"},OrderBump:{CheckboxLabel:function(e){return"Sí, aggiungi ".concat(e," -")}},Coupon:{Apply:"Applica",Remove:"Rimuovi"}}),_widgetTypes$CHECKOUT)),_widgetVerbiages),errorMessages=(_defineProperty(_errorMessages={},English,{getRequiredMessage:function(e){return"Please enter your ".concat(e)},getInvalidMessage:function(e){return"Please enter a valid ".concat(e)},getInvalidCouponMessage:function(){return"Invalid coupon."}}),_defineProperty(_errorMessages,Spanish,{getRequiredMessage:function(){return"Campo requerido"},getInvalidMessage:function(){return"Campo inválido`"},getInvalidCouponMessage:function(){return"Cupón inválido."}}),_defineProperty(_errorMessages,French,{getRequiredMessage:function(){return"Champ obligatoire"}
126,getInvalidMessage:function(){return"Champ invalide`"},getInvalidCouponMessage:function(){return"Coupon invalide."}}),_defineProperty(_errorMessages,German,{getRequiredMessage:function(){return"Pflichtfeld"},getInvalidMessage:function(){return"Feld ungültig`"},getInvalidCouponMessage:function(){return"Ungültiger Gutschein."}}),_defineProperty(_errorMessages,Portuguese,{getRequiredMessage:function(){return"Campo requerido"},getInvalidMessage:function(){return"Campo inválido"},getInvalidCouponMessage:function(){return"Cupom inválido."}}),_defineProperty(_errorMessages,Italian,{getRequiredMessage:function(){return"Campo richiesto"},getInvalidMessage:function(){return"Campo non valido"},getInvalidCouponMessage:function(){return"Buono non valido."}}),_errorMessages);function getVerbiageForWidget(e,t){return(widgetVerbiages[e]||{})[t||widgetLanguages.English]||{}}function getCheckoutVerbiages(e){return getVerbiageForWidget(widgetTypes.CHECKOUT,e||widgetLanguages.English)}var CountryCodes={UnitedStates:"US",France:"FR",UnitedKingdom:"GB",India:"IN",Canada:"CA",Australia:"AU",Brazil:"BR",Italy:"IT",Germany:"DE",Netherlands:"NE",Spain:"ES",Mexico:"MX",Colombia:"CO"};function makeFieldMap(e){var t,r=e.ZipFields,n=e.CityFields,o=e.StateFields;return _defineProperty(t={},CountryCodes.UnitedStates,{PostalCode:r.ZipCode,City:n.City,State:o.State}),_defineProperty(t,CountryCodes.France,{PostalCode:r.PostalCode,City:n.City,hideStateField:!0}),_defineProperty(t,CountryCodes.UnitedKingdom,{PostalCode:r.PostalCode,City:n.TownCity,hideStateField:!0}),_defineProperty(t,CountryCodes.Canada,{PostalCode:r.PostalCode,City:n.City,State:o.Province}),_defineProperty(t,CountryCodes.India,{PostalCode:r.Pin,City:n.City,State:o.State}),_defineProperty(t,CountryCodes.Australia,{PostalCode:r.PostalCode,City:n.Suburb,State:o.State}),_defineProperty(t,CountryCodes.Brazil,{PostalCode:r.PostalCode,City:n.City,State:o.State}),_defineProperty(t,CountryCodes.Italy,{PostalCode:r.PostalCode,City:n.City,State:o.Province}),_defineProperty(t,CountryCodes.Germany,{PostalCode:r.PostalCode,City:n.City,hideStateField:!0}),_defineProperty(t,CountryCodes.Netherlands,{PostalCode:r.PostalCode,City:n.City,hideStateField:!0}),_defineProperty(t,CountryCodes.Spain,{PostalCode:r.PostalCode,City:n.City,State:o.Province}),_defineProperty(t,CountryCodes.Mexico,{PostalCode:r.PostalCode,City:n.City,State:o.State}),_defineProperty(t,CountryCodes.Colombia,{PostalCode:r.PostalCode,City:n.City,State:o.Department}),_defineProperty(t,"DEFAULT",{PostalCode:r.PostalCode,City:n.City,State:o.State}),t}var LanguageCodeMap={"en-US":CountryCodes.UnitedStates,fr:CountryCodes.France,"en-GB":CountryCodes.UnitedKingdom,hi:CountryCodes.India,"fr-ca":CountryCodes.Canada,"en-ca":CountryCodes.Canada,"en-au":CountryCodes.Australia,"pt-br":CountryCodes.Brazil,it:CountryCodes.Italy,de:CountryCodes.Germany,nl:CountryCodes.Netherlands,es:CountryCodes.Spain,"es-mx":CountryCodes.Mexico,"es-co":CountryCodes.Colombia};function getNavigatorLanguageCode(){var e="";try{e=LanguageCodeMap[window.navigator.language]}catch(e){}return e||CountryCodes.UnitedStates}function getShippingLabels(e,t){var r=e||getNavigatorLanguageCode(),n=makeFieldMap(t),o=n[r]||n.DEFAULT;return{ShippingInformation:t.ShippingInformation,Name:t.Name,AddressLine1:t.AddressLine1,AddressLine2:t.AddressLine2,Country:t.Country,City:o.City,PostalCode:o.PostalCode,State:o.State,hideStateField:o.hideStateField}}var BILLING_FIELD="billing_card",SHIPPING_FIELD_CONTAINER="shipping_field_container",SHIPPING_NAME="shipping_name",SHIPPING_LINE1="shipping_address_line1",SHIPPING_LINE2="shipping_address_line2",SHIPPING_CITY="shipping_address_city",SHIPPING_STATE="shipping_address_state",SHIPPING_COUNTRY="shipping_address_country_code",SHIPPING_ZIP="shipping_address_zip",SHIPPING_INPUT_MAP={name:'[data-lp-payments="'.concat(SHIPPING_NAME,'"]'),line1:'[data-lp-payments="'.concat(SHIPPING_LINE1,'"]'),line2:'[data-lp-payments="'.concat(SHIPPING_LINE2,'"]'),city:'[data-lp-payments="'.concat(SHIPPING_CITY,'"]'),state:'[data-lp-payments="'.concat(SHIPPING_STATE,'"]'),country:'[data-lp-payments="'.concat(SHIPPING_COUNTRY,'"]'),postal_code:'[data-lp-payments="'.concat(SHIPPING_ZIP,'"]')},DATA_ATTRS={LP_TRANSACTION_TOKEN:"data-detail-token",API_URI:"data-api-uri",LP_ENV:"data-lp-env",LP_PAYMENTS:"data-lp-payments",PRICE:"data-price",TRANSACTION_NAME:"data-transaction-name",TOTAL_PRICE:"data-total-price",SKU_FORMATTED_PRICE:"data-sku-formatted-
126price",SHIPPING_REQUIRED:"data-shipping-required",DETAIL_UUID:"data-detail-uuid",DETAIL_TOKEN:"data-detail-token",PAGE_ID:"data-page-id",PRODUCT_ID:"data-product-id",PRODUCT_FIELD_TYPE:"data-product-field-type",ORDER_BUMP_ID:"data-order-bump-id",COUPON_CODE:"data-coupon-code",COUPON_DISCOUNT:"data-coupon-discount"},DATE_SELECTOR=".js-date-field",SALUTATION_SELECTOR=".js-salutation-field",COUNTRY_SELECTOR=".js-country-field",STATE_SELECTOR=".js-state-field",COUNTRY_CODE_PHONE_NUMBER_SELECTOR=".js-country-code-phone-number",forEach=function(e,t){return Array.prototype.forEach.call(e,t)};function toggleFieldDisplay(e,t){if(e&&e.parentElement&&e.parentElement.parentElement&&e.parentElement.parentElement.parentElement){var r=e.parentElement.parentElement.parentElement;r.classList.contains("form-field")&&(r.style.display=t)}}function updateFieldLabel(e,t){var r=e.parentElement,n=r&&r.firstChild;n&&"SPAN"===n.nodeName&&(n.innerText=t)}function createOption(e,t){var r=document.createElement("option");return r.text=e,r.value=t,r}function convertTimeStamp(e,t){var r=e.replace(/\//g,"-");if(-1===r.indexOf("-")){var n="".concat(r.slice(0,2),"-").concat(r.slice(2,4));8===r.length&&(n+="-".concat(r.slice(4))),r=n}try{var o;if("DateTimeField"===t)o=new Date(r).toISOString();else if("DateField"===t||"BirthdateField"===t){var i=r.split("-"),a=i.pop();i.unshift(a),o=i.join("-")}else o=r;return o}catch(e){return console.error(e),""}}var FormHelper=function(){function e(t){_classCallCheck(this,e),this.form=t,this.language=this.form.getAttribute("data-lp-language"),this.verbiages=this.language?getCheckoutVerbiages(this.language):null,this.setupHiddenDateField(),this.setupListeners(),this.setupSalutation(),(t.querySelector(COUNTRY_SELECTOR)||t.querySelector(STATE_SELECTOR))&&(this.setupCountry(),this.setupState()),this.setupCountryCodePhoneNumber()}return _createClass(e,[{key:"setupSalutation",value:function(){var e=this,t=this.form.querySelectorAll(SALUTATION_SELECTOR),r=[{name:"Mr.",value:"Mr."},{name:"Mrs.",value:"Mrs."},{name:"Dr.",value:"Dr."},{name:"Ms.",value:"Ms."}];forEach(t,function(t){t.options&&1===t.options.length&&e.setOptions(t,r)})}},{key:"setupCountry",value:function(){var e=this,t=window.iso3166.data,r=this.form.querySelectorAll(COUNTRY_SELECTOR);if(r&&r.length){var n=Object.keys(t).map(function(e){return{name:t[e].name,value:e}}).sort(function(e,t){return e.name.localeCompare(t.name)});forEach(r,function(t){t.addEventListener("change",e.countryChangeListener.bind(e)),e.setOptions(t,n)})}}},{key:"setupShippingFieldLabels",value:function(e){if(this.language&&this.verbiages){var t=e||getNavigatorLanguageCode()||"US",r=this.verbiages?getShippingLabels(t,this.verbiages):null,n=this.form.querySelectorAll(SHIPPING_INPUT_MAP.state),o=r&&r.PostalCode?this.form.querySelectorAll(SHIPPING_INPUT_MAP.postal_code):null,i=r&&r.City?this.form.querySelectorAll(SHIPPING_INPUT_MAP.city):null;n&&n.length>0&&forEach(n,function(e){r.hideStateField?(toggleFieldDisplay(e,"none"),e.removeAttribute("required")):(updateFieldLabel(e,r.State),toggleFieldDisplay(e,"block"),e.setAttribute("required","true"))}),o&&o.length>0&&forEach(o,function(e){updateFieldLabel(e,r.PostalCode)}),i&&i.length>0&&forEach(i,function(e){updateFieldLabel(e,r.City)})}}},{key:"setupState",value:function(){var e=this,t=this.language?getNavigatorLanguageCode():"US",r=window.iso3166.country(t).sub,n=this.form.querySelectorAll(STATE_SELECTOR);if(n&&n.length){var o=Object.keys(r).map(function(e){return{name:r[e].name,value:e}}).sort(function(e,t){return e.name.localeCompare(t.name)});forEach(n,function(t){e.setOptions(t,o)})}}},{key:"countryChangeListener",value:function(e){var t=this,r=window.iso3166.data,n=this.form.querySelectorAll(STATE_SELECTOR),o=e.target.value,i=[];n&&n.length&&(Object.keys(r).forEach(function(e){e===o&&(i=Object.keys(r[e].sub).map(function(t){return{name:r[e].sub[t].name,value:t}}).sort(function(e,t){return e.name.localeCompare(t.name)}))}),forEach(n,function(e){t.setOptions(e,i)})),this.setupShippingFieldLabels(o)}},{key:"setOptions",value:function(e,t,r){for(;e.firstChild;)e.removeChild(e.firstChild);if(r)e.appendChild(createOption(r.name,r.value));else{var n=e.getAttribute("data-default-placeholder")||"Select an option";e.appendChild(createOption(n,""))}return t.forEach(function(t){e.appendChild(createOption(t.name,t.value))}),this}},{key:"setupListeners",value:function(){var e=this,t=this.form.querySelectorAll(DATE_SELECTOR);forEach(t,function(t){t.addEventListener("keyup",e.changeListener.bind(e)),t.addEventListener("change",e.changeListener.bind(e)),t.value&&e.updateHiddenField(t)})}}
126,{key:"setupHiddenDateField",value:function(){var e=this,t=this.form.querySelectorAll(DATE_SELECTOR);forEach(t,function(t){var r=document.createElement("input");r.setAttribute("type","hidden");var n=t.getAttribute("name");r.setAttribute("name",n),t.removeAttribute("name"),t.dataset.name=n,e.form.appendChild(r)})}},{key:"updateHiddenField",value:function(e){var t=this.form.querySelector('[name="'.concat(e.dataset.name,'"]')),r="";e.checkValidity()&&""!==e.value&&(r=convertTimeStamp(e.value,e.dataset.kind));t.value=r}},{key:"changeListener",value:function(e){var t=e.srcElement||e.currentTarget||e.target;this.updateHiddenField(t)}},{key:"setupCountryCodePhoneNumber",value:function(){var e=this,t=window.phoneCountryCodes,r=this.form.querySelectorAll(COUNTRY_CODE_PHONE_NUMBER_SELECTOR);if(r&&r.length>0){var n=t.sort(function(e,t){var r=Object.keys(e)[0].toLowerCase(),n=Object.keys(t)[0].toLowerCase();return r<n?-1:r>n?1:0}).map(function(e){var t=Object.keys(e)[0];return{name:"+".concat(e[t]," ").concat(t),value:e[t]}});forEach(r,function(t){e.setOptions(t,n,{name:"+1 United States",value:"001"})})}}}]),e}(),REQUIRED_CLASS_NAME="js-required",REQUIRED_GROUP_CLASS_NAME="js-form-group-required",INVALID_CLASS_NAME="js-invalid",GROUP_CLASS_NAME="js-form-group",INPUT_SELECTOR="input, select, textarea",EMAIL_INPUT_SELECTOR='input[type="email"]',CAN_VALIDATE="function"==typeof document.createElement("input").checkValidity;function getParent(e){var t=e;do{if(!(t=t.parentElement)||t.classList.contains(GROUP_CLASS_NAME))return t}while(t)}function isInRequiredGroup(e){var t=getParent(e);return!(!t||!t.classList.contains(REQUIRED_GROUP_CLASS_NAME))&&t}function showError(e){var t=getParent(e);return t&&(e.validity.valueMissing||!e.checked?t.classList.add(REQUIRED_CLASS_NAME):t.classList.add(INVALID_CLASS_NAME)),e}function hideError(e){var t=getParent(e);return t&&(t.classList.remove(INVALID_CLASS_NAME),t.classList.remove(REQUIRED_CLASS_NAME)),e}function testCheckboxGroup(e){var t=e.querySelectorAll(INPUT_SELECTOR);return(t=Array.prototype.slice.call(t)).filter(function(e){return CAN_VALIDATE&&e.checkValidity(),e.checked}).length>0}function testInput(e){var t=isInRequiredGroup(e);return t?testCheckboxGroup(t)?null:e:CAN_VALIDATE?(e.checkValidity(),e.validity?null:e):null}function handleInput(e){e&&e.preventDefault&&e.preventDefault();var t=e.srcElement||e.currentTarget||e.target;testInput(t)?(hideError(t),showError(t)):hideError(t)}function validateForm(e){var t=e.querySelectorAll(EMAIL_INPUT_SELECTOR);if(!t||0===t.length||""===t[0].value||""===t[0].name)return!1;var r=e.querySelectorAll(INPUT_SELECTOR);return(r=Array.prototype.slice.call(r)).forEach(hideError),(r=r.map(testInput).filter(function(e){return e})).length?(r.forEach(showError),!1):!CAN_VALIDATE||e.checkValidity()}function initFormValidation(e){var t=e.querySelectorAll(INPUT_SELECTOR);Array.prototype.forEach.call(t,function(e){e.addEventListener("blur",handleInput),e.addEventListener("invalid",function(t){hideError(e),t.preventDefault();var r=isInRequiredGroup(e);if(r&&!testCheckboxGroup(r))return!1;return showError(e)})})}var ALERT_DEFAULT_ERROR_MESSAGE="Oops! Something went wrong. Please refresh and try again.";function buildErrorName(e){return"FORM_ERROR_".concat(e)}function findErrorsArray(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return e.errors?e.errors:e._status?e._status.errors:(console.warn("Unable to resolve error for SubmissionError: ",e),[ALERT_DEFAULT_ERROR_MESSAGE])}function getErrorMessage(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=e.response||e.responseText||e;if("string"==typeof t)try{t=JSON.parse(t)}catch(e){return t}return t.message?t.message:findErrorsArray(t).map(function(e){return e.message}).join("\n")}var SubmissionError=function(){function e(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:ALERT_DEFAULT_ERROR_MESSAGE,r=arguments.length>1?arguments[1]:void 0;_classCallCheck(this,e),this.message=getErrorMessage(t),this.originalObject=t,this.setErrorName(r)}return _createClass(e,[{key:"setErrorName",value:function(e){this.name=buildErrorName(e||generateUUID())}}]),e}();function parseError(e,t){return e instanceof SubmissionError?e:new SubmissionError(e,t)}function ownKeys$3(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),r.push.apply(r,n)}return r}function _objectSpread$3(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};
126t%2?ownKeys$3(Object(r),!0).forEach(function(t){_defineProperty(e,t,r[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):ownKeys$3(Object(r)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))})}return e}var _Array$prototype=Array.prototype,forEach$1=_Array$prototype.forEach,filter=_Array$prototype.filter,DEFAULTS={groupClassName:"js-form-group",requiredGroupClassName:"js-form-group-required",invalidClassName:"js-invalid",requiredClassName:"js-required",inputSelector:"input, select, textarea"},ERROR_CONTAINER=".error-prompt--invalid .error-description",ERROR_CLASS="is-invalid",LOADING_CLASS="is-loading",SUCCESS_CLASS="is-success",ENABLED_BUTTON_OPACITY="1",DISABLED_BUTTON_OPACITY="0.5",LOADING_ANIMATION_INTERVAL=600,SUCCESS_INTERVAL=1e3;function queryFromFormRoot(e,t){return e.parentElement.parentElement.parentElement.querySelector(t)}function parsePhoneNumber(e,t){var r="";if(!e||!e.replace(" ",""))return r;var n=e.replace(/[- ()]/g,"");return r=t?"".concat(t," ").concat(n):n}var Form=function(){function e(t){var r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};_classCallCheck(this,e),this.el=t,this.buttonEl=t.querySelector('button[type="submit"]'),this.helper=new FormHelper(t),initFormValidation(t),this.isEnabled=!0,this.options=_objectSpread$3(_objectSpread$3({},DEFAULTS),r),this.redirectParams={}}return _createClass(e,[{key:"getAttr",value:function(e){return this.el.getAttribute(e)||""}},{key:"removeAttr",value:function(e){return this.el.removeAttribute(e)}},{key:"setAttr",value:function(e,t){return this.el.setAttribute(e,t)}},{key:"setRedirectParam",value:function(e,t){this.redirectParams[e]=t}},{key:"isPayment",value:function(){return!!this.getAttr("data-lp-payments")}},{key:"addSubmitHandler",value:function(e){this.el.addEventListener("submit",e)}},{key:"enable",value:function(){this.buttonEl.removeAttribute("disabled"),this.buttonEl.style.opacity=ENABLED_BUTTON_OPACITY,this.buttonLoadingAnimation&&(window.clearTimeout(this.buttonLoadingAnimation),this.buttonLoadingAnimation=null),toggleClass(this.buttonEl,LOADING_CLASS,!1),toggleClass(this.buttonEl,SUCCESS_CLASS,!1),this.removeAttr("disabled"),this.isEnabled=!0}},{key:"disable",value:function(){var e=this,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};this.buttonEl.setAttribute("disabled",!0),this.buttonEl.style.opacity=DISABLED_BUTTON_OPACITY,t.skipLoadingMessage||(toggleClass(this.buttonEl,LOADING_CLASS,!0),this.buttonLoadingAnimation=window.setTimeout(function(){e.showSuccessCb&&e.showSuccessCb(),e.buttonLoadingAnimation=null},LOADING_ANIMATION_INTERVAL)),this.setAttr("disabled",!0),this.isEnabled=!1}},{key:"hide",value:function(){this.el.style.display="none"}},{key:"getErrorMessageContainer",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:ERROR_CONTAINER;return this.el.querySelector(e)}},{key:"hideError",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:ERROR_CONTAINER,t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:ERROR_CLASS,r=this.getErrorMessageContainer(e);toggleClass(this.el,t,!1),r.innerHTML=""}},{key:"handleError",value:function(e,t){var r=parseError(e,t);return this.displayError(r.message),this.enable(),r}},{key:"displayError",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:ERROR_CONTAINER,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:ERROR_CLASS;if(e)try{this.hideError(),this.getErrorMessageContainer(t).innerHTML=e,toggleClass(this.el,r,!0)}catch(t){console.error("'displayError' failed to display error: ".concat(e)),console.error(t)}}},{key:"getPhoneNumberElements",value:function(){return this.el.querySelectorAll("[type=tel]")}},{key:"formatPhoneNumbers",value:function(){try{forEach$1.call(this.getPhoneNumberElements(),function(e){var t=e,r=queryFromFormRoot(t,"select"),n=queryFromFormRoot(t,".js-input-hidden-phone-number"),o=r?r.value:"",i=parsePhoneNumber(t.value,o);r&&n?(n.value=i,t.removeAttribute("name"),r.removeAttribute("name")):t.value=i})}catch(e){console.error("formatPhoneNumbers",e)}}},{key:"getSubmitUrl",value:function(){return this.getAttr("action")}},{key:"getBackupUrl",value:function(){return this.getAttr("data-backup-host")}},{key:"getThankYouUrl",value:function(){return this.getAttr("data-thank-you")}},{key:"getThankYouType",value:function(){return this.getAttr("data-thank-you-type")}},{key:"getThankYouGuid",value:function(){return this.getAttr("data-thank-you-guid")}},{key:"getRedirectUrl",value:function(){return buildRedirectUrl(this.getThankYouUrl(),this.redirectParams)}},{key:"getFormData",value:function(){var e=this.el.querySelectorAll(this.options.inputSelector);return filter.call(e,function(e){return shouldSerializeInput(e)}).map(function(e){return serializeInput(e)}).join("&")}},{key:"setCompleted",value:function(){var e=this,t=function(){toggleClass(e.buttonEl,LOADING_CLASS,!1),toggleClass(e.buttonEl,SUCCESS_CLASS,!0),window.setTimeout(function(){toggleClass(e.buttonEl,SUCCESS_CLASS,!1),e.showSuccessCb=null},SUCCESS_INTERVAL)};this.buttonLoadingAnimation?this.showSuccessCb=t:t()}},{key:"getSubmitButton",value:function(){return this.el.querySelector("button")}},{key:"isValid",value:function(){return this.isEnabled&&validateForm(this.el)}}]),e}(),ITEM_TYPE={SKU:"sku",PLAN:"plan",RECURRING:"recurring",ONE_TIME:"one_time"},UI_FIELD_TYPE={PRIMARY:"primary",ORDER_BUMP:"orderBump"},ZERO_DECIMAL_CURRENCIES=["BIF","CLP","DJF","GNF","JPY","KMF","KRW","LAK","PYG","RWF","UGX","VND","VUV","XAF","XOF","XPF"],Intervals={Day:"day",Week:"week",Month:"month",Year:"year"};function formatCurrency(e,t,r){var n=r;return n>0&&!ZERO_DECIMAL_CURRENCIES.includes(t.toUpperCase())&&(n/=100),new Intl.NumberFormat(e,{style:"currency",currency:t}).format(n)}function getPrice(e){return e.unit_amount||0===e.unit_amount?e.unit_amount:e.price||0===e.price?e.price:e.amount||0===e.amount?e.amount:null}function formatPrice(e){var t=getPrice(e);return null===t?e.formattedPrice:formatCurrency(navigator.language,e.currency,t)}function getSingleInterval(e,t){switch(t){case Intervals.Day:return e.Day;case Intervals.Week:return e.Week;case Intervals.Month:return e.Month;case Intervals.Year:return e.Year;default:return""}}function getMultiInterval(e,t,r){switch(t){case Intervals.Day:return e.EveryDay(r);case Intervals.Week:return e.EveryWeek(r);case Intervals.Month:return e.EveryMonth(r);case Intervals.Year:return e.EveryYear(r);default:return""}}function formatPriceSummary(e,t){var r=getCheckoutVerbiages(t),n=formatPrice(e);return e.type!==ITEM_TYPE.RECURRING&&e.type!==ITEM_TYPE.PLAN||(e.intervalCount>1?n+=" ".concat(getMultiInterval(r,e.interval,e.intervalCount)):n+=" / ".concat(getSingleInterval(r,e.interval))),n}var FONT_SCALE=[.5625,.625,.75,.875,1,1.125,1.3125,1.5,1.6875,1.875,2.0625,2.25,2.5,2.75,3,3.25,3.5,3.75],FONT_SCALE_MD=[.5625,.625,.75,.875,1,1.125,1.3125,1.5,1.75,2,2.375,2.75,3.125,3.5,3.875,4.25,4.625,5],FONT_SCALE_LG=[.625,.75,.875,1,1.125,1.25,1.5,1.75,2,2.5,3,3.5,4,4.5,5,5.5,6,6.5],BREAK_SM=480,BREAK_MD=768,PAGE_BASE_FONT=16,getFontScale=function(e){return e<BREAK_SM?FONT_SCALE:e>=BREAK_SM&&e<BREAK_MD?FONT_SCALE_MD:FONT_SCALE_LG},determineFontSize=function(e,t){var r=getFontScale(t);return null==r?void 0:r[e-1]},fontSizeInPx=function(e,t){var r=determineFontSize(e,t);return"".concat(r*PAGE_BASE_FONT,"px")},INPUT_FONT_COLOR="#020020",INPUT_INVALID="#fa3246",INPUT_PLACEHOLDER_COLOR="#767676",INVALID_CARD_STYLES={color:"inherit",iconColor:INPUT_INVALID},getStylesFromOptions=function(e){var t=e.fontFamily,r=e.fontSize,n=e.isBold,o=e.isItalic,i=e.isUnderline,a=e.labelPosition,s=e.labels;return{fontFamily:t,fontSize:fontSizeInPx(r,window.innerWidth),fontStyle:o?"italic":"normal",fontWeight:n?700:400,textDecoration:i?"underline":"none",color:INPUT_FONT_COLOR,fontSmoothing:"antialiased",iconColor:INPUT_PLACEHOLDER_COLOR,"::placeholder":{color:"Inside"===a?s||INPUT_FONT_COLOR:INPUT_PLACEHOLDER_COLOR,fontSize:"1em"}}},STRIPE_INVALID_CLASS="js-stripe-invalid",Stripe=function(){function e(t){var r=t.formEl,n=t.publicKey,o=void 0===n?"TEST":n,i=t.fonts,a=t.handleCardFocus,s=t.language,u=void 0===s?widgetLanguages.English:s;if(_classCallCheck(this,e),!window.Stripe)throw Error("Stripe not loaded.");this.inputEl=r.querySelector("[data-lp-payments=".concat(BILLING_FIELD,"]")),this.errorEl=r.querySelector("[data-lp-payments-error]"),this.formControlEl=this.inputEl.parentElement&&this.inputEl.parentElement.parentElement,this.fonts=i||[this.inputEl.getAttribute("data-font-url")],this.stripe=window.Stripe(o,{locale:u}),this.hasPublicKey="TEST"!==o,this.handleCardFocus=a,this.init()}return _createClass(e,[{key:"setupResizeListener",value:function(){var e,t=this,r=function(){var e=fontSizeInPx(t.options.fontSize,window.innerWidth);t.updateCard({fontSize:e})};window.addEventListener("resize",function(){clearTimeout(e),e=setTimeout(r,250)})}},{key:"setupValidation",value:function(){var e=this;this.formControlEl&&(this.card.addEventListener("change",function(t){var r=t.error;
126r?(e.formControlEl.classList.add(STRIPE_INVALID_CLASS),e.errorEl.textContent=r.message):(e.formControlEl.classList.remove(STRIPE_INVALID_CLASS),e.errorEl.textContent="")}),this.handleCardFocus&&this.card.addEventListener("focus",function(){e.handleCardFocus()}))}},{key:"init",value:function(){this.options={fontFamily:this.inputEl.getAttribute("data-font-family")||"",fontSize:this.inputEl.getAttribute("data-font-size"),isBold:this.inputEl.getAttribute("data-is-bold"),isItalic:this.inputEl.getAttribute("data-is-italic"),isUnderline:this.inputEl.getAttribute("data-is-underline"),labelPosition:this.inputEl.getAttribute("data-label-position"),labels:this.inputEl.getAttribute("data-labels")};var e=this.fonts.map(function(e){return{cssSrc:e}});this.elements=this.stripe.elements({fonts:e}),this.card=this.elements.create("card",{style:{base:getStylesFromOptions(this.options),invalid:INVALID_CARD_STYLES}}),this.card.mount(this.inputEl),this.setupResizeListener(),this.setupValidation()}},{key:"updateCardStyles",value:function(e){this.options=e,this.updateCard(getStylesFromOptions(e))}},{key:"updateCard",value:function(e){this.card.update({style:{base:e}})}},{key:"createPaymentMethod",value:function(e){return this.stripe.createPaymentMethod("card",this.card,{billing_details:e})}},{key:"handleCardPayment",value:function(e,t){return this.stripe.handleCardPayment(e,this.card,{payment_method_data:{billing_details:t}})}}]),e}(),classNames={applied:"coupon-applied",applyButton:"apply-coupon-button",entered:"coupon-entered",error:"coupon-error",removeButton:"remove-coupon-button"},CouponAdapter=function(){function e(t,r){_classCallCheck(this,e),this.form=t,this.formGroup=r,this.enabled=!1,this.enableCoupon=this.enableCoupon.bind(this),this.toggleCouponEntered=this.toggleCouponEntered.bind(this),this.handleClickApply=this.handleClickApply.bind(this),this.handleClickRemove=this.handleClickRemove.bind(this),this.setupCoupon()}return _createClass(e,[{key:"fetchCoupon",value:function(e){return new Promise(function(t){return setTimeout(function(){t({valid:""!==e&&"invalid"!==e})},1e3)})}},{key:"toggleCouponEntered",value:function(e){var t=e.target.value;toggleClass(this.formGroup,classNames.entered,""!==t),this.formGroup.classList.remove(this.form.options.invalidClassName)}},{key:"enableCoupon",value:function(e){this.applyButton.classList.remove("is-loading"),this.form.enable(),this.data=e,this.enabled=e.valid,toggleClass(this.formGroup,this.form.options.invalidClassName,!e.valid),toggleClass(this.formGroup,classNames.applied,e.valid),e.valid&&(this.appliedCouponCode.textContent=this.input.value,this.appliedCouponCode.setAttribute("title",this.input.value))}},{key:"handleClickApply",value:function(){var e=this;this.applyButton.classList.add("is-loading"),this.form.disable({skipLoadingMessage:!0}),this.fetchCoupon(this.input.value).then(this.enableCoupon).catch(function(t){e.applyButton.classList.remove("is-loading"),e.form.enable(),e.form.handleError(t,"coupon-error")})}},{key:"handleClickRemove",value:function(){this.couponData=null,this.couponEnabled=!1,this.appliedCouponCode.textContent="",this.appliedCouponCode.setAttribute("title",""),this.formGroup.classList.remove(classNames.applied)}},{key:"setupCoupon",value:function(){this.input=this.formGroup.querySelector('input[name="coupon-field"]'),this.input.addEventListener("keyup",this.toggleCouponEntered),this.appliedCouponCode=this.formGroup.querySelector("[".concat(DATA_ATTRS.COUPON_CODE,"]"));var e=this.formGroup.querySelector(".".concat(classNames.applyButton));e&&(this.applyButton=e,e.addEventListener("click",this.handleClickApply));var t=this.formGroup.querySelector(".".concat(classNames.removeButton));t&&t.addEventListener("click",this.handleClickRemove)}}]),e}();function ownKeys$4(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),r.push.apply(r,n)}return r}function _objectSpread$4(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};
126t%2?ownKeys$4(Object(r),!0).forEach(function(t){_defineProperty(e,t,r[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):ownKeys$4(Object(r)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))})}return e}var SHIPPING_INPUT_CONTAINER="[data-lp-payments=".concat(SHIPPING_FIELD_CONTAINER,"]"),EMAIL_INPUT='input[type="email"]',FORM_ERRORS={PURCHASE_VERIFICATION:"purchaseVerification",PAYMENT_ERROR:"payment-error"},TRANSACTION_STATES={ERROR:"error",COMPLETE:"complete",ACTION_REQUIRED:"action_required"},POLL_TIMER=2e3,PREVIEW_ERROR='This form has not been set up yet. Connect a Stripe product to this form or visit our <a target="_blank" href="https://support.leadpages.net/hc/en-us/articles/115007085728-Checkouts-overview">Checkouts Overview</a> for more information.',PREVIEW__ERROR_CONTAINER=".error-prompt--info .error-title",PREVIEW_ERROR_CLASS="has-info",DETAIL_NOT_FOUND_ERROR="There was a problem verifying this product.",DISABLED_CONTAINER=".error-prompt--disabled .error-title",DISABLED_CLASS="is-disabled",PaymentAdapter=function(){function e(t,r){var n=this,o=arguments.length>2&&void 0!==arguments[2]&&arguments[2];_classCallCheck(this,e),this.time=Date.now(),this.form=t,this.submissionCallback=r,this.previewMode=o,this.lpEnv=this.form.getAttr(DATA_ATTRS.LP_ENV),this.isSecure=checkForSSL(),this.language=this.form.el.getAttribute("data-lp-language")||"en",this.verbiages=getCheckoutVerbiages(this.language);var i="development"===this.lpEnv||"docker"===this.lpEnv;this.isSecure||i?(this.form.addSubmitHandler(function(e){return n.handleSubmit(e)}),this.fetchHeaders={"Content-Type":"application/json","LP-TRANSACTION-TOKEN":this.form.getAttr(DATA_ATTRS.LP_TRANSACTION_TOKEN)},this.form.disable({skipLoadingMessage:!0}),this.lineItem=null,this.pollCount=0,this.transactionsUri="".concat(this.form.getAttr(DATA_ATTRS.API_URI),"/atm/v1"),this.setupForm()):this.form.hide()}return _createClass(e,[{key:"setupForm",value:function(){var e=this;return this.fetchDetail().then(function(t){return e.setupFormForDetail(t)}).catch(function(){e.stripe=new Stripe({formEl:e.form.el,publicKey:"TEST",language:e.language}),e.previewMode?e.form.displayError(PREVIEW_ERROR,PREVIEW__ERROR_CONTAINER,PREVIEW_ERROR_CLASS):e.form.displayError(DETAIL_NOT_FOUND_ERROR,DISABLED_CONTAINER,DISABLED_CLASS)})}},{key:"setupFormForDetail",value:function(e){this.setFormPaymentInfo(e),this.stripe=new Stripe({formEl:this.form.el,publicKey:e.stripePublicKey,handleCardFocus:this.form.hideError.bind(this.form),language:this.language})}},{key:"setFormPaymentInfo",value:function(e){var t=this;this.lineItem=e.lineItems[0],this.form.setAttr(DATA_ATTRS.PRICE,this.lineItem.decimalPrice),this.form.setAttr(DATA_ATTRS.TRANSACTION_NAME,e.name);var r=this.form.el.querySelector("[".concat(DATA_ATTRS.TOTAL_PRICE,"]"));r&&(r.textContent=formatPrice(this.lineItem)),e.lineItems.forEach(function(e){var r=t.form.el.querySelectorAll("[".concat(DATA_ATTRS.SKU_FORMATTED_PRICE,'="').concat(e.id,'"]'));Array.prototype.forEach.call(r,function(r){r.textContent=formatPriceSummary(e,t.language)})}),this.needsShipping=e.shippable||!!this.lineItem.shippable,this.needsShipping?this.setupShippingFields(e.customerToken&&e.customerToken.fields):this.removeShippingFields();var n=this.form.el.querySelector("[".concat(DATA_ATTRS.ORDER_BUMP_ID,"]"));if(this.orderBumpEnabled=!1,n){var o=n.dataset.orderBumpId;this.orderBump=e.lineItems.find(function(e){return e.id===o});var i=n.querySelector(".lp-form-react__checkbox-label");i&&(i.textContent="".concat(this.verbiages.OrderBump.CheckboxLabel(this.orderBump.productName)," ").concat(formatPrice(this.orderBump)));var a={currency:this.lineItem.currency,price:getPrice(this.lineItem)+getPrice(this.orderBump)},s=n.querySelector('input[type="checkbox"]'),u=this.form.el.querySelector("[".concat(DATA_ATTRS.PRODUCT_ID,'="').concat(o,'"][').concat(DATA_ATTRS.PRODUCT_FIELD_TYPE,'="').concat(UI_FIELD_TYPE.ORDER_BUMP,'"]'));s.addEventListener("change",function(e){t.orderBumpEnabled=e.target.checked,r.textContent=e.target.checked?formatPrice(a):formatPrice(t.lineItem),u&&toggleClass(u,"hidden",!t.orderBumpEnabled)})}var l=this.form.el.querySelector(".lp-form-react__coupon-field");l&&(this.coupon=new CouponAdapter(this.form,l)),e.isEnabled?this.form.enable():this.form.displayError(e.disabledMessage,DISABLED_CONTAINER,DISABLED_CLASS)}},{key:"removeShippingFields",value:function(){var e=this.form.el.querySelector(SHIPPING_INPUT_CONTAINER);e&&e.parentElement&&e.parentElement.removeChild(e)}},{key:"setupShippingFields",value:function(){var e=this,t=this.form.el.querySelector(SHIPPING_INPUT_CONTAINER);t&&(this.hasShippingFields=!0,Object.keys(SHIPPING_INPUT_MAP).map(function(t){var r=e.form.el.querySelector(SHIPPING_INPUT_MAP[t]);r.hasAttribute(DATA_ATTRS.SHIPPING_REQUIRED)?r.setAttribute("required","true"):r.removeAttribute("required")}),this.form.helper.setupShippingFieldLabels(),t.style.display="block")}},{key:"fetchDetail",value:function(){return fetch("".concat(this.transactionsUri,"/detail
126s/").concat(this.form.getAttr(DATA_ATTRS.DETAIL_UUID)),{headers:this.fetchHeaders})}},{key:"handleSubmit",value:function(e){return e&&e.preventDefault(),!!this.form.isValid()&&(this.form.disable(),this.submit())}},{key:"submit",value:function(){var e=this;return this.previewMode?this.submissionCallback():this.createPaymentMethod().then(function(t){return e.postTransaction(t)}).then(function(t){return e.pollTransaction(t)}).catch(function(t){throw e.form.handleError(t,FORM_ERRORS.PAYMENT_ERROR)}).then(this.submissionCallback)}},{key:"serializeShippingData",value:function(){var e=this.form.el;return Object.keys(SHIPPING_INPUT_MAP).reduce(function(t,r){var n=queryForElementValue(e,SHIPPING_INPUT_MAP[r]);return _objectSpread$4(_objectSpread$4({},t),{},_defineProperty({},r,n))},{})}},{key:"getPaymentData",value:function(){return{detailToken:this.form.getAttr(DATA_ATTRS.DETAIL_TOKEN),pageUuid:this.form.getAttr(DATA_ATTRS.PAGE_ID),patronEmail:queryForElementValue(this.form.el,EMAIL_INPUT)}}},{key:"setBillingDetails",value:function(){var e={email:queryForElementValue(this.form.el,EMAIL_INPUT)};if(this.needsShipping){var t=this.serializeShippingData();e.address={city:t.city,country:t.country,line1:t.line1,line2:t.line2,postal_code:t.postal_code,state:t.state},e.name=t.name}this.billingDetails=e,this.stripeBillingDetails=this.hasShippingFields?this.billingDetails:{email:e.email}}},{key:"createPaymentMethod",value:function(){var e=this;return this.setBillingDetails(),new es6Promise(function(t,r){e.stripe.createPaymentMethod(e.stripeBillingDetails).then(function(e){e.error?r(e.error):t({paymentMethodId:e.paymentMethod.id})})})}},{key:"postTransaction",value:function(e){var t=e.paymentMethodId,r=_objectSpread$4(_objectSpread$4({},this.getPaymentData()),{},{paymentMethodId:t,lineItems:[{type:this.lineItem.type,id:this.lineItem.id,price:this.lineItem.price}]});return this.orderBump&&this.orderBumpEnabled&&r.lineItems.push({type:this.orderBump.type,id:this.orderBump.id,price:this.orderBump.price}),this.billingDetails.address&&(r.shipping=_objectSpread$4(_objectSpread$4({},this.billingDetails.address),{},{zip:this.billingDetails.address.postal_code}),delete r.shipping.postal_code,r.shipping.name=this.billingDetails.name),this.pollCount=0,fetch("".concat(this.transactionsUri,"/transactions"),{method:"POST",headers:this.fetchHeaders,body:JSON.stringify(r)})}},{key:"getTransaction",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=e._meta&&e._meta.id;return fetch("".concat(this.transactionsUri,"/transactions/").concat(t),{headers:this.fetchHeaders})}},{key:"pollTransaction",value:function(){var e=this,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return this.pollCount+=1,new es6Promise(function(r,n){t&&t.state!==TRANSACTION_STATES.ERROR?t.state===TRANSACTION_STATES.COMPLETE?r(t):t.state===TRANSACTION_STATES.ACTION_REQUIRED?e.stripe.handleCardPayment(t.paymentIntentClientSecret,e.stripeBillingDetails).then(function(e){var t=e.error,o=e.paymentIntent;t?n(t):r(o)}):window.setTimeout(function(){e.getTransaction(t).then(function(t){return r(e.pollTransaction(t))})},POLL_TIMER):n(t||"no transaction found")})}}]),e}(),TrackingAdapter=function(){function e(t,r,n){_classCallCheck(this,e),this.form=t,this.meta=r,this.payment=n}return _createClass(e,[{key:"track",value:function(){this.meta.email=queryForElementValue(this.form.el,'[type="email"]');var e=document.querySelector('meta[name="active-route"]');return this.meta.customId=e&&e.content?"site-".concat(this.meta.id,":").concat(e.content):null,es6Promise.all([this.loadTrackingPixel(),this.loadCenterTracking()]).catch(function(e){return console.error("tracking pixel failure: ",e)})}},{key:"loadTrackingPixel",value:function(){var e=this,t=this.form.getAttr("data-form-id");return this.meta.serving_domain&&t?new es6Promise(function(r){var n=createElement("img");n.addEventListener("load",function(e){return r(e)}),n.addEventListener("error",function(e){return r(e)}),n.src=e.getTrackingPixelUrl(t)}):es6Promise.resolve()}},{key:"getTrackingPixelUrl",value:function(e){return addQueriesToUrl("".concat(this.meta.serving_domain,"/forms/pixel/").concat(e,"/"),this.meta)}},{key:"loadCenterTracking",value:function(){var e=this;return window.center&&window.center.loaded?this.getCenterIdentity().then(function(){return e.sendCenterEvent()}):es6Promise.resolve()}}
126,{key:"getCenterIdentity",value:function(){return new es6Promise(function(e){window.center("get","identity",function(t){return e(t)})})}},{key:"sendCenterEvent",value:function(){var e=this;return new es6Promise(function(t){var r=queryForElementValue(e.form.el,'input[name="confirm-existence"]')?"spam-conversion":"conversion",n={callback:function(){return t()}};e.meta.customId&&(n.customId=e.meta.customId),window.center("send",r,null,null,null,n)})}}]),e}();function ownKeys$5(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),r.push.apply(r,n)}return r}function _objectSpread$5(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?ownKeys$5(Object(r),!0).forEach(function(t){_defineProperty(e,t,r[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):ownKeys$5(Object(r)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))})}return e}var RECAPTCHA_V2_COMPACT_VW=460,forEach$2=Array.prototype.forEach;function waitForGrecaptcha(){return new es6Promise(function(e){window.grecaptcha&&window.grecaptcha.render?window.grecaptcha.ready(function(){return e()}):setTimeout(function(){return e(waitForGrecaptcha())},200)})}var Submission=function(){function e(t){var r=this,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};_classCallCheck(this,e),this.time=Date.now(),this.form=new Form(t),this.meta=_objectSpread$5({},n),this.submissionUuid=generateUUID(),this.submissionToken=window.sup.rt||"",this.payment=null,this.previewMode=-1!==window.location.pathname.indexOf("preview.html"),window.sup&&"function"==typeof window.sup.initFormValidation&&window.sup.initFormValidation(t),this.form.isPayment()?this.payment=new PaymentAdapter(this.form,function(){return r.submit()},this.previewMode):this.form.addSubmitHandler(function(e){return r.handleSubmit(e)}),this.initRecaptcha()}return _createClass(e,[{key:"initRecaptcha",value:function(){var e=this;this.reCaptchaEle=this.form.el.querySelector(".lp-g-recaptcha"),this.reCaptchaEle&&(this.isRecaptcha=!0,waitForGrecaptcha().then(function(){var t,r={callback:e.handleReCaptchaUpdate.bind(e)};try{t=window.top.innerWidth}catch(e){t=window.outerWidth}t<RECAPTCHA_V2_COMPACT_VW&&(r.size="compact"),e.grecaptcha=window.grecaptcha.render(e.reCaptchaEle,r)}))}},{key:"handleReCaptchaUpdate",value:function(e){""===e?this.showCaptchaError():this.removeCaptchaError()}},{key:"handleSubmit",value:function(e){return e&&e.preventDefault(),!!this.form.isValid()&&(this.isRecaptcha&&""===window.grecaptcha.getResponse(this.grecaptcha)?(this.showCaptchaError(),!1):(this.form.disable(),this.addSpamInput(),this.submit()))}},{key:"removeCaptchaError",value:function(){this.reCaptchaEle&&this.reCaptchaEle.parentElement.classList.remove("js-required")}},{key:"showCaptchaError",value:function(){this.reCaptchaEle&&this.reCaptchaEle.parentElement.classList.add("js-required")}},{key:"addSpamInput",value:function(){var e=Date.now();if(this.form.el&&!this.form.el.querySelector('input[name="lp_spam_t"]')){var t=document.createElement("input");t.setAttribute("name","lp_spam_t"),t.setAttribute("type","hidden"),t.value=e-this.time,this.form.el.appendChild(t)}}},{key:"submit",value:function(){var e=this;return this.previewMode?this.completeSubmission():(this.addSpamInput(),this.preSubmission().then(function(){return e.sendSubmission()}).then(function(){return e.trackSubmission()}).then(function(){return e.completeSubmission()}).catch(function(e){return console.error("submission:submit failure",e)}))}},{key:"preSubmission",value:function(){return this.form.formatPhoneNumbers(),es6Promise.resolve()}},{key:"trackSubmission",value:function(){return new TrackingAdapter(this.form,this.meta,this.payment).track()}},{key:"sendSubmission",value:function(){var e=this,t=addQueriesToUrl(this.form.getSubmitUrl(),{skip_redirect:!0});return this.postSubmit(t).catch(function(r){if(422===(null==r?void 0:r.status))throw e.form.handleError();return e.postSubmit(e.getBackupUrl(t))})}},{key:"getBackupUrl",value:function(e){var t=e.split("/").splice(3).join("/"),r=this.form.getBackupUrl();return"".concat(r,"/").concat(t)}},{key:"postSubmit",value:function(e){return fetch(e,{method:"POST",headers:{"Content-type":"application/x-www-form-urlencoded","x-submission-id":this.submissionUuid,"x-submission-token":this.submissionToken,"x-submission-source":this.meta.serving_tags},body:this.form.getFormData()})}},{key:"completeSubmission",value:function(){this.form.setCompleted();var e=this.findCloseButtons();forEach$2.call(e,function(e){return e.click()});var t=this.form.getRedirectUrl();t&&this.redirectTo(t)}},{key:"findCloseButtons",value:function(){return document.querySelectorAll(".js-close")}},{key:"redirectTo",value:function(e){this.form.getThankYouType()===linkTypes.SITE_ROUTE?window.top.postMessage({type:"NAVIGATE_TO_ROUTE",url:e,id:this.form.getThankYouGuid()},"*"):window.top.location.href=e}}]),e}(),map=Array.prototype.map;function initSubmission(e){var t=gatherMetaData();return map.call(e,function(e){return new Submission(e,t)})}function initFunc(){window.sup=window.sup||{};var e=document.querySelectorAll('form[data-form-version="1"]');window.sup.forms=initSubmission(e)}exports.default=initFunc,exports.initSubmission=initSubmission;;var i=module.exports.default||module.exports;return typeof i==="function"?i.apply(null, arguments):void 0;}());</script>
vendor: 1 bytes, line 126
126
127<script type="text/javascript" data-scriptname="POPPER">(function(){var exports={};var module={exports: exports};"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var commonjsGlobal="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{};function unwrapExports(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}function createCommonjsModule(e,t){return e(t={exports:{}},t.exports),t.exports}var popper_min=createCommonjsModule(function(e,t){!function(e){function t(e){return{width:(e=e.getBoundingClientRect()).width,height:e.height,top:e.top,right:e.right,bottom:e.bottom,left:e.left,x:e.left,y:e.top}}function r(e){return"[object Window]"!==e.toString()?(e=e.ownerDocument)?e.defaultView:window:e}function n(e){return{scrollLeft:(e=r(e)).pageXOffset,scrollTop:e.pageYOffset}}function o(e){return e instanceof r(e).Element||e instanceof Element}function i(e){return e instanceof r(e).HTMLElement||e instanceof HTMLElement}function a(e){return e?(e.nodeName||"").toLowerCase():null}function s(e){return(o(e)?e.ownerDocument:e.document).documentElement}function f(e){return t(s(e)).left+n(e).scrollLeft}function p(e,o,p){void 0===p&&(p=!1),e=t(e);var c={scrollLeft:0,scrollTop:0},u={x:0,y:0};return p||("body"!==a(o)&&(c=o!==r(o)&&i(o)?{scrollLeft:o.scrollLeft,scrollTop:o.scrollTop}:n(o)),i(o)?((u=t(o)).x+=o.clientLeft,u.y+=o.clientTop):(o=s(o))&&(u.x=f(o))),{x:e.left+c.scrollLeft-u.x,y:e.top+c.scrollTop-u.y,width:e.width,height:e.height}}function c(e){return{x:e.offsetLeft,y:e.offsetTop,width:e.offsetWidth,height:e.offsetHeight}}function u(e){return"html"===a(e)?e:e.parentNode||e.host||document.ownerDocument||document.documentElement}function d(e){return r(e).getComputedStyle(e)}function l(e,t){void 0===t&&(t=[]);var n=function e(t){if(0<=["html","body","#document"].indexOf(a(t)))return t.ownerDocument.body;if(i(t)){var r=d(t);if(/auto|scroll|overlay|hidden/.test(r.overflow+r.overflowY+r.overflowX))return t}return e(u(t))}(e);return n=(e="body"===a(n))?r(n):n,t=t.concat(n),e?t:t.concat(l(u(n)))}function m(e){var t;return!i(e)||!(t=e.offsetParent)||void 0!==window.InstallTrigger&&"fixed"===d(t).position?null:t}function h(e){var t=r(e);for(e=m(e);e&&0<=["table","td","th"].indexOf(a(e));)e=m(e);return e&&"body"===a(e)&&"static"===d(e).position?t:e||t}function v(e){var t;return function(){return t||(t=new Promise(function(r){Promise.resolve().then(function(){t=void 0,r(e())})})),t}}function g(e){return e.split("-")[0]}function b(){for(var e=arguments.length,t=Array(e),r=0;r<e;r++)t[r]=arguments[r];return!t.some(function(e){return!(e&&"function"==typeof e.getBoundingClientRect)})}function y(e){void 0===e&&(e={});var t=e.defaultModifiers,r=void 0===t?[]:t,n=void 0===(e=e.defaultOptions)?C:e;return function(e,t,i){function a(){f.forEach(function(e){return e()}),f=[]}void 0===i&&(i=n);var s={placement:"bottom",orderedModifiers:[],options:Object.assign({},C,{},n),modifiersData:{},elements:{reference:e,popper:t},attributes:{},styles:{}},f=[],u=!1,d={state:s,setOptions:function(i){return a(),s.options=Object.assign({},n,{},s.options,{},i),s.scrollParents={reference:o(e)?l(e):[],popper:l(t)},i=function(e){var t=function(e){var t=new Map,r=new Set,n=[];return e.forEach(function(e){t.set(e.name,e)}),e.forEach(function(e){r.has(e.name)||function e(o){r.add(o.name),[].concat(o.requires||[],o.requiresIfExists||[]).forEach(function(n){r.has(n)||(n=t.get(n))&&e(n)}),n.push(o)}(e)}),n}(e);return A.reduce(function(e,r){return e.concat(t.filter(function(e){return e.phase===r}))},[])}(function(e){var t=e.reduce(function(e,t){var r=e[t.name];return e[t.name]=r?Object.assign({},r,{},t,{options:Object.assign({},r.options,{},t.options),data:Object.assign({},r.data,{},t.data)}):t,e},{});return Object.keys(t).map(function(e){return t[e]})}([].concat(r,s.options.modifiers))),s.orderedModifiers=i.filter(function(e){return e.enabled}),s.orderedModifiers.forEach(function(e){var t=e.name,r=e.options;r=void 0===r?{}:r,"function"==typeof(e=e.effect)&&(t=e({state:s,name:t,instance:d,options:r}),f.push(t||function(){}))}),d.update()}
127,forceUpdate:function(){if(!u){var e=s.elements,t=e.reference;if(b(t,e=e.popper))for(s.rects={reference:p(t,h(e),"fixed"===s.options.strategy),popper:c(e)},s.reset=!1,s.placement=s.options.placement,s.orderedModifiers.forEach(function(e){return s.modifiersData[e.name]=Object.assign({},e.data)}),t=0;t<s.orderedModifiers.length;t++)if(!0===s.reset)s.reset=!1,t=-1;else{var r=s.orderedModifiers[t];e=r.fn;var n=r.options;n=void 0===n?{}:n,r=r.name,"function"==typeof e&&(s=e({state:s,options:n,name:r,instance:d})||s)}}},update:v(function(){return new Promise(function(e){d.forceUpdate(),e(s)})}),destroy:function(){a(),u=!0}};return b(e,t)?(d.setOptions(i).then(function(e){!u&&i.onFirstUpdate&&i.onFirstUpdate(e)}),d):d}}function w(e){return 0<=["top","bottom"].indexOf(e)?"x":"y"}function x(e){var t=e.reference,r=e.element,n=(e=e.placement)?g(e):null;e=e?e.split("-")[1]:null;var o=t.x+t.width/2-r.width/2,i=t.y+t.height/2-r.height/2;switch(n){case"top":o={x:o,y:t.y-r.height};break;case"bottom":o={x:o,y:t.y+t.height};break;case"right":o={x:t.x+t.width,y:i};break;case"left":o={x:t.x-r.width,y:i};break;default:o={x:t.x,y:t.y}}if(null!=(n=n?w(n):null))switch(i="y"===n?"height":"width",e){case"start":o[n]=Math.floor(o[n])-Math.floor(t[i]/2-r[i]/2);break;case"end":o[n]=Math.floor(o[n])+Math.ceil(t[i]/2-r[i]/2)}return o}function O(e){var t,n=e.popper,o=e.popperRect,i=e.placement,a=e.offsets,f=e.position,p=e.gpuAcceleration,c=e.adaptive,u=window.devicePixelRatio||1;e=Math.round(a.x*u)/u||0,u=Math.round(a.y*u)/u||0;var d=a.hasOwnProperty("x");a=a.hasOwnProperty("y");var l,m="left",v="top",g=window;if(c){var b=h(n);b===r(n)&&(b=s(n)),"top"===i&&(v="bottom",u-=b.clientHeight-o.height,u*=p?1:-1),"left"===i&&(m="right",e-=b.clientWidth-o.width,e*=p?1:-1)}return n=Object.assign({position:f},c&&S),p?Object.assign({},n,((l={})[v]=a?"0":"",l[m]=d?"0":"",l.transform=2>(g.devicePixelRatio||1)?"translate("+e+"px, "+u+"px)":"translate3d("+e+"px, "+u+"px, 0)",l)):Object.assign({},n,((t={})[v]=a?u+"px":"",t[m]=d?e+"px":"",t.transform="",t))}function M(e){return e.replace(/left|right|bottom|top/g,function(e){return I[e]})}function j(e){return e.replace(/start|end/g,function(e){return N[e]})}function E(e,t){var r=!(!t.getRootNode||!t.getRootNode().host);if(e.contains(t))return!0;if(r)do{if(t&&e.isSameNode(t))return!0;t=t.parentNode||t.host}while(t);return!1}function D(e){return Object.assign({},e,{left:e.x,top:e.y,right:e.x+e.width,bottom:e.y+e.height})}function P(e,o){if("viewport"===o)e=D({width:(e=r(e)).innerWidth,height:e.innerHeight,x:0,y:0});else if(i(o))e=t(o);else{var a=s(e);e=r(a),o=n(a),(a=p(s(a),e)).height=Math.max(a.height,e.innerHeight),a.width=Math.max(a.width,e.innerWidth),a.x=-o.scrollLeft,a.y=-o.scrollTop,e=D(a)}return e}function L(e,t,n){return t="clippingParents"===t?function(e){var t=l(e),r=0<=["absolute","fixed"].indexOf(d(e).position)&&i(e)?h(e):e;return o(r)?t.filter(function(e){return o(e)&&E(e,r)}):[]}(e):[].concat(t),(n=(n=[].concat(t,[n])).reduce(function(t,n){var o=P(e,n),p=r(n=i(n)?n:s(e)),c=i(n)?d(n):{};parseFloat(c.borderTopWidth);var u=parseFloat(c.borderRightWidth)||0,l=parseFloat(c.borderBottomWidth)||0,m=parseFloat(c.borderLeftWidth)||0;c="html"===a(n);var h=f(n),v=n.clientWidth+u,g=n.clientHeight+l;return c&&50<p.innerHeight-n.clientHeight&&(g=p.innerHeight-l),l=c?0:n.clientTop,u=n.clientLeft>m?u:c?p.innerWidth-v-h:n.offsetWidth-v,p=c?p.innerHeight-g:n.offsetHeight-g,n=c?h:n.clientLeft,t.top=Math.max(o.top+l,t.top),t.right=Math.min(o.right-u,t.right),t.bottom=Math.min(o.bottom-p,t.bottom),t.left=Math.max(o.left+n,t.left),t},P(e,n[0]))).width=n.right-n.left,n.height=n.bottom-n.top,n.x=n.left,n.y=n.top,n}function k(e){return Object.assign({},{top:0,right:0,bottom:0,left:0},{},e)}function B(e,t){return t.reduce(function(t,r){return t[r]=e,t},{})}function T(e,r){void 0===r&&(r={});var n=r;r=void 0===(r=n.placement)?e.placement:r;var i=n.boundary,a=void 0===i?"clippingParents":i,f=void 0===(i=n.rootBoundary)?"viewport":i;i=void 0===(i=n.elementContext)?"popper":i;var p=n.altBoundary,c=void 0!==p&&p;n=k("number"!=typeof(n=void 0===(n=n.padding)?0:n)?n:B(n,R));var u=e.elements.reference;p=e.rects.popper,a=L(o(c=e.elements[c?"popper"===i?"reference":"popper":i])?c:s(e.elements.popper),a,f),c=x({reference:f=t(u),element:p,strategy:"absolute",placement:r}),p=D(Object.assign({},p,{},c)),f="popper"===i?p:f;
127var d={top:a.top-f.top+n.top,bottom:f.bottom-a.bottom+n.bottom,left:a.left-f.left+n.left,right:f.right-a.right+n.right};if(e=e.modifiersData.offset,"popper"===i&&e){var l=e[r];Object.keys(d).forEach(function(e){var t=0<=["right","bottom"].indexOf(e)?1:-1,r=0<=["top","bottom"].indexOf(e)?"y":"x";d[e]+=l[r]*t})}return d}function W(e,t,r){return void 0===r&&(r={x:0,y:0}),{top:e.top-t.height-r.y,right:e.right-t.width+r.x,bottom:e.bottom-t.height+r.y,left:e.left-t.width-r.x}}function H(e){return["top","right","bottom","left"].some(function(t){return 0<=e[t]})}var R=["top","bottom","right","left"],_=R.reduce(function(e,t){return e.concat([t+"-start",t+"-end"])},[]),q=[].concat(R,["auto"]).reduce(function(e,t){return e.concat([t,t+"-start",t+"-end"])},[]),A="beforeRead read afterRead beforeMain main afterMain beforeWrite write afterWrite".split(" "),C={placement:"bottom",modifiers:[],strategy:"absolute"},F={passive:!0},S={top:"auto",right:"auto",bottom:"auto",left:"auto"},I={left:"right",right:"left",bottom:"top",top:"bottom"},N={start:"end",end:"start"},U=[{name:"eventListeners",enabled:!0,phase:"write",fn:function(){},effect:function(e){var t=e.state,n=e.instance,o=(e=e.options).scroll,i=void 0===o||o,a=void 0===(e=e.resize)||e,s=r(t.elements.popper),f=[].concat(t.scrollParents.reference,t.scrollParents.popper);return i&&f.forEach(function(e){e.addEventListener("scroll",n.update,F)}),a&&s.addEventListener("resize",n.update,F),function(){i&&f.forEach(function(e){e.removeEventListener("scroll",n.update,F)}),a&&s.removeEventListener("resize",n.update,F)}},data:{}},{name:"popperOffsets",enabled:!0,phase:"read",fn:function(e){var t=e.state;t.modifiersData[e.name]=x({reference:t.rects.reference,element:t.rects.popper,strategy:"absolute",placement:t.placement})},data:{}},{name:"computeStyles",enabled:!0,phase:"beforeWrite",fn:function(e){var t=e.state,r=e.options;e=void 0===(e=r.gpuAcceleration)||e,r=void 0===(r=r.adaptive)||r,e={placement:g(t.placement),popper:t.elements.popper,popperRect:t.rects.popper,gpuAcceleration:e},t.styles.popper=Object.assign({},t.styles.popper,{},O(Object.assign({},e,{offsets:t.modifiersData.popperOffsets,position:t.options.strategy,adaptive:r}))),null!=t.modifiersData.arrow&&(t.styles.arrow=Object.assign({},t.styles.arrow,{},O(Object.assign({},e,{offsets:t.modifiersData.arrow,position:"absolute",adaptive:!1})))),t.attributes.popper=Object.assign({},t.attributes.popper,{"data-popper-placement":t.placement})},data:{}},{name:"applyStyles",enabled:!0,phase:"write",fn:function(e){var t=e.state;Object.keys(t.elements).forEach(function(e){var r=t.styles[e]||{},n=t.attributes[e]||{},o=t.elements[e];i(o)&&a(o)&&(Object.assign(o.style,r),Object.keys(n).forEach(function(e){var t=n[e];!1===t?o.removeAttribute(e):o.setAttribute(e,!0===t?"":t)}))})},effect:function(e){var t=e.state,r={popper:{position:"absolute",left:"0",top:"0",margin:"0"},arrow:{position:"absolute"},reference:{}};return Object.assign(t.elements.popper.style,r.popper),t.elements.arrow&&Object.assign(t.elements.arrow.style,r.arrow),function(){Object.keys(t.elements).forEach(function(e){var n=t.elements[e],o=t.attributes[e]||{};e=Object.keys(t.styles.hasOwnProperty(e)?t.styles[e]:r[e]).reduce(function(e,t){return e[t]="",e},{}),i(n)&&a(n)&&(Object.assign(n.style,e),Object.keys(o).forEach(function(e){n.removeAttribute(e)}))})}},requires:["computeStyles"]},{name:"offset",enabled:!0,phase:"main",requires:["popperOffsets"],fn:function(e){var t=e.state,r=e.name,n=void 0===(e=e.options.offset)?[0,0]:e,o=(e=q.reduce(function(e,r){var o=t.rects,i=g(r),a=0<=["left","top"].indexOf(i)?-1:1,s="function"==typeof n?n(Object.assign({},o,{placement:r})):n;return o=(o=s[0])||0,s=((s=s[1])||0)*a,i=0<=["left","right"].indexOf(i)?{x:s,y:o}:{x:o,y:s},e[r]=i,e},{}))[t.placement],i=o.y;t.modifiersData.popperOffsets.x+=o.x,t.modifiersData.popperOffsets.y+=i,t.modifiersData[r]=e}},{name:"flip",enabled:!0,phase:"main",fn:function(e){var t=e.state,r=e.options;if(e=e.name,!t.modifiersData[e]._skip){var n=r.fallbackPlacements,o=r.padding,i=r.boundary,a=r.rootBoundary,s=r.altBoundary,f=void 0===(r=r.flipVariations)||r,p=g(r=t.options.placement);n=n||(p!==r&&f?function(e){if("auto"===g(e))return[];var t=M(e);return[j(e),t,j(t)]}(r):[M(r)]);var c=[r].concat(n).reduce(function(e,r){return e.concat("auto"===g(r)?function(e,t){void 0===t&&(t={});
127var r=t.boundary,n=t.rootBoundary,o=t.padding,i=t.flipVariations,a=t.placement.split("-")[1],s=(a?i?_:_.filter(function(e){return e.split("-")[1]===a}):R).reduce(function(t,i){return t[i]=T(e,{placement:i,boundary:r,rootBoundary:n,padding:o})[g(i)],t},{});return Object.keys(s).sort(function(e,t){return s[e]-s[t]})}(t,{placement:r,boundary:i,rootBoundary:a,padding:o,flipVariations:f}):r)},[]);n=t.rects.reference,r=t.rects.popper;var u=new Map;p=!0;for(var d=c[0],l=0;l<c.length;l++){var m=c[l],h=g(m),v="start"===m.split("-")[1],b=0<=["top","bottom"].indexOf(h),y=b?"width":"height",w=T(t,{placement:m,boundary:i,rootBoundary:a,altBoundary:s,padding:o});if(v=b?v?"right":"left":v?"bottom":"top",n[y]>r[y]&&(v=M(v)),y=M(v),(h=[0>=w[h],0>=w[v],0>=w[y]]).every(function(e){return e})){d=m,p=!1;break}u.set(m,h)}if(p)for(s=function(e){var t=c.find(function(t){if(t=u.get(t))return t.slice(0,e).every(function(e){return e})});if(t)return d=t,"break"},n=f?3:1;0<n&&"break"!==s(n);n--);t.placement!==d&&(t.modifiersData[e]._skip=!0,t.placement=d,t.reset=!0)}},requiresIfExists:["offset"],data:{_skip:!1}},{name:"preventOverflow",enabled:!0,phase:"main",fn:function(e){var t=e.state,r=e.options;e=e.name;var n=r.mainAxis,o=void 0===n||n;n=void 0!==(n=r.altAxis)&&n;var i=r.tether;i=void 0===i||i;var a=r.tetherOffset,s=void 0===a?0:a;r=T(t,{boundary:r.boundary,rootBoundary:r.rootBoundary,padding:r.padding,altBoundary:r.altBoundary}),a=g(t.placement);var f=t.placement.split("-")[1],p=!f,u=w(a);a="x"===u?"y":"x";var d=t.modifiersData.popperOffsets,l=t.rects.reference,m=t.rects.popper,v="function"==typeof s?s(Object.assign({},t.rects,{placement:t.placement})):s;if(s={x:0,y:0},o){var b="y"===u?"top":"left",y="y"===u?"bottom":"right",x="y"===u?"height":"width";o=d[u];var O=d[u]+r[b],M=d[u]-r[y],j=i?-m[x]/2:0,E="start"===f?l[x]:m[x];f="start"===f?-m[x]:-l[x],m=t.elements.arrow,m=i&&m?c(m):{width:0,height:0};var D=t.modifiersData["arrow#persistent"]?t.modifiersData["arrow#persistent"].padding:{top:0,right:0,bottom:0,left:0};b=D[b],y=D[y],m=Math.max(0,Math.min(l[x],m[x])),E=p?l[x]/2-j-m-b-v:E-m-b-v,p=p?-l[x]/2+j+m+y+v:f+m+y+v,v=t.elements.arrow&&h(t.elements.arrow),l=t.modifiersData.offset?t.modifiersData.offset[t.placement][u]:0,v=d[u]+E-l-(v?"y"===u?v.clientTop||0:v.clientLeft||0:0),p=d[u]+p-l,i=Math.max(i?Math.min(O,v):O,Math.min(o,i?Math.max(M,p):M)),d[u]=i,s[u]=i-o}n&&(n=d[a],i=Math.max(n+r["x"===u?"top":"left"],Math.min(n,n-r["x"===u?"bottom":"right"])),t.modifiersData.popperOffsets[a]=i,s[a]=i-n),t.modifiersData[e]=s},requiresIfExists:["offset"]},{name:"arrow",enabled:!0,phase:"main",fn:function(e){var t,r=e.state;e=e.name;var n=r.elements.arrow,o=r.modifiersData.popperOffsets,i=g(r.placement),a=w(i);if(i=0<=["left","right"].indexOf(i)?"height":"width",n){var s=r.modifiersData[e+"#persistent"].padding;n=c(n);var f="y"===a?"top":"left",p="y"===a?"bottom":"right",u=r.rects.reference[i]+r.rects.reference[a]-o[a]-r.rects.popper[i];o=o[a]-r.rects.reference[a];var d=r.elements.arrow&&h(r.elements.arrow);i=Math.max(s[f],Math.min(r.rects.popper[i]/2-n[i]/2+(u/2-o/2-(d?"y"===a?d.clientLeft||0:d.clientTop||0:0)),r.rects.popper[i]-n[i]-s[p])),r.modifiersData[e]=((t={})[a]=i,t)}},effect:function(e){var t=e.state,r=e.options;e=e.name;var n=r.element;n=void 0===n?"[data-popper-arrow]":n,r=void 0===(r=r.padding)?0:r,("string"!=typeof n||(n=t.elements.popper.querySelector(n)))&&E(t.elements.popper,n)&&(t.elements.arrow=n,t.modifiersData[e+"#persistent"]={padding:k("number"!=typeof r?r:B(r,R))})},requires:["popperOffsets"],requiresIfExists:["preventOverflow"]},{name:"hide",enabled:!0,phase:"main",requiresIfExists:["preventOverflow"],fn:function(e){var t=e.state;e=e.name;var r=t.rects.reference,n=t.rects.popper,o=t.modifiersData.preventOverflow,i=T(t,{elementContext:"reference"}),a=T(t,{altBoundary:!0});r=W(i,r),n=W(a,n,o),o=H(r),a=H(n),t.modifiersData[e]={referenceClippingOffsets:r,popperEscapeOffsets:n,isReferenceHidden:o,hasPopperEscaped:a},t.attributes.popper=Object.assign({},t.attributes.popper,{"data-popper-reference-hidden":o,"data-popper-escaped":a})}}],V=y({defaultModifiers:U});e.createPopper=V,e.defaultModifiers=U,e.popperGenerator=y,Object.defineProperty(e,"__esMo
127dule",{value:!0})}(t)}),Popper=unwrapExports(popper_min);function initFunc(){window.createPopper=Popper.createPopper}exports.default=initFunc;;var i=module.exports.default||module.exports;return typeof i==="function"?i.apply(null, arguments):void 0;}());</script>
vendor: 1 bytes, line 127
127
128<script type="text/javascript" data-scriptname="siteSectionLinks">"use strict";!function(i,l){var n=i.LPSite||{},t=n.const,e=t.HEADER_CLASS,a=t.SUBNAV_CLASS,r=n.util,o=r.stripHash,s=r.stripTrailingSlash,c=r.getCurrentPageBaseUrl,u=r.prefersReducedMotion,h=r.closeParentSubnav,d=l.querySelector(".".concat(e)),g=c(),f="sticky"===d.dataset.scrolling,p=l.querySelectorAll("[data-link-type=route-section]"),v="top",S=function(t){return"a"===t.toLowerCase()};function y(t){var e=l.querySelector('[data-guid="'.concat(t,'"]')),n=l.querySelector(".lp-bar__pusher"),a=0;if(n&&"top"===v&&(a=n.getBoundingClientRect().height),f||n){var r=f?d.getBoundingClientRect().height:0,o=e.getBoundingClientRect().top+i.scrollY-r-a;i.scrollTo({top:o,left:0,behavior:"smooth"})}else e.scrollIntoView({behavior:"smooth"})}function m(t){if(function(t){var e=S(t.tagName)?t:t.parentElement;if(!S(e.tagName))return!1;var n=0<e.hash.length,a=s(o(e.href))===g;return n&&a}(t.target)){t.preventDefault();var e=t.currentTarget;y(e.dataset.routeSectionGuid),e.classList.contains(a)&&h(e),t.target.hash!==i.location.hash&&i.history.pushState(null,null,e.href)}}
128p.forEach(function(t){return t.addEventListener("click",m)}),i.addEventListener("load",function(){var t=n.hashCache;if(!u()&&t){var e=l.getElementById(t.substring(1)).parentElement.dataset.guid;setTimeout(function(){y(e),i.history.replaceState(null,null,t)},200)}}),i.addEventListener("message",function(t){var e=t.data;"REPOSITION"===e.type&&(v=e.payload.position)})}(window,document);</script>
vendor: 1 bytes, line 128
128
129<script type="text/javascript" data-scriptname="siteHeaderNav">"use strict";!function(t,e){var r=t.LPSite||{},a=r.const,c=a.HEADER_CLASS,i=a.LINK_CLASS,n=a.ACTIVE_LINK_CLASS,o=r.util,s=o.getCurrentPageBaseUrl,S=o.stripTrailingSlash,l=o.addNavigateToRouteListener,u=e.querySelector(".".concat(c)).querySelectorAll(".".concat(i)),L=s();l(),u.forEach(function(t){S(t.href)===L&&t.classList.add(n)})}(window,document);</script>
129
130
131<script type="text/javascript" data-scriptname="LpInputReact">(function(){var exports={};var module={exports: exports};"use strict";module.exports=function(t){function n(t){var n,r=t;try{var e=t.getAttribute("data-url");if(e){var i=(n=e,window.location.search.substring(1).split("&").map(function(t){return t.split("=")}).filter(function(t){return t[0]===n}).map(function(t){return decodeURIComponent(t[1])}).pop());i&&(r.value=i)}}catch(t){return}}t(function(t){if(t)for(var r=t.querySelectorAll(".js-input-mapping"),e=0;e<r.length;e+=1)n(r[e])})};;var i=module.exports.default||module.exports;return typeof i==="function"?i.apply(null, arguments):void 0;})(function(i){window.sup.register('LpInputReact',i)});</script>
vendor: 1 bytes, line 131
131
132<script type="text/javascript" data-scriptname="LpNavReact">(function(){var exports={};var module={exports: exports};"use strict";module.exports=function(e,t){e(function(e){if(!t){var a=document.getElementById("header-section").querySelector(".lp-nav"),n=a.querySelectorAll(".lp-nav__link-container"),s=a.cloneNode();s.setAttribute("id","siteSubnavPortal"),s.classList.add("lp-nav","lp-nav__link-container"),n.forEach(function(e){var t=null;function a(a){if(a.relatedTarget){var s=a.relatedTarget===e,r=!1;a.relatedTarget.classList&&a.relatedTarget.classList.contains&&(r=a.relatedTarget.classList.contains("lp-subnav")),t&&!r&&!s&&(l.classList.remove("lp-subnav--open"),n.classList.remove("lp-subnav--animate-in"),t.destroy(),t=null)}}var n=e.querySelector(".lp-subnav");if(n){var l=document.createElement("div"),r=n.querySelectorAll("a");l.classList.add("lp-subnav--popper"),l.appendChild(n),s.appendChild(l),e.addEventListener("mouseenter",function(){l.classList.add("lp-subnav--open"),setTimeout(function(){n.classList.add("lp-subnav--animate-in")},0),t=window.createPopper(e,l,{placement:"bottom-start",strategy:document.querySelector('.site-header[data-scrolling="sticky"]')?"fixed":"absolute"})}),e.addEventListener("mouseleave",a),s.addEventListener("mouseleave",a),r.forEach(function(e){e.addEventListener("click",a)})}}),s.querySelector(".lp-subnav--popper")&&document.body.appendChild(s)}})};;var i=module.exports.default||module.exports;return typeof i==="function"?i.apply(null, arguments):void 0;})(function(i){window.sup.register('LpNavReact',i)});</script>
132
133    
133<script type="text/javascript">
134    (function(){performance&&performance.timing&&window.addEventListener("load",function(){return setTimeout(function(){var e=document.querySelector("meta[name='leadpages-serving-domain']");if(e||e.content!==location.hostname){var t=performance.timing;(new Image).src="https://api.leadpages.io/analytics/v1/observations/capture?version=1.7.13&origin=page-speed&kind=timer,timer,timer,timer,timer,timer,timer,timer,timer,timer&label=domain-lookup,connect,request,ttfb,response,loading,interactive,content-loaded,complete,load&value="+[t.domainLookupEnd-t.domainLookupStart,t.connectEnd-t.connectStart,t.responseStart-t.requestStart,t.responseStart-t.fetchStart,t.responseEnd-t.responseStart,t.domLoading-t.fetchStart,t.domInteractive-t.fetchStart,t.domContentLoadedEventEnd-t.fetchStart,t.domComplete-t.fetchStart,(t.loadEventEnd||t.loadEventStart)-t.fetchStart].join(",")}},0)})}());
135    </script>
135
136    
137  
138
139  
140
141
142<script data-htmlpub-analytics>
143(function(){
144var PID="gg1x1lcpx32tjslsbqxxqmm5";
145var EXP_ID="";
146var EXP_VARIANT="";
147var API="/collect";
148var APP_ORIGIN="https://htmlpub.com";
149var FLUSH_INTERVAL=5000;
150var FLUSH_MAX=20;
151
152// HP-4568 consent gate. Runs onGranted() at most once, only when analytics
153// storage is permitted. See app/src/lib/analytics-consent-gate.ts.
154function hpConsent(onGranted){
155var started=false;
156function start(){if(started)return;started=true;try{onGranted();}catch(e){}}
157
158// Browser-level objection (Global Privacy Control / legacy Do-Not-Track) is
159// terminal: it is the visitor speaking directly, so no later CMP "accept all"
160// re-enables tracking for this page view. Mirrors the Customers.ai pixel gate.
161try{
162if(navigator.globalPrivacyControl===true)return;
163var dnt=navigator.doNotTrack||window.doNotTrack||navigator.msDoNotTrack;
164if(dnt==="1"||dnt===1||dnt===true)return;
165}catch(e){}
166
167// Analytics/statistics consent per whichever CMP the page carries:
168//    1 granted / 0 denied / -1 present but undecided / null no CMP detected
169function hpConsentState(){
170// Google consent mode v2 first: vendor-neutral, so a CMP writing it (directly
171// or via GTM) is authoritative even before its own JS API initialises. Last
172// write wins, matching gtag's 'default' then 'update'.
173try{
174var dl=window.dataLayer;
175if(dl&&dl.length){
176var seen=null;
177for(var i=0;i<dl.length;i++){
178var entry=dl[i];
179if(!entry||entry[0]!=="consent"||!entry[2])continue;
180var mode=entry[2].analytics_storage;
181if(mode==="granted")seen=1;else if(mode==="denied")seen=0;
182}
183if(seen!==null)return seen;
184}
185}catch(e){}
186// Cookiebot. Its object appears only once uc.js has run, so fall back to the
187// script tag it is installed as to tell "undecided" from "absent".
188try{
189var cb=window.Cookiebot||window.CookieConsent;
190if(cb&&cb.consent)return cb.consent.statistics?1:(cb.hasResponse?0:-1);
191if(document.getElementById("Cookiebot")||document.querySelector("script[src*='consent.cookiebot.com'],script[src*='consentcdn.cookiebot.com']"))return -1;
192}catch(e){}
193// OneTrust: statistics is the reserved C0002 group. OneTrust comma-pads the
194// list itself, so the delimited match cannot hit C00020. Every runtime signal
195// it exposes appears only after otSDKStub.js runs, so without the script-tag
196// fallback a blocked or async stub reads as "no CMP" and we would track — the
197// exact bug, on the pages most likely to care.
198try{
199var groups=window.OptanonActiveGroups||window.OnetrustActiveGroups;
200if(typeof groups==="string"&&groups)return groups.indexOf(",C0002,")>-1?1:0;
201if(window.OneTrust||window.Optanon||document.getElementById("onetrust-consent-sdk")||document.querySelector("script[src*='cookielaw.org'],script[src*='onetrust.com']"))return -1;
202}catch(e){}
203// CookieYes
204try{
205if(typeof window.getCkyConsent==="function"){
206var cky=window.getCkyConsent();
207if(cky&&cky.categories)return cky.categories.analytics?1:0;
208}
209if(document.querySelector("script[src*='cookieyes.com'],script[src*='cookie-script.com']"))return -1;
210}catch(e){}
211// Iubenda: purpose 4 is measurement.
212try{
213var iub=window._iub;
214if(iub&&iub.cs&&iub.cs.consent&&iub.cs.consent.purposes)return iub.cs.consent.purposes[4]?1:0;
215if(iub||document.querySelector("script[src*='iubenda.com']"))return -1;
216}catch(e){}
217return null;
218}
219
220var state=hpConsentState();
221if(state===null||state===1){start();return;}
222
223// CMP present, analytics not granted: write nothing, send nothing, and listen
224// for a later grant. The poll is a catch-all for CMPs whose event names we do
225// not know; it stops after 60s rather than running forever.
226function recheck(){if(hpConsentState()===1)start();}
227var EVENTS=["CookiebotOnAccept","CookiebotOnConsentReady","CookieConsentDeclaration","cookieyes-consent-update","consent.onetrust","OneTrustGroupsUpdated","iubenda-consent-given","hp-analytics-consent"];
228for(var evt=0;evt<EVENTS.length;evt++){try{window.addEventListener(EVENTS[evt],recheck,false);}catch(e){}}
229var polls=0;
230var timer=setInterval(function(){recheck();if(started||++polls>=120)clearInterval(timer);},500);
231}
232
233// Everything below mints an identifier or sends a beacon, so all of it waits
234// for consent. window.__hpupPushEvent is the exception: it binds synchronously
235// here and only forwards once consent arrives. Binding it late would let the
236// popup embed bundle's fallback shim (app/src/lib/popups/embed-bundle.ts,
237// registered under the same "if not already defined" test) claim the name first
238// and reroute pop-up events. Pre-consent calls are dropped, not queued — they
239// have no visitorId. SYNC with app/src/lib/analytics-tracking-script.ts.
240var hpPush=null;
241if(!window.__hpupPushEvent){window.__hpupPushEvent=function(t,p){try{if(hpPush)hpPush(t,p);}catch(e){}};}
242hpConsent(function(){
243
244function uuid(){return"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,function(c){var r=Math.random()*16|0;return(c==="x"?r:(r&3|8)).toString(16)});}
245function getOrSet(store,key){try{var v=store.getItem(key);if(v)return v;v=uuid();store.setItem(key,v);return v;}catch(e){return uuid();}}
246
247var visitorId=getOrSet(localStorage,"_hp_vid");
248var sessionId=getOrSet(sessionStorage,"_hp_sid");
249
250var params=new URLSearchParams(location.search);
251var utmSource=params.get("utm_source")||undefined;
252var utmMedium=params.get("utm_medium")||undefined;
253var utmCampaign=params.get("utm_campaign")||undefined;
254// Ad-platform click IDs (conversion feedback loop) — captured like the UTMs.
255// SYNC with canonical at app/src/lib/analytics-tracking-script.ts.
256var gclid=params.get("gclid")||undefined;
257var fbclid=params.get("fbclid")||undefined;
258var msclkid=params.get("msclkid")||undefined;
259
260var vw=window.innerWidth||0;
261var vh=window.innerHeight||0;
262var ua=navigator.userAgent||"";
263var isMobileUA=/Android|iPhone|iPod|iPad|webOS|BlackBerry|IEMobile|Opera Mini/i.test(ua);
264var maxScreenDim=Math.max(screen.width||0,screen.height||0);
265var deviceType=isMobileUA?(maxScreenDim<=812||vw<768?"mobile":"tablet"):"desktop";
266
267function detectBrowser(){
268if(ua.indexOf("Edg/")>-1)return"Edge";
269if(ua.indexOf("Chrome/")>-1)return"Chrome";
270if(ua.indexOf("Safari/")>-1&&ua.indexOf("Chrome/")===-1)return"Safari";
271if(ua.indexOf("Firefox/")>-1)return"Firefox";
272return"Other";
273}
274function detectOS(){
275if(ua.indexOf("iPhone")>-1||ua.indexOf("iPad")>-1)return"iOS";
276if(ua.indexOf("Android")>-1)return"Android";
277if(ua.indexOf("Mac OS")>-1)return"macOS";
278if(ua.indexOf("Windows")>-1)return"Windows";
279if(ua.indexOf("Linux")>-1)return"Linux";
280return"Other";
281}
282var browserFamily=detectBrowser();
283var osFamily=detectOS();
284
285var buffer=[];
286function makeEvent(type,payload){
287return{pageId:PID,eventType:type,visitorId:visitorId,sessionId:sessionId,payload:payload||undefined,referrer:document.referrer||undefined,utmSource:utmSource,utmMedium:utmMedium,utmCampaign:utmCampaign,gclid:gclid,fbclid:fbclid,msclkid:msclkid,deviceType:deviceType,browserFamily:browserFamily,osFamily:osFamily,viewportWidth:vw,viewportHeight:vh,experimentId:EXP_ID||undefined,experimentVariant:EXP_VARIANT||undefined,timestamp:Date.now()};
288}
289function pushEvent(type,payload){buffer.push(makeEvent(type,payload));if(buffer.length>=FLUSH_MAX)flush();}
290
291// HP-1557 — expose a single-arg helper so the popups runtime (separate IIFE,
292// no shared closure with analytics) can feed events into the same buffer.
293// Defensive: only set if not already defined so a future second analytics
294// injection doesn't clobber an in-flight handler. HP-4568: the name is bound
295// above, outside the consent gate; this is where it starts forwarding.
296hpPush=pushEvent;
297// NOTE (HP-3461): this copy deliberately does NOT register window.__hpTrack, even
298// though the app copy registers both names. checkout-script.ts guards on
299// __hpTrack, and inject.ts appends that script to every edge-served page, so
300// adding the name here would start writing checkout_started for the entire edge
301// fleet (pubhtml.com + all custom domains) where that beacon has always been a
302// no-op — beginning an ecommerce event series mid-history, and moving the derived
303// checkout_abandoned with it, from a change about page engagement. It is a real
304// gap and wants its own change with a backfill story.
305// (No backticks anywhere in this file: it is one big template literal, so a
306// backtick in a comment terminates the string. This exact comment did it once.)
307
308function readMmuid(){try{var v=localStorage.getItem("mmuid");return v&&v.length<=128?v:undefined;}catch(e){return undefined;}}
309
310function flush(){
311if(buffer.length===0)return;
312var batch=buffer.splice(0,FLUSH_MAX);
313var payload={events:batch};
314var mmuid=readMmuid();
315if(mmuid)payload.mmuid=mmuid;
316try{navigator.sendBeacon(API,JSON.stringify(payload));}catch(e){}
317}
318
319// Engaged time-on-page (HP-3592) — count a second only while the tab is
320// visible AND the visitor was active in the last 30s; emit the accrued DELTA
321// every 30 engaged seconds and on hide/pagehide. Registered BEFORE the flush
322// handlers below so the final delta lands in the buffer before the last
323// beacon fires (listener registration order = firing order).
324// SYNC with canonical at app/src/lib/analytics-tracking-script.ts.
325var dwellSec=0,dwellSent=0,dwellLastActive=Date.now();
326var DWELL_IDLE_MS=30000,DWELL_EMIT_SEC=30,DWELL_CAP_SEC=1800;
327function dwellActive(){dwellLastActive=Date.now();}
328document.addEventListener("scroll",dwellActive,{passive:true});
329document.addEventListener("mousemove",dwellActive,{passive:true});
330document.addEventListener("keydown",dwellActive,true);
331document.addEventListener("touchstart",dwellActive,{passive:true});
332document.addEventListener("click",dwellActive,true);
333function dwellEmit(){var d=dwellSec-dwellSent;if(d>0){dwellSent=dwellSec;pushEvent("dwell",{seconds:d});}}
334var dwellTimer=setInterval(function(){
335if(document.visibilityState!=="visible")return;
336if(Date.now()-dwellLastActive>DWELL_IDLE_MS)return;
337dwellSec++;
338if(dwellSec-dwellSent>=DWELL_EMIT_SEC)dwellEmit();
339if(dwellSec>=DWELL_CAP_SEC){dwellEmit();clearInterval(dwellTimer);}
340},1000);
341document.addEventListener("visibilitychange",function(){if(document.visibilityState==="hidden")dwellEmit();});
342window.addEventListener("pagehide",dwellEmit);
343
344setInterval(flush,FLUSH_INTERVAL);
345document.addEventListener("visibilitychange",function(){if(document.visibilityState==="hidden")flush();});
346window.addEventListener("pagehide",flush);
347
348pushEvent("page_view");
349
350// On-platform conversion goal ("a thank-you page I own"): report the current
351// pageId plus the visitor's experiment assignments (_hp_exp_<id> cookies) so the
352// server can count this page-view as a conversion. Fires once per session per
353// page. HP-2925 Layer 1: must fire on EVERY page, not just experiment
354// participants — a standalone "Offsite event" goal has no experiment cookie, so
355// gating on cookies means the server never gets to attribute it. The server
356// no-ops cheaply when the page is neither an experiment nor a goal target.
357// SYNC with canonical at app/src/lib/analytics-tracking-script.ts.
358(function(){
359try{
360if(!APP_ORIGIN)return;
361var guard="_hp_goal:"+PID;
362if(sessionStorage.getItem(guard))return;
363sessionStorage.setItem(guard,"1");
364var exps=[];var ck=document.cookie.split(";");
365for(var i=0;i<ck.length;i++){var kv=ck[i].split("=");var k=(kv[0]||"").trim();if(k.indexOf("_hp_exp_")===0){exps.push({id:k.slice(8),variant:decodeURIComponent((kv[1]||"").trim())});}}
366var body=JSON.stringify({pageId:PID,visitorId:visitorId,sessionId:sessionId,experiments:exps});
367var url=APP_ORIGIN+"/api/experiments/onsite-conversion";
368if(navigator.sendBeacon){navigator.sendBeacon(url,new Blob([body],{type:"text/plain"}));}
369else{fetch(url,{method:"POST",headers:{"Content-Type":"application/json"},body:body,keepalive:true}).catch(function(){});}
370}catch(e){}
371})();
372
373// HP-3461 — milestones reached WITHOUT the visitor scrolling carry {auto:1}.
374// checkScroll runs on a 1s timer regardless of input and at scrollY=0 pct is
375// just winH/docH, so any page under ~4 screens tall banked scroll_depth:25 from
376// every visitor who did nothing (a page fitting the viewport banked 100). Those
377// rows mark the session engaged in the rollup, which pushed the bounce rate of
378// every short page toward zero and inflated avgScrollDepth the same way. The
379// events still fire (that depth WAS visible, and the scroll funnel wants it);
380// the stamp lets the bounce query demand a real interaction.
381// SYNC with app/src/lib/analytics-tracking-script.ts.
382var scrollMilestones={25:false,50:false,75:false,100:false};
383var scrollUserMoved=false;
384function checkScroll(){
385var docH=Math.max(document.body.scrollHeight,document.documentElement.scrollHeight);
386var scrollY=window.scrollY||window.pageYOffset;
387var winH=window.innerHeight;
388if(docH<=winH){if(!scrollMilestones[100]){scrollMilestones[100]=true;pushEvent("scroll_depth",{depth:100,auto:1});}return;}
389var pct=Math.round(((scrollY+winH)/docH)*100);
390[25,50,75,100].forEach(function(m){if(pct>=m&&!scrollMilestones[m]){scrollMilestones[m]=true;pushEvent("scroll_depth",scrollUserMoved?{depth:m}:{depth:m,auto:1});}});
391}
392window.addEventListener("scroll",function(){scrollUserMoved=true;checkScroll();},{passive:true});
393setTimeout(checkScroll,1000);
394
395// HP-1557 — when a click/submit happens inside a pop-up, add the popup's id +
396// name to the payload. Customers track conversions on the standard form_submit /
397// element_click types; this is just attribution metadata so the analytics surface
398// can say "this conversion came from the Welcome offer pop-up". Matches the
399// canonical data-persist-popup marker and the legacy data-htmlpub-popup one.
400function popupAttribution(node){
401var p=node&&node.closest&&node.closest("[data-persist-popup],[data-htmlpub-popup]");
402if(!p)return null;
403var nm=p.getAttribute("data-persist-popup-name");if(nm===null)nm=p.getAttribute("data-htmlpub-popup-name");
404return{popupId:p.getAttribute("id")||"",popupName:(nm||"").replace(/^\s+|\s+$/g,"")};
405}
406
407document.addEventListener("click",function(e){
408var el=e.target;
409if(!el||!el.tagName)return;
410var tag=el.tagName.toLowerCase();
411if(!(tag==="a"||tag==="button"||tag==="input"||tag==="select"||tag==="textarea"||el.getAttribute("role")==="button"||el.closest("a,button,[role=button]")))return;
412var docH=Math.max(document.body.scrollHeight,document.documentElement.scrollHeight,1);
413var rect=el.getBoundingClientRect();
414var payload={x:Math.min(1,Math.max(0,(rect.left+rect.width/2)/(document.documentElement.clientWidth||1))),y:Math.min(1,Math.max(0,(rect.top+rect.height/2+(window.scrollY||0))/docH)),selector:el.id?"#"+el.id:tag+(el.className&&typeof el.className==="string"?"."+el.className.trim().split(/\s+/).slice(0,2).join("."):""),viewportWidth:vw,viewportHeight:vh};
415// HP-3227 — toggling "count clicks as conversions" on a button stamps
416// data-lp-conversion="<configId>" on that element, and both the rollup worker
417// and the dashboard read match a click goal by that id. This tracker never
418// reported it, so a goal whose stored selector is the placeholder
419// a[data-lp-conversion] had nothing to match on and counted zero conversions
420// forever, no matter how many buttons were toggled on. Read from the closest
421// stamped ancestor, since the click target is often an inner <span> of the CTA.
422// SYNC with app/src/lib/analytics-tracking-script.ts.
423var lpConvEl=el.closest?el.closest("[data-lp-conversion]"):null;
424var lpConvId=lpConvEl?lpConvEl.getAttribute("data-lp-conversion"):null;
425if(lpConvId)payload.lpConversion=lpConvId;
426// HP-1557 — only attribute element_click to a pop-up when the actual
427// click target is a button-shaped CTA. A click on the email input
428// inside a lead-capture popup would otherwise inflate the popup's
429// "Button clicks" count on the dashboard.
430var isCtaClick=(tag==="a"||tag==="button"||el.getAttribute("role")==="button"||(el.closest&&el.closest("a,button,[role=button]")));
431if(isCtaClick){var pa=popupAttribution(el);if(pa){payload.popupId=pa.popupId;payload.popupName=pa.popupName;}}
432// HP-3461 — two NON-IDENTIFYING facts about the clicked anchor: the host it leaves
433// for (external only) and the file extension. The selector above records only "#id"
434// or "tag.class", so a PDF link and any other button were indistinguishable and no
435// past click can be reclassified. The full href is NOT stored: pathnames carry
436// customer identity and this is the highest-volume table (see absUrl).
437// SYNC with app/src/lib/analytics-tracking-script.ts.
438var hrefEl=tag==="a"?el:(el.closest&&el.closest("a[href]"));
439var clickUrl=hrefEl?absUrl(hrefEl):null;
440var clickFacts=clickUrl?linkFacts(clickUrl):null;
441if(clickFacts&&clickFacts.external)payload.linkHost=clickFacts.host;
442if(clickFacts&&clickFacts.ext)payload.linkExt=clickFacts.ext;
443var clickKey=clickUrl?linkClickKey(clickUrl):null;
444if(clickKey)payload.linkKey=clickKey;
445pushEvent("element_click",payload);
446// Classify into a micro-conversion. Emitted ALONGSIDE the element_click, never
447// instead of it, so a classification we later decide was wrong can be re-derived.
448if(hrefEl)classifyLinkClick(hrefEl,clickUrl);
449// HP-2811 — same-tab anchor navigation races the page unload before the 5s
450// flush timer; visibilitychange/pagehide flushes are unreliable (esp. iOS
451// Safari, same-tab nav), so element_click goals for outbound CTAs (e.g. a
452// HubSpot Meetings link) see 0 conversions despite real clicks. Mirror the
453// form_submit flush pattern for anchors that will navigate this tab.
454var navAnchor=tag==="a"?el:(el.closest&&el.closest("a[href]"));
455if(navAnchor&&navAnchor.getAttribute("target")!=="_blank"&&!e.ctrlKey&&!e.metaKey&&!e.shiftKey){
456var navHref=(navAnchor.getAttribute("href")||"").replace(/^\s+/,"");
457if(navHref&&navHref.charAt(0)!=="#"&&navHref.slice(0,11).toLowerCase()!=="javascript:")flush();
458}
459},true);
460
461document.addEventListener("submit",function(e){
462var f=e.target;
463if(!f||f.tagName!=="FORM")return;
464var payload={formIdentifier:f.id||f.getAttribute("name")||"form-"+([].indexOf.call(document.forms,f))};
465var pa=popupAttribution(f);
466if(pa){payload.popupId=pa.popupId;payload.popupName=pa.popupName;}
467pushEvent("form_submit",payload);
468flush();// send now — a thank-you-page redirect may navigate away before the 5s timer, dropping the experiment conversion
469},true);
470
471// ─── HP-3461 on-page micro-conversions ──────────────────────────────────────
472// Kinds + classification rules mirror app/src/lib/analytics/page-engagement-kinds.ts
473// (the server-side reference). Literal here because this compiles to an inline
474// string and cannot import; page-engagement-kinds.test.ts asserts both script
475// copies only ever emit registered kinds.
476// SYNC with app/src/lib/analytics-tracking-script.ts.
477
478// Resolve an anchor for RULE MATCHING only — the url itself is never sent. Only
479// host + extension are reported (linkFacts): customer delivery links routinely put
480// identity in the PATH (/thank-you/jane-doe, /download/lead/8842/Invoice-Jane-Doe.pdf),
481// and AnalyticsEvent is the highest-volume table with no redaction pass and no
482// consent gate, so a stored pathname is PII a DSAR erase cannot reach.
483function absUrl(a){
484try{
485var raw=(a.getAttribute("href")||"").replace(/^\s+/,"");
486if(!raw||raw.charAt(0)==="#"||raw.slice(0,11).toLowerCase()==="javascript:")return null;
487var u=new URL(raw,location.href);
488if(u.protocol!=="http:"&&u.protocol!=="https:")return null;
489return u;
490}catch(e){return null;}
491}
492// Host + extension, derived from the WHOLE url (never a truncated copy) so a long
493// signed URL cannot lose its extension to a length cap and read as plain navigation.
494function linkFacts(u){
495var p=u.pathname.toLowerCase();
496var dot=p.lastIndexOf(".");
497var ext=dot<0?"":p.slice(dot+1);
498if(ext.length>8)ext="";
499return{host:u.hostname.toLowerCase(),ext:ext,external:u.hostname!==location.hostname};
500}
501// Stable join key for WHICH link was clicked: FNV-1a hash of the canonicalized
502// URL (lowercase host, no fragment, no trailing slash, query kept minus our own
503// runtime decoration params). The raw href is still never stored (HP-3461) —
504// the dashboard re-derives each key from the page's OWN html and joins on the
505// hash (app/src/lib/analytics/link-click-key.ts, the reference implementation;
506// its test extracts this copy and asserts they agree).
507// SYNC with app/src/lib/analytics-tracking-script.ts and lib/analytics/link-click-key.ts.
508function linkClickKey(u){
509try{
510var c=new URL(u.toString());
511c.hash="";
512c.hostname=c.hostname.toLowerCase();
513if(c.pathname.length>1&&c.pathname.slice(-1)==="/")c.pathname=c.pathname.slice(0,-1);
514if(c.search){
515var strip=["lp_click_id","lp_page_id","lp_ts","_exp","_var","_vid","_pvar","client_reference_id"];
516var kept=new URLSearchParams();
517c.searchParams.forEach(function(v,k){if(strip.indexOf(k)<0)kept.append(k,v);});
518var q=kept.toString();
519c.search=q?"?"+q:"";
520}
521var t=c.toString();
522var h=0x811c9dc5;
523for(var i=0;i<t.length;i++){h^=t.charCodeAt(i);h=Math.imul(h,0x01000193);}
524var x=(h>>>0).toString(16);
525while(x.length<8)x="0"+x;
526return x;
527}catch(e){return null;}
528}
529
530var DL_EXT=["pdf","epub","zip","csv","xlsx","xls","docx","doc","pptx","ppt","mp3","wav"];
531// calendar.google.com is deliberately ABSENT: the standard add-to-calendar button
532// is not a booking, and host-only matching cannot tell them apart, so including it
533// reported bookings on pages where nobody booked. Host entries only — this copy
534// matches on hostname, so a host/path entry could never match here.
535var BOOK_HOSTS=["calendly.com","cal.com","acuityscheduling.com"];
536
537// Every kind counts at most once PER PAGE LOAD: three clicks on the same PDF is one
538// download, and a scrubbed video cannot re-bank a quartile.
539//
540// IN-MEMORY, and it must stay that way. This used to consult sessionStorage and
541// return true from its catch block, so wherever storage throws (sandboxed iframe,
542// "block all cookies", in-app webviews, full quota) every timeupdate re-emitted
543// three quartiles — 12+/sec, which trips the collect route's 30-req/min-per-IP
544// limit and then 429s that visitor's REAL page_view / form_submit / conversion
545// beacons. A session-scoped key also outlived the page load, so a batch lost to a
546// 429 or a closed tab could never be re-reported. The server counts DISTINCT
547// SESSIONS per kind, so duplicates across page views are deduped there anyway.
548var microFired={};
549function latch(kind,id){
550var k=kind+":"+(id||"");
551if(microFired[k])return false;
552microFired[k]=true;
553return true;
554}
555function microEvent(kind,id){
556if(!latch(kind,id))return;
557pushEvent("page_engagement",id?{kind:kind,id:id}:{kind:kind});
558}
559
560function classifyLinkClick(a,u){
561try{
562if(!u)return;
563var f=linkFacts(u);
564if((a.hasAttribute&&a.hasAttribute("download"))||(f.ext&&DL_EXT.indexOf(f.ext)>-1)){
565// id is the EXTENSION, not the file name: "Invoice-Jane-Doe.pdf" is as
566// identifying as the path we refuse to store, and phase 1 renders only an
567// aggregate count.
568microEvent("file_download",f.ext||undefined);
569return;
570}
571if(!f.external)return;
572for(var i=0;i<BOOK_HOSTS.length;i++){
573var b=BOOK_HOSTS[i];
574if(f.host===b||f.host.slice(-(b.length+1))==="."+b){microEvent("booking_open",b);return;}
575}
576}catch(e){}
577}
578
579// <video> only. YouTube/Vimeo/Loom/Wistia are cross-origin iframes whose
580// playback is invisible without the provider's JS API plus an embed-URL rewrite,
581// both deferred out of phase 1 — a page whose only video is an embed reports NO
582// video kinds, which the read side must treat as "not measurable", not as 0%.
583function videoId(v){
584try{
585if(v.id)return v.id.slice(0,128);
586var src=v.currentSrc||v.getAttribute("src")||"";
587if(!src)return undefined;
588var seg=src.split("?")[0].split("/");
589return (seg[seg.length-1]||"").slice(0,128)||undefined;
590}catch(e){return undefined;}
591}
592// Autoplay policy only lets a video start by itself while MUTED, so "muted and the
593// visitor has never touched the page" is the signature of decorative playback.
594// A <video autoplay muted loop playsinline> hero fires 'play' on every load, so
595// counting it would report "100% played the video" on exactly the pages most likely
596// to have a hero video. Unmuted playback always counts: it needs a gesture.
597// mousedown as well as pointerdown: a path delivering only mouse events would
598// otherwise never set this, silently disabling the feature with nothing in the logs.
599var userGestured=false;
600function markGesture(){userGestured=true;}
601document.addEventListener("pointerdown",markGesture,true);
602document.addEventListener("mousedown",markGesture,true);
603document.addEventListener("keydown",markGesture,true);
604document.addEventListener("touchstart",markGesture,{passive:true,capture:true});
605// Decide ONCE at 'play' and LATCH on the element. Re-checking the live flag on every
606// timeupdate was a real bug found in Chrome: a decorative muted autoplay correctly
607// suppressed video_start, then one unrelated trusted keystroke flipped userGestured
608// and every later timeupdate passed — banking p25/p50/p75 for a video nobody chose
609// to watch, with NO video_start, leaving the read side dividing by a zero
610// denominator. Unmuted playback always counts: it cannot start without a gesture.
611function decidePlay(v){
612var intent=(!v.muted)||userGestured;
613try{v.__hpIntent=intent?1:0;}catch(e){}
614return intent;
615}
616// Undefined = never saw this element's 'play' (script injected mid-playback): fail
617// closed, since crediting is the direction that corrupts the headline percentage.
618function countedPlay(v){return v.__hpIntent===1;}
619// Unmuting a decorative video IS intent, and no 'play' fires for it, so re-decide.
620// Emitting video_start keeps the stream coherent: a start precedes its quartiles.
621function onVideoVolume(e){
622var v=e.target;
623if(!v||v.tagName!=="VIDEO")return;
624if(v.muted||v.paused||v.__hpIntent===1)return;
625v.__hpIntent=1;
626microEvent("video_start",videoId(v));
627}
628function onVideoTime(e){
629var v=e.target;
630if(!v||v.tagName!=="VIDEO")return;
631// Consult the LATCHED decision, never the live flag — see decidePlay.
632if(!countedPlay(v))return;
633var d=v.duration;
634// Live streams / metadata not yet loaded report 0, NaN or Infinity — a quartile
635// of an unknown duration is meaningless, so report the play and nothing more.
636if(!isFinite(d)||d<=0)return;
637var pct=(v.currentTime/d)*100;
638var id=videoId(v);
639if(pct>=25)microEvent("video_p25",id);
640if(pct>=50)microEvent("video_p50",id);
641if(pct>=75)microEvent("video_p75",id);
642// p100 comes from 'ended', not a threshold: the last timeupdate can land a
643// fraction short of duration, so a full watch would never bank it.
644}
645document.addEventListener("play",function(e){var v=e.target;if(v&&v.tagName==="VIDEO"&&decidePlay(v))microEvent("video_start",videoId(v));},true);
646document.addEventListener("timeupdate",onVideoTime,true);
647document.addEventListener("volumechange",onVideoVolume,true);
648// SYNC-START embed-video-listeners (app/edge twins pinned by page-engagement-kinds.test.ts)
649// ─── Embedded video: Vimeo (HP-3461) ────────────────────────────────────────
650// <video> is handled above by reading the element directly. A Vimeo embed is a
651// CROSS-ORIGIN iframe, so its state is unreadable — but the player reports its own
652// progress over postMessage, and needs NO change to the embed URL. A plainly pasted
653// Vimeo embed becomes measurable as-is. (YouTube is different: it is silent unless
654// enablejsapi=1 is on the URL. Handled separately.)
655//
656// Verified against live players, and two details cost an attempt each:
657//   1. SUBSCRIBE ON THE PLAYER'S ready MESSAGE, not the iframe's load event.
658//      Subscribing on load races the player's own init: the addEventListener calls
659//      are silently dropped, no ACK comes back, and no timeupdate ever arrives — it
660//      looks exactly like "Vimeo does not work".
661//   2. ATTRIBUTE BY e.source, not player_id. Vimeo only echoes a player_id if the
662//      embed URL carries one, and a customer's pasted embed has none.
663//
664// Vimeo sends OBJECTS (YouTube sends JSON strings), and timeupdate carries
665// data.percent as a 0..1 fraction, so quartiles need no arithmetic of our own.
666function vimeoHostOk(origin){
667try{
668var h=new URL(origin).hostname.toLowerCase();
669return h==="player.vimeo.com"||h==="vimeo.com"||h.slice(-10)===".vimeo.com";
670}catch(e){return false;}
671}
672// Low-cardinality, non-identifying label: the numeric video id off the embed URL,
673// prefixed so it cannot collide with a <video> filename in the tally.
674function vimeoLabel(f){
675try{
676var m=(f.getAttribute("src")||"").match(/vimeo\.com\/video\/(\d+)/);
677return m?"vimeo:"+m[1]:"vimeo";
678}catch(e){return "vimeo";}
679}
680function vimeoFrameFor(src){
681try{
682var fr=document.querySelectorAll("iframe");
683for(var i=0;i<fr.length;i++){if(fr[i].contentWindow===src)return fr[i];}
684}catch(e){}
685return null;
686}
687function vimeoSubscribe(f){
688try{
689var w=f.contentWindow;
690var evs=["play","timeupdate","ended"];
691for(var i=0;i<evs.length;i++)w.postMessage({method:"addEventListener",value:evs[i]},"*");
692}catch(e){}
693}
694window.addEventListener("message",function(e){
695try{
696if(!vimeoHostOk(e.origin))return;
697var d=e.data;
698if(!d||typeof d!=="object")return;
699var f=vimeoFrameFor(e.source);
700if(!f)return;
701if(d.event==="ready"){vimeoSubscribe(f);return;}
702var id=vimeoLabel(f);
703if(d.event==="play"){
704// Same intent rule as <video>, minus the muted check we cannot read through an
705// iframe: browser policy only permits unprompted autoplay while MUTED, so
706// "playback began before the visitor touched anything" is the decorative case.
707if(!userGestured)return;
708f.__hpEmbedCounted=1;
709microEvent("video_start",id);
710return;
711}
712if(f.__hpEmbedCounted!==1)return;
713if(d.event==="timeupdate"){
714var pct=d.data&&typeof d.data.percent==="number"?d.data.percent*100:-1;
715if(pct<0)return;
716if(pct>=25)microEvent("video_p25",id);
717if(pct>=50)microEvent("video_p50",id);
718if(pct>=75)microEvent("video_p75",id);
719// p100 comes from 'ended', as with <video>: the last timeupdate lands short.
720}else if(d.event==="ended"){
721microEvent("video_p25",id);microEvent("video_p50",id);microEvent("video_p75",id);microEvent("video_p100",id);
722}
723}catch(err){}
724});
725
726// ─── Embedded video: YouTube (HP-3461) ──────────────────────────────────────
727// YouTube is SILENT unless the embed URL carries enablejsapi=1 — verified live: a
728// plain embed answers nothing, even if we send it the handshake. So this listener
729// only hears players whose URL has that flag; adding it to customer HTML at serve
730// time is a separate commit, deliberately, because that mutates what visitors load.
731//
732// With the flag, the protocol is: post a listening message, then the player streams
733// infoDelivery with playerState, currentTime and duration.
734//
735// The handshake repeats on a timer, and the honest reason is that it catches frames
736// that appear after load (a tab, an accordion, a script-mounted embed). Whether a
737// player also STOPS streaming when we stop asking was not established: repeats are
738// answered "alreadyInitialized", which suggests the first one is what arms it. The
739// polling stays because the version with polling is the one verified to work end to
740// end, and trading that for an unverified optimisation would risk silently losing
741// every embed metric. The steady-state cost is one postMessage per api-enabled
742// frame every 2s.
743//
744// Unlike Vimeo, YouTube sends JSON STRINGS, so the payload needs parsing before it
745// looks like anything.
746//
747// playerState is YouTube's enum: -1 unstarted, 0 ended, 1 playing, 2 paused,
748// 3 buffering, 5 cued.
749function ytHostOk(origin){
750try{
751var h=new URL(origin).hostname.toLowerCase();
752return h==="www.youtube.com"||h==="youtube.com"||h==="www.youtube-nocookie.com"||h==="youtube-nocookie.com";
753}catch(e){return false;}
754}
755function ytLabel(f){
756try{
757var m=(f.getAttribute("src")||"").match(/\/embed\/([A-Za-z0-9_-]{11})/);
758return m?"youtube:"+m[1]:"youtube";
759}catch(e){return "youtube";}
760}
761function ytFrameFor(src){
762try{
763var fr=document.querySelectorAll("iframe");
764for(var i=0;i<fr.length;
764i++){if(fr[i].contentWindow===src)return fr[i];}
765}catch(e){}
766return null;
767}
768// Ask every api-enabled YouTube frame to start reporting, and keep asking. Cheap: a
769// postMessage to a frame that is not a YouTube player is simply ignored.
770function ytListen(){
771try{
772var fr=document.querySelectorAll('iframe[src*="enablejsapi=1"]');
773for(var i=0;i<fr.length;i++){
774try{fr[i].contentWindow.postMessage('{"event":"listening","id":"hp","channel":"widget"}',"*");}catch(e){}
775}
776}catch(e){}
777}
778setTimeout(ytListen,1200);
779setInterval(ytListen,2000);
780window.addEventListener("message",function(e){
781try{
782if(!ytHostOk(e.origin))return;
783var d=e.data;
784// YouTube sends strings; anything else is not its API talking.
785if(typeof d!=="string")return;
786try{d=JSON.parse(d);}catch(x){return;}
787if(!d||typeof d!=="object"||d.event!=="infoDelivery")return;
788var info=d.info;
789if(!info||typeof info!=="object")return;
790var f=ytFrameFor(e.source);
791if(!f)return;
792var id=ytLabel(f);
793var state=info.playerState;
794// Same intent rule as Vimeo and <video>, but YouTube hands us no discrete 'play'
795// event: infoDelivery repeats playerState 1 for the WHOLE of playback. So the
796// decision is made on the TRANSITION into playing and latched there, never
797// re-read. Re-reading it is precisely the bug decidePlay documents, and it is
798// reachable here in a way it is not for <video>: a muted autoplay is correctly
799// suppressed, then one unrelated trusted click (the form, alt-tab, a screenshot)
800// flips userGestured and the next state-1 update promotes a video nobody chose
801// into a counted play, quartiles and all. Latching on the transition also keeps
802// the <video> semantics that a chosen REPLAY after a decorative autoplay counts,
803// because that arrives as 2 then 1.
804var prev=f.__hpYtPrev;
805f.__hpYtPrev=state;
806if(state===1&&prev!==1){
807f.__hpEmbedCounted=userGestured?1:0;
808if(f.__hpEmbedCounted===1)microEvent("video_start",id);
809}
810if(f.__hpEmbedCounted!==1)return;
811if(state===0){
812// Ended implies every quartile, even if a throttled tab skipped an update.
813microEvent("video_p25",id);microEvent("video_p50",id);microEvent("video_p75",id);microEvent("video_p100",id);
814return;
815}
816var dur=info.duration,cur=info.currentTime;
817// A live stream reports duration 0, and a quartile of an unknown length is
818// meaningless — report the play and nothing more.
819if(typeof dur!=="number"||typeof cur!=="number"||!isFinite(dur)||dur<=0)return;
820var pct=(cur/dur)*100;
821if(pct>=25)microEvent("video_p25",id);
822if(pct>=50)microEvent("video_p50",id);
823if(pct>=75)microEvent("video_p75",id);
824// p100 comes from playerState 0, not a threshold: the final update lands short.
825}catch(err){}
826});
827// SYNC-END embed-video-listeners
828document.addEventListener("ended",function(e){
829var v=e.target;
830if(!v||v.tagName!=="VIDEO")return;
831if(!countedPlay(v))return;
832var id=videoId(v);
833// Watched to the end implies every quartile, even if a throttled background tab
834// skipped a timeupdate.
835microEvent("video_p25",id);microEvent("video_p50",id);microEvent("video_p75",id);microEvent("video_p100",id);
836},true);
837
838// ─── Scheduler widgets (HP-3461 phase 3) ────────────────────────────────────
839// An inline Calendly/Cal.com embed is a CROSS-ORIGIN iframe, so we cannot see a
840// click inside it — which is why booking_open (a click on an outbound scheduling
841// link) is absent on exactly the pages most likely to take bookings. The widget
842// broadcasts its own progress to the parent window, so we get told instead of
843// guessing. No SDK needed; Calendly posts these regardless.
844//
845// SECURITY: any frame can post a message claiming to be a booking, and this ships
846// on every published page, so the sender's ORIGIN must be a recognised scheduling
847// host AND the message must match the provider's shape. Everything else is ignored.
848// PRIVACY: only WHICH STEP is read. event.data.payload (invitee details on
849// event_scheduled) is never touched.
850// SYNC with app/src/lib/analytics-tracking-script.ts.
851function schedulerOrigin(origin){
852try{
853var h=new URL(origin).hostname.toLowerCase();
854for(var i=0;i<BOOK_HOSTS.length;i++){
855var b=BOOK_HOSTS[i];
856if(h===b||h.slice(-(b.length+1))==="."+b)return b;
857}
858}catch(e){}
859return null;
860}
861// calendly.profile_page_viewed is deliberately ignored: it fires for a profile
862// listing rather than a bookable calendar, so it would inflate the funnel's top.
863window.addEventListener("message",function(e){
864try{
865var host=schedulerOrigin(e.origin);
866if(!host)return;
867var d=e.data;
868if(!d||typeof d!=="object")return;
869// Calendly's vocabulary reads off d.event and is prefixed; Cal.com's reads off
870// d.type and is not. Verified against live widgets on both, plus Cal.com's own
871// EventDataMap in packages/embeds/embed-core/src/sdk-action-manager.ts.
872// calendly.profile_page_viewed is ignored: it fires for a profile listing rather
873// than a bookable calendar, so it would inflate the top of the funnel.
874//
875// Cal.com HAS NO time-selection event. Its full enum (27 keys) contains nothing for
876// picking a date or slot -- availabilityLoaded and slotsFetched are the widget
877// LOADING options, not a visitor choosing one. So Cal.com reports 2 of the 3 steps,
878// and booking_time_selected is left ABSENT for it rather than synthesised from the
879// booking. Fabricating it would make every Cal.com page show a flat 100% from
880// "selected" to "completed" -- a number that looks measured and is not. Absent
881// already means "not measurable here" everywhere else in this feature (see the
882// video quartiles), and the read side honours that.
883//
884// Emissions are LITERALS, one branch per step, so the sync seam in
885// page-engagement-kinds.test.ts can see them -- it caught booking_completed going
886// unverifiable when this was table-driven.
887var name=typeof d.event==="string"?d.event:(typeof d.type==="string"?d.type:null);
888if(!name)return;
889if(host==="calendly.com"){
890if(name==="calendly.event_scheduled"){
891microEvent("booking_viewed",host);
892microEvent("booking_time_selected",host);
893microEvent("booking_completed",host);
894// The booking is the outcome this exists to catch and the visitor usually leaves
895// for the confirmation, so flush rather than wait out the 5s timer.
896flush();
897}else if(name==="calendly.date_and_time_selected"){
898microEvent("booking_viewed",host);
899microEvent("booking_time_selected",host);
900}else if(name==="calendly.event_type_viewed"){
901microEvent("booking_viewed",host);
902}
903}else if(host==="cal.com"){
904// bookingSuccessfulV2 deprecates bookingSuccessful and both are still in the enum,
905// so accept either -- customers sit on different embed versions.
906if(name==="bookingSuccessfulV2"||name==="bookingSuccessful"){
907// NOTE: no booking_time_selected here. Cal.com cannot report it.
908microEvent("booking_viewed",host);
909microEvent("booking_completed",host);
910flush();
911}else if(name==="bookerViewed"){
912microEvent("booking_viewed",host);
913}
914}
915// No acuityscheduling.com branch, and there never can be one. Its embed script
916// exchanges only sizing/load/scrollTo/scrollBy/gaMeasurementId with the parent and
917// takes a Google Analytics client id INWARD — there is no booking message to hear.
918// Acuity reports outward only through its webhooks (HP-4041's inbound conversion
919// webhook is the route). A branch here would be dead code. See lib/scheduling-hosts.
920// Its origin stays accepted by the gate above, which costs nothing: an origin that
921// never speaks simply never matches.
922}catch(err){}
923});
924
925// Consent usually arrives seconds after load, so a bare load listener would
926// never fire and rum_timing would vanish from every CMP-gated page. The
927// navigation/paint entries report the same absolute numbers whenever read.
928function hpRumTiming(){
929setTimeout(function(){
930try{
931var perf=performance.getEntriesByType("navigation")[0];
932if(perf){
933var ev=makeEvent("rum_timing",{loadTimeMs:Math.round(perf.loadEventEnd-perf.startTime),ttfbMs:Math.round(perf.responseStart-perf.startTime),fcpMs:undefined});
934var paintEntries=performance.getEntriesByType("paint");
935for(var i=0;i<paintEntries.length;i++){if(paintEntries[i].name==="first-contentful-paint"){ev.payload.fcpMs=Math.round(paintEntries[i].startTime);break;}}
936buffer.push(ev);
937}
938}catch(e){}
939},2000);
940}
941if(document.readyState==="complete")hpRumTiming();else window.addEventListener("load",hpRumTiming);
942});
943})();
944</script>
944<script data-page-id="gg1x1lcpx32tjslsbqxxqmm5" data-page-slug="contact" data-api-url="https://htmlpub.com" data-turnstile-key="0x4AAAAAAD7Sp6X7R_qRx-Cz" data-htmlpub-forms>
945(function(){
946var s=document.querySelector("script[data-htmlpub-forms]");
947var pageId=s.getAttribute("data-page-id");
948var slug=s.getAttribute("data-page-slug");
949var api=s.getAttribute("data-api-url")+"/api/forms/submit";
950// Owner-mode: editor previews and the in-app shell load this script with
951// data-owner="1". We still listen for submits (the editor surfaces success
952// state to the user via the toolbar), but we MUST NOT fire conversion
953// pixels — that would pollute the customer's Meta / TikTok pixel data
954// with editor test traffic indistinguishable from real visitors.
955var _hpIsOwner=s.getAttribute("data-owner")==="1";
956// Preview-mode: the editor's Preview loads owner-gated (draft access + no pixel
957// pollution) but must show the true visitor experience. _hpIsPreview lets visitor-UX
958// blocks (multi-step paging) run even though _hpIsOwner is set; pixel/submission gates
959// stay owner-only.
960var _hpIsPreview=s.getAttribute("data-preview")==="1";
961var _hpAutomaticConversionEventsEnabled=s.getAttribute("data-automatic-conversion-events")!=="0";
962var _hpTurnstileKey=s.getAttribute("data-turnstile-key")||"";
963// data-persist-hidden: fields hidden via the inspector — hidden from visitors on
964// the live page but still submitted (attribution/UTM). The edit canvas (owner, NOT
965// preview) skips the rule so the inspector keeps them visible with a "Hidden" chip;
966// Preview applies it so it matches the published page.
967if(!_hpIsOwner||_hpIsPreview){try{var _hpHideStyle=document.createElement("style");_hpHideStyle.setAttribute("data-htmlpub-forms-hide","");_hpHideStyle.textContent="[data-persist-hidden]{display:none!important}";(document.head||document.documentElement).appendChild(_hpHideStyle);}catch(e){}}
968// Multiple-choice radio/checkbox width normalization is NOT injected at runtime.
969// The editor bakes an inline width:auto onto each option input (idempotently), so the
970// fix persists in the saved HTML and follows the normal draft -> publish flow instead
971// of overriding every served form's checkboxes/radios on every page load.
972// A field hidden from visitors (data-persist-hidden -> display:none) that ALSO carries native
973// required cannot be focused, so on a single-step form native constraint validation would
974// silently abort submit on it (the multi-step path already skips hidden fields via
975// _hpValidatable). Drop the required attribute from hidden controls on the served page so
976// submission is never blocked by a field the visitor can't see; the field still submits its value.
977if(!_hpIsOwner||_hpIsPreview){try{var _hpHidReq=document.querySelectorAll("[data-persist-hidden][required],[data-persist-hidden] [required]");for(var _hphr=0;_hphr<_hpHidReq.length;_hphr++)_hpHidReq[_hphr].removeAttribute("required");}catch(e){}}
978// The form's real submit button — never one of the authored multi-step nav buttons
979// (data-persist-ms-back/next), which may be type-less if hand-authored.
980function _hpFindSubmit(form){return form.querySelector("[type=submit]:not([data-persist-ms-back]):not([data-persist-ms-next]),button[type=submit]:not([data-persist-ms-back]):not([data-persist-ms-next]),button:not([type]):not([data-persist-ms-back]):not([data-persist-ms-next])");}
981// A checkbox group marked required-as-a-group (data-persist-group-required) is satisfied when
982// AT LEAST ONE member is checked — native required on each box would wrongly demand ALL.
983// Returns true if every such group within the given scope is satisfied; otherwise reports validity on
984// the first empty group (clearing on the next change) and returns false.
985function _hpGroupReqOK(scope){
986var boxes=scope.querySelectorAll('input[type="checkbox"][data-persist-group-required]');
987var groups={};
988for(var i=0;i<boxes.length;i++){var n=boxes[i].name||("__hp"+i);if(!groups[n])groups[n]=[];groups[n].push(boxes[i]);}
989for(var nm in groups){if(!Object.prototype.hasOwnProperty.call(groups,nm))continue;
990var g=groups[nm],any=false,first=null;
991for(var j=0;j<g.length;j++){if(g[j].closest&&g[j].closest("[data-persist-hidden]"))continue;if(!first)first=g[j];if(g[j].checked)any=true;}
992if(first&&!any){try{first.setCustomValidity("Please select at least one option.");
992if(first.reportValidity)first.reportValidity();var _clr=function(){try{first.setCustomValidity("");}catch(e){}for(var k=0;k<g.length;k++)g[k].removeEventListener("change",_clr);};for(var k2=0;k2<g.length;k2++)g[k2].addEventListener("change",_clr);}catch(e){}return false;}}
993return true;
994}
995// Pick a Turnstile theme (light/dark) from the first opaque background behind the form, so the
996// widget matches the PAGE rather than defaulting to the visitor's system theme ("auto"). Parses
997// the rgb() string without a regex escape (template-literal safe). Falls back to "auto".
998function _hpPickTheme(el){
999try{
1000var n=el;
1001while(n&&n.nodeType===1){
1002var bg=window.getComputedStyle(n).backgroundColor||"";
1003if(bg.indexOf("rgb")===0){
1004var p=bg.replace(/[^0-9.,]/g,"").split(",");
1005var a=p.length>3?parseFloat(p[3]):1;
1006if(a>0.1){var lum=(0.299*+p[0]+0.587*+p[1]+0.114*+p[2])/255;return lum>0.5?"light":"dark";}
1007}
1008n=n.parentElement;
1009}
1010}catch(e){}
1011return "auto";
1012}
1013// Inject the Turnstile widget on a spam-protected form via the platform-origin bridge iframe.
1014// The widget CANNOT render inline on a customer's custom domain: Turnstile binds a widget to a
1015// hostname allowlist (Enterprise caps at 200, no wildcards), so customer domains can't be listed.
1016// Instead we embed /turnstile-bridge served from data-api-url (a platform origin that IS on the
1017// allowlist); it renders the widget there and postMessages the token back (see the listener below).
1018// Placed ABOVE the submit's outermost row so on a multi-step footer nav it sits on its own line.
1019// Starts 0px (interaction-only is invisible); the bridge posts a resize only if a challenge appears.
1020// Idempotent; no-op without the feature flag or inside a sandboxed iframe (the /p shell renders its
1021// own widget on the app origin).
1022function _hpInjectCaptcha(f){
1023if(!_hpTurnstileKey||inSandbox||!f||f.querySelector("iframe[data-hp-turnstile]"))return;
1024var base=(s.getAttribute("data-api-url")||"");
1025if(base&&base.charAt(base.length-1)==="/")base=base.slice(0,-1);
1026if(!base)return;
1027var fr=document.createElement("iframe");
1028fr.setAttribute("data-hp-turnstile","");
1029fr.setAttribute("title","Spam protection");
1030fr.setAttribute("scrolling","no");
1031fr.style.cssText="width:100%;max-width:320px;height:0;border:0;display:block;overflow:hidden;";
1032fr.src=base+"/turnstile-bridge?theme="+encodeURIComponent(_hpPickTheme(f));
1033var sb=_hpFindSubmit(f);
1034if(sb){var row=sb;while(row.parentNode&&row.parentNode!==f)row=row.parentNode;if(row.parentNode===f)f.insertBefore(fr,row);else if(sb.parentNode)sb.parentNode.insertBefore(fr,sb);else f.appendChild(fr);}else f.appendChild(fr);
1035}
1036// Receive the Turnstile token from the platform-origin bridge iframe. Origin-checked against
1037// data-api-url. Stores the token on the owning form for the submit path; resizes the iframe when
1038// Managed mode shows an actual challenge (invisible/auto-pass stays 0px). One listener serves
1039// every captcha form on the page.
1040(function(){
1041var _hpBO="";try{_hpBO=new URL(s.getAttribute("data-api-url")||"",location.href).origin;}catch(e){}
1042window.addEventListener("message",function(e){
1043if(!_hpBO||e.origin!==_hpBO)return;
1044var d=e.data;if(!d||d.source!=="hp-turnstile")return;
1045var frs=document.querySelectorAll("iframe[data-hp-turnstile]"),host=null;
1046for(var i=0;i<frs.length;i++){if(frs[i].contentWindow===e.source){host=frs[i];break;}}
1047if(!host)return;
1048var form=host.closest?host.closest("form"):null;
1049if(d.type==="token"){if(form){form.__hpCaptchaToken=(d.token||"");form.__hpCaptchaError=false;}}
1050else if(d.type==="expired"){if(form)form.__hpCaptchaToken="";}
1051// A terminal bridge error (misconfigured/unreachable widget, keys mismatch) means no token can
1052// ever be produced; flag it so the submit gate fails OPEN rather than trapping the visitor forever
1053// (the server still fails open for the same unconfigured case). Distinct from expired (retr
1053yable).
1054else if(d.type==="error"){if(form){form.__hpCaptchaToken="";form.__hpCaptchaError=true;}}
1055else if(d.type==="resize"){var h=+d.height||0;host.style.height=(h>0?h:0)+"px";host.style.margin=(h>0?"12px 0":"0");}
1056});
1057})();
1058// Bounded wait for a Turnstile token, with a single re-challenge (decided fail policy #1/#2).
1059// The bridge delivers the token via postMessage, which can land slightly AFTER the visitor
1060// clicks submit (invisible challenge still resolving). Give it a bounded window; if none
1061// arrives, force ONE fresh challenge (reload the bridge iframe) and wait a final window; if
1062// STILL none, proceed anyway — the server accepts the lead and flags it unverified rather
1063// than dropping it. done() runs exactly once: as soon as a token appears, the bridge reports
1064// a terminal error, or the budget is spent.
1065function _hpWaitForCaptcha(f,done){
1066var WAIT=3000,STEP=100,called=false;
1067function finish(){if(called)return;called=true;done();}
1068function poll(deadline,onExpire){
1069if((f.__hpCaptchaToken||"")!==""||f.__hpCaptchaError){finish();return;}
1070if(Date.now()>=deadline){onExpire();return;}
1071setTimeout(function(){poll(deadline,onExpire);},STEP);
1072}
1073poll(Date.now()+WAIT,function(){
1074if((f.__hpCaptchaToken||"")!==""||f.__hpCaptchaError){finish();return;}
1075try{var fr=f.querySelector("iframe[data-hp-turnstile]");if(fr)fr.src=fr.src;}catch(e){}
1076poll(Date.now()+WAIT,finish);
1077});
1078}
1079// reCAPTCHA enforcement (HP-1475): only pages whose owner opted in emit this
1080// flag. It gates the client-side submit block below so pages that merely carry
1081// a decorative widget (the pre-HP-1475 status quo) keep working unchanged.
1082var _hpRecaptchaEnforced=s.getAttribute("data-recaptcha-enforced")==="1";
1083var corrId=0;
1084var pendingCallbacks={};
1085
1086// Detect if we're in a sandboxed iframe
1087var inSandbox=false;
1088try{inSandbox=window!==window.parent;}catch(e){inSandbox=true;}
1089
1090function cleanKey(s){return s.toLowerCase().replace(/[^a-z0-9]+/g,"_").replace(/^_|_$/g,"").substring(0,30);}
1091// SYNC: mirror worker-pages/src/scripts/forms.ts and app/src/lib/extract-form-fields.ts
1092function looksLikeRawId(s){return /^[a-f0-9]{32}$/i.test(s)||/^[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}$/i.test(s)||/^[a-f0-9]{32}-[A-Za-z0-9_-]{20,40}$/.test(s);}
1093function fieldKey(el,idx){
1094if(el.name&&!looksLikeRawId(el.name))return el.name;
1095if(el.id&&!looksLikeRawId(el.id))return el.id;
1096var df=el.getAttribute("data-field")||el.getAttribute("data-name");
1097if(df&&!looksLikeRawId(df))return df;
1098// Type-based semantic hint. <input type="email"> without an explicit name
1099// should still be identified as "email" so the lead-capture extractor can
1100// find the address. Same for tel/url. Critical when the page builder
1101// (HTMLPub editor / Sacca's offers.leadpages.com pages) emits inputs
1102// without name attributes — without this, the email field gets keyed off
1103// its placeholder ("alex_at_youragency_com") and no lead is extracted.
1104if(el.type==="email")return "email";
1105if(el.type==="tel")return "phone";
1106if(el.type==="url")return "url";
1107// Sibling label pattern: <label>Foo</label><input ...> inside a wrapper.
1108// Common in modern form layouts. The existing closest(label) check below
1109// only catches WRAPPING labels, not sibling ones.
1110var prev=el.previousElementSibling;
1111if(prev&&prev.tagName==="LABEL"&&prev.textContent){var pk=cleanKey(prev.textContent);if(pk)return pk;}
1112if(el.placeholder){var ck=cleanKey(el.placeholder);if(ck)return ck;}
1113var al=el.getAttribute("aria-label");
1114if(al){var ck2=cleanKey(al);if(ck2)return ck2;}
1115if(el.id){var lbl=document.querySelector('label[for="'+el.id+'"]');if(lbl&&lbl.textContent){var ck3=cleanKey(lbl.textContent);if(ck3)return ck3;}}
1116var par=el.closest?el.closest("label"):null;
1117if(par&&par.textContent){var ck4=cleanKey(par.textContent);if(ck4)return ck4;}
1118return (el.type||"field")+"_"+idx;
1119}
1120// Known third-party tracking field patterns to ignore
1121var _blocklist=/^(lp[_s]?plan|ub[_s]?plan|gtrans|__hstc|__hssc|__hsfp|hutk|_mkto_trk|_biz_uid|_biz_nA|_biz_pendingA|_biz_flagsA|mkt_tok|li_fat_id|_ga|_gid|_fbp|_fbc|_uetsid|_uetvid|mc_cid|mc_eid|_drip_client_|__ss|__ss_referrer|ss_campaign|ss_source|ss_cid|siq_|sq_|_uc_|tl|sl|vote|query|_hp_vid|g-recaptcha-response)$/i;
1122function _isInjected(el){
1123// Skip hidden inputs not present in the original page HTML.
1124// Third-party scripts (Customers.ai, HubSpot, etc.) inject hidden fields
1125// at runtime. We detect these by checking if they were present at DOMContentLoaded.
1126if(el.type==="hidden"&&!el.hasAttribute("data-hp-original"))return true;
1127return false;
1128}
1129function collect(f){
1130var d={};
1131var els=f.elements||f.querySelectorAll("input,textarea,select");
1132var used={};
1133var hasVisibleValue=false;
1134for(var i=0;i<els.length;i++){
1135var el=els[i];
1136if(el.type==="file"||el.type==="submit"||el.type==="button")continue;
1137if((el.type==="checkbox"||el.type==="radio")&&!el.checked)continue;
1138if(_isInjected(el))continue;
1139// International-phone controls: the visible national input (data-hp-phone-nat) and
1140// the injected country <select> (data-hp-phone-cc) are NOT collected — the hidden
1141// E.164 companion carries the value under the field's name. The national input still
1142// counts toward hasVisibleValue so a phone-only form isn't treated as empty.
1143if(el.hasAttribute&&el.hasAttribute("data-hp-phone-nat")){if(el.value&&el.value.trim())hasVisibleValue=true;continue;}
1144if(el.hasAttribute&&el.hasAttribute("data-hp-phone-cc"))continue;
1145// Empty URL-param inputs are dropped from the payload so direct-traffic
1146// submissions from a form with data-persist-capture-utms (or hand-authored
1147// data-persist-url-param inputs) don't ship 7 blank attribution columns
1148// into every submission, integration webhook, CSV export, and CAPI event.
1149// Author-provided value="direct" (or any non-empty default) still ships.
1150if(el.type==="hidden"&&!(el.value||"").trim()&&el.hasAttribute("data-persist-url-param"))continue;
1151var key=fieldKey(el,i);
1152if(_blocklist.test(key))continue;
1153if(used[key]){key=key+"_"+i;}
1154used[key]=true;
1155d[key]=el.value;
1156if(el.type!=="hidden"&&el.value&&el.value.trim())hasVisibleValue=true;
1157}
1158// Require at least one visible field with a value — pure hidden-field submissions are noise
1159if(!hasVisibleValue)return {};
1160return d;
1161}
1162
1163// Generate a UUID v4 (browser-side). Used as the eventID that ties the
1164// fbq/ttq browser event to the matching CAPI event the server sends via
1165// the integration queue → provider workflow, so pixel platforms can dedup.
1166function _hpUuid(){return"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,function(c){var r=Math.random()*16|0;return(c==="x"?r:(r&3|8)).toString(16);});}
1167
1168// Fire the canonical "Lead" event on every installed pixel platform. Only
1169// platforms that booted (window.fbq, window.ttq, window.gtag, window.dataLayer)
1170// receive a call — others no-op cleanly. The eventID is threaded into the
1171// provider-specific dedup parameter (Meta: eventID, TikTok: event_id).
1172function _hpFireLead(formIdent,data,eventId){
1173  if(_hpIsOwner||!_hpAutomaticConversionEventsEnabled)return;
1174  var em=null,ph=null,fn=null,ln=null;
1175  for(var k in data){
1176    if(!Object.prototype.hasOwnProperty.call(data,k))continue;
1177    var v=(data[k]||"").toString().trim();
1178    if(!v)continue;
1179    var kl=k.toLowerCase();
1180    if(!em&&/email/.test(kl)&&/^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(v))em=v;
1181    else if(!ph&&/phone|tel|mobile/.test(kl))ph=v;
1182    else if(!fn&&/first.?name|fname/.test(kl))fn=v;
1183    else if(!ln&&/last.?name|lname/.test(kl))ln=v;
1184  }
1185  var custom={};if(em)custom.em=em;if(ph)custom.ph=ph;if(fn)custom.fn=fn;if(ln)custom.ln=ln;
1186  try{if(window.fbq)window.fbq("track","Lead",custom,{eventID:eventId});}catch(e){}
1187  try{if(window.ttq&&window.ttq.track)window.ttq.track("SubmitForm",custom,{event_id:eventId});}catch(e){}
1188  try{if(window.gtag)window.gtag("event","generate_lead",{event_id:eventId,lp_form_id:formIdent});}catch(e){}
1189  try{if(window.dataLayer&&window.dataLayer.push)window.dataLayer.push({event:"lp_form_submit",lp_event_id:eventId,lp_form_id:formIdent});}catch(e){}
1190}
1191
1192// First-interaction hook: when the visitor focuses any form field for the
1193// first time on this page, fire the platform's "started a form" event.
1194// Once per form per page (debounced via _hpFiredInitFocus).
1195var _hpFiredInitFocus={};
1196function _hpFireInitiateCheckout(formIdent){
1197  if(_hpIsOwner||!_hpAutomaticConversionEventsEnabled)return;
1198  if(_hpFiredInitFocus[formIdent])return;
1199  _hpFiredInitFocus[formIdent]=true;
1200  var eid=_hpUuid();
1201  try{if(window.fbq)window.fbq("track","InitiateCheckout",{}
1201,{eventID:eid});}catch(e){}
1202  try{if(window.ttq&&window.ttq.track)window.ttq.track("InitiateCheckout",{},{event_id:eid});}catch(e){}
1203  try{if(window.gtag)window.gtag("event","form_start",{event_id:eid,lp_form_id:formIdent});}catch(e){}
1204  try{if(window.dataLayer&&window.dataLayer.push)window.dataLayer.push({event:"lp_form_start",lp_event_id:eid,lp_form_id:formIdent});}catch(e){}
1205}
1206// HP-3461 — the same first-interaction moment, reported to OUR analytics. It has
1207// been detected here all along and told to Facebook, TikTok, Google and GTM
1208// (above) while our own funnel never heard about it, so "169 started the form, 17
1209// finished" was unanswerable from first-party data.
1210//
1211// Deliberately NOT inside _hpFireInitiateCheckout: that is gated on
1212// _hpAutomaticConversionEventsEnabled, the customer's AD-PIXEL preference, and
1213// switching off automatic ad conversion events must not blind our own analytics.
1214//
1215// Requires a real visitor gesture. A focusin alone is not evidence of intent:
1216// <input autofocus>, a popup that focuses its email field on open, and browser
1217// autofill all fire it with nobody touching the keyboard, which would report a
1218// form_start for ~every session and make the abandonment number this feature
1219// exists to answer ("169 started, 17 finished") read as a 100% start rate on a
1220// page nobody typed into. _hpFireInitiateCheckout above has always had this bug;
1221// it only ever fed ad pixels, so nobody noticed.
1222//
1223// Owner previews self-gate: analyticsTrackingScript returns on data-owner="1"
1224// BEFORE registering window.__hpupPushEvent, so this finds no bridge and no-ops.
1225// (The edge serves only public traffic, so the same code is correct on both
1226// hosts. Known gap, pre-existing and not widened by form_start: the Nova page
1227// switcher omits ?token=, so isOwnerForAnalytics misses it and page_view /
1228// scroll_depth / element_click already report from that path.)
1229// SYNC with worker-pages/src/scripts/forms.ts — these files must stay byte-identical.
1230var _hpFormStartGesture=false;
1231function _hpMarkFormGesture(){_hpFormStartGesture=true;}
1232document.addEventListener("pointerdown",_hpMarkFormGesture,true);
1233document.addEventListener("keydown",_hpMarkFormGesture,true);
1234document.addEventListener("touchstart",_hpMarkFormGesture,{passive:true,capture:true});
1235// Object.create(null), not {}: the key is formId(), i.e. the author-controlled
1236// id/name attribute. With a bare object a form named "constructor" or "toString"
1237// reads as already-fired on its very first focus and never reports at all, and
1238// "__proto__" cannot even be latched — the page would show submissions with no
1239// starts whatsoever.
1240var _hpFiredFormStart=Object.create(null);
1241function _hpReportFormStart(formIdent){
1242  if(!_hpFormStartGesture)return;
1243  var k=String(formIdent||"");
1244  if(_hpFiredFormStart[k])return;
1245  _hpFiredFormStart[k]=true;
1246  try{if(window.__hpupPushEvent)window.__hpupPushEvent("page_engagement",{kind:"form_start",id:k.slice(0,128)});}catch(e){}
1247}
1248document.addEventListener("focusin",function(e){
1249  var el=e.target;
1250  if(!el||(el.tagName!=="INPUT"&&el.tagName!=="TEXTAREA"&&el.tagName!=="SELECT"))return;
1251  if(el.type==="hidden"||el.type==="submit"||el.type==="button")return;
1252  var f=el.closest&&(el.closest("form")||el.closest("[data-htmlpub-fake-form]"));
1253  if(!f)return;
1254  _hpReportFormStart(formId(f));
1255  _hpFireInitiateCheckout(formId(f));
1256},true);
1257
1258// Set _hp_email cookie when we find an email in form data (for CRM personalization)
1259function setEmailCookie(data){
1260var email=null;
1261for(var k in data){
1262if(!data.hasOwnProperty(k))continue;
1263var v=(data[k]||"").toString();
1264if(/^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(v.trim())){email=v.trim();break;}
1265}
1266if(email){
1267try{var enc=btoa(email.toLowerCase().trim());document.cookie="_hp_email="+encodeURIComponent(enc)+";path=/;max-age=31536000;SameSite=Lax;Secure";}catch(e){}
1268}
1269}
1270
1271// Read _hpid from URL and set cookie for future visits
1272(function(){
1273var p=new URLSearchParams(window.location.search);
1274var hpid=p.get("_hpid");
1275if(hpid){
1276try{var decoded=atob(hpid);if(decoded.indexOf("@")!==-1){document.cookie="_hp_email="+encodeURIComponent(hpid)+";path=/;max-age=31536000;SameSite=Lax;Secure";}}catch(e){}
1277}
1278})();
1279
1280// URL-parameter auto-populate. Any input/textarea/select with
1281// data-persist-url-param="<name>" gets its value set from
1282// URLSearchParams(location.search).get(<name>) on script boot. Enables UTM /
1283// gclid / fbclid / any-custom-param capture into form submissions without a
1284// custom head script. An author (or the AI builder) drops
1285//   <input type="hidden" name="utm_source" data-persist-url-param="utm_source">
1286// and the runtime fills it in from ?utm_source=... on page load. Runs
1287// BEFORE the data-hp-original tagging pass below so the populated hidden
1288// inputs get stamped and pass _isInjected. utm_* names are not on
1289// _blocklist. Missing params leave any pre-existing value intact so authors
1290// can specify a fallback via a plain value="" on the input. Selector is
1291// scoped to form fields so a stray attribute on a non-form element is a
1292// no-op rather than a silent property write. Repeated params
1293// (?utm_source=a&utm_source=b) resolve to the first value ("a") per the
1294// URLSearchParams.get() spec.
1295try{
1296var _hpUrlParams=new URLSearchParams(window.location.search);
1297document.querySelectorAll("input[data-persist-url-param],textarea[data-persist-url-param],select[data-persist-url-param]").forEach(function(el){
1298var pname=el.getAttribute("data-persist-url-param");
1299if(!pname)return;
1300var pv=_hpUrlParams.get(pname);
1301if(pv!==null&&pv!=="")el.value=pv;
1302});
1303}catch(e){}
1304
1305// Standard-UTM auto-capture. A form with data-persist-capture-utms gets the
1306// seven standard attribution params (utm_source, utm_medium, utm_campaign,
1307// utm_term, utm_content, gclid, fbclid, msclkid) auto-injected as hidden inputs +
1308// populated from URLSearchParams if the URL carries them. Editor UI toggles
1309// the attribute; runtime does the injection. Idempotent by name, so a form
1310// with a pre-existing named hidden input (author-written or AI-authored)
1311// keeps its own definition and is only value-populated by the URL-param
1312// pass above. Runs BEFORE the data-hp-original tagging pass below so the
1313// injected inputs get stamped and pass _isInjected on submission.
1314try{
1315var _HP_STD_UTMS=["utm_source","utm_medium","utm_campaign","utm_term","utm_content","gclid","fbclid","msclkid"];
1316document.querySelectorAll("form[data-persist-capture-utms]").forEach(function(f){
1317_HP_STD_UTMS.forEach(function(n){
1318if(f.querySelector('input[name="'+n+'"]'))return;
1319var inp=document.createElement("input");
1320inp.type="hidden";
1321inp.name=n;
1322inp.setAttribute("data-persist-url-param",n);
1323var v=_hpUrlParams.get(n);
1324if(v!==null&&v!=="")inp.value=v;
1325f.appendChild(inp);
1326});
1327});
1328}catch(e){}
1329
1330// Cloudflare Turnstile CAPTCHA. A form with data-persist-captcha gets the bridge iframe
1331// injected before its submit control when the feature flag is set. TOP-LEVEL path only — in
1332// the sandboxed /p/ iframe the parent shell renders the widget (opaque origin can't run
1333// Turnstile). Owner/editor previews skip it. The bridge posts the token back (listener near
1334// _hpInjectCaptcha), stashed on the form and read by submitData as the top-level captchaToken.
1335if(!_hpIsOwner&&!inSandbox){try{
1336document.querySelectorAll("form[data-persist-captcha]").forEach(function(f){
1337// Multi-step forms defer injection to the LAST step (see the multi-step render), so the
1338// widget renders fresh + visible next to the submit and never appears on an earlier step.
1339if(f.hasAttribute("data-persist-multistep"))return;
1340_hpInjectCaptcha(f);
1341});
1342}catch(e){}}
1343
1344// Authored multi-step progress indicator — a real [data-persist-ms-progress] element the
1345// editor builds as page content (variant "text" | "bar" | "dots"), so the author restyles it
1346// like anything else on the page. Only its STATE is written here; the structure is authored
1347// markup and is never rebuilt, or a restyle would be thrown away on every step. MIRROR of
1348// syncMsProgressState in visual-editor/iframe-script/utils.ts, which does the same for the
1349// edit canvas — that file cannot be imported from here (this script is a self-contained twin
1350// of a separate Cloudflare-worker package; see form-scripts-sync.test.ts), so the two copies
1351// must agree on every attribute name below. Not to be confused with the TRANSIENT
1352// data-htmlpub-ms-progress line further down, injected only for a form with no authored nav.
1353function _hpMsProgress(f,cur,total){
1354var p=f.querySelector("[data-persist-ms-progress]");
1355if(!p)return;
1356var t=p.querySelector("[data-persist-ms-progress-text]");
1357if(t)t.textContent="Step "+(cur+1)+" of "+total;
1358var fill=p.querySelector("[data-persist-ms-progress-fill]");
1359if(fill)fill.style.width=(total>0?((cur+1)/total)*100:100)+"%";
1360var dots=p.querySelectorAll("[data-persist-ms-progress-dot]");
1361for(var i=0;i<dots.length;i++)dots[i].style.opacity=(i<=cur?"1":"0.25");
1362// A connector counts as travelled only once the step AFTER it is reached.
1363var lines=p.querySelectorAll("[data-persist-ms-progress-line]");
1364for(var j=0;j<lines.length;j++)lines[j].style.opacity=(j<cur?"1":"0.25");
1365}
1366
1367// ── Multi-step forms ── a form[data-persist-multistep] shows one [data-persist-step]
1368// container at a time, and validates the current step's required fields before advancing.
1369// Navigation uses the AUTHORED, page-styled buttons the editor creates —
1370// [data-persist-ms-next] (advance) + [data-persist-ms-back] (retreat) — with the real submit
1371// shown only on the last step. Legacy / hand-authored forms with no such buttons get a
1372// transient injected Back/Next + progress line (data-htmlpub-*, never saved) so they still
1373// work. The controller is stashed on the form as __hpMultiStep so the submit handler advances
1374// instead of submitting until the last step. The edit canvas (owner, NOT preview) skips this
1375// so every field stays visible for editing; Preview (data-preview="1") runs it.
1376if(!_hpIsOwner||_hpIsPreview){try{
1377document.querySelectorAll("form[data-persist-multistep]").forEach(function(f){
1378var steps=[].slice.call(f.querySelectorAll("[data-persist-step]"));
1379if(steps.length<2){
1380// A single-step form has no navigation — hide any authored Back/Next so they don't render
1381// as dead buttons; the submit stays as the only action.
1382var _hpDead=f.querySelectorAll("[data-persist-ms-back],[data-persist-ms-next]");
1383for(var _hpd=0;_hpd<_hpDead.length;_hpd++)_hpDead[_hpd].style.display="none";
1384// Same reasoning for an authored progress indicator: with no steps to advance through it
1385// would sit there reading "Step 1 of 1".
1386var _hpProg1=f.querySelector("[data-persist-ms-progress]");
1387if(_hpProg1)_hpProg1.style.display="none";
1388// A degenerate multi-step form (0 or 1 real steps) behaves like a plain form, but the boot-time
1389// captcha pass skipped it (it carries data-persist-multistep) and the last-step inject below
1390// never runs. Inject the widget here — otherwise the server enforces a token this page never
1391// produces and every submission is rejected (100% lead loss), while the editor still shows the
1392// placeholder. Mirrors the non-multistep boot path (owner/preview skip via !_hpIsOwner).
1393if(!_hpIsOwner&&f.hasAttribute("data-persist-captcha"))_hpInjectCaptcha(f);
1394return;
1395}
1396steps.sort(function(a,b){return (parseInt(a.getAttribute("data-persist-step"),10)||0)-(parseInt(b.getAttribute("data-persist-step"),10)||0);});
1397// Suppress native whole-form constraint validation: a required field in a
1398// not-yet-reached (display:none) step would otherwise abort submission and block
1399// Enter-to-advance. We validate each step in JS instead (validateStep on every hop
1400// + the last step on final submit), so required fields are still enforced.
1401f.noValidate=true;
1402// Exclude the authored nav buttons so a type-less [data-persist-ms-*] button is never picked as the submit.
1403var submit=_hpFindSubmit(f);
1404var submitDisp=submit?submit.style.display:"";
1405var cur=0;
1406// Prefer the authored nav buttons; fall back to injecting them for legacy forms.
1407var next=f.querySelector("[data-persist-ms-next]");
1408var back=f.querySelector("[data-persist-ms-back]");
1409var prog=null;
1410if(!next){
1411// Skipped when the form carries an AUTHORED indicator: the transient one exists only to
1412// stand in for a form that has none, and rendering both reads as a duplicate.
1413if(!f.querySelector("[data-persist-ms-progress]")){
1414prog=document.createElement("div");
1415prog.setAttribute("data-htmlpub-ms-progress","");
1416prog.style.cssText="font-family:system-ui,sans-serif;font-size:13px;opacity:0.7;margin-bottom:8px;";
1417if(steps[0].parentNode)steps[0].parentNode.insertBefore(prog,steps[0]);
1418}
1419var nav=document.createElement("div");
1420nav.setAttribute("data-htmlpub-ms-nav","");
1421nav.style.cssText="display:flex;gap:8px;margin-top:8px;";
1422// Reuse an authored Back if the form has one (only Next was missing) — don't inject a duplicate.
1423if(!back){back=document.createElement("button");back.type="button";back.setAttribute("data-htmlpub-ms-back","");back.textContent="Back";}
1424next=document.createElement("button");next.type="button";next.setAttribute("data-htmlpub-ms-next","");next.textContent="Next";
1425if(submit&&submit.className){next.className=submit.className;if(!back.className)back.className=submit.className;}
1426nav.appendChild(back);nav.appendChild(next);
1427var lastStep=steps[steps.length-1];
1428if(lastStep.parentNode)lastStep.parentNode.insertBefore(nav,lastStep.nextSibling);
1429}
1430var nextDisp=next?next.style.display:"";
1431var backDisp=back?back.style.display:"";
1432function render(){
1433for(var i=0;i<steps.length;i++)steps[i].style.display=(i===cur?"":"none");
1434if(prog)prog.textContent="Step "+(cur+1)+" of "+steps.length;
1435_hpMsProgress(f,cur,steps.length);
1436var last=cur===steps.length-1;
1437if(back)back.style.display=cur>0?backDisp:"none";
1438if(next)next.style.display=last?"none":nextDisp;
1439if(submit)submit.style.display=last?submitDisp:"none";
1440// Spam protection: inject the Turnstile widget the moment the visitor reaches the last step
1441// (fresh + visible so its token populates reliably — hiding it via display:none does not).
1442if(last&&!_hpIsOwner&&f.hasAttribute("data-persist-captcha"))_hpInjectCaptcha(f);
1443}
1444function _hpValidatable(c){
1445// Skip fields the visitor can't see/act on — a data-persist-hidden (display:none) or
1446// disabled required field can't show a validation bubble and would silently trap them.
1447if(c.disabled)return false;
1448if(c.closest&&c.closest("[data-persist-hidden]"))return false;
1449return typeof c.checkValidity==="function";
1450}
1451function validateStep(){
1452var ctrls=steps[cur].querySelectorAll("input,select,textarea");
1453for(var i=0;i<ctrls.length;i++){
1454if(_hpValidatable(ctrls[i])&&!ctrls[i].checkValidity()){
1455if(typeof ctrls[i].reportValidity==="function")ctrls[i].reportValidity();
1456return false;
1457}
1458}
1459return _hpGroupReqOK(steps[cur]);
1460}
1461function validateOutside(){
1462// Required controls authored OUTSIDE any step container are never in validateStep's scope;
1463// f.noValidate is on form-wide, so validate them on final submit or they'd submit empty.
1464var all=f.querySelectorAll("input,select,textarea");
1465for(var i=0;i<all.length;i++){
1466var c=all[i];
1467if(c.closest&&c.closest("[data-persist-step]"))continue;
1468if(_hpValidatable(c)&&!c.checkValidity()){
1469if(typeof c.reportValidity==="function")c.reportValidity();
1470return false;
1471}
1472}
1473return true;
1474}
1475function advance(){if(cur<steps.length-1&&validateStep()){cur++;render();}}
1476if(next)next.addEventListener("click",function(e){if(e&&e.preventDefault)e.preventDefault();advance();});
1477if(back)back.addEventListener("click",function(e){if(e&&e.preventDefault)e.preventDefault();if(cur>0){cur--;render();}});
1478// validate() re-checks the CURRENT step + any required controls outside all steps — the
1479// submit handler calls it on the last step before sending (native validation is off).
1480f.__hpMultiStep={isLast:function(){return cur>=steps.length-1;},advance:advance,validate:function(){return validateStep()&&validateOutside();}};
1481render();
1482});
1483}catch(e){}}
1484
1485// ── International phone ── input[type=tel][data-persist-phone] gets a country
1486// dial-code <select> injected before it + a hidden E.164 companion that carries the
1487// real submitted value (+<dial><national digits>) under the field's name. The visible
1488// tel input keeps the national number for display and is excluded from collect()
1489// (data-hp-phone-nat); the <select> is excluded too (data-hp-phone-cc). On every
1490// input / country change the E.164 is reassembled and validated — E.164 spec (7–15
1491// total digits) plus a GENEROUS per-country national-length range where the length is
1492// well known — via setCustomValidity, so native validation blocks a malformed submit
1493// on single-step forms and validateStep() enforces it on multi-step ones. Runs BEFORE
1494// the data-hp-original tagging pass so the hidden companion is stamped and collected.
1495// Runs in owner mode too so the editor preview shows the selector (the validity flag
1496// is harmless there — owner previews don't submit real leads). data-persist-phone /
1497// data-persist-phone-country are persistent (never stripped from the AI diff); the
1498// injected select + companion are data-hp-* (transient) and never saved.
1499try{
1500var _HP_PHONE=[["US","United States","1",10,10,0],["CA","Canada","1",10,10,0],["GB","United Kingdom","44",9,10,0],["AU","Australia","61",9,9,0],["DE","Germany","49",0,0,0],["FR","France","33",9,9,0],["IN","India","91",10,10,0],["BR","Brazil","55",10,11,0],["MX","Mexico","52",10,10,0],["ES","Spain","34",9,9,0],["IT","Italy","39",9,11,1],["NL","Netherlands","31",9,9,0],["AE","United Arab Emirates","971",9,9,0],["SG","Singapore","65",8,8,0],["JP","Japan","81",9,11,0],["CN","China","86",8,11,0],["ZA","South Africa","27",9,9,0],["NG","Nigeria","234",10,10,0],["IE","Ireland","353",7,9,0],["NZ","New Zealand","64",8,10,0],["AR","Argentina","54",0,0,0],["AT","Austria","43",0,0,0],["BE","Belgium","32",0,0,0],["BD","Bangladesh","880",0,0,0],["BG","Bulgaria","359",0,0,0],["BH","Bahrain","973",8,8,0],["BO","Bolivia","591",0,0,0],["CH","Switzerland","41",9,9,0],["CL","Chile","56",0,0,0],["CO","Colombia","57",8,10,0],["CR","Costa Rica","506",8,8,0],["CY","Cyprus","357",8,8,0],["CZ","Czechia","420",9,9,0],["DK","Denmark","45",8,8,0],["DO","Dominican Republic","1",10,10,0],["EC","Ecuador","593",0,0,0],["EG","Egypt","20",0,0,0],["EE","Estonia","372",0,0,0],["FI","Finland","358",0,0,0],["GR","Greece","30",10,10,0],["GT","Guatemala","502",8,8,0],["HK","Hong Kong","852",8,8,0],["HR","Croatia","385",0,0,0],["HU","Hungary","36",0,0,0],["ID","Indonesia","62",0,0,0],["IL","Israel","972",8,9,0],["JO","Jordan","962",0,0,0],["KE","Kenya","254",0,0,0],["KR","South Korea","82",0,0,0],["KW","Kuwait","965",8,8,0],["LK","Sri Lanka","94",9,9,0],["LT","Lithuania","370",8,8,0],["LU","Luxembourg","352",0,0,0],["LV","Latvia","371",8,8,0],["MA","Morocco","212",9,9,0],["MY","Malaysia","60",0,0,0],["NO","Norway","47",8,8,0],["OM","Oman","968",8,8,0],["PA","Panama","507",0,0,0],["PE","Peru","51",9,9,0],["PH","Philippines","63",9,10,0],["PK","Pakistan","92",10,10,0],["PL","Poland","48",9,9,0],["PT","Portugal","351",9,9,0],["PY","Paraguay","595",0,0,0],["QA","Qatar","974",8,8,0],["RO","Romania","40",9,9,0],["RS","Serbia","381",0,0,0],["RU","Russia","7",10,10,0],["SA","Saudi Arabia","966",9,9,0],["SE","Sweden","46",0,0,0],["SK","Slovakia","421",9,9,0],["SI","Slovenia","386",0,0,0],["TH","Thailand","66",9,9,0],["TN","Tunisia","216",8,8,0],["TR","Turkey","90",10,10,0],["TW","Taiwan","886",0,0,0],["UA","Ukraine","380",9,9,0],["UY","Uruguay","598",0,0,0],["VE","Venezuela","58",0,0,0],["VN","Vietnam","84",0,0,0]];
1501var _hpPhoneByIso={};for(var _hppi=0;_hppi<_HP_PHONE.length;_hppi++){_hpPhoneByIso[_HP_PHONE[_hppi][0]]=_HP_PHONE[_hppi];}
1502var _hpDigits=function(s){return (s||"").replace(/[^0-9]/g,"");};
1503var _hpFlag=function(iso){try{return String.fromCodePoint(0x1F1E6+(iso.charCo
1503deAt(0)-65))+String.fromCodePoint(0x1F1E6+(iso.charCodeAt(1)-65));}catch(e){return "";}};
1504// Reduce the typed digits to the country's national significant number (NSN): strip a
1505// user-typed country code (guarded by the expected NSN length so a valid number is never
1506// shortened) and a national trunk prefix "0" (guarded so it never drops below the country
1507// minimum; suppressed for keepLeadingZero countries like Italy). Lead-safe: each strip
1508// fires only when it yields a still-plausible NSN, so "07911 123456", "06 12 34 56 78" and
1509// "1 (415) 555-2671" all assemble to correct E.164 and pass validation.
1510var _hpNSN=function(nat,cur){
1511var dial=cur[2],min=cur[3],max=cur[4],keep0=cur[5];
1512if(dial&&nat.length>dial.length&&nat.substring(0,dial.length)===dial){
1513var rest=nat.substring(dial.length);
1514var restT=(!keep0&&rest.charAt(0)==="0")?rest.replace(/^0+/,""):rest;
1515if(min&&max){
1516// Known national length: keep whichever candidate fits the country's range.
1517if(restT.length>=min&&restT.length<=max)nat=restT;
1518else if(rest.length>=min&&rest.length<=max)nat=rest;
1519}
1520// Variable-length country (min/max unknown): do NOT strip the leading dial-code digits —
1521// for those countries a real national number can legitimately begin with its own dial
1522// code, and chopping it corrupts the number (F4). "+"-prefixed input is handled before
1523// _hpNSN, so this only affects the ambiguous no-"+" case; keep the digits as typed.
1524}
1525if(!keep0&&nat.charAt(0)==="0"){var s=nat.replace(/^0+/,"");if(!min||s.length>=min)nat=s;}
1526// Russia/Kazakhstan (dial 7) use "8" as the national trunk prefix, not "0". Strip a lone
1527// leading "8", guarded by the country minimum so a valid NSN is never shortened (F3).
1528if(dial==="7"&&nat.charAt(0)==="8"){var s8=nat.replace(/^8/,"");if(!min||s8.length>=min)nat=s8;}
1529return nat;
1530};
1531document.querySelectorAll('input[type="tel"][data-persist-phone]').forEach(function(inp){
1532if(inp.getAttribute("data-hp-phone-on")==="1")return;
1533inp.setAttribute("data-hp-phone-on","1");
1534// Key the E.164 companion the SAME way collect()/extract-form-fields key a plain tel
1535// input (name -> id -> data-field -> "phone"), computed BEFORE any DOM mutation so
1536// enabling international never changes which lead column the number lands in.
1537var nm=fieldKey(inp,0);
1538var iso=(inp.getAttribute("data-persist-phone-country")||"US").toUpperCase();
1539if(!_hpPhoneByIso[iso])iso="US";
1540// Custom country combobox. A native <select> can't show a compact "flag +dial" when
1541// CLOSED and full country names when OPEN: its closed text IS the selected option's
1542// text, and a same-value close fires no event to swap it back. So we build a small
1543// self-contained combobox — a styled trigger button showing "flag +dial" + a panel
1544// listing full country names. curIso tracks the selection for E.164 assembly. Lay it
1545// out side by side with the number in a flex row (standard international-phone layout);
1546// the trigger copies the number input's border/radius/padding/font/colors so it matches
1547// whatever the page's forms look like (align-items:stretch matches their heights).
1548var curIso=iso;
1549// Brand accent for the selected-row tint + checkmark, sampled from the form's primary
1550// (submit) button background so the dropdown matches the page. A light tint keeps the
1551// dark option text legible. Falls back to a neutral blue; transparent / near-white
1552// buttons are ignored so the accent stays visible.
1553var _hpAccent="#2563eb",_hpAccentTint="rgba(37,99,235,0.12)";
1554try{
1555var _hpBtnForm=inp.closest?inp.closest("form"):null;
1556var _hpBtn=_hpBtnForm?_hpFindSubmit(_hpBtnForm):null;
1557if(_hpBtn){
1558var _bg=window.getComputedStyle(_hpBtn).backgroundColor||"";
1559var _pp=_bg.replace(/[^0-9,.]/g,"").split(",");
1560var _rr=parseInt(_pp[0],10),_gg=parseInt(_pp[1],10),_bb=parseInt(_pp[2],10),_aa=_pp.length>3?parseFloat(_pp[3]):1;
1561if(!isNaN(_rr)&&!isNaN(_gg)&&!isNaN(_bb)&&_aa>0.1&&(_rr+_gg+_bb)<720){_hpAccent="rgb("+_rr+","+_gg+","+_bb+")";_hpAccentTint="rgba("+_rr+","+_gg+","+_bb+",0.12)";}
1562}
1563}catch(e){}
1564// Use the AUTHORED wrapper (data-persist-phone-field) that the editor saved, so the
1565// published layout is identical to the edit canvas. Create one only as a fallback for
1566// legacy pages saved before the authored wrapper existed (served pages aren't re-saved,
1567// so a runtime-created wrapper is harmless there).
1568var wrap=inp.closest?inp.closest("[data-persist-phone-field]"):null;
1569if(!wrap){
1570wrap=document.createElement("span");
1571wrap.setAttribute("data-persist-phone-field","");
1572wrap.style.cssText="display:flex;align-items:stretch;gap:6px;width:100%;position:relative;";
1573if(inp.parentNode)inp.parentNode.insertBefore(wrap,inp);
1574wrap.appendChild(inp);
1575}
1576if(!wrap.style.position)wrap.style.position="relative";
1577// A <span role=button>, NOT a <button>: the widget sits inside the field's <label>, and
1578// a <label> forwards clicks to its first LABELABLE descendant. A <button> would become
1579// that control, so clicking a list item fires a synthetic click on the trigger and
1580// re-opens the panel. A <span> isn't labelable, so the label keeps targeting the number
1581// input; preventDefault on the trigger/list clicks stops any residual label forwarding.
1582var trig=document.createElement("span");
1583trig.setAttribute("role","button");
1584trig.setAttribute("tabindex","0");
1585trig.setAttribute("data-hp-phone-cc","");
1586trig.setAttribute("aria-haspopup","listbox");
1587trig.setAttribute("aria-expanded","false");
1588trig.setAttribute("aria-label","Country calling code");
1589trig.style.cssText="flex:0 0 auto;display:inline-flex;align-items:center;gap:6px;cursor:pointer;white-space:nowrap;-webkit-user-select:none;user-select:none;box-sizing:border-box;";
1590try{
1591var _cs=window.getComputedStyle(inp);
1592var _cp=["fontFamily","fontSize","fontWeight","color","backgroundColor","borderTopWidth","borderRightWidth","borderBottomWidth","borderLeftWidth","borderTopStyle","borderRightStyle","borderBottomStyle","borderLeftStyle","borderTopColor","borderRightColor","borderBottomColor","borderLeftColor","borderTopLeftRadius","borderTopRightRadius","borderBottomRightRadius","borderBottomLeftRadius","paddingTop","paddingBottom","paddingLeft","paddingRight","boxSizing","lineHeight"];
1593for(var _cpi=0;_cpi<_cp.length;_cpi++){try{if(_cs[_cp[_cpi]])trig.style[_cp[_cpi]]=_cs[_cp[_cpi]];}catch(e){}}
1594}catch(e){}
1595var trigLabel=document.createElement("span");
1596trig.appendChild(trigLabel);
1597var trigCaret=document.createElement("span");trigCaret.textContent="▾";trigCaret.style.cssText="opacity:0.55;font-size:0.8em;";
1598trig.appendChild(trigCaret);
1599var panel=document.createElement("ul");
1600panel.setAttribute("role","listbox");
1601panel.setAttribute("data-hp-phone-list","");
1602panel.style.cssText="display:none;position:absolute;top:100%;left:0;z-index:2147483000;margin:4px 0 0;padding:4px 0;list-style:none;max-height:260px;overflow-y:auto;min-width:240px;background:#fff;color:#111;border:1px solid rgba(0,0,0,0.15);border-radius:8px;box-shadow:0 8px 28px rgba(0,0,0,0.18);font-family:system-ui,-apple-system,sans-serif;font-size:14px;text-align:left;";
1603// Hover + selected-item styling (one shared, id-guarded stylesheet — inline styles can't
1604// express :hover / ::after). Injected on the live page only; never touches the editor.
1605if(!document.getElementById("hp-phone-cc-style")){var _phSt=document.createElement("style");_phSt.id="hp-phone-cc-style";_phSt.textContent="ul[data-hp-phone-list] li[role=option]:hover{background:rgba(0,0,0,0.06);}ul[data-hp-phone-list] li[aria-selected=true]{font-weight:600;background:var(--hp-accent-tint,rgba(37,99,235,0.12));}ul[data-hp-phone-list] li[aria-selected=true]::after{content:'✓';float:right;margin-left:12px;color:var(--hp-accent,#2563eb);}";(document.head||document.documentElement).appendChild(_phSt);}
1606panel.style.setProperty("--hp-accent",_hpAccent);
1607panel.style.setProperty("--hp-accent-tint",_hpAccentTint);
1608for(var pci=0;pci<_HP_PHONE.length;pci++){
1609var pc=_HP_PHONE[pci];
1610var li=document.createElement("li");
1611li.setAttribute("role","option");
1612li.setAttribute("data-iso",pc[0]);
1613li.setAttribute("data-dial",pc[2]);
1614li.setAttribute("aria-selected",pc[0]===iso?"true":"false");
1615li.textContent=_hpFlag(pc[0])+" "+pc[1]+" +"+pc[2];
1616li.style.cssText="padding:7px 14px;cursor:pointer;white-space:nowrap;";
1617panel.appendChild(li);
1618}
1619var renderTrig=function(){var c=_hpPhoneByIso[curIso];trigLabel.textContent=_hpFlag(curIso)+" +"+(c?c[2]:"");};
1620var closePanel=function(){panel.style.display="none";trig.setAttribute("aria-expanded","false");};
1621var openPanel=function(){panel.style.display="block";trig.setAttribute("aria-expanded","true");};
1622inp.style.flex="1";
1623inp.style.minWidth="0";
1624wrap.insertBefore(trig,inp); // trigger sits before the number input (input already in the wrap)
1625wrap.appendChild(panel);
1626var hid=document.createElement("input");
1627hid.type="hidden";
1628hid.name=nm;
1629hid.setAttribute("data-hp-phone-e164","");
1630wrap.appendChild(hid);
1631inp.setAttribute("data-hp-phone-nat","");
1632inp.removeAttribute("name");
1633var _hpSyncPhone=function(){
1634var raw=(inp.value||"").trim();
1635var cur=_hpPhoneByIso[curIso];
1636var dial=cur?cur[2]:"";
1637var e164="",nsnLen=0,isIntl=false;
1638if(raw.charAt(0)==="+"){e164="+"+_hpDigits(raw);isIntl=true;}
1639else{var nsn=_hpNSN(_hpDigits(raw),cur);nsnLen=nsn.length;e164=nsn?("+"+dial+nsn):"";}
1640hid.value=e164;
1641var msg="";
1642if(raw){
1643var total=_hpDigits(e164).length;
1644// Hard rules only: E.164 spec (7-15 total digits) + a per-country MINIMUM NSN length
1645// (catches a genuinely incomplete number, e.g. a US local number with no area code). No
1646// per-country maximum -> an over-long entry (usually the visitor including extra
1647// country/trunk digits) is accepted, never rejected. A "+"-prefixed entry skips the
1648// per-country floor entirely (the visitor owns their own format).
1649if(total<7||total>15)msg="Enter a valid phone number.";
1650else if(!isIntl&&nsnLen&&cur&&cur[3]&&nsnLen<cur[3])msg="Enter a valid "+cur[1]+" phone number.";
1651}
1652if(typeof inp.setCustomValidity==="function")inp.setCustomValidity(msg);
1653};
1654var selectIso=function(newIso){if(_hpPhoneByIso[newIso])curIso=newIso;for(var _si=0;_si<panel.children.length;_si++){var _c=panel.children[_si];if(_c.getAttribute&&_c.getAttribute("role")==="option")_c.setAttribute("aria-selected",_c.getAttribute("data-iso")===curIso?"true":"false");}renderTrig();closePanel();_hpSyncPhone();};
1655panel.addEventListener("click",function(e){var t=e.target;while(t&&t!==panel&&!(t.getAttribute&&t.getAttribute("role")==="option"))t=t.parentNode;if(t&&t.getAttribute&&t.getAttribute("role")==="option"){e.preventDefault();selectIso(t.getAttribute("data-iso"));try{inp.focus();}catch(_e){}}});
1656trig.addEventListener("click",function(e){e.preventDefault();if(panel.style.display==="block")closePanel();else openPanel();});
1657trig.addEventListener("keydown",function(e){if(e.key==="Escape"){closePanel();}else if(e.key==="ArrowDown"||e.key==="Enter"||e.key===" "){e.preventDefault();openPanel();}});
1658document.addEventListener("click",function(e){if(!wrap.contains(e.target))closePanel();});
1659inp.addEventListener("input",_hpSyncPhone);
1660inp.addEventListener("blur",_hpSyncPhone);
1661renderTrig();
1662_hpSyncPhone();
1663});
1664}catch(e){}
1665
1666// Tag all hidden inputs present in the original HTML so we can distinguish
1667// them from ones injected later by third-party scripts (Customers.ai, etc.)
1668document.querySelectorAll('input[type="hidden"]').forEach(function(el){el.setAttribute("data-hp-original","1");});
1669
1670function showNotice(f,text,ok){
1671var m=document.createElement("div");
1672m.textContent=text;
1673m.style.cssText="padding:12px 16px;margin:8px 0;border-radius:6px;font-family:system-ui,sans-serif;font-size:14px;"+(ok?"background:#f0fdf4;color:#166534;border:1px solid #bbf7d0":"background:#fef2f2;color:#991b1b;border:1px solid #fecaca");
1674f.parentNode.insertBefore(m,f.nextSibling);
1675setTimeout(function(){m.remove()},5000);
1676}
1677// showMsg wraps showNotice; the optional 3rd arg lets callers override the default success/error
1678// copy (e.g. the Turnstile "still verifying" gate). Omit it for the standard success/error notices.
1679function showMsg(f,ok,msg){showNotice(f,msg||(ok?(f.getAttribute("data-success-message")||"Thank you! Your submission has been received."):"Something went wrong. Please try again."),ok);}
1680// reCAPTCHA v2 (HP-1475). The response token lives in a hidden
1681// <textarea name="g-recaptcha-response"> that grecaptcha creates inside the
1682// widget's container; scoping the lookup to the submitted form/container picks
1683// the right token when a page renders more than one widget.
1684function _hpCaptchaToken(f){
1685try{var ta=f.querySelector&&f.querySelector('textarea[name="g-recaptcha-response"]');return ta&&ta.value?ta.value:"";}catch(e){return "";}
1686}
1687
1688function formId(f){
1689if(f.tagName==="FORM")return f.id||f.getAttribute("name")||"form-"+([].indexOf.call(document.forms,f));
1690return f.id||"section-"+([].indexOf.call(document.querySelectorAll("[data-htmlpub-fake-form]"),f));
1691}
1692
1693// Listen for postMessage responses from parent shell
1694if(inSandbox){
1695window.addEventListener("message",function(e){
1696var d=e.data;
1697if(d&&d.type==="htmlpub-form-submit-result"&&d.correlationId){
1698var cb=pendingCallbacks[d.correlationId];
1699if(cb){
1700delete pendingCallbacks[d.correlationId];
1701cb(d.success,d.captchaRequired,d.error);
1702}
1703}
1704});
1705}
1706
1707function isSafeRedirectUrl(url){
1708if(!url)return false;
1709if(/^https?:\/\//i.test(url))return true;
1710if(url.charAt(0)==="/"&&url.charAt(1)!=="/")return true;
1711return false;
1712}
1713// Migrated Builder3 site headers use relative hrefs that break on trailing-slash landing URLs; drop the trailing slash on same-origin targets (/thank-you/ -> /thank-you).
1714function stripTrailingSlash(url){
1715try{var u=new URL(url,window.location.origin);if(u.origin===window.location.origin&&u.pathname.length>1&&u.pathname.charAt(u.pathname.length-1)==="/")return u.pathname.replace(/\/+$/,"")+u.search+u.hash;}catch(e){}
1716return url;
1717}
1718function maybeRedirectUrl(url){
1719if(window.htmlpubEditorMode)return;
1720if(!isSafeRedirectUrl(url))return;
1721if(/\/api\/forms\/submit$/.test(url))return;
1722setTimeout(function(){window.location.href=stripTrailingSlash(url);},600);
1723}
1724function maybeRedirect(f){maybeRedirectUrl(f.getAttribute("action"));}
1725function reportFail(kind,status,fident){
1726try{if(window.__hpupPushEvent)window.__hpupPushEvent("form_submit_failed",{failureKind:kind,httpStatus:status||0,host:location.host,path:location.pathname,apiBase:s.getAttribute("data-api-url")||"",formIdentifier:fident,pageId:pageId,pageSlug:slug});}catch(e){}
1727}
1728function submitData(f,data){
1729var btn=_hpFindSubmit(f);
1730if(btn)btn.disabled=true;
1731
1732// Generate one eventID per submission, threaded through three places:
1733//   (a) the JSON payload to /api/forms/submit → integration queue
1734//   (b) the postMessage to the parent shell (which forwards to the same API)
1735//   (c) the browser pixel events fired on success below
1736// Both browser and server emit the SAME id to the same downstream provider
1737// so Meta / TikTok dedup them as a single conversion.
1738var eventId=_hpUuid();
1739var fident=formId(f);
1740// Per-form Turnstile token — delivered by the bridge iframe via postMessage (see the listener
1741// near _hpInjectCaptcha) and stashed on the form element.
1742var _hpCapTok=(f.__hpCaptchaToken||"");
1743// stable editor-stamped form id → native lead-magnet routing; "" when unbound
1744var fkey=f.getAttribute("data-persist-form-id")||"";
1745// Classic form uuid re-stamped on migrated forms → per-form scope for carried Classic Zaps
1746var fsrc=f.getAttribute("data-persist-form-source-id")||"";
1747
1748// reCAPTCHA gate (HP-1475): when the page enforces reCAPTCHA but the visitor
1749// hasn't solved the challenge, block the submit with an inline error instead
1750// of POSTing an unverifiable payload the server will reject anyway. Gated on
1751// the enforcement flag (not mere widget presence) so pages with a decorative
1752// widget are unaffected. The server remains the security boundary — it
1753// re-verifies the token against Google. A form that opts into per-form Turnstile
1754// (data-persist-captcha) is handled by the Turnstile gate below instead — skip it here so a
1755// Turnstile form on a reCAPTCHA-enforced page isn't blocked for lacking a reCAPTCHA token
1756// (mirrors the server, which skips its reCAPTCHA block for forms in captchaFormIds).
1757var captchaToken=_hpCaptchaToken(f);
1758if(_hpRecaptchaEnforced&&!captchaToken&&!(f.hasAttribute&&f.hasAttribute("data-persist-captcha"))){
1759if(btn)btn.disabled=false;
1760showNotice(f,"Please complete the reCAPTCHA challenge before submitting.",false);
1761reportFail("captcha_required",0,fident);
1762return;
1763}
1764
1765if(inSandbox){
1766var id="fs-"+(++corrId);
1767var timer=setTimeout(function(){
1768delete pendingCallbacks[id];
1769if(btn)btn.disabled=false;
1770reportFail("timeout",0,fident);showMsg(f,false);
1771},10000);
1772
1773pendingCallbacks[id]=function(success,captchaRequired,errMsg){
1774clearTimeout(timer);
1775if(btn)btn.disabled=false;
1776if(success){setEmailCookie(data);_hpFireLead(fident,data,eventId);showMsg(f,true);if(typeof f.reset==="function")f.reset();maybeRedirect(f);}
1777else if(captchaRequired){showMsg(f,false,"Spam protection is still verifying — please wait a moment and submit again.");}
1778else{reportFail("relay_error",0,fident);showMsg(f,false,errMsg||undefined);}
1779};
1780
1781var vid="";try{vid=localStorage.getItem("_hp_vid")||"";}catch(e){}
1782parent.postMessage({type:"htmlpub-form-submit",correlationId:id,pageId:pageId,pageSlug:slug,formIdentifier:fident,formKey:fkey,classicFormUuid:fsrc,data:data,visitorId:vid,eventId:eventId,captchaToken:(_hpCapTok||captchaToken),formNeedsCaptcha:!!(f.hasAttribute&&f.hasAttribute("data-persist-captcha"))},"*");
1783}else{
1784// Send in top-level (direct fetch) mode. Wrapped in _hpProceed so it can be deferred
1785// until the Turnstile token has had a bounded chance to arrive (see _hpWaitForCaptcha).
1786function _hpProceed(){
1787var vid2="";try{vid2=localStorage.getItem("_hp_vid")||"";}catch(e){}
1788// The captcha token rides EVERY attempt (not just the first). It is single-use,
1789// but the server checks its verified-eventId cache before re-verifying, so a
1790// re-sent already-spent token short-circuits to pass, while a token that was never
1791// spent (attempt 0 failed at the transport / rate-limit layer before verify) still
1792// verifies on retry. Stripping it from retries silently dropped leads on captcha
1793// forms whenever attempt 0 hit a 429/5xx/network error. [HP-2467] Prefer the per-form
1794// Turnstile token; fall back to the reCAPTCHA token (a form uses one mechanism). Read
1795// the FRESHEST token here — it may have arrived via postMessage during the bounded wait,
1796// after _hpCapTok was snapshotted at the top of submitData.
1797var _capTok=(f.__hpCaptchaToken||"")||_hpCapTok||captchaToken;
1798var _hpBody=JSON.stringify({pageId:pageId,pageSlug:slug,formIdentifier:fident,formKey:fkey,classicFormUuid:fsrc,data:data,visitorId:vid2,eventId:eventId,captchaToken:_capTok});
1799// Retry transient failures so a network blip / 5xx / 429 doesn't silently lose
1800// a lead. Every attempt reuses the same eventId, so the server dedups to
1801// exactly one row + one set of side-effects. Backoff: immediate, 15s, 30s,
1802// 2min, then give up. Failed submits don't redirect, so the page stays open
1803// and the delayed retries can run. The submit button stays disabled across
1804// retries to prevent a manual re-submit (which would mint a new eventId). [HP-2467]
1805var _hpDelays=[0,15000,30000,120000];
1806function _hpAttempt(n){
1807fetch(api,{method:"POST",keepalive:true,headers:{"Content-Type":"application/json"},body:_hpBody}).then(function(r){
1808if(r.ok){if(btn)btn.disabled=false;setEmailCookie(data);_hpFireLead(fident,data,eventId);showMsg(f,true);if(typeof f.reset==="function")f.reset();
1809// The Turnstile token is single-use; after a successful submit clear it and reload the bridge
1810// iframe so a subsequent submit on the same (non-reset / non-redirected) form gets a FRESH token
1811// instead of re-sending the spent one and being rejected.
1812try{f.__hpCaptchaToken="";f.__hpCaptchaError=false;var _hpCf=f.querySelector("iframe[data-hp-turnstile]");if(_hpCf)_hpCf.src=_hpCf.src;}catch(e){}
1813maybeRedirect(f);return;}
1814if((r.status>=500||r.status===429)&&n<_hpDelays.length){setTimeout(function(){_hpAttempt(n+1);},_hpDelays[n]);return;}
1815if(btn)btn.disabled=false;reportFail("http_error",r.status,fident);
1816// A 403 on a captcha-protected form means the token was spent/invalid — refresh the widget
1817// so a retry gets a fresh one (otherwise "try again" resends the same rejected token).
1818try{if(r.status===403){f.__hpCaptchaToken="";f.__hpCaptchaError=false;var _hpCfe=f.querySelector("iframe[data-hp-turnstile]");if(_hpCfe)_hpCfe.src=_hpCfe.src;}}catch(e){}
1819// Surface the server's specific message (e.g. "CAPTCHA verification failed") instead of a
1820// generic one; fall back to the generic message when the body isn't JSON.
1821try{r.json().then(function(d){showMsg(f,false,(d&&d.error)||undefined);},function(){showMsg(f,false);});}catch(e){showMsg(f,false);}
1822}).catch(function(){
1823if(n<_hpDelays.length){setTimeout(function(){_hpAttempt(n+1);},_hpDelays[n]);return;}
1824if(btn)btn.disabled=false;reportFail("network",0,fident);showMsg(f,false);
1825});
1826}
1827_hpAttempt(0);
1828}
1829// Spam-protected form whose Turnstile widget exists but hasn't produced a token yet
1830// (fast submit, or the challenge is still loading). Per the decided fail policy, give the
1831// widget a bounded window plus ONE re-challenge, then submit anyway (the server accepts +
1832// flags unverified — never lose a lead) instead of the old "please submit again" dead end.
1833// Skip the wait when: owner preview (widget is owner-gated), a token is already in hand, the
1834// bridge reported a TERMINAL error (no token could ever come), or no widget is present (site
1835// key unconfigured → nothing to wait for, server fails open). The button stays disabled
1836// during the (sub-second-typical, 6s-worst-case) wait so the visitor can't double-submit.
1837if(_hpIsOwner||_hpCapTok!==""||f.__hpCaptchaError||!f.querySelector("iframe[data-hp-turnstile]")){
1838_hpProceed();
1839}else{
1840_hpWaitForCaptcha(f,_hpProceed);
1841}
1842}
1843}
1844
1845// Snapshot forms in the server-rendered HTML at init; third-party embeds (ConvertKit/ActiveCampaign) inject their <form> later, so they're excluded.
1846var _hpNativeForms=(function(){try{return new WeakSet([].slice.call(document.querySelectorAll("form")));}catch(e){return null;}})();
1847document.addEventListener("submit",function(e){
1848var f=e.target;
1849if(f.tagName!=="FORM")return;
1850if(_hpNativeForms&&!_hpNativeForms.has(f)){reportFail("skipped_non_native",0,formId(f));return;}// injected after init (popup/third-party) — don't hijack it; telemeter so silently-dropped non-native submits are visible [HP-2467]
1851e.preventDefault();
1852// Multi-step: if this form is split into steps and the visitor isn't on the last
1853// one yet, advance (validate current step + Next) instead of submitting. Captures
1854// Enter-in-field and any early submit so a partial lead is never sent. On the last
1855// step, validate it in JS first (the form is novalidate, so nothing else does). [P3]
1856if(f.__hpMultiStep){
1857if(!f.__hpMultiStep.isLast()){f.__hpMultiStep.advance();return;}
1858if(f.__hpMultiStep.validate&&!f.__hpMultiStep.validate())return;
1859}
1860// "Select at least one" enforcement for required checkbox groups (single-step forms have no
1861// __hpMultiStep validate pass, and it's a cheap final guard for multi-step too).
1862if(!_hpGroupReqOK(f))return;
1863var data=collect(f);
1864if(Object.keys(data).length===0){if(f.querySelector&&f.querySelector("input,textarea,select"))reportFail("skipped_empty",0,formId(f));return;}// nothing collected — telemeter only when the form actually has fields (real form, nothing captured) [HP-2467]
1865submitData(f,data);
1866},true);
1867
1868// --- Fake form interception (inputs outside <form>) ---
1869var lastFakeSubmit=0;
1870// Walk up from the clicked element to find a "form-like" container:
1871//   - has 1-20 inputs/textareas/selects (excluding hidden/submit/button types)
1872//   - has ≤4 button-like descendants (more = page scaffolding, not a form)
1873//   - the clicked element sits AFTER the last input in document order
1874//     (real submits sit below fields; uses DOCUMENT_POSITION_PRECEDING = 2)
1875// Walk depth capped at 3 — further up is <section>, <main>, or <body>.
1876function findFormLikeContainer(t){
1877var cur=t.parentElement;
1878for(var depth=0;cur&&depth<3;depth++){
1879if(cur.tagName==="FORM")return null;// real form, skip
1880var inputs=cur.querySelectorAll("input:not([type=hidden]):not([type=submit]):not([type=button]),textarea,select");
1881if(inputs.length>=1&&inputs.length<=20){
1882var ctas=cur.querySelectorAll("button,a[href],[role=button],input[type=submit]");
1883if(ctas.length<=4){
1884return (t.compareDocumentPosition(inputs[inputs.length-1])&2)?cur:null;
1885}
1886}
1887cur=cur.parentElement;
1888}
1889return null;
1890}
1891// <a> with a real href is navigation, never a submit. Allow empty href / "#" /
1892// no href (button-styled anchors). <button type="button"> is explicitly non-submit.
1893function isPlausibleSubmit(t){
1894if(t.tagName==="A"){
1895var href=t.getAttribute("href");
1896if(href!==null){
1897href=(href+"").trim();
1898if(href!==""&&href!=="#")return false;
1899}
1900}
1901if(t.tagName==="BUTTON"&&t.getAttribute("type")==="button")return false;
1902return true;
1903}
1904document.addEventListener("click",function(e){
1905var t=e.target.closest?e.target.closest("button,a,[role=button],input[type=submit]"):null;
1906if(!t)return;
1907if(t.closest("form"))return;// inside a real form, native handler covers it
1908// Third-party consent-management (CMP) dialogs (Cookiebot/OneTrust/Osano/
1909// TrustArc/CookieYes) inject a body-level dialog whose "Accept" button + single
1910// pre-checked "necessary" checkbox otherwise look form-like. Cheap early-exit
1911// for known vendors; the lead-field guard below is the load-bearing check.
1912// Vendor tokens are boundary-anchored (CookieYes cky-* matched as whole class
1913// tokens; TrustArc truste-/truste_/trustarc) so they never collide with
1914// sticky-*/trusted* names. [HP-3292]
1915try{if(t.closest("[id*='Cookiebot' i],[id*='CybotCookiebot' i],[id*='onetrust' i],[id*='osano' i],[id*='truste-' i],[id*='truste_' i],[id*='trustarc' i],[class*='cookie-consent' i],[class*='cookieconsent' i],[class^='cky-' i],[class*=' cky-' i]"))return;}catch(e){}
1916if(!isPlausibleSubmit(t))return;
1917var now=Date.now();
1918if(now-lastFakeSubmit<2000)return;
1919var container=findFormLikeContainer(t);
1920if(!container)return;
1921// A genuine lead always carries at least one typed (non checkbox/radio) field
1922// with a value. A form-like container whose only populated field is a
1923// checkbox/radio is a consent/cookie dialog, not a form — never fire a lead for
1924// it. Keys off DOM field TYPE, never payload values, so real leads whose data
1925// merely contains vendor-name substrings are unaffected. [HP-3292]
1926var _leadFields=container.querySelectorAll("input:not([type=hidden]):not([type=submit]):not([type=button]):not
1926([type=checkbox]):not([type=radio]),textarea,select");
1927var _hasLeadField=false;
1928for(var _lf=0;_lf<_leadFields.length;_lf++){if((_leadFields[_lf].value||"").trim()){_hasLeadField=true;break;}}
1929if(!_hasLeadField)return;
1930var data=collect(container);
1931if(Object.keys(data).length===0)return;
1932// Skip if all field values are empty (button click near empty form fields)
1933var hasAnyValue=Object.keys(data).some(function(k){return data[k]&&String(data[k]).trim();});
1934if(!hasAnyValue)return;
1935lastFakeSubmit=now;
1936container.setAttribute("data-htmlpub-fake-form","");
1937submitData(container,data);
1938// Notify analytics script about this fake form submission
1939try{document.dispatchEvent(new CustomEvent("htmlpub:form-submit",{detail:{formIdentifier:formId(container)}}));}catch(e){}
1940},true);
1941
1942// Always report form count to parent (even for non-owner views)
1943function reportFormCount(){
1944var forms=document.querySelectorAll("form");
1945var count=forms.length;
1946var labels=[];
1947for(var i=0;i<forms.length;i++){
1948var ff=forms[i];
1949var label=ff.getAttribute("aria-label")||ff.getAttribute("name")||ff.getAttribute("id")||"";
1950if(!label){
1951var heading=ff.querySelector("h1,h2,h3,h4,h5,h6,label,legend");
1952if(heading) label=heading.textContent.trim().substring(0,50);
1953}
1954labels.push(label||("Form "+(i+1)));
1955}
1956// needsCaptcha tells the parent shell (sandbox path) to render a Turnstile
1957// widget on its own origin: the sandboxed iframe has an opaque origin so it
1958// can't run Turnstile itself. Owner previews never require the token.
1959var _hpNeedsCaptcha=!_hpIsOwner&&!!document.querySelector("form[data-persist-captcha]");
1960if(inSandbox) parent.postMessage({type:"htmlpub-form-count",count:count,labels:labels,needsCaptcha:_hpNeedsCaptcha},"*");
1961}
1962function initFormCount(){
1963reportFormCount();
1964if(typeof MutationObserver!=="undefined"){
1965new MutationObserver(function(){reportFormCount();}).observe(document.body||document.documentElement,{childList:true,subtree:true});
1966}
1967}
1968if(document.readyState==="loading"){document.addEventListener("DOMContentLoaded",initFormCount);}
1969else{initFormCount();}
1970
1971// Leadbox/leadbar iframe form bridge. SYNC with worker-pages/src/scripts/forms.ts.
1972window.addEventListener("message",function(e){
1973if(!e||!e.data||e.data.type!=="htmlpub:iframe-form-submit")return;
1974var fid=String(e.data.formIdentifier||"iframe-form").slice(0,255);
1975var fsid=e.data.formSourceId?String(e.data.formSourceId).slice(0,255):"";
1976var raw=e.data.data;
1977if(!raw||typeof raw!=="object")return;
1978var clean={};
1979for(var k in raw){
1980if(!Object.prototype.hasOwnProperty.call(raw,k))continue;
1981if(looksLikeRawId(k))continue;
1982if(_blocklist.test(k))continue;
1983clean[k]=raw[k];
1984}
1985var redirect=typeof e.data.redirect==="string"?e.data.redirect:"";
1986var relayCaptcha=typeof e.data.captchaToken==="string"?e.data.captchaToken:undefined;
1987fetch(api,{method:"POST",keepalive:true,headers:{"Content-Type":"application/json"},body:JSON.stringify({pageId:pageId,pageSlug:slug,formIdentifier:fid,formSourceId:fsid,data:clean,captchaToken:relayCaptcha})}).then(function(r){if(r.ok){if(redirect)maybeRedirectUrl(redirect);}else{reportFail("http_error",r.status,fid);}}).catch(function(){reportFail("network",0,fid);});
1988},false);
1989})();
1990</script>
1990<script data-htmlpub-popups>
1991(function(){
1992"use strict";
1993
1994var SCOPE = "pathname";
1995var PAGE_ID = "gg1x1lcpx32tjslsbqxxqmm5";
1996
1997var DEFAULTS = {
1998  overlay:   { color: "#000000", opacity: 0.5,  clickToClose: true },
1999  close:     { enabled: true, position: "top-right", escapeToClose: true },
2000  animation: { open: "fade", close: "fade", durationMs: 250 },
2001  frequency: { visitsBefore: 0, daysCooldown: 0 }
2002};
2003
2004function parseJsonAttr(raw, fallback) {
2005  if (!raw) return fallback;
2006  try {
2007    var p = JSON.parse(raw);
2008    if (p && typeof p === "object") return p;
2009  } catch(e) {}
2010  return fallback;
2011}
2012
2013// Back-compat: pages published before the data-persist-popup* rename carry the
2014// legacy data-htmlpub-popup* names. Read canonical first, fall back to legacy.
2015// suffix is "" for the marker, "-name", "-overlay", "-target", etc.
2016function pAttr(el, suffix) {
2017  var v = el.getAttribute("data-persist-popup" + suffix);
2018  return v !== null ? v : el.getAttribute("data-htmlpub-popup" + suffix);
2019}
2020
2021function readConfig(el) {
2022  var overlay   = parseJsonAttr(pAttr(el, "-overlay"),   {});
2023  var closeCfg  = parseJsonAttr(pAttr(el, "-close"),     {});
2024  var anim      = parseJsonAttr(pAttr(el, "-animation"), {});
2025  var triggers  = parseJsonAttr(pAttr(el, "-triggers"),  {});
2026  var frequency = parseJsonAttr(pAttr(el, "-frequency"), {});
2027  return {
2028    overlay: {
2029      color:        typeof overlay.color === "string"   ? overlay.color   : DEFAULTS.overlay.color,
2030      opacity:      typeof overlay.opacity === "number" ? overlay.opacity : DEFAULTS.overlay.opacity,
2031      clickToClose: overlay.clickToClose !== false
2032    },
2033    close: {
2034      enabled:        closeCfg.enabled !== false,
2035      position:       closeCfg.position === "top-left" ? "top-left" : "top-right",
2036      escapeToClose:  closeCfg.escapeToClose !== false
2037    },
2038    animation: {
2039      open:        typeof anim.open === "string"  ? anim.open       : DEFAULTS.animation.open,
2040      close:       typeof anim.close === "string" ? anim.close      : DEFAULTS.animation.close,
2041      durationMs:  typeof anim.durationMs === "number" ? anim.durationMs : DEFAULTS.animation.durationMs
2042    },
2043    triggers: triggers,
2044    frequency: {
2045      visitsBefore: typeof frequency.visitsBefore === "number" ? frequency.visitsBefore : 0,
2046      daysCooldown: typeof frequency.daysCooldown === "number" ? frequency.daysCooldown : 0
2047    },
2048    // "none" = the marker's content owns its own chrome, so this runtime paints none of it.
2049    // Migrated Classic pop-ups: the marker holds an <iframe> whose document already draws the
2050    // mask, centring, card and close button. Nova-authored pop-ups never set it.
2051    chrome: pAttr(el, "-chrome") === "none" ? "none" : "default"
2052  };
2053}
2054
2055// ── LocalStorage helpers — scoped per pathname so two pages on the same
2056// origin track their popups independently. Wrapped in try/catch because
2057// Safari private mode + iframe sandboxing can throw on access.
2058var STORE_PREFIX = SCOPE === "popup-id" ? "_hpup:popup:" : ("_hpup:" + (location.pathname || "/") + ":");
2059function lsGet(key) {
2060  try { return localStorage.getItem(STORE_PREFIX + key); } catch(e) { return null; }
2061}
2062function lsSet(key, value) {
2063  try { localStorage.setItem(STORE_PREFIX + key, value); } catch(e) {}
2064}
2065
2066// Bump the visit counter once per pageload. Used by visitsBefore. In embed
2067// (popup-id) scope callers pass the popup id as a suffix so each standalone
2068// popup tracks its own visit count — a busy host page with two embedded popups
2069// must not let one popup's pageviews satisfy another's visitsBefore gate.
2070function recordVisit(suffix) {
2071  var key = "visits" + (suffix ? ":" + suffix : "");
2072  var prev = parseInt(lsGet(key) || "0", 10);
2073  if (!isFinite(prev) || prev < 0) prev = 0;
2074  lsSet(key, String(prev + 1));
2075  return prev + 1;
2076}
2077
2078function isEligible(cfg, popupId, currentVisit) {
2079  // visitsBefore: 0 = show on first visit. So eligible iff currentVisit > visitsBefore.
2080  if (cfg.frequency.visitsBefore > 0 && currentVisit <= cfg.frequency.visitsBefore) return false;
2081  // daysCooldown: don't reshow until N days have passed since last close.
2082  if (cfg.frequency.daysCooldown > 0) {
2083    var last = parseInt(lsGet("close:" + popupId) || "0", 10);
2084    if (last > 0) {
2085      var elapsedMs = Date.now() - last;
2086      if (elapsedMs < cfg.frequency.daysCooldown * 86400000) return false;
2087    }
2088  }
2089  return true;
2090}
2091
2092function composeRgba(color, opacity) {
2093  var hex = color.match(/^#([0-9a-f]{6})$/i);
2094  if (hex) {
2095    var n = parseInt(hex[1], 16);
2096    return "rgba(" + ((n >> 16) & 0xff) + "," + ((n >> 8) & 0xff) + "," + (n & 0xff) + "," + opacity + ")";
2097  }
2098  var rgb = color.match(/^rgb(?:a)?\(\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)/);
2099  if (rgb) return "rgba(" + rgb[1] + "," + rgb[2] + "," + rgb[3] + "," + opacity + ")";
2100  return "rgba(0,0,0," + opacity + ")";
2101}
2102
2103function animStart(kind) {
2104  if (kind === "slide-up")   return { opacity: 0, transform: "translate(-50%, -40%)" };
2105  if (kind === "slide-down") return { opacity: 0, transform: "translate(-50%, -60%)" };
2106  if (kind === "zoom")       return { opacity: 0, transform: "translate(-50%, -50%) scale(0.92)" };
2107  if (kind === "none")       return { opacity: 1, transform: "translate(-50%, -50%)" };
2108  return { opacity: 0, transform: "translate(-50%, -50%)" }; // fade
2109}
2110function animEnd() {
2111  return { opacity: 1, transform: "translate(-50%, -50%) scale(1)" };
2112}
2113
2114// Body scroll lock — refcounted because two popups can technically be in
2115// the open state at once (different triggers firing back-to-back). The
2116// first lock saves the body's prior overflow + padding-right and replaces
2117// them; subsequent locks just bump the count. We only restore once every
2118// popup that locked has closed, so a still-open popup keeps the page held.
2119// padding-right compensates for the scrollbar disappearing — without it,
2120// the dimmed page behind the overlay shifts right at the moment of open.
2121var _hpupLockCount = 0;
2122var _hpupSavedOverflow = "";
2123var _hpupSavedPaddingRight = "";
2124function lockBodyScroll() {
2125  if (_hpupLockCount === 0) {
2126    var scrollbarWidth = window.innerWidth - document.documentElement.clientWidth;
2127    _hpupSavedOverflow = document.body.style.overflow || "";
2128    _hpupSavedPaddingRight = document.body.style.paddingRight || "";
2129    if (scrollbarWidth > 0) document.body.style.paddingRight = scrollbarWidth + "px";
2130    document.body.style.overflow = "hidden";
2131  }
2132  _hpupLockCount++;
2133}
2134function unlockBodyScroll() {
2135  if (_hpupLockCount === 0) return;
2136  _hpupLockCount--;
2137  if (_hpupLockCount === 0) {
2138    if (_hpupSavedOverflow) document.body.style.overflow = _hpupSavedOverflow;
2139    else document.body.style.removeProperty("overflow");
2140    if (_hpupSavedPaddingRight) document.body.style.paddingRight = _hpupSavedPaddingRight;
2141    else document.body.style.removeProperty("padding-right");
2142  }
2143}
2144
2145// Build the overlay backdrop. Returns the element. Wired with the right
2146// pointer behaviour for the popup's clickToClose setting.
2147function buildOverlay(cfg, onOverlayClick) {
2148  var ov = document.createElement("div");
2149  ov.setAttribute("data-htmlpub-popup-backdrop", "");
2150  ov.style.cssText = "position:fixed;inset:0;background:" + composeRgba(cfg.overlay.color, cfg.overlay.opacity) +
2151    ";z-index:2147483646;opacity:0;transition:opacity " + cfg.animation.durationMs + "ms ease;";
2152  if (cfg.overlay.clickToClose) ov.addEventListener("click", onOverlayClick);
2153  return ov;
2154}
2155
2156// Inject a close ✕ button if the popup doesn't already have one. We mark our
2157// injected button so re-show calls don't duplicate it.
2158function ensureCloseButton(el, cfg, onClose) {
2159  if (el.querySelector("[data-htmlpub-popup-close-btn]")) return;
2160  if (!cfg.close.enabled) return;
2161  var btn = document.createElement("button");
2162  btn.setAttribute("type", "button");
2163  btn.setAttribute("aria-label", "Close pop-up");
2164  btn.setAttribute("data-htmlpub-popup-close-btn", "");
2165  var posStyle = cfg.close.position === "top-left" ? "left:12px;" : "right:12px;";
2166  btn.style.cssText = "position:absolute;top:12px;" + posStyle +
2167    "width:28px;height:28px;border-radius:9999px;border:0;background:rgba(0,0,0,0.45);color:#fff;" +
2168    "font:16px/1 system-ui,-apple-system,sans-serif;cursor:pointer;display:flex;align-items:center;" +
2169    "justify-content:center;z-index:1;padding:0;";
2170  btn.textContent = "×";
2171  btn.addEventListener("click", function(e){ e.preventDefault(); e.stopPropagation(); onClose(); });
2172  // Ensure the popup itself is a positioning context so absolute close button
2173  // anchors to it. Cheap: only sets if not already positioned.
2174  var pos = getComputedStyle(el).position;
2175  if (pos === "static" || !pos) el.style.position = "relative";
2176  el.appendChild(btn);
2177}
2178
2179// ── Per-popup wiring ──────────────────────────────────────────────────────
2180// Each popup gets its own controller closing over its element + config +
2181// trigger cleanup so we can tear down listeners on close.
2182
2183// HP-1557 — fire an analytics event for this popup. Hands off to the
2184// analytics.ts buffer via window.__hpupPushEvent (registered there). If
2185// analytics isn't loaded for some reason we silently no-op rather than
2186// breaking the popup runtime.
2187function emitPopupEvent(eventType, popup, extras) {
2188  if (typeof window.__hpupPushEvent !== "function") return;
2189  var payload = {
2190    popupId: popup.getAttribute("id") || "",
2191    popupName: (pAttr(popup, "-name") || "").replace(/^\s+|\s+$/g, "")
2192  };
2193  // Standalone-embed pop-ups carry their page id via data-hp-popup-cuid (set by
2194  // the embed bundle) so analytics can attribute to a specific pop-up; the DOM
2195  // id in popupId is a shared name-slug. In-page pop-ups have no cuid so this
2196  // stays absent.
2197  var _hpCuid = popup.getAttribute("data-hp-popup-cuid");
2198  if (_hpCuid) payload.popupCuid = _hpCuid;
2199  if (extras && typeof extras === "object") {
2200    for (var k in extras) {
2201      if (Object.prototype.hasOwnProperty.call(extras, k)) payload[k] = extras[k];
2202    }
2203  }
2204  window.__hpupPushEvent(eventType, payload);
2205}
2206
2207// Single-open invariant: only one popup may be visible at a time.
2208// show() force-closes whatever is up before painting itself.
2209var _hpupCurrentOpen = null;
2210
2211function wirePopup(el, currentVisit) {
2212  var cfg = readConfig(el);
2213  var popupId = el.getAttribute("id") || "";
2214  if (!popupId) return;
2215  // The editor stores popups hidden via inline display:none. We never strip
2216  // that — we toggle it at show/close time so a never-shown popup stays
2217  // invisible (matching its rendered state in the DOM).
2218  var originalDisplay = el.style.display || "";
2219  var isOpen = false;
2220  var overlay = null;
2221  var keyListener = null;
2222  var sizeObserver = null;
2223  var cleanups = []; // trigger listener removers; called on first show
2224
2225  function cleanupTriggers() {
2226    for (var i = 0; i < cleanups.length; i++) {
2227      try { cleanups[i](); } catch(e) {}
2228    }
2229    cleanups = [];
2230  }
2231
2232  // Why a popup was opened — informs the parent analytics event so the
2233  // dashboard can distinguish "fired by timer" vs. "explicit user click".
2234  // Updated by callers before show() and reset to null after emit.
2235  var lastShowReason = null;
2236
2237  // HP-4147 — the overflow choice in show() is a measurement, and measurements
2238  // go stale. Content can grow AFTER open: an inline checkout's Stripe Payment
2239  // Element progressively reveals card fields and then a "Save your info"
2240  // section as the buyer types. A popup that opened short (overflow:visible, so
2241  // its shadow paints) and then grows past maxHeight spills below the viewport
2242  // instead of scrolling, and because show() locked the body scroll there is
2243  // nothing left for a touch drag to move — the Pay button becomes unreachable
2244  // and closing + reopening is the only way out (reopening re-runs show(), which
2245  // re-measures against the now-tall content and lands on "auto"). So re-decide
2246  // on every resize — but only ever upgrade to "auto", never back to "visible".
2247  //
2248  // One-way on purpose. Reverting to "visible" when content shrinks back under
2249  // maxHeight sounds harmless (it hands HP-3771 its shadow back) but it
2250  // re-releases horizontal spill that "auto" had been containing, so a wide
2251  // child paints outside the popup over the page, and it discards scrollTop,
2252  // bouncing the buyer to the top of the form. Both were measured in Chromium
2253  // at a Pixel viewport. Staying in "auto" costs only the shadow, and only for
2254  // the rest of an open in which content already exceeded the viewport: "auto"
2255  // paints no scrollbar once content fits again, it merely clips. close()
2256  // strips every inline style, so the next open re-decides from scratch.
2257  function syncOverflow() {
2258    if (!isOpen) return;
2259    // Guarded on a real change. Toggling overflow lays out a scrollbar, which
2260    // resizes content, which re-enters this observer — an unguarded write there
2261    // is a feedback loop that never settles.
2262    if (el.scrollHeight > el.clientHeight + 1 && el.style.overflow !== "auto") {
2263      el.style.overflow = "auto";
2264    }
2265  }
2266
2267  function observeSize() {
2268    if (sizeObserver || typeof ResizeObserver === "undefined") return;
2269    sizeObserver = new ResizeObserver(syncOverflow);
2270    // Observing el catches the growth that crosses maxHeight, since its own box
2271    // tracks content right up to the clamp. Observing its element children
2272    // catches growth that continues past the clamp, where el's box is pinned and
2273    // reports no resize at all — content 1px under maxHeight that then expands
2274    // would otherwise never re-decide.
2275    sizeObserver.observe(el);
2276    for (var childIndex = 0; childIndex < el.children.length; childIndex++) {
2277      sizeObserver.observe(el.children[childIndex]);
2278    }
2279  }
2280
2281  function unobserveSize() {
2282    if (!sizeObserver) return;
2283    sizeObserver.disconnect();
2284    sizeObserver = null;
2285  }
2286
2287  function show(reason) {
2288    if (isOpen) return;
2289    if (_hpupCurrentOpen && _hpupCurrentOpen !== el && typeof _hpupCurrentOpen._hpupClose === "function") {
2290      _hpupCurrentOpen._hpupClose("replaced", true);
2291    }
2292    _hpupCurrentOpen = el;
2293    isOpen = true;
2294    lastShowReason = reason || "explicit";
2295    cleanupTriggers();
2296    lockBodyScroll();
2297    // chrome:none — the content paints its own ✕ (Classic's .js-close, inside the iframe).
2298    var bare = cfg.chrome === "none";
2299    if (!bare) ensureCloseButton(el, cfg, function(){ close("close_button"); });
2300
2301    var start = animStart(cfg.animation.open);
2302    var end   = animEnd();
2303
2304    // Centered fixed positioning with a high z-index so we float above any
2305    // page content + checkout / chat widgets.
2306    el.style.display      = "block";
2307    el.style.position     = "fixed";
2308    el.style.zIndex       = "2147483647";
2309
2310    if (bare) {
2311      // Full-viewport shell. An <iframe> has no intrinsic content height (~150px, and it never
2312      // reports its content size to the parent), so the shrink-wrapped-card model below cannot
2313      // measure it — centring, the maxHeight/maxWidth clamps and the overflow logic all assume a
2314      // box that sizes to its content. Reproduce CDA's model instead: the frame fills the
2315      // viewport and the Classic document inside owns mask, centring and card.
2316      //
2317      // No transform either: every animStart transform carries translate(-50%,-50%), which
2318      // centres a card and would shove a full-viewport shell off screen. Opacity alone.
2319      el.style.top        = "0";
2320      el.style.left       = "0";
2321      el.style.width      = "100%";
2322      el.style.height     = "100%";
2323      el.style.opacity    = String(start.opacity);
2324      el.style.transition = "opacity " + cfg.animation.durationMs + "ms ease";
2325      openClassicFrame(el);
2326    } else {
2327    el.style.top          = "50%";
2328    el.style.left         = "50%";
2329    el.style.transform    = start.transform;
2330    el.style.opacity      = String(start.opacity);
2331    el.style.maxHeight    = "calc(100vh - 32px)";
2332    el.style.maxWidth     = "calc(100vw - 32px)";
2333    // HP-3771 — "auto" clips any box-shadow set on the popup's own content:
2334    // box-shadow doesn't affect layout size, so this element shrink-wraps to its
2335    // content and its own overflow then clips the shadow it should cast.
2336    //
2337    // But "visible" unconditionally is not safe either. This element is
2338    // position:fixed and centred, so content taller than maxHeight does not
2339    // clip — it spills past the viewport with no scrollbar and nothing can
2340    // reach it. A lead-capture form taller than the viewport would lose its
2341    // submit button. So decide per popup, after layout: overflow stays "auto"
2342    // only when the content genuinely overflows (scrolling wins), and is
2343    // "visible" otherwise (shadow wins). Short popups are the overwhelmingly
2344    // common case, so the shadow renders for almost everyone.
2345    //
2346    // syncOverflow re-applies this same rule for the rest of the open (HP-4147).
2347    el.style.overflow     = "visible";
2348    syncOverflow();
2349    el.style.transition   = "opacity " + cfg.animation.durationMs + "ms ease, transform " + cfg.animation.durationMs + "ms ease";
2350    }
2351
2352    if (!el.parentNode) document.body.appendChild(el);
2353    if (!bare) {
2354      // Backdrop. Inserted before the popup so the popup naturally paints on top.
2355      // chrome:none skips it — the Classic document paints its own .js-leadbox-mask, and a second
2356      // backdrop would darken the page twice.
2357      overlay = buildOverlay(cfg, function(){ close("overlay_click"); });
2358      (el.parentNode || document.body).insertBefore(overlay, el);
2359
2360      // Started only once el is attached, so the observer's first delivery measures
2361      // real geometry rather than the 0x0 of a detached node.
2362      observeSize();
2363    }
2364
2365    // Force reflow so the next style change animates from start, not jumps.
2366    /* eslint-disable-next-line no-unused-expressions */ void el.offsetWidth;
2367
2368    el.style.opacity   = String(end.opacity);
2369    if (!bare) el.style.transform = end.transform;
2370    if (overlay) overlay.style.opacity = "1";
2371
2372    if (cfg.close.escapeToClose) {
2373      keyListener = function(e) { if (e.key === "Escape") close("escape"); };
2374      document.addEventListener("keydown", keyListener);
2375    }
2376
2377    emitPopupEvent("popup_view", el, { reason: lastShowReason });
2378    lastShowReason = null;
2379  }
2380
2381  function close(reason, hard) {
2382    if (!isOpen) return;
2383    isOpen = false;
2384    emitPopupEvent("popup_dismiss", el, { reason: reason || "unknown" });
2385    var start = animStart(cfg.animation.close);
2386    el.style.opacity   = String(start.opacity);
2387    // Same reason as show(): the close transform centres a card, and applying it to a
2388    // full-viewport shell would slide it off screen instead of fading it out.
2389    if (cfg.chrome !== "none") el.style.transform = start.transform;
2390    if (overlay) overlay.style.opacity = "0";
2391
2392    if (keyListener) {
2393      document.removeEventListener("keydown", keyListener);
2394      keyListener = null;
2395    }
2396
2397    var afterAnim = function() {
2398      if (_hpupCurrentOpen === el) _hpupCurrentOpen = null;
2399      unobserveSize();
2400      el.style.display = originalDisplay || "none";
2401      el.style.removeProperty("position");
2402      el.style.removeProperty("top");
2403      el.style.removeProperty("left");
2404      el.style.removeProperty("transform");
2405      el.style.removeProperty("opacity");
2406      el.style.removeProperty("z-index");
2407      el.style.removeProperty("max-height");
2408      el.style.removeProperty("max-width");
2409      // Only the chrome:none branch sets these, and teardown must remove exactly what this show
2410      // set — a marker can legitimately carry an author's own inline width/height, and stripping
2411      // it on close would resize the pop-up the second time it opens.
2412      if (cfg.chrome === "none") {
2413        el.style.removeProperty("width");
2414        el.style.removeProperty("height");
2415      }
2416      el.style.removeProperty("overflow");
2417      el.style.removeProperty("transition");
2418      if (overlay && overlay.parentNode) overlay.parentNode.removeChild(overlay);
2419      overlay = null;
2420      // Tear down the close button — its click handler closes over THIS
2421      // show's overlay reference. Leaving it across opens means a second
2422      // show's X would call the previous close() with a stale overlay and
2423      // leave the current overlay floating.
2424      var existingBtn = el.querySelector("[data-htmlpub-popup-close-btn]");
2425      if (existingBtn && existingBtn.parentNode) existingBtn.parentNode.removeChild(existingBtn);
2426      // Release the scroll lock only after the popup is fully torn down so
2427      // the page doesn't pop back to scrollable while the close animation
2428      // is still painting.
2429      unlockBodyScroll();
2430      lsSet("close:" + popupId, String(Date.now()));
2431    };
2432    if (hard || cfg.animation.close === "none") afterAnim();
2433    else setTimeout(afterAnim, cfg.animation.durationMs);
2434  }
2435
2436  // ── Triggers ────────────────────────────────────────────────────────────
2437  // Only wire if the popup is eligible to show this pageload (frequency
2438  // rules). Click-to-open via [data-htmlpub-popup-target] always works,
2439  // regardless of eligibility — it's an explicit user action.
2440  var eligible = isEligible(cfg, popupId, currentVisit);
2441
2442  if (eligible) {
2443    var t = cfg.triggers || {};
2444
2445    if (t.timed && typeof t.timed.delaySec === "number") {
2446      var delayMs = Math.max(0, t.timed.delaySec) * 1000;
2447      var timer = setTimeout(function(){ show("timed"); }, delayMs);
2448      cleanups.push(function(){ clearTimeout(timer); });
2449    }
2450
2451    if (t.exitIntent === true) {
2452      // Mobile / touch devices don't have a meaningful "exit toward chrome"
2453      // gesture. Standard heuristic: skip if no mouse pointer is available.
2454      if (!matchMedia("(pointer: coarse)").matches) {
2455        var onMove = function(e) {
2456          if (e.clientY < 8) show("exit_intent");
2457        };
2458        document.addEventListener("mousemove", onMove);
2459        cleanups.push(function(){ document.removeEventListener("mousemove", onMove); });
2460      }
2461    }
2462
2463    if (typeof t.scrollPercent === "number" && t.scrollPercent > 0) {
2464      var threshold = Math.max(1, Math.min(100, t.scrollPercent));
2465      var onScroll = function() {
2466        var doc = document.documentElement;
2467        var scrolled = (window.scrollY || doc.scrollTop || 0);
2468        var max = (doc.scrollHeight - doc.clientHeight) || 1;
2469        var pct = (scrolled / max) * 100;
2470        if (pct >= threshold) show("scroll");
2471      };
2472      window.addEventListener("scroll", onScroll, { passive: true });
2473      cleanups.push(function(){ window.removeEventListener("scroll", onScroll); });
2474    }
2475  }
2476
2477  // Note: in-popup form submits and CTA clicks are NOT emitted as separate
2478  // popup_* events. They already fire as form_submit / element_click via
2479  // analytics.ts's global listeners, which now attach popupId + popupName
2480  // to the payload so customers can still see which pop-up the conversion
2481  // came from while continuing to track the standard goal types.
2482
2483  // Expose the show function on the element so [data-htmlpub-popup-target]
2484  // clicks (wired globally below) can find and trigger it without re-parsing
2485  // the config. _hpupShow / _hpupClose are deliberately namespaced + ugly to
2486  // avoid colliding with user code.
2487  el._hpupShow = show;
2488  el._hpupClose = close;
2489  // Returned so boot() can flush unfired trigger listeners on pagehide.
2490  return cleanupTriggers;
2491}
2492
2493// A served Classic leadbox renders INACTIVE: its controller only adds js-active to the dialog
2494// and mask when it receives an "open" message, so a frame nobody tells to open is a full-viewport
2495// sheet showing nothing.
2496//
2497// TWO WIRE FORMATS, because there are two leadbox builds in the corpus and they do NOT agree —
2498// measured across all 462 live clones on 2026-09-09, not inferred from one of them (D71):
2499//
2500//   · newer build (410 of 462): a handleMessage controller that accepts EITHER the bare string
2501//     "open" or {type:"open"}.
2502//   · OLDER build (52 of 462): a hand-rolled listener whose whole test is
2503//         window.addEventListener('message', function(e){ e && e.data && 'open' === e.data && j.open() })
2504//     read verbatim out of the served bundle. The test 'open' === e.data is a STRING identity check, so
2505//     an object payload fails it silently and that pop-up never opens.
2506//
2507// This function used to post ONLY {type:"open"}, and the comment here used to assert both builds
2508// took it. They do not: every old-build pop-up rendered a full-viewport dark sheet with an
2509// invisible modal — no error, no console message, and zero lead capture. So post BOTH forms. The
2510// duplicate is harmless in each direction: the old build ignores the object, and the newer one's
2511// open() just re-adds the class and refocuses.
2512//
2513// The string form is also what Classic's own embed.js sent, which is why the defect stayed hidden
2514// on the two pages that still carried embed.js — its copy opened correctly beside our blank one.
2515// (The close relay below had this right already: it reads Classic's bare-string "close leadbox"
2516// off the wire. Open is the direction that was guessed.)
2517//
2518// Posted on both paths because the ordering is not ours to control: if the frame is already
2519// loaded the immediate post lands, and if it is not, the load listener catches it. Opening twice
2520// is harmless — open() just re-adds the class and refocuses.
2521function openClassicFrame(el) {
2522  var frame = el.querySelector("iframe");
2523  if (!frame) return;
2524  var post = function() {
2525    // targetOrigin "*": the frame is served sandboxed, so its origin is opaque and cannot be
2526    // named. The payload is a bare open signal carrying nothing worth protecting.
2527    try {
2528      if (!frame.contentWindow) return;
2529      // String FIRST: it is the format the old build needs, and the one that was missing.
2530      frame.contentWindow.postMessage("open", "*");
2531      frame.contentWindow.postMessage({ type: "open" }, "*");
2532    } catch(e) {}
2533  };
2534  post();
2535  frame.addEventListener("load", post);
2536}
2537
2538// Global close relay. A chrome:none pop-up's ✕ lives INSIDE its iframe (Classic's .js-close), so
2539// the click is invisible to this document — the frame posts htmlpub:leadbox-close instead and we
2540// close the marker holding it. Without this the Classic card hides itself and the full-viewport
2541// iframe stays put, covering the page with an invisible sheet that swallows every click.
2542//
2543// Identify the marker by matching iframe.contentWindow against e.source, NOT by the message's
2544// uuid: a page can carry several migrated pop-ups, and a uuid can be placed more than once. This
2545// is the technique CDA's own injected handler used.
2546function handleCloseRelay(e) {
2547  if (!e || !e.data) return;
2548  // Classic's own leadbox controller posts the bare STRING "close leadbox" to window.parent when
2549  // it closes (300ms after the fade, from its close() method) — read out of the served bundle, not
2550  // guessed. It is already the wire format, so nothing needs injecting into the frame. The
2551  // namespaced form is accepted too, for anything we serve ourselves later.
2552  var type = typeof e.data === "string" ? e.data : e.data.type;
2553  if (type !== "close leadbox" && type !== "htmlpub:leadbox-close") return;
2554  var frames = document.querySelectorAll("[data-persist-popup] iframe, [data-htmlpub-popup] iframe");
2555  for (var i = 0; i < frames.length; i++) {
2556    if (frames[i].contentWindow !== e.source) continue;
2557    var marker = frames[i].closest("[data-persist-popup], [data-htmlpub-popup]");
2558    if (marker && typeof marker._hpupClose === "function") marker._hpupClose("close_relay");
2559    return;
2560  }
2561}
2562
2563// The migrated pop-up runs in a sandboxed cross-origin iframe and cannot read this page's anal
2563ytics
2564// session/visitor ids (opaque origin blocks its storage). Hand them over when the in-frame capture
2565// script asks — matching e.source to one of our own pop-up iframes so we only answer our own frames.
2566// The ids exist only once analytics consent has minted them, so with no consent nothing is sent and
2567// the ingest keeps the lead but skips the conversion event (there is no page_view session to join).
2568// The page id rides along either way, so the lead files under the page that was served, whatever
2569// URL the browser reports.
2570function handleSessionReq(e) {
2571  if (!e || !e.data || e.data.type !== "hp-popup-session-req" || !e.source) return;
2572  var frames = document.querySelectorAll("[data-persist-popup] iframe, [data-htmlpub-popup] iframe");
2573  var mine = false;
2574  for (var i = 0; i < frames.length; i++) { if (frames[i].contentWindow === e.source) { mine = true; break; } }
2575  if (!mine) return;
2576  var sid = null, vid = null;
2577  try { sid = sessionStorage.getItem("_hp_sid"); } catch(err) {}
2578  try { vid = localStorage.getItem("_hp_vid"); } catch(err) {}
2579  try { e.source.postMessage({ type: "hp-popup-session", sid: sid, vid: vid, pid: PAGE_ID }, "*"); } catch(err) {}
2580}
2581
2582// Global click-to-open dispatcher. Targets carry [data-persist-popup-target]
2583// (or legacy [data-htmlpub-popup-target]) or href="#popup-…" (for plain anchors
2584// that the link picker auto-generated).
2585function handleTargetClick(e) {
2586  var t = e.target;
2587  if (!t || !t.closest) return;
2588  var hit = t.closest("[data-persist-popup-target], [data-htmlpub-popup-target], a[href^='#popup-'], a[href^='#modal-'], a[href^='#dialog-']");
2589  if (!hit) return;
2590  var id = pAttr(hit, "-target");
2591  if (!id) {
2592    var href = hit.getAttribute("href") || "";
2593    if (href.charAt(0) === "#") id = href.slice(1);
2594  }
2595  if (!id) return;
2596  var popup = document.getElementById(id);
2597  if (!popup || pAttr(popup, "") === null) return;
2598  e.preventDefault();
2599  if (typeof popup._hpupShow === "function") popup._hpupShow("click_target");
2600}
2601
2602// ── Boot ──────────────────────────────────────────────────────────────────
2603
2604function flushTeardowns(list) {
2605  for (var j = 0; j < list.length; j++) {
2606    try { list[j](); } catch(e) {}
2607  }
2608}
2609
2610function boot() {
2611  if (SCOPE === "popup-id") {
2612    // Embed mode: each standalone popup ships its OWN copy of this runtime, so
2613    // a single global boot guard would make a second embedded popup bail. Wire
2614    // each popup once via a per-element marker, count visits per popup id, and
2615    // attach the global click / pagehide listeners only once across copies.
2616    var list = document.querySelectorAll("[data-persist-popup],[data-htmlpub-popup]");
2617    if (!list.length) return;
2618    if (!window.__hpupTeardowns) window.__hpupTeardowns = [];
2619    for (var n = 0; n < list.length; n++) {
2620      var pel = list[n];
2621      if (pel.__hpupWired) continue;
2622      pel.__hpupWired = true;
2623      var pt = wirePopup(pel, recordVisit(pel.getAttribute("id") || ""));
2624      if (typeof pt === "function") window.__hpupTeardowns.push(pt);
2625    }
2626    if (!window.__hpupClickWired) {
2627      window.__hpupClickWired = true;
2628      document.addEventListener("click", handleTargetClick, false);
2629      window.addEventListener("message", handleCloseRelay, false);
2630      window.addEventListener("message", handleSessionReq, false);
2631      window.addEventListener("pagehide", function(){ flushTeardowns(window.__hpupTeardowns || []); });
2632    }
2633    return;
2634  }
2635
2636  // In-page mode: one runtime per page wires every popup. Guard against
2637  // double-injection (HMR, accidental double-include).
2638  if (window.__hpupBooted) return;
2639  window.__hpupBooted = true;
2640  var popups = document.querySelectorAll("[data-persist-popup],[data-htmlpub-popup]");
2641  if (!popups.length) return;
2642  var visit = recordVisit();
2643  var teardowns = [];
2644  for (var i = 0; i < popups.length; i++) {
2645    var t = wirePopup(popups[i], visit);
2646    if (typeof t === "function") teardowns.push(t);
2647  }
2648  document.addEventListener("click", handleTargetClick, false);
2649  window.addEventListener("message", handleCloseRelay, false);
2650  window.addEventListener("message", handleSessionReq, false);
2651  // Flush unfired trigger listeners on pagehide.
2652  window.addEventListener("pagehide", function(){ flushTeardowns(teardowns); });
2653}
2654
2655if (document.readyState === "loading") {
2656  document.addEventListener("DOMContentLoaded", boot);
2657} else {
2658  boot();
2659}
2660
2661})();
2662</script>
2662<script data-htmlpub-countdown-runtime>
2663(function(){
2664var nodes=document.querySelectorAll('[data-htmlpub-countdown]');
2665if(!nodes.length)return;
2666function pad(n){n=String(n);return n.length<2?'0'+n:n;}
2667function setDigit(root,sel,val){var el=root.querySelector(sel);if(el)el.textContent=pad(val);}
2668function tick(node,endMs){
2669var diff=Math.max(0,endMs-Date.now());
2670var s=Math.floor(diff/1000);
2671var d=Math.floor(s/86400);s-=d*86400;
2672var h=Math.floor(s/3600);s-=h*3600;
2673var m=Math.floor(s/60);s-=m*60;
2674setDigit(node,'.countdown-days',d);
2675setDigit(node,'.countdown-hours',h);
2676setDigit(node,'.countdown-minutes',m);
2677setDigit(node,'.countdown-seconds',s);
2678if(diff===0){
2679var redirect=node.getAttribute('data-redirect');
2680var inFrame=false;try{inFrame=window!==window.top;}catch(e){inFrame=true;}
2681if(redirect&&!inFrame){try{window.location.href=redirect;}catch(e){}}
2682return true;
2683}
2684return false;
2685}
2686function endMsFor(node){
2687var mode=node.getAttribute('data-htmlpub-countdown');
2688if(mode==='fixed'){
2689var target=node.getAttribute('data-target');
2690var t=target?Date.parse(target):NaN;
2691return isNaN(t)?0:t;
2692}
2693if(mode==='evergreen'){
2694var dur=parseInt(node.getAttribute('data-duration')||'0',10);
2695if(!dur)return 0;
2696var idx=Array.prototype.indexOf.call(nodes,node);
2697var base='htmlpub_cd_'+(node.getAttribute('data-persist-countdown-id')||node.id||(location.pathname+'|'+dur+'|'+idx));
2698var ver=parseInt(node.getAttribute('data-persist-countdown-reset')||'0',10)||0;
2699var key=ver>0?base+'|v'+ver:base;
2700if(ver>0){try{for(var li=localStorage.length-1;li>=0;li--){var lk=localStorage.key(li);if(!lk)continue;if(lk===base){localStorage.removeItem(lk);continue;}if(lk.indexOf(base+'|v')===0){var lv=lk.slice(base.length+2);if(/^[0-9]+$/.test(lv)&&parseInt(lv,10)<ver){localStorage.removeItem(lk);}}}}catch(e){}}
2701var first=null;
2702try{first=localStorage.getItem(key);}catch(e){}
2703if(!first){first=String(Date.now());try{localStorage.setItem(key,first);}catch(e){}}
2704return parseInt(first,10)+dur*1000;
2705}
2706return 0;
2707}
2708for(var i=0;i<nodes.length;i++){(function(node){
2709var endMs=endMsFor(node);
2710if(!endMs)return;
2711if(tick(node,endMs))return;
2712var iv=setInterval(function(){if(tick(node,endMs))clearInterval(iv);},1000);
2713})(nodes[i]);}
2714})();
2715</script>
2715<script data-text-anim-runtime>
2716(function(){
2717var nodes=document.querySelectorAll('[data-persist-text-anim]');
2718if(!nodes.length)return;
2719try{if(window.matchMedia('(prefers-reduced-motion: reduce)').matches)return;}catch(e){}
2720var KEYFRAMES={
2721fadeIn:[{opacity:0},{opacity:1}],
2722slideUp:[{opacity:0,transform:'translateY(32px)'},{opacity:1,transform:'translateY(0)'}],
2723slideDown:[{opacity:0,transform:'translateY(-32px)'},{opacity:1,transform:'translateY(0)'}],
2724slideLeft:[{opacity:0,transform:'translateX(32px)'},{opacity:1,transform:'translateX(0)'}],
2725slideRight:[{opacity:0,transform:'translateX(-32px)'},{opacity:1,transform:'translateX(0)'}],
2726zoomIn:[{opacity:0,transform:'scale(0.85)'},{opacity:1,transform:'scale(1)'}],
2727blurIn:[{opacity:0,filter:'blur(8px)'},{opacity:1,filter:'blur(0)'}],
2728bounceIn:[{offset:0,opacity:0,transform:'translateY(40px)'},{offset:0.55,opacity:1,transform:'translateY(-8px)'},{offset:0.8,transform:'translateY(4px)'},{offset:1,transform:'translateY(0)'}]
2729};
2730var DEFAULTS={duration:600,delay:0,easing:'ease-out'};
2731function readInt(el,attr,fallback,min){
2732var n=parseInt(el.getAttribute(attr)||'',10);
2733if(!isFinite(n)||n<min)return fallback;
2734return n;
2735}
2736function arm(el){
2737var type=el.getAttribute('data-persist-text-anim')||'fadeIn';
2738var frames=KEYFRAMES[type];
2739if(!frames)return null;
2740var duration=readInt(el,'data-persist-text-anim-duration',DEFAULTS.duration,1);
2741var delay=readInt(el,'data-persist-text-anim-delay',DEFAULTS.delay,0);
2742var easing=el.getAttribute('data-persist-text-anim-easing')||DEFAULTS.easing;
2743try{
2744var anim=el.animate(frames,{duration:duration,delay:delay,easing:easing,fill:'both'});
2745anim.pause();
2746anim.currentTime=0;
2747return anim;
2748}catch(e){return null;}
2749}
2750if('IntersectionObserver' in window){
2751var io=new IntersectionObserver(function(entries){
2752for(var i=0;i<entries.length;i++){
2753var en=entries[i];
2754if(!en.isIntersecting)continue;
2755io.unobserve(en.target);
2756var armed=en.target._hpTextAnim;
2757if(!armed)continue;
2758en.target._hpTextAnim=null;
2759try{armed.play();}catch(e){}
2760}
2761},{threshold:0.15});
2762for(var j=0;j<nodes.length;j++){
2763var pending=arm(nodes[j]);
2764if(!pending)continue;
2765nodes[j]._hpTextAnim=pending;
2766io.observe(nodes[j]);
2767}
2768}else{
2769for(var k=0;k<nodes.length;k++){
2770var immediate=arm(nodes[k]);
2771if(immediate)try{immediate.play();}catch(e){}
2772}
2773}
2774})();
2775</script>
2775<script data-htmlpub-nav>
2776(function(){
2777"use strict";
2778
2779function closeAllSubmenus(except) {
2780  var panels = document.querySelectorAll('[data-persist-nav-submenu-panel]');
2781  for (var i = 0; i < panels.length; i++) {
2782    var panel = panels[i];
2783    if (panel === except) continue;
2784    panel.classList.remove('is-open');
2785    var trigger = panel.__hpNavTrigger;
2786    if (trigger) trigger.setAttribute('aria-expanded', 'false');
2787  }
2788}
2789
2790function wireSubmenus() {
2791  var triggers = document.querySelectorAll('[data-persist-nav-submenu]');
2792  if (!triggers.length) return;
2793  for (var i = 0; i < triggers.length; i++) {
2794    (function(trigger) {
2795      if (trigger.__hpNavWired) return;
2796      trigger.__hpNavWired = true;
2797      var panelId = trigger.getAttribute('data-persist-nav-submenu');
2798      var panel = panelId ? document.getElementById(panelId) : (trigger.parentElement ? trigger.parentElement.querySelector('[data-persist-nav-submenu-panel]') : null);
2799      if (!panel) return;
2800      panel.__hpNavTrigger = trigger;
2801      trigger.setAttribute('aria-haspopup', 'true');
2802      trigger.setAttribute('aria-expanded', 'false');
2803      trigger.addEventListener('click', function(e) {
2804        var isOpen = panel.classList.contains('is-open');
2805        e.preventDefault();
2806        e.stopPropagation();
2807        closeAllSubmenus(isOpen ? null : panel);
2808        panel.classList.toggle('is-open', !isOpen);
2809        trigger.setAttribute('aria-expanded', isOpen ? 'false' : 'true');
2810      });
2811    })(triggers[i]);
2812  }
2813  document.addEventListener('click', function(e) {
2814    var t = e.target;
2815    if (t && t.closest && t.closest('[data-persist-nav-submenu-panel], [data-persist-nav-submenu]')) return;
2816    closeAllSubmenus(null);
2817  });
2818}
2819
2820function wireMobileMenu() {
2821  var toggles = document.querySelectorAll('[data-persist-nav-mobile-toggle], [data-persist-nav-tablet-toggle]');
2822  if (!toggles.length) return;
2823  for (var i = 0; i < toggles.length; i++) {
2824    (function(toggle) {
2825      if (toggle.__hpNavWired) return;
2826      toggle.__hpNavWired = true;
2827      var isTablet = toggle.hasAttribute('data-persist-nav-tablet-toggle');
2828      var targetId = isTablet ? toggle.getAttribute('data-persist-nav-tablet-toggle') : toggle.getAttribute('data-persist-nav-mobile-toggle');
2829      var panelSelector = isTablet ? '[data-persist-nav-tablet-panel]' : '[data-persist-nav-mobile-panel]';
2830      var panel = targetId ? document.getElementById(targetId) : (toggle.parentElement ? toggle.parentElement.querySelector(panelSelector) : null);
2831      if (!panel) return;
2832      toggle.setAttribute('aria-expanded', 'false');
2833      toggle.addEventListener('click', function(e) {
2834        var isOpen = panel.classList.contains('is-open');
2835        e.preventDefault();
2836        e.stopPropagation();
2837        if (isOpen) panel.classList.remove('is-open'); else panel.classList.add('is-open');
2838        toggle.setAttribute('aria-expanded', isOpen ? 'false' : 'true');
2839      });
2840    })(toggles[i]);
2841  }
2842}
2843
2844function wireScrollBackground() {
2845  // Every nav this system manages, not just ones with scroll-bg/blur
2846  // currently set — a page published while an OLDER build still applied
2847  // blur directly to nav carries that inline backdrop-filter baked into
2848  // its served HTML even after blur is later turned off, so the self-heal
2849  // below has to run regardless of the CURRENT attribute state.
2850  var navs = document.querySelectorAll('[data-persist-nav-id]');
2851  if (!navs.length) return;
2852  for (var i = 0; i < navs.length; i++) {
2853    (function(nav) {
2854      // Self-heal: strip a stale inline backdrop-filter baked into a page
2855      // saved before this fix (HP-3558 round 15 follow-up) — see the
2856      // dedicated blur-layer comment below for why it must never live on
2857      // nav itself.
2858      if (nav.style.getPropertyValue('backdrop-filter') || nav.style.getPropertyValue('-webkit-backdrop-filter')) {
2859        nav.style.removeProperty('backdrop-filter');
2860        nav.style.removeProperty('-webkit-backdrop-filter');
2861      }
2862      // "Transparent" (data-persist-nav-always-transparent, HP-3558 round
2863      // 16) — the non-sticky counterpart of scroll-bg above. "Useful over a
2864      // hero image" only holds if nav visually overlaps whatever follows
2865      // it, so lift it out of flow the same way Sticky's own
2866      // position:fixed/sticky already does, rather than leaving it
2867      // position:static (which just reveals blank page background above
2868      // the hero, not the hero itself — see iframe-script/utils.ts's
2869      // ensureNavScrollBackground for the matching editor-side comment).
2870      var alwaysTransparent = nav.hasAttribute('data-persist-nav-always-transparent');
2871      if (alwaysTransparent) {
2872        var navCsForOverlay = window.getComputedStyle(nav);
2873        if (!navCsForOverlay || (navCsForOverlay.position !== 'fixed' && navCsForOverlay.position !== 'sticky')) {
2874          nav.style.position = 'absolute';
2875          nav.style.top = '0px';
2876          nav.style.left = '0px';
2877          nav.style.right = '0px';
2878          if (!nav.style.zIndex) nav.style.zIndex = '1000';
2879        }
2880      }
2881      // Blur needs no scroll-reactivity — a blurred OPAQUE background
2882      // looks identical to an unblurred one, so it's simplest and correct
2883      // to apply it once, unconditionally, regardless of scroll state.
2884      // Applied to a dedicated decorative layer BEHIND nav's real
2885      // content, never to nav itself — backdrop-filter promotes whatever
2886      // element carries it into a new containing block for any
2887      // position:fixed descendant, which silently shrank the full-screen/
2888      // bottom-drawer hamburger panel (both position:fixed) down to nav's
2889      // own small box instead of the viewport when it lived on nav
2890      // directly (HP-3558 round 15 follow-up: "the full-screen hamburger
2891      // menu... ended up being covered by the next section").
2892      var blur = nav.getAttribute('data-persist-nav-scroll-blur');
2893      if (blur) {
2894        var blurLayer = nav.querySelector('[data-persist-nav-scroll-blur-layer]');
2895        if (!blurLayer) {
2896          blurLayer = document.createElement('div');
2897          blurLayer.setAttribute('data-persist-nav-scroll-blur-layer', '');
2898          // z-index:-1 required — without it, backdrop-filter's own
2899          // compositing samples nav's LATER siblings (logo/links/CTA) too,
2900          // visibly blurring them despite painting after this layer in
2901          // plain DOM order. Safe from escaping behind nav's own box into
2902          // the page below because Sticky header always sets an explicit,
2903          // non-auto nav.style.zIndex — position:fixed/sticky + a non-auto
2904          // z-index already makes nav its own stacking context.
2905          blurLayer.style.cssText = 'position:absolute;inset:0;pointer-events:none;z-index:-1;';
2906          nav.insertBefore(blurLayer, nav.firstChild);
2907          var navCs = window.getComputedStyle(nav);
2908          if (!navCs || navCs.position === 'static' || !navCs.position) nav.style.position = 'relative';
2909        }
2910        // Self-heal a layer saved before the z-index fix landed (see
2911        // iframe-script/utils.ts's ensureNavScrollBackground for the
2912        // matching editor-side comment).
2913        if (blurLayer.style.zIndex !== '-1') blurLayer.style.zIndex = '-1';
2914        blurLayer.style.setProperty('backdrop-filter', 'blur(' + blur + ')', 'important');
2915        blurLayer.style.setProperty('-webkit-backdrop-filter', 'blur(' + blur + ')', 'important');
2916      }
2917      if (alwaysTransparent) {
2918        nav.style.setProperty('background-color', 'transparent', 'important');
2919        return;
2920      }
2921      var color = nav.getAttribute('data-persist-nav-scroll-bg');
2922      if (!color || nav.__hpNavScrollWired) return;
2923      nav.__hpNavScrollWired = true;
2924      function sync() {
2925        nav.style.setProperty('background-color', window.scrollY > 24 ? color : 'transparent', 'important');
2926      }
2927      window.addEventListener('scroll', sync, { passive: true });
2928      sync();
2929    })(navs[i]);
2930  }
2931}
2932
2933function boot() {
2934  wireSubmenus();
2935  wireMobileMenu();
2936  wireScrollBackground();
2937}
2938
2939if (document.readyState === "loading") {
2940  document.addEventListener("DOMContentLoaded", boot);
2941} else {
2942  boot();
2943}
2944
2945})();
2946</script>
2946<script data-htmlpub-dtr>
2947(function(){
2948if(false)return;
2949var params=new URLSearchParams(location.search);
2950if(!params.toString())return;
2951function run(){
2952var MAX=500;
2953var replacements=[];
2954function strip(s){return s.replace(/<[^>]*>/g,"");}
2955function clean(s){try{s=decodeURIComponent(s);}catch(e){}s=strip(s);if(s.length>MAX)s=s.slice(0,MAX);return s;}
2956function replace(el,val,param){
2957if(!el||!val)return;
2958var orig=el.textContent||"";
2959var cleaned=clean(val);
2960if(cleaned===orig)return;
2961el.setAttribute("data-dtr-original",orig);
2962el.textContent=cleaned;
2963replacements.push({param:param,target:el.tagName.toLowerCase()+(el.id?"#"+el.id:""),original:orig,replacement:cleaned});
2964}
2965// 1. Explicit data-dtr attributes
2966var dtrMap={headline:"utm_headline",subheadline:"utm_subheadline",cta:"utm_cta"};
2967var explicitFound={};
2968for(var key in dtrMap){
2969var pv=params.get(dtrMap[key]);
2970if(pv){
2971var els=document.querySelectorAll('[data-dtr="'+key+'"]');
2972if(els.length>0){
2973explicitFound[key]=true;
2974for(var i=0;i<els.length;i++)replace(els[i],pv,dtrMap[key]);
2975}
2976}
2977}
2978// 2. Custom data-dtr-param attributes
2979var customEls=document.querySelectorAll("[data-dtr-param]");
2980for(var j=0;j<customEls.length;j++){
2981var pn=customEls[j].getAttribute("data-dtr-param");
2982if(pn){var cv=params.get(pn);if(cv)replace(customEls[j],cv,pn);}
2983}
2984// 3. Auto-detect fallback for standard params (only if no explicit match)
2985if(!explicitFound.headline){
2986var hv=params.get("utm_headline");
2987if(hv){var h1=document.querySelector("h1");if(h1)replace(h1,hv,"utm_headline");}
2988}
2989if(!explicitFound.subheadline){
2990var sv=params.get("utm_subheadline");
2991if(sv){var sub=document.querySelector("h2")||document.querySelector(".subtitle")||document.querySelector(".subheadline");if(sub)replace(sub,sv,"utm_subheadline");}
2992}
2993if(!explicitFound.cta){
2994var cv2=params.get("utm_cta");
2995if(cv2){var btn=document.querySelector('a.cta,button.cta,a[class*="cta"],button[class*="cta"]')||document.querySelector("a.btn,button.btn,a.button,button[type=submit]")||document.querySelector('a[href]:not([href^="#"]):not([href^="mailto"]):not([href^="tel"])>span,a[href]:not([href^="#"]):not([href^="mailto"]):not([href^="tel"])')||document.querySelector("button");if(btn)replace(btn,cv2,"utm_cta");}
2996}
2997// 4. Generic dtr_* prefix params
2998params.forEach(function(val,key){
2999if(key.indexOf("dtr_")===0){
3000var slug=key.slice(4);
3001var targets=document.querySelectorAll('[data-dtr-param="'+key+'"]');
3002if(targets.length>0){for(var k=0;k<targets.length;k++)replace(targets[k],val,key);}
3003}
3004});
3005// Fire analytics event
3006if(replacements.length===0)return;
3007var PID="gg1x1lcpx32tjslsbqxxqmm5";
3008var API="https://htmlpub.com"+"/api/analytics/collect";
3009function vid(){try{return localStorage.getItem("_hp_vid")||""}catch(e){return""}}
3010function sid(){try{return sessionStorage.getItem("_hp_sid")||""}catch(e){return""}}
3011var ev={pageId:PID,eventType:"dtr_applied",visitorId:vid(),sessionId:sid(),payload:{replacements:replacements},timestamp:Date.now()};
3012var body=JSON.stringify({events:[ev]});
3013try{if(navigator.sendBeacon){navigator.sendBeacon(API,new Blob([body],{type:"text/plain"}));}
3014else{fetch(API,{method:"POST",headers:{"Content-Type":"application/json"},body:body,keepalive:true}).catch(function(){});}}catch(e){}
3015}
3016if(document.readyState==="loading"){document.addEventListener("DOMContentLoaded",run);}else{run();}
3017})();
3018</script>
3018<script>(function(){function c(){var b=a.contentDocument||(a.contentWindow&&a.contentWindow.document);if(b){var d=b.createElement('script');d.innerHTML="window.__CF$cv$params={r:'a43f9a762be4253f',t:'MTc5MDkwMTA3Nw=='};var a=document.createElement('script');a.src='/cdn-cgi/challenge-platform/scripts/jsd/main.js';document.getElementsByTagName('head')[0].appendChild(a);";b.getElementsByTagName('head')[0].appendChild(d)}}if(document.body){var a=document.createElement('iframe');a.height=1;a.width=1;a.style.position='absolute';a.style.top=0;a.style.left=0;a.style.border='none';a.style.visibility='hidden';document.body.appendChild(a);if('loading'!==document.readyState)c();else if(window.addEventListener)document.addEventListener('DOMContentLoaded',c);else{var e=document.onreadystatechange||function(){};document.onreadystatechange=function(b){e(b);'loading'!==document.readyState&&(document.onreadystatechange=e,c())}}}})();</script>
3018</body><!-- v5.1.13 --></html>

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.