1<!DOCTYPE html> 2<html class="no-js" lang=en> 3<head> 4 <meta charset="utf-8"> 5 <meta http-equiv="x-ua-compatible" content="ie=edge"> 6 <meta name="viewport" content="width=device-width, initial-scale=1.0"> 7 <meta name="twitter:card" content="summary_large_image"> 8 <meta property="og:type" content="website"> 9 <title>The Sage Team Private Office | Real Estate Advisors</title> 10 <meta property="og:title" content="The Sage Team Private Office | Real Estate Advisors"> 11 <meta name="twitter:title" content="The Sage Team Private Office | Real Estate Advisors"> 12 <meta property="og:image" content="https://media-production.lp-cdn.com/cdn-cgi/image/format=auto,quality=85/https://media-production.lp-cdn.com/media/31e54f04-25d7-4df1-a9a4-c2231dc23c11"> 13 <meta name="twitter:image" content="https://media-production.lp-cdn.com/cdn-cgi/image/format=auto,quality=85/https://media-production.lp-cdn.com/media/31e54f04-25d7-4df1-a9a4-c2231dc23c11"> 14 <meta property="og:url" content="https://sageteam.ai/Meettheprivateoffice"> 15 <link rel="canonical" href="https://sageteam.ai/Meettheprivateoffice"> 16
16<script>(function(html){html.className = html.className.replace(/\bno-js\b/,'js')})(document.documentElement);</script>
16 17 <link rel="preconnect" href="https://fonts.googleapis.com"> 18 <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin> 19 <link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Cormorant%20Garamond:300,300i,400,400i,500,500i,600,600i,700,700i"><link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Inter:100,200,300,400,500,600,700,800,900"> 20 <link rel="preload" href="https://cdnjs.cloudflare.com/ajax/libs/ion-rangeslider/2.3.1/css/ion.rangeSlider.min.css" as="style" onload="this.onload=null;this.rel='stylesheet'"> 21 <noscript><link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/ion-rangeslider/2.3.1/css/ion.rangeSlider.min.css"></noscript> 22 <link rel="icon" type="image/x-icon" href="/favicon.ico"> 23 <link rel="icon" type="image/png" sizes="16x16" href="/favicon-16x16.png"> 24 <link rel="icon" type="image/png" sizes="32x32" href="/favicon-32x32.png"> 25 <link rel="icon" type="image/png" sizes="48x48" href="/favicon-48x48.png"> 26 <style id="global-css">:root{--global-primary-font-family:'Cormorant Garamond',serif;--global-primary-font-family-short:Cormorant Garamond;--global-secondary-font-family:Inter,sans-serif;--global-secondary-font-family-short:Inter;--global-body-padding:0px;--global-background-color:rgba(237, 237, 236, 1);--global-body-font-size:18px;--global-h1-font-size:68px;--global-h2-font-size:40px;--global-h3-font-size:26px;--global-h4-font-size:28px;--global-h5-font-size:22px;--global-h6-font-size:20px;--global-section-padding:96px;}@media (max-width: 768px){:root{--global-section-padding:64px;}}body{padding:0px;background-color:rgba(237, 237, 236, 1);font-family:Inter,sans-serif;font-size:18px;}@media (min-width: 768px){body{padding:0px 0px 0px 0px;}}h1,h2,h3,h4,h5,h6,button{font-family:'Cormorant Garamond',serif;}h1{font-size:68px;}h2{font-size:40px;}h3{font-size:26px;}h4{font-size:28px;}h5{font-size:22px;}h6{font-size:20px;}</style> 27 <link rel="stylesheet" type="text/css" href="https://styles.luxurypresence.com/masterpiece/index.css" /> 28 <style id="website-css">nav#global-navbar .sub-nav__link{max-width:320px;}footer#global-footer a:not(.socials__item),footer#global-footer .link,footer#global-footer .footer-navigation__link{-webkit-text-decoration:none;text-decoration:none;position:relative!important;color:#000!important;}footer#global-footer a:not(.socials__item):hover,footer#global-footer .link:hover,footer#global-footer .footer-navigation__link:hover{color:#86a65d!important;opacity:1!important;}footer#global-footer a:not(.socials__item):before,footer#global-footer .link:before,footer#global-footer .footer-navigation__link:before,footer#global-footer a:not(.socials__item):after,footer#global-footer .link:after,footer#global-footer .footer-navigation__link:after{-webkit-transition:0.4s;transition:0.4s;-webkit-text-decoration:none!important;text-decoration:none!important;line-height:1;content:"";height:1px;position:absolute!important;bottom:0;left:0;}footer#global-footer a:not(.socials__item):before,footer#global-footer .link:before,footer#global-footer .footer-navigation__link:before{width:100%!important;background-color:#ccc!important;opacity:1;}footer#global-footer a:not(.socials__item):after,footer#global-footer .link:after,footer#global-footer .footer-navigation__link:after{width:0%!important;background-color:#86a65d!important;}footer#global-footer a:not(.socials__item):hover:after,footer#global-footer .link:hover:after,footer#global-footer .footer-navigation__link:hover:after{width:100%!important;}@media only screen and (max-width: 1280px){footer#global-footer a:not(.socials__item),footer#global-footer .link,footer#global-footer .footer-navigation__link{overflow-wrap:anywhere;-webkit-text-decoration:underline!important;text-decoration:underline!important;white-space:normal!important;}footer#global-footer a:not(.socials__item):before,footer#global-footer .link:before,footer#global-footer .footer-navigation__link:before{background-color:transparent;width:0%!important;}footer#global-footer a:not(.socials__item):after,footer#global-footer .link:after,footer#global-footer .footer-navigation__link:after{background-color:transparent;}footer#global-footer a:not(.socials__item):hover:after,footer#global-footer .link:hover:after,footer#global-footer .footer-navigation__link:hover:after{width:0%!important;}}
28footer#global-footer div.site-footer__copy div:nth-child(2) a,footer#global-footer .footer-navigation__link{padding-bottom:5px!important;}footer .site-footer__col-content{opacity:1!important;}.site-footer__disclaimer{opacity:1!important;color:#929395;}nav#global-navbar .logo{height:120px;}nav#global-navbar .navigation__link{font-size:16px;}nav#global-navbar .lp-container{max-width:1500px;}nav#global-navbar .header.theme-light .header__hamburger circle{fill:#86a65d;}nav#global-navbar .header.theme-light .header__hamburger svg rect{fill:#fff!important;}nav#global-navbar .header.theme-light ul.navigation li.navigation__item{color:#fff;}nav#global-navbar .header.theme-light ul.navigation li.navigation__item .sub-nav__link{text-transform:uppercase!important;color:#000;background-color:#fff;}nav#global-navbar .header.theme-light ul.navigation li.navigation__item .sub-nav__link:hover{color:#FFF;background-color:#86a65d;}nav#global-navbar .header.theme-light ul.navigation li.navigation__item .navigation__link:after{background:#fff;}nav#global-navbar .header.theme-light .search__btn svg{color:#fff;}nav#global-navbar .header.theme-light a.header__btn-contact{background:transparent;color:#fff!important;border-color:#fff!important;}nav#global-navbar .header.theme-light a.header__btn-contact:hover{background:#fff!important;color:#86a65d!important;border-color:#fff!important;}nav#global-navbar .header .header__hamburger circle{fill:#86a65d;}nav#global-navbar .header .header__hamburger svg rect{fill:#FFF!important;}nav#global-navbar .header ul.navigation li.navigation__item{color:#000;}nav#global-navbar .header ul.navigation li.navigation__item .sub-nav__link{color:#000;background-color:#fff;}nav#global-navbar .header ul.navigation li.navigation__item .sub-nav__link:hover{color:#FFF;background-color:#86a65d;}nav#global-navbar .header ul.navigation li.navigation__item .navigation__link:after{background:#86a65d;}nav#global-navbar .header .search__btn svg{color:#86a65d;}nav#global-navbar.scroll .header{background-color:#fff;}nav#global-navbar.scroll .header .header__hamburger circle{fill:#86a65d;}nav#global-navbar.scroll .header .header__hamburger svg rect{fill:#fff!important;}nav#global-navbar.scroll .header ul.navigation li.navigation__item{color:#000;}nav#global-navbar.scroll .header ul.navigation li.navigation__item .sub-nav__link{color:#000;background-color:#fff;}nav#global-navbar.scroll .header ul.navigation li.navigation__item .sub-nav__link:hover{color:#FFF;background-color:#86a65d;}nav#global-navbar.scroll .header ul.navigation li.navigation__item .navigation__link:after{background:#86a65d;}nav#global-navbar.scroll .header .search__btn svg{color:#86a65d;}nav#global-navbar.scroll .header a.header__btn-contact{background:transparent;color:#fff!important;border-color:#fff!important;}nav#global-navbar.scroll .header a.header__btn-contact:hover{background:#fff!important;color:#86a65d!important;border-color:#fff!important;}nav#global-navbar.scroll .header.theme-light .logo__img.light{display:none;}nav#global-navbar.scroll .header.theme-light .logo__img.dark{display:block;}nav#global-navbar.scroll .header.theme-auto .logo__img.light{display:none;}nav#global-navbar.scroll .header.theme-auto .logo__img.dark{display:block;}footer#global-footer div.site-footer__logo-bar>div:nth-child(1)>img{max-height:110px;max-width:300px;}@media only screen and (max-width:768px){#modal-global-contact-us .contact-form__close{opacity:1!important;}#modal-global-contact-us .contact-form__close:before,#modal-global-contact-us .contact-form__close:after{background-color:#fff!important;}}div#global-mobile-contact .buttons-holder a{border:1px solid #BDC2C6!important;background:#fff;}body>div.mobile-contact-wrapper .mobile-contact .item svg{fill:#BDC2C6!important;}h1,h2,h3,h4,h5,button,nav .navigation__link,#global-sidemenu a,.footer-navigation__item{text-transform:uppercase!important;}@media (min-width:768px){nav#global-navbar .header__logo a.logo{max-width:350px!important;}}@media (max-width:767px){nav .logo__img{max-width:220px!important;}}footer#global-footer .site-footer__disclaimer:after{background-color:#86a65d;opacity:1;}#modal-global-contact-us .contact-form__form input,#modal-global-contact-us .contact-form__form textarea{border-color:#000;color:#000;}#modal-global-contact-us .contact-form__form span.input-icon{-webkit-filter:invert(1);filter:invert(1);}#global-footer>div>div>div>div.site-footer__info>div>h5{font-weight:bold;}</style> 29 <style id="wow-hide-elements">.wow{visibility:hidden!important}</style> 30 <style id="page-css"> 31 #section-c91d81a1-22b1-46c2-b383-355d4dc6717a{color:#ffffff;--fontColor:#ffffff;--fontColor_H:0;--fontColor_S:0%;--fontColor_L:100%;--fontColor_A:1;--fontColor_darkenDir:-1;--bgColor:#000000;--bgColor_H:0;--bgColor_S:0%;--bgColor_L:0%;--bgColor_A:1;--bgColor_darkenDir:1;}#section-c91d81a1-22b1-46c2-b383-355d4dc6717a .video-wrapper .full-screen-video-component .video-wrapper::before{content:'';position:absolute;width:100%;height:100%;top:0;left:0;background-color:#000;z-index:-1000;}#section-c91d81a1-22b1-46c2-b383-355d4dc6717a .video-wrapper .full-screen-video-component .video-wrapper video{-webkit-transition:opacity 2s cubic-bezier(0.835, 0, 0.19, 1);transition:opacity 2s cubic-bezier(0.835, 0, 0.19, 1);opacity:0!important;}#section-c91d81a1-22b1-46c2-b383-355d4dc6717a .video-wrapper .full-screen-video-component .video-wrapper.playing video{opacity:1!important;}#section-c91d81a1-22b1-46c2-b383-355d4dc6717a .lp-play{opacity:0;background-color:transparent;display:inline-block;border:none;position:absolute;bottom:50px;right:50px;width:27px;height:24px;z-index:3;-webkit-transition:opacity .2s ease-in-out;transition:opacity .2s ease-in-out;cursor:unset;}#section-c91d81a1-22b1-46c2-b383-355d4dc6717a .lp-play.visible{opacity:1;cursor:pointer;}@media (max-width: 900px){#section-c91d81a1-22b1-46c2-b383-355d4dc6717a .lp-play.visible{display:none;}}@media (max-width: 900px){#section-c91d81a1-22b1-46c2-b383-355d4dc6717a .lp-play{display:none;}}#section-c91d81a1-22b1-46c2-b383-355d4dc6717a.parallax-enabled{z-index:unset;}#section-c91d81a1-22b1-46c2-b383-355d4dc6717a.parallax-enabled .lp-container{position:relative;}#section-c91d81a1-22b1-46c2-b383-355d4dc6717a.parallax-enabled>div.video-wrapper{position:fixed;left:var(--global-body-padding, 0);top:var(--global-body-padding, 0);width:calc(100% - var(--global-body-padding, 0px) * 2);z-index:-1001;}@media (max-width: 767px){#section-c91d81a1-22b1-46c2-b383-355d4dc6717a.parallax-enabled>
31div.video-wrapper{left:0;top:0;width:100%;}}#section-c91d81a1-22b1-46c2-b383-355d4dc6717a.parallax-enabled>div.overlay-component{position:fixed;left:var(--global-body-padding, 0);top:var(--global-body-padding, 0);right:unset;width:calc(100% - var(--global-body-padding, 0px) * 2);}@media (max-width: 767px){#section-c91d81a1-22b1-46c2-b383-355d4dc6717a.parallax-enabled>div.overlay-component{left:0;top:0;width:100%;}}#section-c91d81a1-22b1-46c2-b383-355d4dc6717a.parallax-enabled .opening-with-search:before{display:block;content:'';left:var(--global-body-padding, 0);top:var(--global-body-padding, 0);width:calc(100% - var(--global-body-padding, 0px) * 2);background:var(--sectionBackground) center no-repeat;-webkit-background-size:cover;background-size:cover;background-position-y:22%;position:fixed;z-index:-1001;height:100%;}@media (max-width: 767px){#section-c91d81a1-22b1-46c2-b383-355d4dc6717a.parallax-enabled .opening-with-search:before{left:0;top:0;width:100%;}}#section-c91d81a1-22b1-46c2-b383-355d4dc6717a .opening-with-search{position:relative;--top-padding:170px;--bottom-padding:30px;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;width:100%;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;min-height:770px;padding-top:var(--top-padding);padding-bottom:var(--bottom-padding);}#section-c91d81a1-22b1-46c2-b383-355d4dc6717a .opening-with-search:before{display:none;}#section-c91d81a1-22b1-46c2-b383-355d4dc6717a .opening-with-search.height-class-Full{min-height:100vh;}#section-c91d81a1-22b1-46c2-b383-355d4dc6717a .opening-with-search.height-class-Full>div.video-wrapper{height:100vh;}#section-c91d81a1-22b1-46c2-b383-355d4dc6717a .opening-with-search.height-class-Full:before{min-height:100vh;}#section-c91d81a1-22b1-46c2-b383-355d4dc6717a .opening-with-search.height-class-770px{min-height:770px;}#section-c91d81a1-22b1-46c2-b383-355d4dc6717a .opening-with-search.height-class-770px>div.video-wrapper{height:770px;}#section-c91d81a1-22b1-46c2-b383-355d4dc6717a .opening-with-search.height-class-770px:before{min-height:770px;}#section-c91d81a1-22b1-46c2-b383-355d4dc6717a .opening-with-search.height-class-600px{min-height:600px;}#section-c91d81a1-22b1-46c2-b383-355d4dc6717a .opening-with-search.height-class-600px>div.video-wrapper{height:600px;}#section-c91d81a1-22b1-46c2-b383-355d4dc6717a .opening-with-search.height-class-600px:before{min-height:600px;}#section-c91d81a1-22b1-46c2-b383-355d4dc6717a .opening-with-search .bottom-spacer{-webkit-flex:1 0 0%;-ms-flex:1 0 0%;flex:1 0 0%;max-height:calc(var(--top-padding) - var(--bottom-padding));}#section-c91d81a1-22b1-46c2-b383-355d4dc6717a .opening-with-search .center-block{-webkit-flex:1 0 auto;-ms-flex:1 0 auto;flex:1 0 auto;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-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;text-align:center;}#section-c91d81a1-22b1-46c2-b383-355d4dc6717a .opening-with-search .opening-description{letter-spacing:.1em;margin-bottom:15px;max-width:640px;margin-left:auto;margin-right:auto;}#section-c91d81a1-22b1-46c2-b383-355d4dc6717a .opening-with-search .opening-description a,#section-c91d81a1-22b1-46c2-b383-355d4dc6717a .opening-with-search .opening-description a[x-apple-data-detectors]{color:inherit!important;-webkit-text-decoration:none!important;text-decoration:none!important;font-size:inherit!important;font-family:inherit!important;}#section-c91d81a1-22b1-46c2-b383-355d4dc6717a .opening-with-search .opening-pretitle{margin-bottom:15px;max-width:860px;margin-left:auto;margin-right:auto;white-space:pre-line;}#section-c91d81a1-22b1-46c2-b383-355d4dc6717a .opening-with-search .opening-title{margin-bottom:15px;max-width:860px;margin-left:auto;margin-right:auto;white-space:pre-line;}#section-c91d81a1-22b1-46c2-b383-355d4dc6717a .opening-with-search .opening-button{margin:0 15px;}@media (max-width: 768px){#section-c91d81a1-22b1-46c2-b383-355d4dc6717a .opening-with-search .opening-button{margin:0;}}#section-c91d81a1-22b1-46c2-b383-355d4dc6717a .opening-with-search .search-form{margin-top:30px;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;width:100%;-webkit-box-pack:center;-ms-flex-pack:center;
31-webkit-justify-content:center;justify-content:center;-webkit-align-items:stretch;-webkit-box-align:stretch;-ms-flex-align:stretch;align-items:stretch;}#section-c91d81a1-22b1-46c2-b383-355d4dc6717a .opening-with-search .search-form.with-filters{padding-top:32px;}#section-c91d81a1-22b1-46c2-b383-355d4dc6717a .opening-with-search .search-button{margin:5px;border:none;border-radius:0;outline:none;background-color:#000;color:#fff;height:44px;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;padding-left:50px;padding-right:50px;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center;cursor:pointer;-webkit-transition:all .3s ease;transition:all .3s ease;}#section-c91d81a1-22b1-46c2-b383-355d4dc6717a .opening-with-search .search-button:hover{background-color:#fff;color:#000;}#section-c91d81a1-22b1-46c2-b383-355d4dc6717a .opening-with-search .search-lease-tabs{position:absolute;left:0;bottom:100%;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;}#section-c91d81a1-22b1-46c2-b383-355d4dc6717a .opening-with-search .search-lease-tab{padding:4px 20px;background-color:#000;color:#fff;cursor:pointer;}#section-c91d81a1-22b1-46c2-b383-355d4dc6717a .opening-with-search .search-lease-tab.active{background-color:#fff;color:#000;}#section-c91d81a1-22b1-46c2-b383-355d4dc6717a .opening-with-search .search-wrapper{margin:5px;letter-spacing:normal;width:100%;max-width:444px;position:relative;}#section-c91d81a1-22b1-46c2-b383-355d4dc6717a .opening-with-search .search-input-container{width:100%;border:none;height:43px;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;padding:0 16px;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;background-color:#fff;}#section-c91d81a1-22b1-46c2-b383-355d4dc6717a .opening-with-search .search-input-container .search-icon{color:#c0c0c0;margin-right:10px;-webkit-flex:0 0 auto;-ms-flex:0 0 auto;flex:0 0 auto;font-size:20px;line-height:0;}#section-c91d81a1-22b1-46c2-b383-355d4dc6717a .opening-with-search .search-input-container .search-input{color:#000;-webkit-flex:1 0 auto;-ms-flex:1 0 auto;flex:1 0 auto;width:50px;border:none;border-radius:0;outline:none;background:transparent;font-size:16px;padding:0;}#section-c91d81a1-22b1-46c2-b383-355d4dc6717a .opening-with-search .search-results{line-height:normal;text-align:left;background-color:rgba(0, 0, 0, 0.8);position:absolute;width:100%;left:0;top:100%;border:none;overflow:hidden;-webkit-transition:height 0.3s ease;transition:height 0.3s ease;height:0;}#section-c91d81a1-22b1-46c2-b383-355d4dc6717a .opening-with-search .results-container,#section-c91d81a1-22b1-46c2-b383-355d4dc6717a .opening-with-search .predefined-links{padding:10px 0;}#section-c91d81a1-22b1-46c2-b383-355d4dc6717a .opening-with-search .results-container a,#section-c91d81a1-22b1-46c2-b383-355d4dc6717a .opening-with-search .predefined-links a{color:#b6b6b6;-webkit-transition:color 0.3s ease;transition:color 0.3s ease;}#section-c91d81a1-22b1-46c2-b383-355d4dc6717a .opening-with-search .results-container a:hover,#section-c91d81a1-22b1-46c2-b383-355d4dc6717a .opening-with-search .predefined-links a:hover{color:#fff;}#section-c91d81a1-22b1-46c2-b383-355d4dc6717a .opening-with-search .predefined-links{max-height:400px;overflow:auto;}#section-c91d81a1-22b1-46c2-b383-355d4dc6717a .opening-with-search .results-block{margin:15px 0;}#section-c91d81a1-22b1-46c2-b383-355d4dc6717a .opening-with-search .results-block-title{margin:0;padding:0 48px;}#section-c91d81a1-22b1-46c2-b383-355d4dc6717a .opening-with-search .results-block-title .results-title-label{margin:0 20px 10px 0;}#section-c91d81a1-22b1-46c2-b383-355d4dc6717a .opening-with-search .results-block-title .search-near-container{margin-bottom:15px;}#section-c91d81a1-22b1-46c2-b383-355d4dc6717a .opening-with-search .results-block:nth-child(n + 2) .search-near-container{display:none;}#section-c91d81a1-22b1-46c2-b383-355d4dc6717a .opening-with-search .results-link{display:block;padding:4px 48px;width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}#section-c91d81a1-22b1-46c2-b383-355d4dc6717a .opening-with-search .results-link.selected-link{color:#fff;background-color:rgba(255, 255, 255, 0.2);}#section-c91d81a1-22b1-46c2-b383-355d4dc6717a .opening-with-search .search-in-progress{padding:30px 0;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-ms-flex-pack:center;
31-webkit-justify-content:center;justify-content:center;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;font-size:30px;opacity:0.5;}#section-c91d81a1-22b1-46c2-b383-355d4dc6717a .opening-with-search .not-visible{display:none!important;}#section-c91d81a1-22b1-46c2-b383-355d4dc6717a .opening-with-search .nothing-found{width:100%;padding:20px;}@media (max-width: 560px){#section-c91d81a1-22b1-46c2-b383-355d4dc6717a .opening-with-search .search-form{-webkit-box-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;}#section-c91d81a1-22b1-46c2-b383-355d4dc6717a .opening-with-search .search-button{width:100%;max-width:444px;}}#section-c91d81a1-22b1-46c2-b383-355d4dc6717a .opening-with-search .search-near{cursor:pointer;}#section-c91d81a1-22b1-46c2-b383-355d4dc6717a .loc-msg-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;-webkit-transition:background-color 0.3s ease;transition:background-color 0.3s ease;background-color:transparent;}#section-c91d81a1-22b1-46c2-b383-355d4dc6717a .loc-msg-wrap{width:100%;height: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;-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center;padding:20px;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;-webkit-clip-path:polygon(50% 50%, 50% 50%, 50% 50%, 50% 50%);clip-path:polygon(50% 50%, 50% 50%, 50% 50%, 50% 50%);-webkit-transition:clip-path 0.4s ease;transition:clip-path 0.4s ease;}#section-c91d81a1-22b1-46c2-b383-355d4dc6717a .loc-msg-modal{border-radius:20px;padding:10px 20px 20px;max-width:400px;min-width:100px;background-color:rgba(0,0,0,0.9);color:#fff;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;position:relative;-webkit-flex:0 1 auto;-ms-flex:0 1 auto;flex:0 1 auto;max-height:100%;}#section-c91d81a1-22b1-46c2-b383-355d4dc6717a .loc-msg-close{position:absolute;width:40px;height:40px;top:10px;right:10px;cursor:pointer;-webkit-transition:all 0.3s ease;transition:all 0.3s ease;}#section-c91d81a1-22b1-46c2-b383-355d4dc6717a .loc-msg-close:before{content:'';width:20px;height:2px;background-color:#fff;position:absolute;left:10px;top:19px;-webkit-transform:rotate(45deg);-moz-transform:rotate(45deg);-ms-transform:rotate(45deg);transform:rotate(45deg);}#section-c91d81a1-22b1-46c2-b383-355d4dc6717a .loc-msg-close:after{content:'';width:20px;height:2px;background-color:#fff;position:absolute;left:10px;top:19px;-webkit-transform:rotate(-45deg);-moz-transform:rotate(-45deg);-ms-transform:rotate(-45deg);transform:rotate(-45deg);}#section-c91d81a1-22b1-46c2-b383-355d4dc6717a .loc-msg-close:hover{-webkit-transform:scale(1.2);-moz-transform:scale(1.2);-ms-transform:scale(1.2);transform:scale(1.2);}#section-c91d81a1-22b1-46c2-b383-355d4dc6717a .search-near-hidden .search-near-container{display:none;}#section-c91d81a1-22b1-46c2-b383-355d4dc6717a .loc-msg-title{-webkit-flex:0 0 auto;-ms-flex:0 0 auto;flex:0 0 auto;margin-bottom:20px;}#section-c91d81a1-22b1-46c2-b383-355d4dc6717a .loc-msg-container{-webkit-flex:0 1 auto;-ms-flex:0 1 auto;flex:0 1 auto;overflow:auto;}#section-c91d81a1-22b1-46c2-b383-355d4dc6717a .loc-msg-container p{margin:0;}#section-c91d81a1-22b1-46c2-b383-355d4dc6717a .loc-msg-container p+p{margin-top:1em;}#section-c91d81a1-22b1-46c2-b383-355d4dc6717a.visible-loc-msg{z-index:1000;}#section-c91d81a1-22b1-46c2-b383-355d4dc6717a.visible-loc-msg .loc-msg-backdrop{background-color:rgba(255,255,255,0.4);}#section-c91d81a1-22b1-46c2-b383-355d4dc6717a.visible-loc-msg .loc-msg-wrap{-webkit-clip-path:polygon(0 0, 0 100%, 100% 100%, 100% 0%);clip-path:polygon(0 0, 0 100%, 100% 100%, 100% 0%);}#section-c91d81a1-22b1-46c2-b383-355d4dc6717a >*:last-child{position:relative;}#section-c91d81a1-22b1-46c2-b383-355d4dc6717a .overlay-component{position:absolute;top:0;bottom:0;left:0;right:0;background-color:var(--overlay-color, var(--section-overlay, rgba(0, 0, 0, 0.3)));transition-property:opacity;transition-timing-function:linear;}#section-c91d81a1-22b1-46c2-b383-355d4dc6717a .video-wrapper{position:absolute;top:0;left:0;height:100%;width:100%;}@media screen and (max-width: 900px){#section-c91d81a1-22b1-46c2-b383-355d4dc6717a .video-wrapper.hidable{display:none;}}#section-c91d81a1-22b1-46c2-b383-355d4dc6717a .full-screen-video-component{position:relative;height:100%;overflow:hidden;}#section-c91d81a1-22b1-46c2-b383-355d4dc6717a video{position:absolute;z-index:-1000;width:100%;object-fit:cover;}@media all and (-ms-high-contrast: none),(-ms-high-contrast: active){#section-c91d81a1-22b1-46c2-b383-355d4dc6717a video{overflow:hidden;top:50%;left:50%;-webkit-transform:translateX(-50%) translateY(-50%);-moz-transform:translateX(-50%) translateY(-50%);-ms-transform:translateX(-50%) translateY(-50%);transform:translateX(-50%) translateY(-50%);min-width:100%;min-height:100%;width:auto;height:auto!important;}}#section-c91d81a1-22b1-46c2-b383-355d4dc6717a .poster{display:none;position:absolute;top:0;left:0;bottom:0;right:0;z-index:-1000;background:center center/cover;}@media screen and (max-width: 900px){#section-c91d81a1-22b1-46c2-b383-355d4dc6717a .poster{display:block;}}#section-3be22ff3-0794-4b4a-bbcb-f157aa9408b9{color:#000;--fontColor:#000;--fontColor_H:0;--fontColor_S:0%;--fontColor_L:0%;--fontColor_A:1;--fontColor_darkenDir:1;--bgColor:#fff;--bgColor_H:0;--bgColor_S:0%;--bgColor_L:100%;--bgColor_A:1;--bgColor_darkenDir:-1;--section-padding-top:calc(2 / 4 * var(--global-section-padding));--section-padding-bottom:calc(0 / 4 * var(--global-section-padding));background-color:#fff;}#section-3be22ff3-0794-4b4a-bbcb-f157aa9408b9{--colGap:20px;}#section-3be22ff3-0794-4b4a-bbcb-f157aa9408b9 .row{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;margin-left:calc(var(--colGap, 0) / -2);margin-right:calc(var(--colGap, 0) / -2);-webkit-box-pack:center;-ms-flex-pack:center;
31-webkit-justify-content:center;justify-content:center;}#section-3be22ff3-0794-4b4a-bbcb-f157aa9408b9 .lp-h2{margin-top:0;}#section-3be22ff3-0794-4b4a-bbcb-f157aa9408b9 .col{position:relative;width:100%;min-height:1px;-webkit-flex-basis:0;-ms-flex-preferred-size:0;flex-basis:0;-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;max-width:100%;padding-left:calc(var(--colGap, 0) / 2);padding-right:calc(var(--colGap, 0) / 2);display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;}#section-3be22ff3-0794-4b4a-bbcb-f157aa9408b9 .media-card__image{background-color:#f2f2f2;}#section-3be22ff3-0794-4b4a-bbcb-f157aa9408b9 .col-1-2{-webkit-flex:0 0 50%;-ms-flex:0 0 50%;flex:0 0 50%;max-width:50%;}@media (max-width: 768px){#section-3be22ff3-0794-4b4a-bbcb-f157aa9408b9 .col-1-2{-webkit-flex:0 0 100%;-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%;}}#section-3be22ff3-0794-4b4a-bbcb-f157aa9408b9 .col-1-2 .media-card__image{padding-bottom:63.6%;}#section-3be22ff3-0794-4b4a-bbcb-f157aa9408b9 .col-1-3{-webkit-flex:0 0 33.33%;-ms-flex:0 0 33.33%;flex:0 0 33.33%;max-width:33.33%;}@media (max-width: 768px){#section-3be22ff3-0794-4b4a-bbcb-f157aa9408b9 .col-1-3{-webkit-flex:0 0 100%;-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%;}}#section-3be22ff3-0794-4b4a-bbcb-f157aa9408b9 .col-1-3 .media-card__image{padding-bottom:97%;}#section-3be22ff3-0794-4b4a-bbcb-f157aa9408b9 .col-1-4{-webkit-flex:0 0 25%;-ms-flex:0 0 25%;flex:0 0 25%;max-width:25%;}@media (max-width: 768px){#section-3be22ff3-0794-4b4a-bbcb-f157aa9408b9 .col-1-4{-webkit-flex:0 0 100%;-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%;}}#section-3be22ff3-0794-4b4a-bbcb-f157aa9408b9 .col-1-4 .media-card__image{padding-bottom:97%;}#section-3be22ff3-0794-4b4a-bbcb-f157aa9408b9 .media-blocks{text-align:center;}#section-3be22ff3-0794-4b4a-bbcb-f157aa9408b9 .media-card{width:100%;text-align:center;display:block;-webkit-text-decoration:none;text-decoration:none;color:inherit;margin-bottom:60px;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;}@media (max-width: 768px){#section-3be22ff3-0794-4b4a-bbcb-f157aa9408b9 .media-card{margin-bottom:40px;}}#section-3be22ff3-0794-4b4a-bbcb-f157aa9408b9 .media-card__image{position:relative;padding-bottom:40%;margin-bottom:32px;}#section-3be22ff3-0794-4b4a-bbcb-f157aa9408b9 .media-card__image img{position:absolute;left:0;top:0;width:100%;height:100%;object-fit:cover;}#section-3be22ff3-0794-4b4a-bbcb-f157aa9408b9 .media-card__title{margin-bottom:16px;max-width:380px;margin-left:auto;margin-right:auto;}#section-3be22ff3-0794-4b4a-bbcb-f157aa9408b9 .media-card__description{margin-bottom:32px;overflow:hidden;white-space:pre-line;max-width:380px;margin-left:auto;margin-right:auto;}#section-3be22ff3-0794-4b4a-bbcb-f157aa9408b9 .media-card__description .btn-more{cursor:pointer;}#section-3be22ff3-0794-4b4a-bbcb-f157aa9408b9 .media-card__description .substring{display:none;}#section-3be22ff3-0794-4b4a-bbcb-f157aa9408b9 .media-card__description .more-text{display:block;}#section-3be22ff3-0794-4b4a-bbcb-f157aa9408b9 .media-card__description.cropped{height:100%;}#section-3be22ff3-0794-4b4a-bbcb-f157aa9408b9 .media-card__description.cropped .substring{display:block;}#section-3be22ff3-0794-4b4a-bbcb-f157aa9408b9 .media-card__description.cropped .more-text{display:none;}#section-3be22ff3-0794-4b4a-bbcb-f157aa9408b9 .media-card__button{margin-top:auto;}#section-3be22ff3-0794-4b4a-bbcb-f157aa9408b9 .lp-text--subtitle{margin-left:auto;margin-right:auto;}#section-3be22ff3-0794-4b4a-bbcb-f157aa9408b9>div:last-child{padding-top:calc(2 / 4 * var(--global-section-padding))!important;padding-bottom:calc(0 / 4 * var(--global-section-padding))!important;}#section-603a8c8e-0751-4c5a-89cb-80c5906875fe{color:#000;--fontColor:#000;--fontColor_H:0;--fontColor_S:0%;--fontColor_L:0%;--fontColor_A:1;--fontColor_darkenDir:1;--bgColor:#fff;--bgColor_H:0;--bgColor_S:0%;--bgColor_L:100%;--bgColor_A:1;--bgColor_darkenDir:-1;--section-padding-top:calc(2 / 4 * var(--global-section-padding));--section-padding-bottom:calc(0 / 4 * var(--global-section-padding));background-color:#fff;}#section-603a8c8e-0751-4c5a-89cb-80c5906875fe{--colGap:20px;}#section-603a8c8e-0751-4c5a-89cb-80c5906875fe .row{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;margin-left:calc(var(--colGap, 0) / -2);margin-right:calc(var(--colGap, 0) / -2);-webkit-box-pack:center;-ms-flex-pack:center;
31-webkit-justify-content:center;justify-content:center;}#section-603a8c8e-0751-4c5a-89cb-80c5906875fe .lp-h2{margin-top:0;}#section-603a8c8e-0751-4c5a-89cb-80c5906875fe .col{position:relative;width:100%;min-height:1px;-webkit-flex-basis:0;-ms-flex-preferred-size:0;flex-basis:0;-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;max-width:100%;padding-left:calc(var(--colGap, 0) / 2);padding-right:calc(var(--colGap, 0) / 2);display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;}#section-603a8c8e-0751-4c5a-89cb-80c5906875fe .media-card__image{background-color:#f2f2f2;}#section-603a8c8e-0751-4c5a-89cb-80c5906875fe .col-1-2{-webkit-flex:0 0 50%;-ms-flex:0 0 50%;flex:0 0 50%;max-width:50%;}@media (max-width: 768px){#section-603a8c8e-0751-4c5a-89cb-80c5906875fe .col-1-2{-webkit-flex:0 0 100%;-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%;}}#section-603a8c8e-0751-4c5a-89cb-80c5906875fe .col-1-2 .media-card__image{padding-bottom:63.6%;}#section-603a8c8e-0751-4c5a-89cb-80c5906875fe .col-1-3{-webkit-flex:0 0 33.33%;-ms-flex:0 0 33.33%;flex:0 0 33.33%;max-width:33.33%;}@media (max-width: 768px){#section-603a8c8e-0751-4c5a-89cb-80c5906875fe .col-1-3{-webkit-flex:0 0 100%;-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%;}}#section-603a8c8e-0751-4c5a-89cb-80c5906875fe .col-1-3 .media-card__image{padding-bottom:97%;}#section-603a8c8e-0751-4c5a-89cb-80c5906875fe .col-1-4{-webkit-flex:0 0 25%;-ms-flex:0 0 25%;flex:0 0 25%;max-width:25%;}@media (max-width: 768px){#section-603a8c8e-0751-4c5a-89cb-80c5906875fe .col-1-4{-webkit-flex:0 0 100%;-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%;}}#section-603a8c8e-0751-4c5a-89cb-80c5906875fe .col-1-4 .media-card__image{padding-bottom:97%;}#section-603a8c8e-0751-4c5a-89cb-80c5906875fe .media-blocks{text-align:center;}#section-603a8c8e-0751-4c5a-89cb-80c5906875fe .media-card{width:100%;text-align:center;display:block;-webkit-text-decoration:none;text-decoration:none;color:inherit;margin-bottom:60px;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;}@media (max-width: 768px){#section-603a8c8e-0751-4c5a-89cb-80c5906875fe .media-card{margin-bottom:40px;}}#section-603a8c8e-0751-4c5a-89cb-80c5906875fe .media-card__image{position:relative;padding-bottom:40%;margin-bottom:32px;}#section-603a8c8e-0751-4c5a-89cb-80c5906875fe .media-card__image img{position:absolute;left:0;top:0;width:100%;height:100%;object-fit:cover;}#section-603a8c8e-0751-4c5a-89cb-80c5906875fe .media-card__title{margin-bottom:16px;max-width:380px;margin-left:auto;margin-right:auto;}#section-603a8c8e-0751-4c5a-89cb-80c5906875fe .media-card__description{margin-bottom:32px;overflow:hidden;white-space:pre-line;max-width:380px;margin-left:auto;margin-right:auto;}#section-603a8c8e-0751-4c5a-89cb-80c5906875fe .media-card__description .btn-more{cursor:pointer;}#section-603a8c8e-0751-4c5a-89cb-80c5906875fe .media-card__description .substring{display:none;}#section-603a8c8e-0751-4c5a-89cb-80c5906875fe .media-card__description .more-text{display:block;}#section-603a8c8e-0751-4c5a-89cb-80c5906875fe .media-card__description.cropped{height:100%;}#section-603a8c8e-0751-4c5a-89cb-80c5906875fe .media-card__description.cropped .substring{display:block;}#section-603a8c8e-0751-4c5a-89cb-80c5906875fe .media-card__description.cropped .more-text{display:none;}#section-603a8c8e-0751-4c5a-89cb-80c5906875fe .media-card__button{margin-top:auto;}#section-603a8c8e-0751-4c5a-89cb-80c5906875fe .lp-text--subtitle{margin-left:auto;margin-right:auto;}#section-603a8c8e-0751-4c5a-89cb-80c5906875fe>div:last-child{padding-top:calc(2 / 4 * var(--global-section-padding))!important;padding-bottom:calc(0 / 4 * var(--global-section-padding))!important;}#section-38f463dd-93fe-4ac6-9056-a96318555ecd{color:#000;--fontColor:#000;--fontColor_H:0;--fontColor_S:0%;--fontColor_L:0%;--fontColor_A:1;--fontColor_darkenDir:1;--bgColor:#fff;--bgColor_H:0;--bgColor_S:0%;--bgColor_L:100%;--bgColor_A:1;--bgColor_darkenDir:-1;--section-padding-top:calc(2 / 4 * var(--global-section-padding));--section-padding-bottom:calc(2 / 4 * var(--global-section-padding));background-color:#fff;}#section-38f463dd-93fe-4ac6-9056-a96318555ecd .boxed-text__description{margin-bottom:50px;text-align:center;}@media (max-width: 768px){#section-38f463dd-93fe-4ac6-9056-a96318555ecd .boxed-text__description{margin-bottom:30px;}}#section-38f463dd-93fe-4ac6-9056-a96318555ecd .lp-title-group .lp-h2{margin-top:0;}#section-38f463dd-93fe-4ac6-9056-a96318555ecd .button-container{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-ms-flex-pack:center;
31-webkit-justify-content:center;justify-content:center;}@media(max-width: 600px){#section-38f463dd-93fe-4ac6-9056-a96318555ecd .button-container{-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;}}#section-38f463dd-93fe-4ac6-9056-a96318555ecd .button-container .lp-btn{margin-right:20px;}#section-38f463dd-93fe-4ac6-9056-a96318555ecd .button-container .lp-btn:last-of-type{margin-right:0;}@media(max-width: 600px){#section-38f463dd-93fe-4ac6-9056-a96318555ecd .button-container .lp-btn{margin-right:0px;margin-bottom:20px;width:100%;}#section-38f463dd-93fe-4ac6-9056-a96318555ecd .button-container .lp-btn:last-of-type{margin-bottom:0;}}#section-38f463dd-93fe-4ac6-9056-a96318555ecd .lp-text--subtitle{margin-left:auto;margin-right:auto;text-transform:none;}#section-38f463dd-93fe-4ac6-9056-a96318555ecd .redesign p{margin-bottom:1.666rem;}#section-38f463dd-93fe-4ac6-9056-a96318555ecd>div:last-child{padding-top:calc(2 / 4 * var(--global-section-padding))!important;padding-bottom:calc(2 / 4 * var(--global-section-padding))!important;}#modal-global-contact-us>.close{display:none;}#modal-global-contact-us .contact-form{--colorLighter1:hsla(var(--fontColor_H), var(--fontColor_S), var(--fontColor_L), 0.5);--colorLighter2:hsla(var(--fontColor_H), var(--fontColor_S), var(--fontColor_L), 0.3);width:100%;background:center no-repeat;-webkit-background-size:cover;background-size:cover;min-height:800px;height:100vh;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;background-color:#fff;color:#000;-webkit-box-pack:space-around;-ms-flex-pack:space-around;-webkit-justify-content:space-around;justify-content:space-around;}#modal-global-contact-us .contact-form ::parent{-webkit-align-items:unset;-webkit-box-align:unset;-ms-flex-align:unset;align-items:unset;}@media (max-width: 1024px){#modal-global-contact-us .contact-form{min-height:100vh;height:auto;display:block;}}#modal-global-contact-us .contact-form .input-container{width:100%;}#modal-global-contact-us .contact-form .input-container+.input-container{margin-top:8px;}#modal-global-contact-us .contact-form__container{z-index:2;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center;}@media (max-width: 1024px){#modal-global-contact-us .contact-form__container{padding:0;width:100%;display:block;}}#modal-global-contact-us .contact-form__close{position:absolute;right:5px;top:5px;z-index:10;background-color:transparent;border:none;width:40px;height:40px;cursor:pointer;opacity:0.2;}#modal-global-contact-us .contact-form__close.close{color:#000;}#modal-global-contact-us .contact-form__close:before,#modal-global-contact-us .contact-form__close:after{display:block;content:'';position:absolute;width:20px;height:2px;background-color:currentColor;left:50%;top:50%;}@media (max-width: 768px){#modal-global-contact-us .contact-form__close{top:1vh;}}@media (min-width: 768px) and (max-width: 810px),(min-height: 1024px) and (max-height: 1080px){#modal-global-contact-us .contact-form__close{top:3vh;}}#modal-global-contact-us .contact-form__close:before{-webkit-transform:translate(-50%, -50%) rotate(45deg);-moz-transform:translate(-50%, -50%) rotate(45deg);-ms-transform:translate(-50%, -50%) rotate(45deg);transform:translate(-50%, -50%) rotate(45deg);}#modal-global-contact-us .contact-form__close:after{-webkit-transform:translate(-50%, -50%) rotate(-45deg);-moz-transform:translate(-50%, -50%) rotate(-45deg);-ms-transform:translate(-50%, -50%) rotate(-45deg);transform:translate(-50%, -50%) rotate(-45deg);}#modal-global-contact-us .contact-form__form{width:100%;max-width:637px;text-align:center;min-height:463px;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;
31-webkit-justify-content:center;justify-content:center;position:relative;margin-right:110px;padding:64px 65px;margin-bottom:0;}@media (max-width: 1024px){#modal-global-contact-us .contact-form__form{width:100%;max-width:100%;margin-right:0;padding:44px 24px;}}#modal-global-contact-us .contact-form__details{width:100%;max-width:510px;margin-top:66px;}@media (max-width: 1024px){#modal-global-contact-us .contact-form__details{width:100%;max-width:100%;margin-top:48px;padding-left:24px;padding-right:24px;}}#modal-global-contact-us .contact-form__input{width:100%;}#modal-global-contact-us .contact-form__submit{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-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center;margin-top:16px;width:100%;padding-top:5px;padding-bottom:5px;height:50px;}#modal-global-contact-us .contact-form .thank-you{display:none;padding:24px;}#modal-global-contact-us .contact-form .success .thank-you{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center;}
31#modal-global-contact-us .contact-form .success .form-group{display:none;}#modal-global-contact-us .contact-form .success .image{display:none;}#modal-global-contact-us .contact-form__title1{margin-bottom:16px;text-align:left;}#modal-global-contact-us .contact-form__title2{margin-bottom:16px;}#modal-global-contact-us .contact-form__description{margin-bottom:48px;}@media (max-width: 1024px){#modal-global-contact-us .contact-form__description{margin-bottom:32px;}}#modal-global-contact-us .form-inputs-wrap.center-aligned{margin-left:auto;margin-right:auto;}#modal-global-contact-us .company{padding-top:24px;padding-bottom:48px;border-top:1px solid rgba(0, 0, 0, 0.5);color:rgba(0, 0, 0, 0.5);}@media (max-width: 1024px){#modal-global-contact-us .company{padding-bottom:32px;}}#modal-global-contact-us .company_title{margin-bottom:0;}#modal-global-contact-us .company .lp-a a{white-space:nowrap;}#modal-global-contact-us .company p{margin-bottom:0;}#modal-global-contact-us .socials{margin:-8px;margin-bottom:20px;}@media (max-width: 767px){#modal-global-contact-us .socials{margin-left:auto;width:-webkit-max-content;width:-moz-max-content;width:max-content;margin-right:auto;max-width:100%;}}#modal-global-contact-us .socials li{margin:0;padding:8px;}#modal-global-contact-us .contact-form__submit{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-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center;}#modal-global-contact-us .sync-icon{display:none;margin-right:10px;-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;}#modal-global-contact-us .success-icon{display:none;margin-right:10px;-webkit-transition:0s;transition:0s;visibility:visible;}#modal-global-contact-us .loading{pointer-events:none;}#modal-global-contact-us .loading .sync-icon{display:-webkit-inline-box;display:-webkit-inline-flex;display:-ms-inline-flexbox;display:inline-flex;}#modal-global-contact-us .success-text{display:none;}#modal-global-contact-us .success{pointer-events:none;}#modal-global-contact-us .success .success-icon{display:block;}#modal-global-contact-us .success .success-text{display:inline;}nav{-webkit-transition:0.2s all;transition:0.2s all;}nav nav{-webkit-transition:0.2s all;transition:0.2s all;}nav .header{padding-top:30px;padding-bottom:30px;}nav .header__right{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-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;-webkit-flex-basis:50%;-ms-flex-preferred-size:50%;flex-basis:50%;-webkit-box-pack:end;-ms-flex-pack:end;-webkit-justify-content:flex-end;justify-content:flex-end;}nav .header__container{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-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center;}nav .header__btn-contact{border:1px solid;border-radius:3px;padding:18px 40px;-webkit-transition:0.2s all;transition:0.2s all;text-transform:none;margin-left:40px;font-size:18px;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;}@media (hover: hover) and (pointer: fine){nav .header__btn-contact:hover{background-color:var(--themeBlack, #211f1f);color:var(--themeWhite, #fff);}}@media (max-width: 768px){nav .header__btn-contact{padding:10px;margin-left:5px;margin-right:12px;display:none;}}nav .header__hamburger{background-color:transparent;cursor:pointer;outline:none;position:relative;padding:0;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-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center;margin-left:41px;width:80px;height:60px;border:none;color:currentColor;font-family:var(--global-secondary-font-family);font-size:18px;line-height:1;}@media (max-width: 768px){nav .header__hamburger{width:30px;height:40px;margin-left:15px;font-size:0;}}@media (hover: hover) and (pointer: fine){nav .header__hamburger:hover .line--border{width:12px;x:12px;}nav .header__hamburger:hover .line--middle{width:24px;x:6px;}}nav .header__hamburger svg{width:100%;height:100%;margin-left:8px;}nav .header__hamburger .line{fill:currentColor;height:2px;width:24px;-webkit-transition:0.2s all;transition:0.2s all;}nav .header__hamburger .line--middle{x:12px;width:12px;}nav .sub-nav{position:absolute;
31left:0;top:100%;padding:0;max-height:0;z-index:5;margin:0;list-style-type:none;overflow:hidden;visibility:hidden;-webkit-transition:visibility 0s linear 0.3s,max-height 0.3s ease;transition:visibility 0s linear 0.3s,max-height 0.3s ease;}nav .sub-nav.visible{-webkit-transition:visibility 0s linear 0s,max-height 0.3s ease-in;transition:visibility 0s linear 0s,max-height 0.3s ease-in;max-height:100vh;visibility:visible;}nav .sub-nav__item{position:relative;display:block;margin:0;text-align:left;}nav .sub-nav__link{display:block;color:var(--themeWhite, #fff);font-size:14px;font-weight:600;padding:10px 18px;position:relative;width:-webkit-max-content;width:-moz-max-content;width:max-content;max-width:178px;min-width:100%;cursor:pointer;-webkit-text-decoration:none;text-decoration:none;background-color:var(--themeBlack, #211f1f);}@media (hover: hover) and (pointer: fine){nav .sub-nav__link:hover{color:var(--themeWhite, #fff);background-color:rgba(75, 75, 75, 1);}}nav .logo{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;position:relative;outline:none;max-width:234px;height:60px;}@media (max-width: 768px){nav .logo{width:145px;}}nav .logo__img{object-fit:contain;object-position:left;max-width:100%;max-height:100%;}nav .logo__img.light{display:none;}nav .logo__img.dark{display:block;}nav .scroll .header{padding-top:22px;padding-bottom:22px;}@media (hover: hover) and (pointer: fine){nav .scroll .header__btn-contact:hover{background-color:var(--themeWhite, #fff);color:var(--themeBlack, #211f1f);}}nav .scroll .search__btn{color:var(--themeWhite, #fff);}nav .scroll .logo__img.dark{display:none;}nav .scroll .logo__img.light{display:block;}nav .header.theme-light{color:#fff;}nav .header.theme-light .lp-btn.lp-btn--dark.lp-btn--outline{color:var(--themeWhite, #fff);border-color:var(--themeWhite, #fff);}nav .header.theme-light .lp-btn.lp-btn--dark.lp-btn--outline:hover{color:var(--themeBlack, #211f1f);border-color:var(--themeBlack, #211f1f);background-color:var(--themeWhite, #fff);}nav .header.theme-light .logo__img.dark{display:none;}nav .header.theme-light .logo__img.light{display:block;}nav.scroll .header{padding-top:22px;padding-bottom:22px;}nav.scroll .lp-btn.lp-btn--dark.lp-btn--outline{color:var(--themeWhite, #fff);border-color:var(--themeWhite, #fff);}nav.scroll .lp-btn.lp-btn--dark.lp-btn--outline:hover{color:var(--themeBlack, #211f1f);border-color:var(--themeBlack, #211f1f);background-color:var(--themeWhite, #fff);}nav.scroll .search__btn{color:var(--themeWhite, #fff);}nav.scroll .logo__img.dark{display:none;}nav.scroll .logo__img.light{display:block;}nav .navigation{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:end;-ms-flex-pack:end;-webkit-justify-content:flex-end;justify-content:flex-end;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;list-style-type:none;margin:0;padding:0;-webkit-box-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;-webkit-flex:1;-ms-flex:1;flex:1;}@media (max-width: 1200px){nav .navigation{display:none;}}nav .navigation__item{padding:0;margin:0;}nav .navigation__item+.navigation__item{padding-left:20px;}@media (hover: hover) and (pointer: fine){nav .navigation .navigation__item:not(.sub-nav-container) .navigation__link:after{content:'';position:absolute;display:block;width:0;height:2px;-webkit-transition:.3s linear;transition:.3s linear;background:var(--themeBeige, #ccb091);bottom:0;left:0;}nav .navigation .navigation__item:not(.sub-nav-container) .navigation__link:hover:after{width:100%;}}nav .navigation__link{display:block;position:relative;font-size:18px;line-height:1;background-color:transparent;border:none;border-bottom:2px solid transparent;border-top:2px solid transparent;cursor:pointer;padding:21px 10px;max-width:180px;z-index:2;outline:none;color:inherit;-webkit-text-decoration:none;text-decoration:none;max-width:180px;-webkit-font-smoothing:unset;-webkit-transition:.3s linear;transition:.3s linear;}nav .navigation__link:focus,nav .navigation__link:active{outline:none;}nav .sub-nav-container{position:relative;padding-right:21px;}nav .sub-nav-container:after{display:block;content:'';width:8px;height:8px;border-right:2px solid;border-bottom:2px solid;position:absolute;right:3px;top:50%;-webkit-transform:translate(0, calc(-50% - 3px)) rotate(45deg);-moz-transform:translate(0, calc(-50% - 3px)) rotate(45deg);-ms-transform:translate(0, calc(-50% - 3px)) rotate(45deg);transform:translate(0, calc(-50% - 3px)) rotate(45deg);-webkit-transition:0.2s all;transition:0.2s all;}nav .sub-nav-container.active:after{-webkit-transform:translate(0, calc(-50% + 3px)) rotate(-135deg);-moz-transform:translate(0, calc(-50% + 3px)) rotate(-135deg);-ms-transform:translate(0, calc(-50% + 3px)) rotate(-135deg);transform:translate(0, calc(-50% + 3px)) rotate(-135deg);}nav .search{position:relative;}nav .search__btn{border:none;background-color:transparent;margin-left:20px;cursor:pointer;display:block;color:inherit;}@media (max-width: 768px){nav .search__btn{margin-left:0;}}nav .search__btn svg{display:block;}@media (max-width: 768px){nav .hide-mobile{display:none;}}body>div.sidemenu{background-color:rgba(255, 255, 255, 1);color:rgba(0, 0, 0, 1);--fontColor:rgba(0, 0, 0, 1);--fontColor_H:0;--fontColor_S:0%;--fontColor_L:0%;--fontColor_A:1;--fontColor_darkenDir:1;--bgColor:rgba(255, 255, 255, 1);--bgColor_H:0;--bgColor_S:0%;--bgColor_L:100%;--bgColor_A:1;--bgColor_darkenDir:-1;}body>div.sidemenu{--colorLighter1:hsla(var(--fontColor_H), var(--fontColor_S), var(--fontColor_L), 0.1);width:100%;display:block;-webkit-transform:translateY(-100%);-moz-transform:translateY(-100%);-ms-transform:translateY(-100%);transform:translateY(-100%);-webkit-transition:.1s all ease-out 2s;transition:.1s all ease-out 2s;background:transparent;}body>div.sidemenu .sidemenu__container{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;}body>div.sidemenu.visible{-webkit-transition:0s all;transition:0s all;-webkit-transform:translateY(0);-moz-transform:translateY(0);-ms-transform:translateY(0);transform:translateY(0);z-index:900;background-color:transparent;}body>div.sidemenu.visible .sidemenu__img{-webkit-transform:translateY(0%);-moz-transform:translateY(0%);-ms-transform:translateY(0%);transform:translateY(0%);-webkit-transition:.7s cubic-bezier(0.645, 0.045, 0.355, 1.000);transition:.7s cubic-bezier(0.645, 0.045, 0.355, 1.000);}body>div.sidemenu.visible .sidemenu__wrapper{-webkit-transform:translateY(0%);-moz-transform:translateY(0%);-ms-transform:translateY(0%);transform:translateY(0%);-webkit-transition:1s cubic-bezier(0.645, 0.045, 0.355, 1.000);transition:1s cubic-bezier(0.645, 0.045, 0.355, 1.000);}body>div.sidemenu.visible .sidemenu__toggle{pointer-events:auto;}body>div.sidemenu .sidemenu__img{background:center no-repeat;-webkit-background-size:cover;background-size:cover;-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;-webkit-transform:translateY(-100%);-moz-transform:translateY(-100%);-ms-transform:translateY(-100%);transform:translateY(-100%);-webkit-transition:.7s cubic-bezier(0.645, 0.045, 0.355, 1.000) .5s;transition:.7s cubic-bezier(0.645, 0.045, 0.355, 1.000) .5s;}@media (max-width: 768px){body>div.sidemenu .sidemenu__img{display:none;}}body>div.sidemenu .sidemenu__wrapper{background-color:var(--bgColor, #211F1F);-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;-webkit-box-pack:justify;
31-webkit-justify-content:space-between;justify-content:space-between;height:100vh;padding:80px 0 66px 0;overflow-y:auto;max-width:700px;-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;-webkit-transform:translateY(-100%);-moz-transform:translateY(-100%);-ms-transform:translateY(-100%);transform:translateY(-100%);-webkit-transition:1s cubic-bezier(0.645, 0.045, 0.355, 1.000) .5s;transition:1s cubic-bezier(0.645, 0.045, 0.355, 1.000) .5s;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;}body>div.sidemenu .sidemenu__wrapper::-webkit-scrollbar{width:4px;background-color:transparent;}body>div.sidemenu .sidemenu__wrapper::-webkit-scrollbar-thumb{background-color:var(--fontColor, #ffffff);}body>div.sidemenu .sidemenu__wrapper::-webkit-scrollbar-track{-webkit-box-shadow:inset 0 0 4px rgba(0,0,0,0.3);background-color:var(--bgColor, #211F1F);}@media (max-width: 768px){body>div.sidemenu .sidemenu__wrapper{padding:40px 0 66px 0;}}body>div.sidemenu .sidemenu__toggle{height:48px;margin-right:auto;margin-left:70px;position:relative;border:none;background-color:transparent;outline:none;color:var(--fontColor, #ffffff);padding-right:50px;font-family:inherit;pointer-events:none;cursor:pointer;}@media (max-width: 768px){body>div.sidemenu .sidemenu__toggle{margin-left:20px;}}body>div.sidemenu .sidemenu__toggle--right{margin-left:auto;margin-right:70px;}@media (max-width: 768px){body>div.sidemenu .sidemenu__toggle--right{margin-right:20px;}}body>div.sidemenu .sidemenu__toggle:focus{outline:none;}body>div.sidemenu .sidemenu__toggle:before,body>div.sidemenu .sidemenu__toggle:after{content:'';display:block;position:absolute;width:20px;height:2px;background-color:currentColor;right:0;top:50%;}body>div.sidemenu .sidemenu__toggle:before{-webkit-transform:translate(-50%, -50%) rotate(45deg);-moz-transform:translate(-50%, -50%) rotate(45deg);-ms-transform:translate(-50%, -50%) rotate(45deg);transform:translate(-50%, -50%) rotate(45deg);}body>div.sidemenu .sidemenu__toggle:after{-webkit-transform:translate(-50%, -50%) rotate(-225deg);-moz-transform:translate(-50%, -50%) rotate(-225deg);-ms-transform:translate(-50%, -50%) rotate(-225deg);transform:translate(-50%, -50%) rotate(-225deg);}body>div.sidemenu .sidemenu__nav{margin-bottom:auto;padding:0;}body>div.sidemenu .sidemenu__socials{margin-left:auto;padding-top:30px;padding-right:70px;}@media (max-width: 768px){body>div.sidemenu .sidemenu__socials{padding-right:20px;padding-left:20px;}}body>div.sidemenu .sidemenu__socials .lp-socials li{margin-bottom:14px;}body>div.sidemenu .sidemenu__header{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:justify;-webkit-justify-content:space-between;justify-content:space-between;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;padding-bottom:93px;}@media (max-width: 768px){body>div.sidemenu .sidemenu__header{padding-bottom:59px;}}body>div.sidemenu .sidemenu__logo{display:none;}@media (max-width: 768px){body>div.sidemenu .sidemenu__logo{display:block;}}body>div.sidemenu .sidemenu__logo-img{display:block;max-height:50px;}body>div.sidemenu .navigation{list-style-type:none;margin:0;padding:0;max-width:100%;}body>div.sidemenu .navigation__item{border-bottom:1px solid var(--colorLighter1);margin:0;overflow:hidden;}body>div.sidemenu .navigation__link{padding:12px 12px 12px 70px;display:block;font-size:22px;font-weight:400;line-height:48px;color:var(--fontColor, #ffffff);-webkit-transition:0.2s all;transition:0.2s all;cursor:pointer;-webkit-text-decoration:none;text-decoration:none;font-family:var(--global-primary-font-family);-webkit-transform:translateY(100%);-moz-transform:translateY(100%);-ms-transform:translateY(100%);transform:translateY(100%);opacity:0;position:relative;transition-property:transform,opacity,color;transition-duration:0.55s,0.55s,0.3s;transition-timing-function:cubic-bezier(0.645, 0.045, 0.355, 1),ease-in-out,ease-in-out;}@media(max-width: 768px){body>div.sidemenu .navigation__link{padding-left:20px;padding-right:20px;padding-bottom:16px;}}@media (hover: hover) and (pointer: fine){body>div.sidemenu .navigation__link:hover{color:var(--fontColor, #ffffff);}}body>div.sidemenu .sub-nav{list-style-type:none;display:none;margin:0;padding:10px 0 30px 85px;}@media(max-width: 768px){body>div.sidemenu .sub-nav{padding-bottom:16px;padding-left:35px;}}body>div.sidemenu .sub-nav__item{padding-bottom:10px;margin:0;opacity:0;}body>div.sidemenu .sub-nav__item.fadeInUp{-webkit-animation-duration:1s;animation-duration:1s;-webkit-animation-timing-function:ease;animation-timing-function:ease;-webkit-animation-fill-mode:forwards;animation-fill-mode:forwards;-webkit-animation-delay:var(--delay);animation-delay:var(--delay);}body>div.sidemenu .sub-nav__link{font-size:16px;font-weight:400;cursor:pointer;color:var(--fontColor, #ffffff);font-family:var(--global-secondary-font-family);-webkit-text-decoration:none;text-decoration:none;}body>div.sidemenu .sub-nav.visible{display:block;}body>div.sidemenu .lp-socials__link{opacity:0;-webkit-transform:translateY(-50px);-moz-transform:translateY(-50px);-ms-transform:translateY(-50px);transform:translateY(-50px);position:relative;transition-property:transform,opacity,color;transition-duration:0.55s,0.55s,0.3s;transition-timing-function:cubic-bezier(0.645, 0.045, 0.355, 1),ease-in-out,ease-in-out;}body>div.sidemenu body>div.sidemenu{width:100%;}body>div.sidemenu body>div.sidemenu.visible{-webkit-transition:0s all;transition:0s all;-webkit-transform:translateY(0);-moz-transform:translateY(0);-ms-transform:translateY(0);transform:translateY(0);z-index:900;background-color:transparent;}body>div.sidemenu body>div.sidemenu.visible .sidemenu__img{-webkit-transform:translateY(0%);-moz-transform:translateY(0%);-ms-transform:translateY(0%);transform:translateY(0%);-webkit-transition:.7s cubic-bezier(0.645, 0.045, 0.355, 1.000);transition:.7s cubic-bezier(0.645, 0.045, 0.355, 1.000);}body>div.sidemenu body>div.sidemenu.visible .sidemenu__wrapper{-webkit-transform:translateY(0%);-moz-transform:translateY(0%);-ms-transform:translateY(0%);transform:translateY(0%);-webkit-transition:1s cubic-bezier(0.645, 0.045, 0.355, 1.000);transition:1s cubic-bezier(0.645, 0.045, 0.355, 1.000);}body>div.sidemenu body>div.sidemenu.visible .sidemenu__toggle{pointer-events:auto;}body>div.sidemenu .fade-in{opacity:1;-webkit-transform:translateY(0);-moz-transform:translateY(0);-ms-transform:translateY(0);transform:translateY(0);}body>div.sidemenu .arrow{vertical-align:middle;margin-bottom:10px;-webkit-transition:.4s;transition:.4s;}body>div.sidemenu .arrow.active{-webkit-transform:rotate(-180deg);-moz-transform:rotate(-180deg);-ms-transform:rotate(-180deg);transform:rotate(-180deg);-webkit-transition:.4s;transition:.4s;}footer{background-color:rgba(250, 250, 249, 1);color:rgba(28, 28, 28, 1);--fontColor:rgba(28, 28, 28, 1);--fontColor_H:0;--fontColor_S:0%;--fontColor_L:11%;--fontColor_A:1;--fontColor_darkenDir:1;--bgColor:rgba(250, 250, 249, 1);--bgColor_H:60;--bgColor_S:9%;--bgColor_L:98%;--bgColor_A:1;--bgColor_darkenDir:-1;}footer .lp-input--dark{background-color:#fff;}footer .site-footer__subscribe{padding-top:92px;padding-bottom:92px;background-color:rgba(0,0,0,0.1);}@media (max-width: 768px){footer .site-footer__subscribe{padding-top:64px;padding-bottom:64px;}}footer .site-footer__logo-bar{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;padding-bottom:64px;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;}@media (max-width: 768px){footer .site-footer__logo-bar{padding-bottom:24px;}}footer .site-footer__logo-container img{max-width:268px;max-height:56px;object-fit:contain;display:block;object-position:left top;}footer .site-footer__logo-container+.site-footer__logo-container{margin-left:50px;}@media (max-width: 768px){footer .site-footer__logo-container+.site-footer__logo-container{margin-left:0;margin-top:16px;width:100%;}}footer .site-footer__info{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;-webkit-align-items:flex-start;-webkit-box-align:flex-start;-ms-flex-align:flex-start;align-items:flex-start;}@media (max-width: 768px){footer .site-footer__info{-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;}}footer .site-footer__info .lp-a a{white-space:nowrap;}
31footer .site-footer__col{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;padding-right:32px;}footer .site-footer__col-title{width:100%;margin-bottom:16px;min-height:29px;}footer .site-footer__col-content{opacity:0.5;padding-bottom:16px;}footer .site-footer__col-content p{margin-bottom:0;}footer .site-footer__col-content a{color:inherit;}footer .site-footer__col-content+.site-footer__col-content{padding-left:40px;}@media (max-width: 768px){footer .site-footer__col-content+.site-footer__col-content{padding-left:0;}}footer .site-footer__navigation-wrap{width:100%;padding-top:32px;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-box-pack:justify;-webkit-justify-content:space-between;justify-content:space-between;}@media (max-width: 992px){footer .site-footer__navigation-wrap{-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;padding-bottom:18px;}}@media (max-width: 768px){footer .site-footer__navigation-wrap{padding-top:24px;padding-bottom:0;-webkit-align-items:flex-start;-webkit-box-align:flex-start;-ms-flex-align:flex-start;align-items:flex-start;}}footer .site-footer__socials{margin-left:auto;}@media (max-width: 992px){footer .site-footer__socials{margin-left:0;}}@media (max-width: 768px){footer .site-footer__socials{margin-right:auto;}}footer .site-footer__socials li{margin-bottom:0;}footer .site-footer__disclaimer{padding-top:64px;padding-bottom:32px;position:relative;opacity:0.5;}@media (max-width: 768px){footer .site-footer__disclaimer{padding-top:18px;padding-bottom:25px;}}footer .site-footer__disclaimer:after{content:'';display:block;position:absolute;left:0;bottom:0;right:0;height:1px;background-color:currentColor;opacity:0.2;}footer .site-footer__copy{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:justify;-webkit-justify-content:space-between;justify-content:space-between;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;padding-top:32px;font-size:18px;}@media (max-width: 768px){footer .site-footer__copy{padding-top:15px;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;-webkit-align-items:flex-start;-webkit-box-align:flex-start;-ms-flex-align:flex-start;align-items:flex-start;}footer .site-footer__copy>div:first-child{margin-bottom:15px;}}footer .site-footer__copy a{color:inherit;}footer .site-footer__copy-lp span{margin-right:5px;}footer .site-footer__copy-lp img{margin-right:30px;}@media (max-width: 768px){footer .site-footer__copy-lp img{margin-right:0;margin-bottom:15px;}}@media (min-width: 769px){footer .site-footer__copy-lp{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;}}footer .site-footer__bottom{padding-top:96px;padding-bottom:96px;}@media (max-width: 768px){footer .site-footer__bottom{padding-top:64px;padding-bottom:64px;}}footer .footer-contact{margin-bottom:13px;}footer .footer-contact p{margin-bottom:0;opacity:.7;}footer .footer-contact ul{list-style:none;padding-left:0;margin:0;}footer .footer-subscribe{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:justify;-webkit-justify-content:space-between;justify-content:space-between;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;}@media (max-width: 768px){footer .footer-subscribe{-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;}}footer .footer-subscribe__title-wrap{padding-right:50px;}@media (max-width: 768px){footer .footer-subscribe__title-wrap{padding-right:0;padding-bottom:32px;}}footer .footer-subscribe__title{margin-bottom:8px;}footer .footer-subscribe__sub-title{margin-bottom:0;}footer .footer-subscribe__form{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;width:100%;max-width:330px;margin-bottom:0;position:relative;}footer .footer-subscribe__submit{margin-top:16px;}footer .footer-subscribe__success-msg{position:absolute;top:100%;width:100%;text-align:center;opacity:.7;padding-top:10px;}footer .footer-navigation{list-style:none;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;padding:0 20px 0 0;margin:0 -30px;}@media (max-width: 992px){footer .footer-navigation{margin-bottom:36px;}}@media (max-width: 768px){footer .footer-navigation{-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;margin:0 0 36px;}}footer .footer-navigation__item{margin:0 30px;}@media (max-width: 768px){footer .footer-navigation__item{margin:0 0 10px;}}
31footer .footer-navigation__link{color:inherit;-webkit-text-decoration:none;text-decoration:none;font-size:14px;line-height:14px;background-color:transparent;border:none;font-family:inherit;cursor:pointer;padding-left:0;padding-right:0;-webkit-transition:0.2s all;transition:0.2s all;}@media (hover: hover) and (pointer: fine){footer .footer-navigation__link:hover{color:var(--themeBeige);}}footer .lp-socials li{margin-bottom:14px;}footer .sync-icon{display:none;margin-right:10px;-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;}footer .success-icon{display:none;margin-right:10px;-webkit-transition:0s;transition:0s;visibility:visible;}footer .loading{pointer-events:none;}footer .loading .sync-icon{display:-webkit-inline-box;display:-webkit-inline-flex;display:-ms-inline-flexbox;display:inline-flex;}footer .success .success-icon{display:block;}footer .lp-footer-disclaimers{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;gap:20px;margin-top:32px;padding-top:32px;}@media (max-width: 768px){footer .lp-footer-disclaimers{padding-top:15px;margin-top:15px;}}body>div.mobile-contact-wrapper .mobile-contact{display:none;position:fixed;width:100%;height:100vh;z-index:5;pointer-events:none;bottom:0;right:0;}body>div.mobile-contact-wrapper .mobile-contact .item{outline:none;width:50px;height:50px;box-shadow:4px 4px 10px 0 rgba(0, 0, 0, 0.1);background-color:#f1f1f1;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-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center;border-radius:50%;color:#484b4e;border:none;font-size:20px;}body>div.mobile-contact-wrapper .mobile-contact .item svg{fill:#484b4e;}body>div.mobile-contact-wrapper .mobile-contact .item:nth-child(n + 2){margin-top:15px;}body>div.mobile-contact-wrapper .mobile-contact .buttons-holder{pointer-events:all;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;position:absolute;right:25px;bottom:70px;}body>div.mobile-contact-wrapper .mobile-contact.dark .item{background-color:black;color:#f1f1f1;}body>div.mobile-contact-wrapper .mobile-contact.dark .item svg{fill:#f1f1f1;}@media (max-width: 500px){body>div.mobile-contact-wrapper .mobile-contact{display:block;}} 32 </style> 33 <style id="custom-style-css">.pagination-style-1 li a{color:#1C1C1C!important;background-color:rgba(255, 255, 255, 0)!important;border-color:rgba(33, 31, 31, 0)!important;}.pagination-style-1 li a:hover{color:rgba(255, 255, 255, 1)!important;background-color:#1C1C1C!important;border-color:#1C1C1C!important;}.pagination-style-1 li.active a{color:rgba(255, 255, 255, 1)!important;background-color:#1C1C1C!important;border-color:#1C1C1C!important;}.hyperlink-style-1{color:rgba(33, 31, 31, 1)!important;}.hyperlink-style-1:hover{color:#86A65D!important;}.button-style-1{color:rgba(255, 255, 255, 1)!important;background-color:#2A2A2A!important;border-color:#1C1C1C!important;}.button-style-1:hover{color:rgba(134, 166, 93, 1)!important;background-color:rgba(172, 139, 46, 0)!important;border-color:rgba(134, 166, 93, 1)!important;}.social_icons-style-1 a{border-color:rgba(189, 194, 198, 1)!important;background-color:#2A2A2A!important;color:rgba(255, 255, 255, 1)!important;}.social_icons-style-1 a:hover{border-color:rgba(189, 194, 198, 1)!important;background-color:rgba(189, 194, 198, 1)!important;color:rgba(255, 255, 255, 1)!important;}.social_icons-style-1 a i{color:inherit!important;}
33.social_icons-style-1 a svg,.social_icons-style-1 a svg path{fill:currentColor!important;}.button-style-2{color:rgba(255, 255, 255, 1)!important;background-color:#2A2A2A!important;border-color:rgba(255, 255, 255, 1)!important;}.button-style-2:hover{color:#FAFAF9!important;background-color:rgba(255, 255, 255, 0.8)!important;border-color:rgba(255, 255, 255, 0.8)!important;}.pagination-style-2 li a{color:rgba(255, 255, 255, 1)!important;background-color:rgba(0, 0, 0, 0)!important;border-color:rgba(255, 255, 255, 0)!important;}.pagination-style-2 li a:hover{color:#1C1C1C!important;background-color:rgba(255, 255, 255, 1)!important;border-color:rgba(255, 255, 255, 1)!important;}.pagination-style-2 li.active a{color:#1C1C1C!important;background-color:rgba(255, 255, 255, 1)!important;border-color:rgba(255, 255, 255, 1)!important;}.hyperlink-style-2{color:rgba(255, 255, 255, 1)!important;}.hyperlink-style-2:hover{color:#86A65D!important;}.social_icons-style-2 a{border-color:rgba(255, 255, 255, 1)!important;background-color:#2A2A2A!important;color:rgba(255, 255, 255, 1)!important;}.social_icons-style-2 a:hover{border-color:rgba(255,255,255,1)!important;background-color:rgba(255, 255, 255, 1)!important;color:rgba(189, 194, 198, 1)!important;}.social_icons-style-2 a i{color:inherit!important;}
33.social_icons-style-2 a svg,.social_icons-style-2 a svg path{fill:currentColor!important;}.hyperlink-style-3{color:rgba(33, 31, 31, 1)!important;}.hyperlink-style-3:hover{color:rgba(33, 31, 31, 1)!important;}.button-style-3{color:rgba(255, 255, 255, 1)!important;background-color:rgba(33, 31, 31, 1)!important;border-color:rgba(33, 31, 31, 1)!important;}.button-style-3:hover{color:rgba(33, 31, 31, 1)!important;background-color:rgba(33, 31, 31, 0)!important;border-color:rgba(33, 31, 31, 1)!important;}.button-style-4{color:rgba(33, 31, 31, 1)!important;background-color:rgba(255,255,255,1)!important;border-color:rgba(255, 255, 255, 1)!important;}.button-style-4:hover{color:rgba(255,255,255,1)!important;background-color:rgba(33, 31, 31, 1)!important;border-color:rgba(33, 31, 31, 1)!important;}.hyperlink-style-4{color:rgba(255, 255, 255, 1)!important;}.hyperlink-style-4:hover{color:rgba(255,255,255,1)!important;}.button-style-5{color:rgba(255, 255, 255, 1)!important;background-color:rgba(134, 166, 93, 1)!important;border-color:rgba(134, 166, 93, 1)!important;}.button-style-5:hover{color:rgba(255, 255, 255, 1)!important;background-color:rgba(134, 166, 93, 1)!important;border-color:rgba(134, 166, 93, 1)!important;}</style> 34 <!-- LP Consent bootstrap: blocking; resolves consent state, pushes Consent Mode 35 defaults, and dynamically loads the locale + main (and banner if needed). --> 36
36<script src="https://cdn.luxurypresence.com/scripts/lp-consent/latest/lp-consent-boot.js" data-website-id="a5440cc9-5b97-48ed-9bee-febaed15953d"></script>
36 37 38 39 <!-- Follow Up Boss Tracker Code --> 40
40<script type="text/plain" data-consent-category="analytics"> 41 (function(w,i,d,g,e,t){w["WidgetTrackerObject"]=g;(w[g]=w[g]||function() 42 {(w[g].q=w[g].q||[]).push(arguments);}),(w[g].ds=1*new Date());(e="script"), 43 (t=d.createElement(e)),(e=d.getElementsByTagName(e)[0]);t.async=1;t.src=i; 44 e.parentNode.insertBefore(t,e);}) 45 (window,"https://widgetbe.com/agent",document,"widgetTracker"); 46 window.widgetTracker("create", "WT-VROTCPLE"); 47 </script>
47 48 <!-- End Follow Up Boss Tracker Code --> 49
49<script> 50 (function utmParse() { 51 const url = new URL(window.location.href); 52 if (url.search) { 53 const utm = url.search.split(/\?|&/g).reduce((acc, current) => { 54 const matched = current.match(/utm_(content|campaign|medium|source|term|id)|gclid/g); 55 if (matched) { 56 acc[matched[0]] = current.replace(`${matched[0]}=`, ''); 57 } 58 return acc; 59 }, {}); 60 if (Object.keys(utm).length) { 61 window.localStorage.setItem('utm_vars', JSON.stringify(utm)); 62 } else { 63 // Remove old utm vars 64 window.localStorage.removeItem('utm_vars'); 65 } 66 } 67 // Set referrer in local storage 68 // This is meant to be stored once to avoid self-referrals and to have the first referrer only. 69 if (!window.localStorage.getItem('referrer')) { 70 // Capture the Referrer URL 71 const referrer = document.referrer; 72 if (referrer) { 73 // Only store the referrer if it comes from outside the current domain (to avoid self-referrals) 74 const currentDomain = window.location.hostname; 75 const referrerDomain = new URL(referrer).hostname; 76 77 if (referrerDomain !== currentDomain) { 78 // Store it in localStorage 79 localStorage.setItem('referrer', referrer); 80 } 81 } 82 } 83 })(); 84 </script>
84 85 <!-- Bing Webmaster Tools Verification -->
86<script> 87 // Check if on the homepage before the body loads 88 if (window.location.pathname === '/' || window.location.pathname === '/index.html') { 89 document.write('<meta name="msvalidate.01" content="3181399F1AAC7098DCB3AAE4F78B743E" />'); 90 } 91</script>
91 92 93<!-- Bing Webmaster Tools Verification -->
94<script> 95 if (window.location.pathname === '/' || window.location.pathname === '/index.html') { 96 document.write('<meta name="msvalidate.01" content="6222A7CCB71FFB2E1ECDC1220441DB43" />'); 97 } 98</script>
98 99 <!-- GOOGLE TRANSLATE STYLES are moved to external CSS --> 100</head> 101<body> 102 <div id="google_translate_element" style="display: none"></div> 103 104 <nav id="global-navbar" data-el-id="de4f4cb9-2141-4be7-b9bb-c6ce312a39c8"> 105 <div class="header theme-auto"> 106 <div class="lp-container header__container"> 107 <div class="header__logo"> 108 <a href="/" class="logo"> 109 <img src="https://media-production.lp-cdn.com/cdn-cgi/image/format=auto,quality=85,fit=scale-down,width=1280/https://media-production.lp-cdn.com/media/1cc819c5-0059-4b54-83b4-85bb3485dd98" srcset="https://media-production.lp-cdn.com/cdn-cgi/image/format=auto,quality=85,fit=scale-down,width=320/https://media-production.lp-cdn.com/media/1cc819c5-0059-4b54-83b4-85bb3485dd98 320w, https://media-production.lp-cdn.com/cdn-cgi/image/format=auto,quality=85,fit=scale-down,width=960/https://media-production.lp-cdn.com/media/1cc819c5-0059-4b54-83b4-85bb3485dd98 960w, https://media-production.lp-cdn.com/cdn-cgi/image/format=auto,quality=85,fit=scale-down,width=1280/https://media-production.lp-cdn.com/media/1cc819c5-0059-4b54-83b4-85bb3485dd98 1280w, https://media-production.lp-cdn.com/cdn-cgi/image/format=auto,quality=85,fit=scale-down,width=1920/https://media-production.lp-cdn.com/media/1cc819c5-0059-4b54-83b4-85bb3485dd98 1920w, https://media-production.lp-cdn.com/cdn-cgi/image/format=auto,quality=85,fit=scale-down,width=2560/https://media-production.lp-cdn.com/media/1cc819c5-0059-4b54-83b4-85bb3485dd98 2560w, https://media-production.lp-cdn.com/cdn-cgi/image/format=auto,quality=85,fit=scale-down,width=3456/https://media-production.lp-cdn.com/media/1cc819c5-0059-4b54-83b4-85bb3485dd98 3456w" sizes="234px" class="logo__img dark portrait" alt=""> 110 <img src="https://media-production.lp-cdn.com/cdn-cgi/image/format=auto,quality=85,fit=scale-down,width=1280/https://media-production.lp-cdn.com/media/d05aff4d-8f5b-427c-99c0-09bcb7f16944" srcset="https://media-production.lp-cdn.com/cdn-cgi/image/format=auto,quality=85,fit=scale-down,width=320/https://media-production.lp-cdn.com/media/d05aff4d-8f5b-427c-99c0-09bcb7f16944 320w, https://media-production.lp-cdn.com/cdn-cgi/image/format=auto,quality=85,fit=scale-down,width=960/https://media-production.lp-cdn.com/media/d05aff4d-8f5b-427c-99c0-09bcb7f16944 960w, https://media-production.lp-cdn.com/cdn-cgi/image/format=auto,quality=85,fit=scale-down,width=1280/https://media-production.lp-cdn.com/media/d05aff4d-8f5b-427c-99c0-09bcb7f16944 1280w, https://media-production.lp-cdn.com/cdn-cgi/image/format=auto,quality=85,fit=scale-down,width=1920/https://media-production.lp-cdn.com/media/d05aff4d-8f5b-427c-99c0-09bcb7f16944 1920w, https://media-production.lp-cdn.com/cdn-cgi/image/format=auto,quality=85,fit=scale-down,width=2560/https://media-production.lp-cdn.com/media/d05aff4d-8f5b-427c-99c0-09bcb7f16944 2560w, https://media-production.lp-cdn.com/cdn-cgi/image/format=auto,quality=85,fit=scale-down,width=3456/https://media-production.lp-cdn.com/media/d05aff4d-8f5b-427c-99c0-09bcb7f16944 3456w" sizes="234px" class="logo__img light portrait" alt=""> 111 </a> 112 </div> 113 114 <div class="header__right"> 115 <ul class="navigation"> 116 <li class="navigation__item"> 117 <a href="/Insights" class="navigation__link">Insights</a> 118 </li> 119 <li class="navigation__item"> 120 <a href="/Dossier" class="navigation__link">Dossier</a> 121 </li> 122 <li class="navigation__item"> 123 <a target="_blank" href="/Meettheprivateoffice" class="navigation__link">Meet the team</a> 124 </li> 125 <li class="navigation__item"> 126 <a target="_blank" href="https://app.notion.com/login" class="navigation__link">Client Login</a> 127 </li> 128 129 </ul> 130 131 132 133 134 135 <button class="hamburger-component header__hamburger"> 136 Menu 137 <svg width="24" height="18" viewBox="0 0 24 18" fill="none" xmlns="http://www.w3.org/2000/svg"> 138 <rect class="line line--border" width="24" height="2" /> 139 <rect class="line line--middle" x="10" y="8" width="14" height="2" /> 140 <rect class="line line--border" y="16" width="24" height="2" /> 141 </svg> 142 </button> 143 </div> 144 145 </div> 146</div> 147 </nav> 148 <div id="global-sidemenu" class="sidemenu" data-el-id="1575f740-92ae-4292-919d-936adffb0f46"> 149 <div class="sidemenu__container"> 150 151 152 <div class="sidemenu__img" style="background-image: url('https://media-production.lp-cdn.com/cdn-cgi/image/format=auto,quality=85/https://media-production.lp-cdn.com/media/3927504a-6f12-43eb-a6f6-491aecff4401');"> 153 </div> 154 155 <div class="sidemenu__wrapper"> 156 <div class="sidemenu__header"> 157 <button class="sidemenu__toggle toggle sidemenu__toggle--right">Close Menu</button> 158 </div> 159 160 <div class="sidemenu__nav"> 161 <ul class="navigation"> 162 <li class="navigation__item" > 163 <a href="/" class="navigation__link" >HOME</a> 164 </li> 165 <li class="navigation__item" > 166 <a href="https://sageteam.ai/explore-advisory" class="navigation__link" >Explore Advisory</a> 167 </li> 168 <li class="navigation__item" > 169 <a href="/our-approach" class="navigation__link" >Our Approach</a> 170 </li> 171 <li class="navigation__item" > 172 <a href="/Insights" class="navigation__link" >Insights</a> 173 </li> 174 <li class="navigation__item" > 175 <a href="/an-invitation" class="navigation__link" >An Invitation</a> 176 </li> 177 <li class="navigation__item" > 178 <a href="/Meettheprivateoffice" class="navigation__link" >MEET THE TEAM</a> 179 </li> 180 <li class="navigation__item" > 181 <a href="/press" class="navigation__link" >Press & Media</a> 182 </li> 183 </ul> 184 </div> 185 186 <div class="sidemenu__socials"> 187 <ul class="lp-socials social_icons-style-1 sidemenu-social-links"> 188 189 <li> 190 <a 191 href="https://www.facebook.com/SageTeamAI/" 192 class="lp-socials__link socials__item" 193 data-wow-delay="0s" 194 target="_blank" 195 aria-label="FACEBOOK" 196 >
197 <span class="lp-i lp-i--facebook" aria-hidden="true"></span> 198 </a> 199 </li> 200 <li> 201 <a 202 href="https://www.instagram.com/sageteamai/" 203 class="lp-socials__link socials__item" 204 data-wow-delay="0.1s" 205 target="_blank" 206 aria-label="INSTAGRAM" 207 > 208 <span class="lp-i lp-i--instagram" aria-hidden="true"></span> 209 </a> 210 </li> 211 <li> 212 <a 213 href="https://www.linkedin.com/company/sageteamai/posts/?feedView=all" 214 class="lp-socials__link socials__item" 215 data-wow-delay="0.2s" 216 target="_blank" 217 aria-label="LINKEDIN" 218 > 219 <span class="lp-i lp-i--linkedin" aria-hidden="true"></span> 220 </a> 221 </li> 222 <li> 223 <a 224 href="https://www.youtube.com/@SageTalk-H2H" 225 class="lp-socials__link socials__item" 226 data-wow-delay="0.3s" 227 target="_blank" 228 aria-label="YOUTUBE" 229 > 230 <span class="lp-i lp-i--youtube" aria-hidden="true"></span> 231 </a> 232 </li> 233 </ul> </div> 234 </div> 235</div> 236 237 </div> 238 <div id="global-mobile-contact" class="mobile-contact-wrapper" data-el-id="be01ced2-38d3-44cc-8964-22b46cd68c4b"> 239 <div class="mobile-contact"> 240 <div class="buttons-holder"> 241 <a class="item" href="/cdn-cgi/l/email-protection#14577b7a607577605447757371407175793a757d"> 242 <svg xmlns="http://www.w3.org/2000/svg" width="26" height="18" fill="none" viewBox="0 0 26 18"> 243 <path fill-rule="evenodd" 244 d="M1.273 18l7.734-7.735c.395.352.838.647 1.32.87.592.275 1.233.44 1.885.488.779.055 1.567-.059 2.297-.334.62-.235 1.189-.584 1.684-1.023L23.927 18H1.273zm6.454-9L0 16.727V1.273L7.727 9zM25.2 1.3v15.427l-7.71-7.71c2.603-2.54 5.154-5.13 7.71-7.717zM23.927 0l-8.78 8.78c-.343.339-.744.61-1.192.792-.903.367-1.942.349-2.831-.05-.37-.167-.707-.398-1.003-.675l-.403-.389c-.01-.014-.021-.029-.034-.042-.049-.058-.104-.109-.166-.152-2.8-2.714-5.54-5.49-8.28-8.264h22.69z" 245 clip-rule="evenodd"/> 246 </svg> 247 </a> 248 <a class="item" href="tel:4123243244"> 249 <svg xmlns="http://www.w3.org/2000/svg" width="25" height="25" fill="none" viewBox="0 0 25 25"> 250 <path 251 d="M24.1 18.172l-5.109-2.635c-.71-.369-1.606-.185-2.106.448l-1.87 2.397c-1.817-.974-3.213-1.923-4.82-3.53-1.71-1.713-2.633-3.136-3.58-4.9l2.37-1.845c.631-.5.842-1.397.447-2.108L6.8.914C6.325.018 5.192-.272 4.376.28l-3.24 2.16C.374 2.944-.047 3.813.005 4.709.057 5.63.19 6.789.4 7.606c.948 3.636 3.213 7.404 6.4 10.592 3.186 3.188 6.952 5.454 10.586 6.403.816.21 1.975.316 2.923.395.922.053 1.79-.395 2.291-1.16l2.107-3.293c.58-.817.263-1.923-.606-2.371z"/> 252 </svg> 253 </a> 254 </div> 255</div> 256 257 </div> 258 <section id="section-c91d81a1-22b1-46c2-b383-355d4dc6717a" class="video-section is-font-color-light is-background-color-dark" data-el-id="bce33bae-7388-4ccc-abff-e0ce18ec46d2"> 259 <div class="video-wrapper"> 260 <div class="full-screen-video-component"> 261 <div class="video-wrapper hidable"> 262 <video class="lazy" 263 poster="https://res.cloudinary.com/luxuryp/videos/f_auto,q_auto/so_0,eo_0/cym7ogjuurfmnijyyk46/untitled-design-2.jpg" 264 style="height:100%;" 265 loop 266 muted 267 autoplay 268 playsinline> 269 <source data-src="https://res.cloudinary.com/luxuryp/videos/f_webm,vc_vp9,q_auto:best,w_1920,c_limit/cym7ogjuurfmnijyyk46/untitled-design-2.webm" type="video/webm;codecs=vp9"> 270<source data-src="https://res.cloudinary.com/luxuryp/videos/f_mp4,vc_h265,q_auto:best,w_1920,c_limit/cym7ogjuurfmnijyyk46/untitled-design-2.mp4" type="video/mp4;codecs=hvc1"> 271<source data-src="https://res.cloudinary.com/luxuryp/videos/f_mp4,vc_h264,q_auto:best,w_1920,c_limit/cym7ogjuurfmnijyyk46/untitled-design-2.mp4" type="video/mp4"> 272 </video> 273 </div> 274 <div class="poster" style="background-image: url('https://res.cloudinary.com/luxuryp/videos/so_0,eo_0,f_auto,q_auto/cym7ogjuurfmnijyyk46/untitled-design-2.jpg')"></div> 275 </div> 276 </div> 277 <div class="overlay-component"style="--section-overlay: rgba(0, 0, 0, 0.30);"></div>
vendor: 112 bytes, lines 277-279
277 278 279<script data-cfasync="false" src="/cdn-cgi/scripts/5c5dd728/cloudflare-static/email-decode.min.js"></script>
279<script> 280 (function(){ 281 const sectionId = 'section-c91d81a1-22b1-46c2-b383-355d4dc6717a' 282 const section = document.querySelector(`#${sectionId}`); 283 var sectionBg = window.getComputedStyle(section, null).getPropertyValue('background-image'); 284 285 if('false' === 'true') { 286 section.classList.add('parallax-enabled'); 287 section.style.setProperty('--sectionBackground', sectionBg); 288 section.style.setProperty('background', 'transparent'); 289 } 290 })() 291</script>
291 292 293 294<div class="opening-with-search height-class-600px "> 295 <div class="center-block"> 296 <button class='lp-play video-section__play-button js-play-btn'></button> 297 <div class="container lp-container"> 298 299 <div class="lp-title-group"> 300 301 302 <h1 class="h1 lp-h1 opening-title lp-pre-line" style="color: #ffffff">The Sage Private Office</h1> 303 304 305 </div> 306 307 <div class="buttons"> <a 308 href="https://calendly.com/thesageteamai/private-advisory-conversation?month=2026-08" 309 310 class="lp-btn lp-btn--outline lp-btn--light opening-button lp-btn--mob-full-width" 311 312 313 314 315 316 > 317 Begin with a conversation 318 </a> 319</div> 320 321 </div> 322 </div> 323 <div class="bottom-spacer"></div> 324</div> 325</section> 326<section id="section-3be22ff3-0794-4b4a-bbcb-f157aa9408b9" class="solid-section is-font-color-dark is-background-color-light" data-el-id="6120297b-2131-4bf4-ac23-206d01b963ec"> 327 328<div class="media-blocks lp-vertical-paddings redesign"> 329 <div class="lp-container"> 330 <div class="lp-title-group"> 331 <h2 class="lp-h2">Leadership & Private Advisors </h2> 332 <div class="lp-text--subtitle lp-pre-line"><div class="" data-turn-id-container="cf47c87c-b487-48a1-bd25-77b9061930de" data-is-intersecting="true"><div class="" data-turn-id-container="request-6a7f8ebf-2768-83ea-9c76-55cca78e1779-1" data-is-intersecting="true"><section class="text-token-text-primary w-full focus:outline-none has-data-writing-block:pointer-events-none [&:has([data-writing-block])>*]:pointer-events-auto R6Vx5W_threadScrollVars scroll-mb-[calc(var(--scroll-root-safe-area-inset-bottom,0px)+var(--thread-response-height))] scroll-mt-[calc(var(--header-height)+min(200px,max(70px,20svh)))]" dir="auto" data-turn-id="request-6a7f8ebf-2768-83ea-9c76-55cca78e1779-1" data-turn-id-container="request-6a7f8ebf-2768-83ea-9c76-55cca78e1779-1" data-testid="conversation-turn-18" data-turn="assistant"><div class="text-base my-auto mx-auto pb-8 [--thread-content-margin:var(--thread-content-margin-xs,calc(var(--spacing)*4))] @w-sm/main:[--thread-content-margin:var(--thread-content-margin-sm,calc(var(--spacing)*6))] @w-lg/main:[--thread-content-margin:var(--thread-content-margin-lg,calc(var(--spacing)*16))] px-(--thread-content-margin)"><div data-conversation-screenshot-content="" class="[--thread-content-max-width:40rem] @w-lg/main:[--thread-content-max-width:48rem] mx-auto max-w-(--thread-content-max-width) flex-1 group/turn-messages focus-visible:outline-hidden relative flex w-full min-w-0 flex-col agent-turn"><div class="flex max-w-full flex-col gap-4 grow"><div data-message-author-role="assistant" data-message-id="3bd84a0d-3ccb-4754-883a-6ff8ab971c96" data-turn-start-message="true" dir="auto" tabindex="0" data-message-model-slug="gpt-5-6-thinking" class="min-h-8 text-message relative flex w-full flex-col items-end gap-2 text-start break-words whitespace-normal outline-none keyboard-focused:focus-ring [.text-message+&]:mt-1"><div class="flex w-full flex-col gap-1 empty:hidden"><div class="markdown prose dark:prose-invert wrap-break-word w-full light markdown-new-styling"><p data-start="0" data-end="248" data-is-last-node="" data-is-only-node="" data-pm-slice="1 1 ["genericBlock",{"tag":"div","attrs":{"class":"","data-turn-id-container":"request-6a7f8ebf-2768-83ea-9c76-55cca78e1779-1","data-is-intersecting":"true"}},"genericBlock",{"tag":"section","attrs":{"class":"text-token-text-primary w-full focus:outline-none has-data-writing-block:pointer-events-none [&:has([data-writing-block])>*]:pointer-events-auto R6Vx5W_threadScrollVars scroll-mb-[calc(var(--scroll-root-safe-area-inset-bottom,0px)+var(--thread-response-height))] scroll-mt-[calc(var(--header-height)+min(200px,max(70px,20svh)))]","dir":"auto","data-turn-id":"request-6a7f8ebf-2768-83ea-9c76-55cca78e1779-1","data-turn-id-container":"request-6a7f8ebf-2768-83ea-9c76-55cca78e1779-1","data-testid":"conversation-turn-18","data-turn":"assistant"}},"genericBlock",{"tag":"div","attrs":{"class":"text-base my-auto mx-auto pb-8 [--thread-content-margin:var(--thread-content-margin-xs,calc(var(--spacing)*4))] @w-sm/main:[--thread-content-margin:var(--thread-content-margin-sm,calc(var(--spacing)*6))] @w-lg/main:[--thread-content-margin:var(--thread-content-margin-lg,calc(var(--spacing)*16))] px-(--thread-content-margin)"}},"genericBlock",{"tag":"div","attrs":{"data-conversation-screenshot-content":"","class":"[--thread-content-max-width:40rem] @w-lg/main:[--thread-content-max-width:48rem] mx-auto max-w-(--thread-content-max-width) flex-1 group/turn-messages focus-visible:outline-hidden relative flex w-full min-w-0 flex-col agent-turn"}},"genericBlock",{"tag":"div","attrs":{"class":"flex max-w-full flex-col gap-4 grow"}},"genericBlock",{"tag":"div","attrs":{"data-message-author-role":"assistant","data-message-id":"3bd84a0d-3ccb-4754-883a-6ff8ab971c96","data-turn-start-message":"true","dir":"auto","tabindex":"0","data-message-model-slug":"gpt-5-6-thinking","class":"min-h-8 text-message relative flex w-full flex-col items-end gap-2 text-start break-words whitespace-normal outline-none keyboard-focused:focus-ring [.text-message+&]:mt-1"}},"genericBlock",{"tag":"div","attrs":{"class":"flex w-full flex-col gap-1 empty:hidden"}},"genericBlock",{"tag":"div","attrs":{"class":"markdown prose dark:prose-invert wrap-break-word w-full light markdown-new-styling"}}]"> We bring the insight, resources, and perspective to help our clients pursue their goals <br>with confidence.</p></div></div></div></div></div></div></section></div></div><div class="" data-turn-id-container="request-6a7f8ebf-2768-83ea-9c76-55cca78e1779-1" data-is-intersecting="true"><section class="text-token-text-primary w-full focus:outline-none has-data-writing-block:pointer-events-none [&
332:has([data-writing-block])>*]:pointer-events-auto R6Vx5W_threadScrollVars scroll-mb-[calc(var(--scroll-root-safe-area-inset-bottom,0px)+var(--thread-response-height))] scroll-mt-[calc(var(--header-height)+min(200px,max(70px,20svh)))]" dir="auto" data-turn-id="request-6a7f8ebf-2768-83ea-9c76-55cca78e1779-1" data-turn-id-container="request-6a7f8ebf-2768-83ea-9c76-55cca78e1779-1" data-testid="conversation-turn-18" data-turn="assistant"><div class="text-base my-auto mx-auto pb-8 [--thread-content-margin:var(--thread-content-margin-xs,calc(var(--spacing)*4))] @w-sm/main:[--thread-content-margin:var(--thread-content-margin-sm,calc(var(--spacing)*6))] @w-lg/main:[--thread-content-margin:var(--thread-content-margin-lg,calc(var(--spacing)*16))] px-(--thread-content-margin)"><div data-conversation-screenshot-content="" class="[--thread-content-max-width:40rem] @w-lg/main:[--thread-content-max-width:48rem] mx-auto max-w-(--thread-content-max-width) flex-1 group/turn-messages focus-visible:outline-hidden relative flex w-full min-w-0 flex-col agent-turn"><div class="flex max-w-full flex-col gap-4 grow"><div data-message-author-role="assistant" data-message-id="3bd84a0d-3ccb-4754-883a-6ff8ab971c96" data-turn-start-message="true" dir="auto" tabindex="0" data-message-model-slug="gpt-5-6-thinking" class="min-h-8 text-message relative flex w-full flex-col items-end gap-2 text-start break-words whitespace-normal outline-none keyboard-focused:focus-ring [.text-message+&]:mt-1"><div class="flex w-full flex-col gap-1 empty:hidden"><div class="markdown prose dark:prose-invert wrap-break-word w-full light markdown-new-styling"><p data-start="0" data-end="248" data-is-last-node="" data-is-only-node=""></p></div></div></div></div></div></div></section></div></div> 333 </div> 334 335 <div class="row"> 336 337 <div class="col col-1-3"> 338 339 <div class="media-card"> 340 <div class="media-card__image"> 341 <img src="https://media-production.lp-cdn.com/cdn-cgi/image/format=auto,quality=85/https://media-production.lp-cdn.com/media/363bde78-780b-4308-b749-4ad799f0b2ea" srcset="https://media-production.lp-cdn.com/cdn-cgi/image/format=auto,quality=85,fit=scale-down,width=320/https://media-production.lp-cdn.com/media/363bde78-780b-4308-b749-4ad799f0b2ea 320w, https://media-production.lp-cdn.com/cdn-cgi/image/format=auto,quality=85,fit=scale-down,width=960/https://media-production.lp-cdn.com/media/363bde78-780b-4308-b749-4ad799f0b2ea 960w, https://media-production.lp-cdn.com/cdn-cgi/image/format=auto,quality=85/https://media-production.lp-cdn.com/media/363bde78-780b-4308-b749-4ad799f0b2ea 1254w" sizes="(max-width: 768px) 100vw, 33vw" alt="Lena Michelle Gainer" class="portrait" loading="lazy"> 342 </div> 343 <h4 class="lp-h4 media-card__title">Lena Michelle Gainer</h4> 344 <div class="media-card__description lp-a"><p>Founder | Principal Advisor<br><span style="color: rgb(24, 22, 22);">Pennsylvania & Florida</span></p></div> 345 <div> 346 <a 347 href="/LenaMichelle" 348 349 class="lp-btn lp-btn--outline lp-btn--dark media-card__button" 350 351 352 353 354 355 > 356 Meet Lena 357 </a> 358 </div> 359 360 </div> 361 </div> 362 <div class="col col-1-3"> 363 364 <div class="media-card"> 365 <div class="media-card__image"> 366 <img src="https://media-production.lp-cdn.com/cdn-cgi/image/format=auto,quality=85/https://media-production.lp-cdn.com/media/fc630046-f65b-4bdd-9f82-287b0351457f" srcset="https://media-production.lp-cdn.com/cdn-cgi/image/format=auto,quality=85,fit=scale-down,width=320/https://media-production.lp-cdn.com/media/fc630046-f65b-4bdd-9f82-287b0351457f 320w, https://media-production.lp-cdn.com/cdn-cgi/image/format=auto,quality=85,fit=scale-down,width=960/https://media-production.lp-cdn.com/media/fc630046-f65b-4bdd-9f82-287b0351457f 960w, https://media-production.lp-cdn.com/cdn-cgi/image/format=auto,quality=85/https://media-production.lp-cdn.com/media/fc630046-f65b-4bdd-9f82-287b0351457f 1254w" sizes="(max-width: 768px) 100vw, 33vw" alt="CAMERON LEIGH GAINER" class="portrait" loading="lazy"> 367 </div> 368 <h4 class="lp-h4 media-card__title">CAMERON LEIGH GAINER</h4> 369 <div class="media-card__description lp-a"><p style="text-align: center;">Co-Founder | Managing Advisor<br>Pennsylvania & Florida </p></div> 370 <div> 371 <a 372 href="/CameronLeighGainer" 373 374 class="lp-btn lp-btn--outline lp-btn--dark media-card__button" 375 376 377 378 379 380 > 381 Meet Cameron 382 </a> 383 </div> 384 385 </div> 386 </div> 387 <div class="col col-1-3"> 388 389 <div class="media-card"> 390 <div class="media-card__image"> 391 <img src="https://media-production.lp-cdn.com/cdn-cgi/image/format=auto,quality=85/https://media-production.lp-cdn.com/media/9af1b845-8867-4eec-92ff-ef33c0f148ee" srcset="https://media-production.lp-cdn.com/cdn-cgi/image/format=auto,quality=85,fit=scale-down,width=320/https://media-production.lp-cdn.com/media/9af1b845-8867-4eec-92ff-ef33c0f148ee 320w, https://media-production.lp-cdn.com/cdn-cgi/image/format=auto,quality=85,fit=scale-down,width=960/https://media-production.lp-cdn.com/media/9af1b845-8867-4eec-92ff-ef33c0f148ee 960w, https://media-production.lp-cdn.com/cdn-cgi/image/format=auto,quality=85/https://media-production.lp-cdn.com/media/9af1b845-8867-4eec-92ff-ef33c0f148ee 1254w" sizes="(max-width: 768px) 100vw, 33vw" alt="Lou Maggio" class="portrait" loading="lazy"> 392 </div> 393 <h4 class="lp-h4 media-card__title">Lou Maggio</h4> 394 <div class="media-card__description lp-a"><p>Senior Advisor | Strategic Relationships<br>Florida</p></div> 395 <div> 396 <a 397 href="/LouMaggio" 398 399 class="lp-btn lp-btn--outline lp-btn--dark media-card__button" 400 401 402 403 404 405 > 406 Meet Lou 407 </a> 408 </div> 409 410 </div> 411 </div> 412 </div> 413 414 </div> 415</div> 416 417 418</section> 419<section id="section-603a8c8e-0751-4c5a-89cb-80c5906875fe" class="solid-section is-font-color-dark is-background-color-light" data-el-id="6120297b-2131-4bf4-ac23-206d01b963ec"> 420 421<div class="media-blocks lp-vertical-paddings redesign"> 422 <div class="lp-container"> 423 <div class="lp-title-group"> 424 <h2 class="lp-h2">Client Experience & Intelligence</h2> 425 <div class="lp-text--subtitle lp-pre-line"><p>Our client experience and intelligence team works behind the scenes to deliver attentive service, technology, research, and insight creating a seamless experience throughout the journey.</p></div> 426 </div> 427 428 <div class="row"> 429 430 <div class="col col-1-4"> 431 432 <div class="media-card"> 433 <div class="media-card__image"> 434 <img src="https://media-production.lp-cdn.com/cdn-cgi/image/format=auto,quality=85/https://media-production.lp-cdn.com/media/70199a1c-6a23-457e-8415-e5f00c9aab0a" srcset="https://media-production.lp-cdn.com/cdn-cgi/image/format=auto,quality=85,fit=scale-down,width=320/https://media-production.lp-cdn.com/media/70199a1c-6a23-457e-8415-e5f00c9aab0a 320w, https://media-production.lp-cdn.com/cdn-cgi/image/format=auto,quality=85,fit=scale-down,width=960/https://media-production.lp-cdn.com/media/70199a1c-6a23-457e-8415-e5f00c9aab0a 960w, https://media-production.lp-cdn.com/cdn-cgi/image/format=auto,quality=85/https://media-production.lp-cdn.com/media/70199a1c-6a23-457e-8415-e5f00c9aab0a 1270w" sizes="(max-width: 768px) 100vw, 33vw" alt="Kira Grai" loading="lazy"> 435 </div> 436 <h4 class="lp-h4 media-card__title">Kira Grai</h4> 437 <div class="media-card__description lp-a"><p><strong>Chief of Staff</strong> <br><em>Client Experience</em></p></div> 438 <div> 439 <a 440 href="/KiraGrai" 441 442 class="lp-btn lp-btn--outline lp-btn--dark media-card__button" 443 444 445 446 447 448 > 449 Meet Kira 450 </a> 451 </div> 452 453 </div> 454 </div> 455 <div class="col col-1-4"> 456 457 <div class="media-card"> 458 <div class="media-card__image"> 459 <img src="https://media-production.lp-cdn.com/cdn-cgi/image/format=auto,quality=85/https://media-production.lp-cdn.com/media/7199cb57-aabe-4248-b8b9-59182b6b53c8" srcset="https://media-production.lp-cdn.com/cdn-cgi/image/format=auto,quality=85,fit=scale-down,width=320/https://media-production.lp-cdn.com/media/7199cb57-aabe-4248-b8b9-59182b6b53c8 320w, https://media-production.lp-cdn.com/cdn-cgi/image/format=auto,quality=85,fit=scale-down,width=960/https://media-production.lp-cdn.com/media/7199cb57-aabe-4248-b8b9-59182b6b53c8 960w, https://media-production.lp-cdn.com/cdn-cgi/image/format=auto,quality=85/https://media-production.lp-cdn.com/media/7199cb57-aabe-4248-b8b9-59182b6b53c8 1254w" sizes="(max-width: 768px) 100vw, 33vw" alt="Zuri Sinclair" class="portrait" loading="lazy"> 460 </div> 461 <h4 class="lp-h4 media-card__title">Zuri Sinclair</h4> 462 <div class="media-card__description lp-a"><p><strong>Logistics Coordinator</strong><br><em>Client Experience</em></p></div> 463 <div> 464 <a 465 href="/ZuriSinclair" 466 467 class="lp-btn lp-btn--outline lp-btn--dark media-card__button" 468 469 470 471 472 473 > 474 Meet Zuri 475 </a> 476 </div> 477 478 </div> 479 </div> 480 <div class="col col-1-4"> 481 482 <div class="media-card"> 483 <div class="media-card__image"> 484 <img src="https://media-production.lp-cdn.com/cdn-cgi/image/format=auto,quality=85/https://media-production.lp-cdn.com/media/c9195d4a-2394-494b-a030-2522a4d04116" srcset="https://media-production.lp-cdn.com/cdn-cgi/image/format=auto,quality=85,fit=scale-down,width=320/https://media-production.lp-cdn.com/media/c9195d4a-2394-494b-a030-2522a4d04116 320w, https://media-production.lp-cdn.com/cdn-cgi/image/format=auto,quality=85,fit=scale-down,width=960/https://media-production.lp-cdn.com/media/c9195d4a-2394-494b-a030-2522a4d04116 960w, https://media-production.lp-cdn.com/cdn-cgi/image/format=auto,quality=85/https://media-production.lp-cdn.com/media/c9195d4a-2394-494b-a030-2522a4d04116 1254w" sizes="(max-width: 768px) 100vw, 33vw" alt="Sloan Navarro" class="portrait" loading="lazy"> 485 </div> 486 <h4 class="lp-h4 media-card__title">Sloan Navarro</h4> 487 <div class="media-card__description lp-a"><p style="text-align: center;"><strong>Transaction Coordinator </strong><br><em>Operations</em></p></div> 488 <div> 489 <a 490 href="/SloanNavarro" 491 492 class="lp-btn lp-btn--outline lp-btn--dark media-card__button" 493 494 495 496 497 498 > 499 Meet Sloan 500 </a> 501 </div> 502 503 </div> 504 </div> 505 <div class="col col-1-4"> 506 507 <div class="media-card"> 508 <div class="media-card__image"> 509 <img src="https://media-production.lp-cdn.com/cdn-cgi/image/format=auto,quality=85/https://media-production.lp-cdn.com/media/5b708045-1b03-4470-b5bf-7e448be0cf8b" srcset="https://media-production.lp-cdn.com/cdn-cgi/image/format=auto,quality=85,fit=scale-down,width=320/https://media-production.lp-cdn.com/media/5b708045-1b03-4470-b5bf-7e448be0cf8b 320w, https://media-production.lp-cdn.com/cdn-cgi/image/format=auto,quality=85,fit=scale-down,width=960/https://media-production.lp-cdn.com/media/5b708045-1b03-4470-b5bf-7e448be0cf8b 960w, https://media-production.lp-cdn.com/cdn-cgi/image/format=auto,quality=85/https://media-production.lp-cdn.com/media/5b708045-1b03-4470-b5bf-7e448be0cf8b 1254w" sizes="(max-width: 768px) 100vw, 33vw" alt="Arden Marin" class="portrait" loading="lazy"> 510 </div> 511 <h4 class="lp-h4 media-card__title">Arden Marin</h4> 512 <div class="media-card__description lp-a"><p><strong>Technology & Research </strong><br><em>Intelligence</em></p></div> 513 <div> 514 <a
515 href="/ArdenMarin" 516 517 class="lp-btn lp-btn--outline lp-btn--dark media-card__button" 518 519 520 521 522 523 > 524 Meet Arden 525 </a> 526 </div> 527 528 </div> 529 </div> 530 </div> 531 532 </div> 533</div> 534 535 536</section> 537<section id="section-38f463dd-93fe-4ac6-9056-a96318555ecd" class="solid-section is-font-color-dark is-background-color-light" data-el-id="21c5a117-61cb-4f43-8635-2da86e3ae7dd"> 538 539<div class="boxed-text lp-vertical-paddings redesign"> 540 <div class="lp-container"> 541 <div class="lp-title-group"> 542 <h2 class="lp-h2 js-title">Multiple Disciplines. </h2> 543 <h4 class="lp-text--subtitle">One Coordinated Strategy.</h4> 544 </div> 545 546 <div class="boxed-text__description"><p>The Sage Team operates collaboratively, bringing multiple disciplines to each assignment rather than approaching the work through a single traditional real estate lens. Advisory, research, technology, operations, client experience, marketing, and transaction expertise are brought together as needed to create greater efficiency, stronger intelligence, and better-informed results.</p></div> 547 <div class="button-container"> 548 <a 549 href="https://calendly.com/thesageteamai/private-advisory-conversation?month=2026-08" 550 551 class="lp-btn lp-btn--dark lp-btn--outline" 552 553 554 555 556 557 > 558 Begin the Conversation 559 </a> 560 </div> 561 </div> 562</div> 563</section> 564 565 <div id="modals" class="modals"></div> 566 <footer id="global-footer" class="is-font-color-dark is-background-color-light" data-el-id="f3892c1c-f128-483a-b998-cb1ea48c25c1"> 567 <div class="site-footer"> 568 569 <div class="site-footer__bottom"> 570 <div class="lp-container"> 571 572 <div class="site-footer__logo-bar"> 573 <div class="site-footer__logo-container"> 574 <img src="https://media-production.lp-cdn.com/cdn-cgi/image/format=auto,quality=85,fit=scale-down,width=1280/https://media-production.lp-cdn.com/media/78bf0e47-36f5-46cc-ac8e-5892161b4fba" srcset="https://media-production.lp-cdn.com/cdn-cgi/image/format=auto,quality=85,fit=scale-down,width=320/https://media-production.lp-cdn.com/media/78bf0e47-36f5-46cc-ac8e-5892161b4fba 320w, https://media-production.lp-cdn.com/cdn-cgi/image/format=auto,quality=85,fit=scale-down,width=960/https://media-production.lp-cdn.com/media/78bf0e47-36f5-46cc-ac8e-5892161b4fba 960w, https://media-production.lp-cdn.com/cdn-cgi/image/format=auto,quality=85,fit=scale-down,width=1280/https://media-production.lp-cdn.com/media/78bf0e47-36f5-46cc-ac8e-5892161b4fba 1280w, https://media-production.lp-cdn.com/cdn-cgi/image/format=auto,quality=85,fit=scale-down,width=1920/https://media-production.lp-cdn.com/media/78bf0e47-36f5-46cc-ac8e-5892161b4fba 1920w, https://media-production.lp-cdn.com/cdn-cgi/image/format=auto,quality=85,fit=scale-down,width=2560/https://media-production.lp-cdn.com/media/78bf0e47-36f5-46cc-ac8e-5892161b4fba 2560w, https://media-production.lp-cdn.com/cdn-cgi/image/format=auto,quality=85,fit=scale-down,width=3456/https://media-production.lp-cdn.com/media/78bf0e47-36f5-46cc-ac8e-5892161b4fba 3456w" sizes="268px" alt="" class="portrait"> 575 </div> 576 <div class="site-footer__logo-container"> 577 578 </div> 579 </div> 580 581 <div class="site-footer__info"> 582 <div class="site-footer__col"> 583 <h5 class="lp-h5 site-footer__col-title">Pennsylvania</h5> 584 585 <div class="site-footer__col-content lp-a"><h6><strong><sub>The Sage Team<br></sub></strong><sub>EMAIL | <a href="/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="fcbf939292999f88bcaf9d9b99a8999d91d29d95">[email protected]</a><br>DIRECT | (412) 324-3244 </sub></h6><h6>
585<strong><sub>Sage Real Estate Services, Inc. <br></sub></strong><sub>211 N. Whitfield Street, Ste 304E</sub><br><sub>Pittsburgh, Pennsylvania 15206</sub><br><sub>OFFICE | (412) 324-3244</sub></h6><p><sub>ABOUT: </sub><br><a target="_blank" rel="noopener noreferrer nofollow" href="https://sageteam.ai/sagerealestateservices"><sub>Sage Real Estate Services, Inc.</sub></a></p><p></p></div> 586 </div> 587 588 <div class="site-footer__col"> 589 <h5 class="lp-h5 site-footer__col-title">Florida</h5> 590 591 <div class="site-footer__col-content lp-a"><h6><strong><sub>The Sage Team<br></sub></strong><sub>EMAIL | <a href="/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="a9eac6c7c7cccadde9fac8ceccfdccc8c487c8c0">[email protected]</a><br>DIRECT | (813) 461-7277</sub></h6><h6><strong><sub>Structure Property Group, LLC<br></sub></strong><sub>4310 Place Le Manes </sub><br><sub>Lutz, Florida 33558</sub><br><sub>OFFICE | (813) 368-2148</sub></h6><p><sub>ABOUT: </sub><br><a target="_blank" rel="noopener noreferrer nofollow" href="https://www.sageteam.ai/structurepropertygroup"><sub>Structure Property Group, LLC</sub></a></p></div> 592 </div> 593 594 595 <div class="site-footer__navigation-wrap"> 596 <ul class="footer-navigation"> 597 <li class="footer-navigation__item"> 598 <a target="_blank" href="/Dossier" class="footer-navigation__link">Dossier</a> 599 </li> 600 <li class="footer-navigation__item"> 601 <a target="_blank" href="/Meettheprivateoffice" class="footer-navigation__link">Meet the team</a> 602 </li> 603 <li class="footer-navigation__item"> 604 <a href="/" class="footer-navigation__link">Home</a> 605 </li> 606 <li class="footer-navigation__item"> 607 <a target="_blank" href="https://app.notion.com/login" class="footer-navigation__link">Client Portal</a> 608 </li> 609 </ul> 610 611 <ul class="lp-socials social_icons-style-1 site-footer__socials socials"> 612 613 <li> 614 <a 615 href="https://www.instagram.com/sageteamai" 616 class="lp-socials__link socials__item" 617 data-wow-delay="0s" 618 target="_blank" 619 aria-label="INSTAGRAM" 620 > 621 <span class="lp-i lp-i--instagram" aria-hidden="true"></span> 622 </a> 623 </li> 624 <li> 625 <a 626 href="https://www.facebook.com/SageTeamAI/" 627 class="lp-socials__link socials__item" 628 data-wow-delay="0.1s" 629 target="_blank" 630 aria-label="FACEBOOK" 631 > 632 <span class="lp-i lp-i--facebook" aria-hidden="true"></span> 633 </a> 634 </li> 635 <li> 636 <a 637 href="https://www.linkedin.com/company/sageteamai/posts/?feedView=all" 638 class="lp-socials__link socials__item" 639 data-wow-delay="0.2s" 640 target="_blank" 641 aria-label="LINKEDIN" 642 > 643 <span class="lp-i lp-i--linkedin" aria-hidden="true"></span> 644 </a> 645 </li> 646 </ul> 647 648 </div> 649 </div> 650 651 <div class="site-footer__disclaimer"><p data-start="1116" data-end="1155"><strong data-start="1116" data-end="1155">Brokerage Disclosure & Legal Notice</strong></p><p data-start="703" data-end="834"><sub>The Sage Team is a team of licensed real estate professionals operating under state-licensed brokerage entities as required by law.</sub></p><p data-start="836" data-end="1013"><strong data-start="836" data-end="878"><sub>Pennsylvania Brokerage Representation: </sub></strong><sub>Brokerage services in Pennsylvania are provided through </sub><strong data-start="937" data-end="966"><sub>Sage Real Estate Services</sub></strong><sub>, a licensed Pennsylvania real estate broker. <br></sub><strong data-start="1015" data-end="1052"><sub>Florida Brokerage Representation: </sub></strong><sub>Brokerage services in Florida are provided through </sub><strong data-start="1106" data-end="1126"><sub>Structure Property Group, LLC</sub></strong><sub>, a licensed Florida real estate broker.</sub></p><p data-start="836" data-end="1013"><sub>Licensure and brokerage relationships are governed by the laws of the state in which the property is located. Information on this website, including pricing, measurements, renderings, square footage, marketing materials, and property descriptions, is deemed reliable but is not guaranteed. All information is subject to errors, omissions, prior sale, price changes, or withdrawal without notice. Independent verification is advised. The Sage Team provides real estate brokerage services and strategic property advisory services only. We do not provide legal, tax, accounting, financial planning, investment, or securities advice. Clients are advised to consult their own licensed professionals regarding such matters. We participate in MLS and IDX programs where applicable. Properties displayed on this website may not be exclusive listings of The Sage Team and may involve cooperation with other brokers. Compensation to cooperating brokers is determined solely by the applicable MLS or written agreement and is not guaranteed unless set forth in a fully executed written agreement. If you are currently subject to an existing written brokerage agreement, it must be honored according to its terms. Nothing herein is intended to solicit or induce the breach of any existing brokerage relationship.</sub></p><p data-start="2473" data-end="2767"><sub>Brokerage relationships are created only through a fully executed written agreement with the appropriately licensed brokerage entity in the state where services are rendered. Any separate advisory or consulting engagement, where offered, is governed by an independent written service agreement.</sub></p><p data-start="1654" data-end="1729"><sup>© </sup><strong data-start="1656" data-end="1729"><sup>2026 The Sage Team. All Rights Reserved.<br></sup></strong><span style="font-weight: 400;"><img src="https://media-production.lp-cdn.com/media/97532563-403c-401e-80a8-c7d93be99e30" width="100px;" height="auto" style="margin-top: 20px;"> </span></p></div> 652
653 <div class="site-footer__copy"> 654 <div class="lp-a site-footer__copy-lp"> 655 <div class="site-footer__logo-container"> 656 <img src="https://media-production.lp-cdn.com/media/ce096b02-af05-406c-800c-d84cb74eeac8" alt=""> 657 </div> 658 <span>Website designed and developed by</span> 659 <a href="https://www.luxurypresence.com/" class="" target="_blank">Luxury Presence</a> 660 </div> 661 <div>Copyright © <span class="auto-year-update">2026</span> | <a href="/terms-and-conditions">Privacy Policy</a></div> 662 </div> 663 664 </div> 665 </div> 666 667 668 669</div> 670 671 </footer> 672 673 <div id="modal-global-contact-us" class="modal " 674 data-el-id="" 675 style="background-color: ;" 676 > 677 <div class="modal-content"> 678 <div class="contact-form"> 679 <div class="contact-form__close close"></div> 680 <div class="contact-form__container"> 681 682 <form class="contact-form__form" data-type="contact-form" style="color: rgba(0, 0, 0, 1); background: rgba(245, 247, 236, 1); fill: rgba(0, 0, 0, 1);"> 683 <h5 class="lp-h5 contact-form__title1">Get in Touch</h5> 684 <div class="input-container"> 685 <input id="-cmp-name" name="name" type="text" class="lp-input lp-input--light contact-form__input" placeholder="Name" required> 686 <span class="input-icon"></span> 687 </div> 688 689 <div class="input-container"> 690 <input id="-cmp-email" name="email" type="email" class="lp-input lp-input--light contact-form__input" placeholder="Email" required pattern="[a-zA-Z0-9.!#$%&’*+/=?^_`{|}~-]+@[a-zA-Z0-9-]+(?:\.[a-zA-Z0-9-]+)+"> 691 <span class="input-icon"></span> 692 </div> 693 694 <div class="input-container"> 695 <input id="-cmp-phone" name="phone" type="tel" class="lp-input lp-input--light contact-form__input" placeholder="Phone" required> 696 <span class="input-icon"></span> 697 </div> 698 699 <div class="input-container"> 700 <textarea id="-cmp-contactMessage" placeholder="Message" name="message" required type="text" class="lp-input lp-input--light contact-form__input"></textarea> 701 <span class="input-icon"></span> 702 </div> 703 704 <div class="h-pot"> 705 <label for="-cmp-middleName">Middle Name</label> 706 <input id="-cmp-middleName" name="middleName" value="" autocomplete="off" tabindex="-1"> 707 </div> 708 709 <div class="lp-disclaimer"> <label style='display: none;' for='-termsAccepted'>Opt In/Disclaimer Consent:</label> 710 <label class='lp-tcr-content'> 711 <span class='lp-tcr-checkbox'> 712 <input 713 type='checkbox' 714 id='-termsAccepted' 715 name='termsAccepted' 716 oninvalid="this.setCustomValidity('Please accept the terms and conditions')" 717 oninput="this.setCustomValidity('')" 718 required 719 /></span> 720 <span class='lp-tcr-message'> 721 722 I agree to be contacted by 723 The Sage Team | PA: Sage Real Estate Services, Inc. | FL: Structure Property Group, LLC 724 via call, email, and text for real estate services. To opt out, you can reply 'stop' at any time or reply 'help' for assistance. 725 You can also click the unsubscribe link in the emails. Message and data rates may apply. Message frequency may vary. 726 <a href='/terms-and-conditions' target='_blank'>Privacy Policy</a>. 727 </span> 728 </label> 729 730 </div> 731 732 <input type="hidden" name="source" value="CONTACT_INQUIRY"> 733 <button class="contact-form__submit btn lp-btn lp-btn--filled button-style-1" type="submit"> 734 735 <span class="sync-icon lp-i--spin"> 736 <svg width="20" height="15" viewBox="0 0 20 15" fill="currentColor" xmlns="http://www.w3.org/2000/svg"> 737 <path d="M16.3636 3.66667L12.7273 7.33333H15.4545C15.4545 10.3675 13.0091 12.8333 10 12.8333C9.08182 12.8333 8.20909 12.6042 7.45455 12.1917L6.12727 13.53C7.24545 14.245 8.57273 14.6667 10 14.6667C14.0182 14.6667 17.2727 11.385 17.2727 7.33333H20L16.3636 3.66667ZM4.54545 7.33333C4.54545 4.29917 6.99091 1.83333 10 1.83333C10.9182 1.83333 11.7909 2.0625 12.5455 2.475L13.8727 1.13667C12.7545 0.421666 11.4273 0 10 0C5.98182 0 2.72727 3.28167 2.72727 7.33333H0L3.63636 11L7.27273 7.33333H4.54545Z" /> 738 </svg> 739 </span> 740
741 <span class="success-icon"> 742 <svg width="20" height="20" viewBox="0 0 20 20" fill="currentColor" xmlns="http://www.w3.org/2000/svg"> 743 <path d="M10 0C4.48 0 0 4.48 0 10C0 15.52 4.48 20 10 20C15.52 20 20 15.52 20 10C20 4.48 15.52 0 10 0ZM10 18C5.59 18 2 14.41 2 10C2 5.59 5.59 2 10 2C14.41 2 18 5.59 18 10C18 14.41 14.41 18 10 18ZM14.59 5.58L8 12.17L5.41 9.59L4 11L8 15L16 7L14.59 5.58Z" /> 744 </svg> 745 </span> 746 747 Submit<span class="success-text">ted</span> 748 </button> 749 </form> 750 751 <div class="contact-form__details"> 752 <h5 class="lp-h5 contact-form__title2">BEGIN A PRIVATE CONVERSATION</h5> 753 <div class="company"> 754 <div class="company_contact lp-a"> 755 <p data-start="463" data-end="668">Whether you’re considering a move, evaluating an opportunity, or simply need perspective on what comes next, start here. Our team will c
755onnect you with the right advisor and resources for the conversation.</p><p data-start="670" data-end="727">The Sage Team<br>Pennsylvania (412) 324-3244 <br>Florida (813) 461-7277</p><p data-start="670" data-end="727"><br><a href="/cdn-cgi/l/email-protection#387b5756565d5b4c786b595f5d6c5d5955165951"></a><a data-start="708" data-end="727" class="decorated-link cursor-pointer" rel="noopener"><span class="__cf_email__" data-cfemail="2a694544444f495e6a794b4d4f7e4f4b47044b43">[email protected]</span></a></p><p data-start="670" data-end="727"></p> 756 </div> 757 </div> 758 759 <div class="socials"> 760 <ul class="lp-socials social_icons-style-1 lp-socials socials--theme-1"> 761 762 <li> 763 <a 764 href="https://www.facebook.com/SageTeamAI/" 765 class="lp-socials__link lp-socials__link" 766 data-wow-delay="0s" 767 target="_blank" 768 aria-label="FACEBOOK" 769 > 770 <span class="lp-i lp-i--facebook" aria-hidden="true"></span> 771 </a> 772 </li> 773 <li> 774 <a 775 href="https://www.instagram.com/sageteamai/" 776 class="lp-socials__link lp-socials__link" 777 data-wow-delay="0.1s" 778 target="_blank" 779 aria-label="INSTAGRAM" 780 > 781 <span class="lp-i lp-i--instagram" aria-hidden="true"></span> 782 </a> 783 </li> 784 <li> 785 <a 786 href="https://www.linkedin.com/company/sageteamai/posts/?feedView=all" 787 class="lp-socials__link lp-socials__link" 788 data-wow-delay="0.2s" 789 target="_blank" 790 aria-label="LINKEDIN" 791 > 792 <span class="lp-i lp-i--linkedin" aria-hidden="true"></span> 793 </a> 794 </li> 795 <li> 796 <a 797 href="https://www.youtube.com/@SageTalk-H2H" 798 class="lp-socials__link lp-socials__link" 799 data-wow-delay="0.3s" 800 target="_blank" 801 aria-label="YOUTUBE" 802 > 803 <span class="lp-i lp-i--youtube" aria-hidden="true"></span> 804 </a> 805 </li> 806 </ul> </div> 807 </div> 808 </div> 809 </div> 810 <!-- version 1 --> 811 </div> 812 <button class="close lp-close" type="button" aria-label="close modal"> 813 <span class="lp-close-icon" aria-hidden="true"></span> 814 </button> 815 </div> 816 <div id="qualifying-questions-modal" tabindex="-1" role="dialog" aria-modal="true" aria-labelledby="qualifying-questions-modal-title" aria-hidden="true" style="position: fixed; top: 0; left: 0; width: 100%; height: 100%; background: rgba(0,0,0,0.7); z-index: 1050; display: none; align-items: center; justify-content: center;"> 817 <style> 818 #qualifying-questions-modal .custom-select-toggle { 819 border: 1px solid #848484; 820 border-radius: 8px; 821 padding: 12px 16px; 822 } 823 824 #qualifying-questions-modal .custom-select-toggle.is-placeholder { 825 color: #848484; 826 } 827 828 #qualifying-questions-modal #qualifying-questions-modal-phoneNumber::placeholder { 829 color: #848484; 830 opacity: 1; 831 } 832 833 #qualifying-questions-modal .disclaimer-more { 834 display: none; 835 } 836 837 #qualifying-questions-modal #qualifying-questions-modal-disclaimer-text:not(.collapsed) .disclaimer-more { 838 display: inline; 839 } 840 841 #qualifying-questions-modal #qualifying-questions-modal-disclaimer-text:not(.collapsed) .disclaimer-ellipsis { 842 display: none; 843 } 844 </style>
vendor: 119 bytes, lines 844-845
844 845 <script data-cfasync="false" src="/cdn-cgi/scripts/5c5dd728/cloudflare-static/email-decode.min.js"></script>
845<script> 846 function toggleDisclaimerQualifyingQuestionsModal() { 847 const disclaimerText = document.getElementById('qualifying-questions-modal-disclaimer-text'); 848 const toggleButton = document.getElementById('qualifying-questions-modal-toggle-disclaimer'); 849 850 if (disclaimerText.classList.contains('collapsed')) { 851 disclaimerText.classList.remove('collapsed'); 852 toggleButton.textContent = 'Read less'; 853 toggleButton.setAttribute('aria-expanded', 'true'); 854 } else { 855 disclaimerText.classList.add('collapsed'); 856 toggleButton.textContent = 'Read more'; 857 toggleButton.setAttribute('aria-expanded', 'false'); 858 } 859 } 860 </script>
860 861 <div style="max-width: 400px; width: 95%; margin: 0 auto;"> 862 <div style="background: #fff; border: none; border-radius: 16px; color: black; box-shadow: none; position: relative;"> 863 <button type="button" data-dismiss="modal" aria-label="Close" style="position: absolute; right: 20px; top: 10px; font-size: 28px; font-weight: 300; color: black; opacity: 1; background: none; border: none; padding: 0; width: auto; height: auto; cursor: pointer; z-index: 10;"> 864 <span aria-hidden="true">×</span> 865 </button> 866 <div style="padding: 40px 30px 32px;"> 867 <div style="text-align: left; margin-bottom: 32px;"> 868 <h2 id="qualifying-questions-modal-title" style="margin: 0; color: #333; font-size: 18px; line-height: 1.4; text-transform: uppercase; letter-spacing: 0.5px; font-weight: normal;"> 869 Thanks, please provide more information to help serve you 870 </h2> 871 </div> 872 <form id="qualifying-questions-modal-form" data-type="contact-form"> 873 <input type="hidden" name="source" value="PROFILE_UPDATE" /> 874 <input type="hidden" name="email" value="" id="qualifying-questions-modal-email" /> 875 <input type="hidden" name="triggerSource" id="qualifying-questions-modal-triggerSource" value="" /> 876 <label for="qualifying-questions-modal-email" style="display:none;"> 877 Email 878 </label> 879 <label for="qualifying-questions-modal-triggerSource" style="display:none;"> 880 Trigger Source 881 </label> 882 883 <div style="margin-bottom: 20px;"> 884 <label for="qualifying-questions-modal-phoneNumber" style="display:none;"> 885 Phone Number 886 </label> 887 <input 888 type="tel" 889 id="qualifying-questions-modal-phoneNumber" 890 name="phoneNumber" 891 style="padding: 12px 16px; font-size: 16px; border: 1px solid #848484; border-radius: 8px; background: transparent; color: black; width: 100%; box-sizing: border-box; outline: none;" 892 pattern="^\+?1?[-.\s]?\(?[0-9]{3}\)?[-.\s]?[0-9]{3}[-.\s]?[0-9]{4}$" 893 required 894 placeholder="Phone" 895 aria-label="Phone Number" 896 inputmode="tel" 897 autocomplete="tel" 898 onfocus="this.style.borderColor='black';" 899 onblur="this.style.borderColor='#848484';" 900 /> 901 </div> 902 903 <div style="margin-bottom: 20px;"> 904 <label for="qualifying-questions-modal-interest" style="display:none;"> 905 Interest 906 </label> 907 <select 908 id="qualifying-questions-modal-interest" 909 name="interest" 910 required 911 data-label="Interest" 912 aria-label="Interest" 913 style="padding: 12px 16px; font-size: 16px; border: 1px solid #848484; border-radius: 8px; background: #fff; color: #848484; width: 100%; box-sizing: border-box; outline: none; appearance: none; -webkit-appearance: none; -moz-appearance: none; background-image: url('data:image/svg+xml;charset=utf8,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 16 16%22%3E%3Cpath fill=%22%23666%22 d=%22M4.427 7.427l3.396 3.396a.25.25 0 00.354 0l3.396-3.396A.25.25 0 0011.396 7H4.604a.25.25 0 00-.177.427z%22/%3E%3C/svg%3E'); background-repeat: no-repeat; background-position: right 16px center; background-size: 16px;" 914 onfocus="this.style.borderColor='black'; this.style.color='black';" 915 onblur="this.style.borderColor='#848484'; if(this.value === '') this.style.color='#848484'; else this.style.color='black';" 916 > 917 <option value="" style="background: #fff; color: #848484;" disabled selected>Interested in...</option> 918 <option value="Selling & Buying" style="background: #fff; color: black;">Selling & Buying</option> 919 <option value="Selling" style="background: #fff; color: black;">Selling</option> 920 <option value="Buying" style="background: #fff; color: black;">Buying</option> 921 <option value="Renting" style="background: #fff; color: black;">Renting</option> 922 <option value="Other" style="background: #fff; color: black;">Other</option> 923 </select> 924 </div> 925 926 <div style="margin-bottom: 32px; font-size: 12px; line-height: 1.2;"> 927 <label style='display: none;' for='qualifying-questions-modal-qualifying-questions-termsAccepted'>Opt In/Disclaimer Consent:</label> 928 <label class='lp-tcr-content'>
929 <span class='lp-tcr-checkbox'> 930 <input 931 type='checkbox' 932 id='qualifying-questions-modal-qualifying-questions-termsAccepted' 933 name='termsAccepted' 934 aria-describedby='qualifying-questions-modal-disclaimer-text' 935 oninvalid="this.setCustomValidity('Please accept the terms and conditions')" 936 oninput="this.setCustomValidity('')" 937 required 938 /></span> 939 <span class='lp-tcr-message'> 940 <div id="qualifying-questions-modal-disclaimer-text" class="collapsed" style="color: #848484;"> 941 942 I agree to be contacted by 943 <strong>REAL of Pennsylvania | The Sage Team</strong> 944 via call, email, and text <span class="disclaimer-more">for real estate services. 945 To opt out, you can reply 'stop' at any time or reply 'help' for assistance. 946 You can also click the unsubscribe link in the emails. 947 Message and data rates may apply. Message frequency may vary.</span> 948 <span class="disclaimer-ellipsis">...</span> 949 <a href='/terms-and-conditions' target='_blank' rel='noopener noreferrer' style='text-decoration: underline;'>Privacy Policy</a>. 950 </div> 951 <button 952 id="qualifying-questions-modal-toggle-disclaimer" 953 type="button" 954 style="background: none; border: none; color: #848484; font-size: inherit; font-weight: bold; padding: 0; margin-top: 4px; cursor: pointer;" 955 aria-expanded="false" 956 onclick="toggleDisclaimerQualifyingQuestionsModal()" 957 > 958 Read more 959 </button> 960 </span> 961 </label> 962 </div> 963 964 <div> 965 <button 966 type="submit" 967 style="padding: 12px 24px; font-size: 16px; font-weight: normal; border-radius: 8px; border: 1px solid black; background: black; color: white; width: 100%; cursor: pointer; transition: all 0.2s ease; text-transform: uppercase; letter-spacing: 0.5px;" 968 onmouseover="this.style.background='transparent'; this.style.color='black';" 969 onmouseout="this.style.background='black'; this.style.color='white';" 970 > 971 Submit 972 </button> 973 </div> 974 </form> 975 </div> 976 </div> 977 </div> 978 </div> 979 980
980<script> 981 (function() { 982 var lazyVideos = [].slice.call(document.querySelectorAll("video.lazy")); 983 984 if ("IntersectionObserver" in window && lazyVideos.length > 0) { 985 var lazyVideoObserver = new IntersectionObserver(function(entries, observer) { 986 entries.forEach(function(video) { 987 if (video.isIntersecting) { 988 for (var source in video.target.children) { 989 var videoSource = video.target.children[source]; 990 if (typeof videoSource.tagName === "string" && videoSource.tagName === "SOURCE") { 991 videoSource.src = videoSource.dataset.src; 992 } 993 } 994 995 video.target.load(); 996 video.target.classList.remove("lazy"); 997 lazyVideoObserver.unobserve(video.target); 998 } 999 }); 1000 }); 1001 1002 lazyVideos.forEach(function(lazyVideo) { 1003 lazyVideoObserver.observe(lazyVideo); 1004 }); 1005 } 1006 })(); 1007 </script>
1007 1008 1009 <!-- Global site tag (gtag.js) - Google Analytics --> 1010
1010<script defer src="https://www.googletagmanager.com/gtag/js"></script>
1010 1011 1012 <!-- Google Tag Manager --> 1013
1013<script>(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start': 1014 new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0], 1015 j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.defer=true;j.async=false;j.src= 1016 'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f); 1017 })(window,document,'script','dataLayer','GTM-TWQBNFZM');</script>
1017 1018 <!-- End Google Tag Manager --> 1019 <!-- Google Tag Manager --> 1020
1020<script>(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start': 1021 new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0], 1022 j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.defer=true;j.async=false;j.src= 1023 'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f); 1024 })(window,document,'script','dataLayer','GTM-T9SFQGHZ');</script>
1024 1025 <!-- End Google Tag Manager --> 1026 1027 1028 <!-- LP Tracker (divolte.js) - LP Divolte --> 1029
1029<script>window.divolteLp=window.divolteLp||function(){(divolteLp.q=divolteLp.q||[]).push(arguments)}</script>
1029 1030 <!-- LP Tracker (eventBus) - LP EventBus --> 1031
1031<script>window.eventBusLp=window.eventBusLp||function(){(eventBusLp.q=eventBusLp.q||[]).push(arguments)}</script>
1031 1032 1033
1033<script> 1034 window.dataLayer = window.dataLayer || []; 1035 document.sendGoogleTagManagerEvent = function() { 1036 /* Honor GPC-enabled browsers and prevent GTM event if GPC is enabled. More details: https://global-privacy-control.glitch.me/ */ 1037 if (window.navigator.globalPrivacyControl) { 1038 return; 1039 } 1040 1041 dataLayer.push(arguments); 1042 } 1043 1044 document.sendGoogleTagManagerEvent('js', new Date()); 1045 document.sendGoogleTagManagerEvent('config', 'G-2WSM56DV8Q', { page: location.pathname, location: location.href }); 1046 document.sendGoogleAnalyticsEvent = function(googleEvent) { 1047 document.sendGoogleTagManagerEvent('event', googleEvent.eventAction || googleEvent.hitType, { 1048 event_category: googleEvent.eventCategory, 1049 event_label: googleEvent.eventLabel, 1050 value: googleEvent.eventValue, 1051 page: googleEvent.page, 1052 location: googleEvent.location 1053 }) 1054 }; 1055 1056 document.addEventListener("DOMContentLoaded", function() { 1057 (function() { 1058 //If the page has an element with ID of auto-year-update the element will be populated with the current year. 1059 var date = new Date(); 1060 var elements = document.getElementsByClassName('auto-year-update'); 1061 var i; 1062 for (i = 0; i < elements.length; i++) { 1063 elements[i].innerText = date.getFullYear(); 1064 } 1065 })(); 1066 if (window.divolteLp) { 1067 window.divolteLp('sendLpPageView', {}); 1068 } 1069 if (window.eventBusLp) { 1070 window.eventBusLp('sendLpPageView', {}); 1071 } 1072 }); 1073 </script>
1073 1074 1075 1076
1076<script> 1077 // Function to dynamically load a script 1078 function loadScript(url, callback) { 1079 var script = document.createElement('script'); 1080 script.type = 'text/javascript'; 1081 script.src = url; 1082 script.defer = true; 1083 script.async = true; 1084 script.onload = callback; 1085 document.head.appendChild(script); 1086 } 1087 1088 // Function to dynamically load CSS file 1089 function loadCSS(url) { 1090 var link = document.createElement("link"); 1091 link.rel = "stylesheet"; 1092 link.href = url; 1093 document.head.appendChild(link); 1094 } 1095 1096 // Global methods / variables that can be accessed by element js 1097 window.luxuryPresence = { 1098 libs: { 1099 loadJs: loadScript, 1100 loadCss: loadCSS, 1101 jsLibsMap: { 1102 paroller: { 1103 jsSrc: 'https://d1e1jt2fj4r8r.cloudfront.net/javascript/jquery.paroller.min.js', 1104 isLoaded: false, 1105 }, 1106 ionRangeSlider: { 1107 jsSrc: 'https://cdnjs.cloudflare.com/ajax/libs/ion-rangeslider/2.3.1/js/ion.rangeSlider.min.js', 1108 cssSrc: 'https://cdnjs.cloudflare.com/ajax/libs/ion-rangeslider/2.3.1/css/ion.rangeSlider.min.css', 1109 isLoaded: false, 1110 requires: ['jquery'], 1111 }, 1112 splide: { 1113 jsSrc: 'https://cdnjs.cloudflare.com/ajax/libs/splidejs/4.1.4/js/splide.min.js', 1114 cssSrc: 'https://cdnjs.cloudflare.com/ajax/libs/splidejs/4.1.4/css/splide-core.min.css', 1115 isLoaded: false, 1116 }, 1117 wow: { 1118 jsSrc: 'https://cdnjs.cloudflare.com/ajax/libs/wow/1.1.2/wow.min.js', 1119 isLoaded: false, 1120 }, 1121 jquery: { 1122 jsSrc: 'https://cdnjs.cloudflare.com/ajax/libs/jquery/3.7.1/jquery.min.js', 1123 isLoaded: false, 1124 }, 1125 slick: { 1126 jsSrc: 'https://cdnjs.cloudflare.com/ajax/libs/slick-carousel/1.8.1/slick.min.js', 1127 isLoaded: false, 1128 requires: ['jquery'], 1129 }, 1130 libphonenumber: { 1131 jsSrc: 'https://cdnjs.cloudflare.com/ajax/libs/libphonenumber-js/1.11.8/libphonenumber-js.min.js', 1132 isLoaded: false, 1133 }, 1134 }, 1135 }, 1136 }; 1137 </script>
1137 1138
1138<script defer src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.7.1/jquery.min.js" integrity="sha512-v2CJ7UaYy4JwqLDIrZUI/4hqeoQieOmAZNXBeQyjo21dadnwR+8ZaIJVT8EE2iyI61OV8e6M8PP2/4hpQINQ/g==" crossorigin="anonymous" referrerpolicy="no-referrer" onload="window.luxuryPresence.libs.jsLibsMap.jquery.isLoaded = true"></script>
1138 1139
1139<script defer src="https://cdnjs.cloudflare.com/ajax/libs/handlebars.js/4.7.8/handlebars.min.js"></script>
1139 1140
1140<script defer src="https://cdn.jsdelivr.net/npm/[email protected]/dist/handlebars-intl.min.js"></script>
1140 1141
1141<script defer src="https://cdnjs.cloudflare.com/ajax/libs/superagent/4.1.0/superagent.min.js"></script>
1141 1142
1142<script defer src="https://cdnjs.cloudflare.com/ajax/libs/slick-carousel/1.8.1/slick.min.js" onload="window.luxuryPresence.libs.jsLibsMap.slick.isLoaded = true"></script>
1142 1143
1143<script defer src="https://cdnjs.cloudflare.com/ajax/libs/wow/1.1.2/wow.min.js" onload="window.luxuryPresence.libs.jsLibsMap.wow.isLoaded = true"></script>
1143 1144
1144<script defer src="https://cdnjs.cloudflare.com/ajax/libs/ion-rangeslider/2.3.1/js/ion.rangeSlider.min.js" onload="window.luxuryPresence.libs.jsLibsMap.ionRangeSlider.isLoaded = true"></script>
1144 1145 1146 <!-- GOOGLE TRANSLATE SCRIPT --> 1147
1147<script> 1148 function googleTranslateElementInit() { 1149 // list of languages can be overridden by setting window.customLanguages in the head JS. example `window.customLanguages = 'en,de,fr,ro,sk,pl'` 1150 // Language codes can be taken from here https://cloud.google.com/translate/docs/languages 1151 const DEFAULT_LANGUAGES = 'en,es,zh-CN,zh-TW,tl,vi,ar,ko,ru,de,fr,hi,pt'; 1152 document.querySelectorAll('[data-type="TRANSLATE"]').forEach(function(translate){ 1153 translate.innerText = ''; 1154 new google.translate.TranslateElement({ 1155 pageLanguage: 'en', 1156 layout: google.translate.TranslateElement.InlineLayout.SIMPLE, 1157 includedLanguages: window.customLanguages || DEFAULT_LANGUAGES, 1158 }, translate); 1159 }); 1160 } 1161 </script>
1161 1162
1162<script defer src="//translate.google.com/translate_a/element.js?cb=googleTranslateElementInit"></script>
1162 1163
1163<script defer src="https://accounts.google.com/gsi/intermediate"></script>
1163 1164 1165 <!-- GOOGLE TRANSLATE SCRIPT END--> 1166
1166<script> 1167 1168 // UI helpers 1169 (function () { 1170 1171 function getSideMenu () { 1172 return document.querySelector('body > div.sidemenu'); 1173 } 1174 1175 function sideMenuHide (instant) { 1176 var sideMenu = getSideMenu(); 1177 if (!sideMenu || !sideMenu.classList.contains('visible')) { 1178 return; 1179 } 1180 sideMenu.classList.remove('visible'); 1181 sideMenu.dispatchEvent(new CustomEvent('lpui-hide', { detail: { instant: !!instant } })); 1182 window.dispatchEvent(new CustomEvent('lpui-sidemenu-hide', { detail: {instant: !!instant} })); 1183 } 1184 1185 function sideMenuShow () { 1186 var sideMenu = getSideMenu(); 1187 if (!sideMenu || sideMenu.classList.contains('visible')) { 1188 return; 1189 } 1190 sideMenu.classList.add('visible'); 1191 sideMenu.dispatchEvent(new Event('lpui-show')); 1192 window.dispatchEvent(new Event('lpui-sidemenu-show')); 1193 } 1194 1195 function sideMenuToggle () { 1196 var sideMenu = getSideMenu(); 1197 if (!sideMenu) { 1198 return; 1199 } 1200 var isSideMenuVisible = sideMenu.classList.contains('visible'); 1201 if (isSideMenuVisible) { 1202 sideMenuHide(); 1203 } else { 1204 sideMenuShow(); 1205 } 1206 } 1207 1208 var scrollLockRequests = {}; 1209 window.__debug_scrollLockRequests = scrollLockRequests; 1210 var hideScrollStyles = ''+ 1211 'body {'+ 1212 'overflow: hidden;' + 1213 '}'; 1214 var hideScrollId = 'hide-body-scroll-style'; 1215 1216 function scrollLock () { 1217 var style = document.createElement('style'); 1218 style.id = hideScrollId; 1219 style.textContent = hideScrollStyles; 1220 document.head.appendChild(style); 1221 window.dispatchEvent(new Event('lpui-scroll-locked')); 1222 } 1223 1224 function scrollUnlock () { 1225 document.getElementById(hideScrollId)?.remove(); 1226 window.dispatchEvent(new Event('lpui-scroll-unlocked')); 1227 } 1228 1229 function requestScrollLock (lockId) { 1230 var wasLocked = Object.keys(scrollLockRequests).length > 0; 1231 scrollLockRequests[lockId || '__anonymous_lock'] = true; 1232 if (!wasLocked) { 1233 scrollLock(); 1234 } 1235 } 1236 1237 function releaseScrollLock (lockId) { 1238 if (lockId) { 1239 delete scrollLockRequests[lockId]; 1240 if (!Object.keys(scrollLockRequests).length) { 1241 scrollUnlock(); 1242 } 1243 } else { 1244 scrollLockRequests = {}; 1245 window.__debug_scrollLockRequests = scrollLockRequests; 1246 scrollUnlock(); 1247 } 1248 } 1249 1250 function showModal (modalId, options) { 1251 var modal = document.getElementById(modalId); 1252 if (!modal) { 1253 return; 1254 } 1255 1256 if (!modal.classList.contains('visible')) { 1257 modal.classList.add('visible'); 1258 if (options && options.scrollLock) { 1259 window.lpUI.requestScrollLock(modalId); 1260 } 1261 modal.dispatchEvent(new Event('lpui-show')); 1262 window.dispatchEvent(new CustomEvent('lpui-modal-show', { detail: { id: modalId } })); 1263 } 1264 1265 const visibleModals = document.querySelectorAll('.modal.visible'); 1266 1267 if (visibleModals.length > 1) { 1268 1269 const maxZIndex = Array.from(visibleModals).reduce((maxZIndex, modal) => { 1270 const zIndex = window.getComputedStyle(modal).zIndex; 1271 const parsedZIndex = zIndex !== 'auto' ? parseInt(zIndex) : 0; 1272 return Math.max(maxZIndex, parsedZIndex); 1273 }, 0); 1274 1275 modal.style.zIndex = maxZIndex + 1; 1276 } 1277 1278 } 1279 1280 function _hideModal (modalEl) { 1281 if (!modalEl) { 1282 return; 1283 } 1284 if (!modalEl.classList.contains('visible')) { 1285 return; 1286 } 1287 modalEl.classList.remove('visible'); 1288 modalEl.style.zIndex = '';
1289 modalEl.dispatchEvent(new Event('lpui-hide')); 1290 var modalId = modalEl.getAttribute('id'); 1291 if (modalId) { 1292 window.lpUI.releaseScrollLock(modalId); 1293 window.dispatchEvent(new CustomEvent('lpui-modal-hide', { detail: { id: modalId } })); 1294 } 1295 } 1296 1297 function hideModal (modalId) { 1298 _hideModal(document.getElementById(modalId)); 1299 } 1300 1301 function hideClosestModal (el) { 1302 const modal = el?.closest('.modal'); 1303 if (!modal) { 1304 return; 1305 } 1306 if (modal.classList) { 1307 _hideModal(modal); 1308 return; 1309 } 1310 if (modal.length && modal[0].classList) { 1311 _hideModal(modal[0]); 1312 } 1313 } 1314 1315 window.lpUI = { 1316 sideMenuHide: sideMenuHide, 1317 sideMenuShow: sideMenuShow, 1318 sideMenuToggle: sideMenuToggle, 1319 requestScrollLock: requestScrollLock, 1320 releaseScrollLock: releaseScrollLock, 1321 showModal: showModal, 1322 hideModal: hideModal, 1323 hideClosestModal: hideClosestModal 1324 } 1325 })(); 1326 1327 var stringifyPrimitive = function(v) { 1328 switch (typeof v) { 1329 case 'string': 1330 return v; 1331 1332 case 'boolean': 1333 return v ? 'true' : 'false'; 1334 1335 case 'number': 1336 return isFinite(v) ? v : ''; 1337 1338 default: 1339 return ''; 1340 } 1341 }; 1342 1343 function objectToQuerystring(obj, sep, eq, name) { 1344 // https://github.com/Gozala/querystring/blob/master/encode.js 1345 sep = sep || '&'; 1346 eq = eq || '='; 1347 if (obj === null) { 1348 obj = undefined; 1349 } 1350 1351 if (typeof obj === 'object') { 1352 return Object.keys(obj).map(function(k) { 1353 var ks = encodeURIComponent(stringifyPrimitive(k)) + eq; 1354 if (Array.isArray(obj[k])) { 1355 return obj[k].map(function(v) { 1356 return ks + encodeURIComponent(stringifyPrimitive(v)); 1357 }).join(sep); 1358 } else { 1359 return ks + encodeURIComponent(stringifyPrimitive(obj[k])); 1360 } 1361 }).filter(Boolean).join(sep); 1362 1363 } 1364 1365 if (!name) return ''; 1366 return encodeURIComponent(stringifyPrimitive(name)) + eq + 1367 encodeURIComponent(stringifyPrimitive(obj)); 1368 } 1369 1370 function getPath(url, options) { 1371 var parser = document.createElement('a'); 1372 parser.href = url || ''; 1373 var path = parser.pathname || ''; 1374 if (path[0] !== '/') { 1375 // IE does not return path starting with a slash 1376 path = '/' + path; 1377 } 1378 1379 if (options && options.queryString) { 1380 path += parser.search; 1381 } 1382 1383 return path; 1384 } 1385 1386 function getMLSAutocomplete(keyword) { 1387 var searchURL = window.location.protocol + '//' + window.location.hostname + '/home-search/auto_complete'; 1388 var query = { 1389 kind: 'listings', 1390 query: keyword 1391 }; 1392 1393 return superagent 1394 .get(searchURL) 1395 .query(query) 1396 .then(function(res) { 1397 var data = res.body || []; 1398 /* 1399 Of the format: 1400 [{ 1401 "_index": "listing_auto_completes_production_20190723232720775", 1402 "_type": "listing_auto_complete", 1403 "_id": "235875624", 1404 "_score": 0, 1405 "status_modified_at": 1553250708, 1406 "city": "Jupiter", 1407 "price": 1335743, 1408 "display_address": "10088 Calabrese Trail Unit: 9 Jupiter FL 33478", 1409 "sold_price": null, 1410 "id": 235875624, 1411 "state": "FL", 1412 "photo_urls": [ 1413 "http://cdn.photos.sparkplatform.com/fl/20190322153144208228000000-o.jpg" 1414 ], 1415 "status": "Pending" 1416 }, ...] 1417 */ 1418 1419 return data; 1420 }); 1421 } 1422 1423 function getMLSAutocompleteWithFilters(keyword, filters = {}) { 1424 var searchURL = window.location.protocol + '//' + window.location.hostname + '/home-search/auto_complete'; 1425 1426 return superagent 1427 .get(searchURL) 1428 .query({ kind: 'listings', query: keyword, ...filters }) 1429 .then(function(res) { 1430 /* 1431 Of the format: 1432 [{ 1433 "_index": "listing_auto_completes_production_20190723232720775", 1434 "_type": "listing_auto_complete", 1435 "_id": "235875624", 1436 "_score": 0, 1437 "status_modified_at": 1553250708, 1438 "city": "Jupiter", 1439 "price": 1335743, 1440 "display_address": "10088 Calabrese Trail Unit: 9 Jupiter FL 33478", 1441 "sold_price": null, 1442 "id": 235875624, 1443 "state": "FL", 1444 "photo_urls": [ 1445 "http://cdn.photos.sparkplatform.com/fl/20190322153144208228000000-o.jpg" 1446 ], 1447 "status": "Pending" 1448 }, ...] 1449 */ 1450 return res.body || []; 1451 }); 1452 } 1453 1454 function makeMlsLink(data) { 1455 // Code Dupe from utils/googlePlace 1456 // mapping of google data type to mls data type 1457 var mapping = { 1458 neighborhood: 'neighborhood', 1459 locality: 'place', 1460 administrative_area_level_2: 'county', 1461 administrative_area_level_1: 'state', 1462 postal_code: 'postalcode', 1463 }; 1464 1465 function _filterTypes(types) { 1466 return types.filter(function(type) { return type !== 'political' }); 1467 } 1468 1469 if (!data || !Object.keys(data).length) { 1470 return '/home-search/listings'; 1471 } 1472 1473 var newData = {};
1474 _filterTypes(data.types).forEach(function(type) { 1475 if (mapping[type]) { 1476 newData.search_type = mapping[type]; 1477 } 1478 }); 1479 newData.omnibox = data.formatted_address; 1480 data.address_components.forEach(function(component) { 1481 _filterTypes(component.types).forEach(function(type) { 1482 if (mapping[type]) { 1483 newData[mapping[type]] = component.long_name; 1484 } 1485 }); 1486 }); 1487 var bounds = data.geometry.bounds; 1488 var convertedData = Object.assign(bounds, newData); 1489 1490 return '/home-search/listings?' + objectToQuerystring(convertedData); 1491 } 1492 1493 function debounce(func, wait) { 1494 let timeout; 1495 return function(...args) { 1496 const context = this; 1497 clearTimeout(timeout); 1498 timeout = setTimeout(() => func.apply(context, args), wait) 1499 } 1500 } 1501 1502 // Global methods / variables that can be accessed by element js 1503 window.luxuryPresence = { 1504 ...window.luxuryPresence, 1505 defaults: { 1506 companyId: '9916becb-e4dd-4bda-81df-7e6dec908921', 1507 apiGatewayUrl: '/api-gw', 1508 routerUrl: '/api-nv', 1509 gql: {"agents":"\n query Agents (\n $agentId: ID\n $agentIds: [ID!]\n $companyId: String\n $network: Boolean\n $networkId: String\n $officeId: [ID!]\n $excludeOfficeId: [ID!]\n $offset: Int\n $limit: Int\n $sort: String\n $sortDir: SortDirectionEnum\n $search: String\n $tags: [String]\n $tagsMode: TagsModeEnum\n $teamId: [ID!]\n $developmentId: [ID!]\n $prioritizeIds: Boolean\n ) {\n agents (\n agentId: $agentId\n agentIds: $agentIds\n companyId: $companyId\n network: $network\n networkId: $networkId\n officeId: $officeId\n excludeOfficeId: $excludeOfficeId\n offset: $offset\n limit: $limit\n sort: $sort\n sortDir: $sortDir\n search: $search\n tags: $tags\n tagsMode: $tagsMode\n teamId: $teamId\n developmentId: $developmentId\n prioritizeIds: $prioritizeIds\n ) {\n id\n firstName\n lastName\n avatar {\n smallUrl\n mediumUrl\n largeUrl\n height\n width\n }\n position\n bioLong\n bioShort\n seoTitle\n seoDescription\n slug\n phoneNumber\n phoneNumber2\n license\n email\n leadAgent\n greaterArea\n tags\n }\n agentsCount(\n agentIds: $agentIds\n companyId: $companyId\n network: $network\n networkId: $networkId\n officeId: $officeId\n excludeOfficeId: $excludeOfficeId\n search: $search\n tags: $tags\n tagsMode: $tagsMode\n teamId: $teamId\n developmentId: $developmentId\n prioritizeIds: $prioritizeIds\n ) {\n count\n }\n }\n","properties":"\n query Properties(\n $agentIds: [ID!]\n $teamIds: [ID!]\n $neighborhoodIds: [ID!]\n $officeIds: [ID!]\n $propertyId: ID\n $companyId: String\n $networkId: String\n $network: Boolean\n $statusId: String\n $propertyIds: [ID!]\n $prioritizeIds: Boolean\n $statusIds: [String!]\n $excludeStatusId: [String!]\n $neighborhoodId: String\n $addressState: [String!]\n $addressCity: [String!]\n $relatedNeighborhoodPropertyId: String\n $developmentId: String\n $featuredListing: Boolean\n $leaseProperty: Boolean\n $search: String\n $searchTermMode: SearchTermModeEnum\n $globalProperty: Boolean\n $archived: Boolean\n $salesPriceGTE: Float\n $salesPriceLTE: Float\n $leasePriceGTE: Float\n $leasePriceLTE: Float\n $livingSpaceSizeGTE: Float\n $livingSpaceSizeLTE: Float\n $bathCountGTE: Float\n $bathCountLTE: Float\n $bedroomCountGTE: Float\n $bedroomCountLTE: Float\n $architectureStyle: String\n $lifestyle: String\n $propertyTypeId: String\n $propertyTypeIds: [String!]\n $spaceTypeIds: [ID!]\n $tag: String\n $backfillMLSResults: Boolean\n $displayMLSListings: String\n $hostname: String\n $websiteId: ID\n $backfillProviders: [String!]\n $backfillMLSListingIds: [String!]\n $backfillMLSAgentIds: [String!]\n $backfillMLSOfficeIds: [String!]\n $backfillBoundary: JSON\n $openHouse: Boolean\n $withGeo: Boolean\n $advancedFilters: JSON\n $seasonalPriceId: ID\n $offset: Int\n $limit: Int\n $sort: String\n $sortDir: SortDirectionEnum\n ) {\n properties(\n \n agentIds: $agentIds\n teamIds: $teamIds\n propertyId: $propertyId\n propertyIds: $propertyIds\n prioritizeIds: $prioritizeIds\n companyId: $companyId\n network: $network\n networkId: $networkId\n statusId: $statusId\n statusIds: $statusIds\n excludeStatusId: $excludeStatusId\n neighborhoodId: $neighborhoodId\n neighborhoodIds: $neighborhoodIds\n officeIds: $officeIds\n addressState: $addressState\n addressCity: $addressCity\n developmentId: $developmentId\n featuredListing: $featuredListing\n leaseProperty: $leaseProperty\n search: $search\n searchTermMode: $searchTermMode\n salesPriceGTE: $salesPriceGTE\n salesPriceLTE: $salesPriceLTE\n leasePriceGTE: $leasePriceGTE\n leasePriceLTE: $leasePriceLTE\n livingSpaceSizeGTE: $livingSpaceSizeGTE\n livingSpaceSizeLTE: $livingSpaceSizeLTE\n bathCountGTE: $bathCountGTE\n bathCountLTE: $bathCountLTE\n bedroomCountGTE: $bedroomCountGTE\n bedroomCountLTE: $bedroomCountLTE\n architectureStyle: $architectureStyle\n lifestyle: $lifestyle\n propertyTypeId: $propertyTypeId\n propertyTypeIds: $propertyTypeIds\n spaceTypeIds: $spaceTypeIds\n tag: $tag\n archived: $archived\n globalProperty: $globalProperty\n withGeo: $withGeo\n openHouse: $openHouse\n displayMLSListings: $displayMLSListings\n advancedFilters: $advancedFilters\n seasonalPriceId: $seasonalPriceId\n\n relatedNeighborhoodPropertyId: $relatedNeighborhoodPropertyId\n backfillMLSResults: $backfillMLSResults\n hostname: $hostname\n websiteId: $websiteId\n backfillProviders: $backfillProviders\n backfillMLSListingIds: $backfillMLSListingIds\n backfillMLSAgentIds: $backfillMLSAgentIds\n backfillMLSOfficeIds: $backfillMLSOfficeIds\n backfillBoundary: $backfillBoundary\n offset: $offset\n limit: $limit\n sort: $sort,\n sortDir: $sortDir\n ){\n id\n name\n status\n originalStatus {\n id\n name\n }\n salesPrice\n reducedPrice\n isPasswordProtected\n bedroomCount\n bathCount\n fullBathCount\n halfBathCount\n threeQuarterBathCount\n fullAddress\n addressLine1\n addressLine2\n addressCity\n addressState\n addressCountry\n postalCode\n description\n syncedAt\n officeName\n attributionContact\n neighborhood {\n id\n }\n media {\n smallUrl\n mediumUrl\n largeUrl\n xLargeUrl\n xxLargeUrl\n height\n width\n }\n seoTitle\n seoDescription\n slug\n fromMLS\n mlsId\n mlsLogo\n mlsAttribution\n openHouse\n openHouseHours\n priceUponRequest\n privateAddress\n leaseProperty\n leasePrice\n currency\n leaseTermFrequencyInterval\n leaseTermFrequencyCount\n leasePeriod\n livingSpaceSize\n livingSpaceUnits\n lotAreaSize\n lotAreaUnits\n tags\n latitude\n longitude\n soldDate\n timeZone\n buyerAgencyCompensation\n buyerAgencyCompensationType\n landIdUrl\
1509n }\n propertiesCount(\n \n agentIds: $agentIds\n teamIds: $teamIds\n propertyId: $propertyId\n propertyIds: $propertyIds\n prioritizeIds: $prioritizeIds\n companyId: $companyId\n network: $network\n networkId: $networkId\n statusId: $statusId\n statusIds: $statusIds\n excludeStatusId: $excludeStatusId\n neighborhoodId: $neighborhoodId\n neighborhoodIds: $neighborhoodIds\n officeIds: $officeIds\n addressState: $addressState\n addressCity: $addressCity\n developmentId: $developmentId\n featuredListing: $featuredListing\n leaseProperty: $leaseProperty\n search: $search\n searchTermMode: $searchTermMode\n salesPriceGTE: $salesPriceGTE\n salesPriceLTE: $salesPriceLTE\n leasePriceGTE: $leasePriceGTE\n leasePriceLTE: $leasePriceLTE\n livingSpaceSizeGTE: $livingSpaceSizeGTE\n livingSpaceSizeLTE: $livingSpaceSizeLTE\n bathCountGTE: $bathCountGTE\n bathCountLTE: $bathCountLTE\n bedroomCountGTE: $bedroomCountGTE\n bedroomCountLTE: $bedroomCountLTE\n architectureStyle: $architectureStyle\n lifestyle: $lifestyle\n propertyTypeId: $propertyTypeId\n propertyTypeIds: $propertyTypeIds\n spaceTypeIds: $spaceTypeIds\n tag: $tag\n archived: $archived\n globalProperty: $globalProperty\n withGeo: $withGeo\n openHouse: $openHouse\n displayMLSListings: $displayMLSListings\n advancedFilters: $advancedFilters\n seasonalPriceId: $seasonalPriceId\n\n ) {\n count\n }\n }\n","pressReleases":"\n query PressReleases (\n $companyId: ID\n $pressReleaseIds: [ID!]\n $offset: Int\n $limit: Int\n $sort: String\n $sortDir: String\n $search: String\n $categories: [String!]\n $propertyId: [ID!]\n $developmentId: [ID!]\n $agentId: [ID!]\n $teamId: [ID!]\n $year: [Int!]\n ) {\n pressReleases (\n companyId: $companyId\n pressReleaseIds: $pressReleaseIds\n offset: $offset\n limit: $limit\n sort: $sort\n sortDir: $sortDir\n search: $search\n categories: $categories\n propertyId: $propertyId\n developmentId: $developmentId\n agentId: $agentId\n teamId: $teamId\n year: $year\n ) {\n items {\n id\n title\n description\n author\n externalUrl\n media {\n smallUrl\n mediumUrl\n largeUrl\n xLargeUrl\n xxLargeUrl\n height\n width\n altTagText\n }\n publishedAt\n categories\n }\n total\n }\n }\n","posts":"\n query Posts (\n $companyId: String\n $postId: [ID!]\n $slug: String\n $offset: Int\n $limit: Int\n $sort: String\n $sortDir: String\n $search: String\n $featured: Boolean\n $categoryId: [String!]\n $neighborhoodId: [String!]\n ) {\n posts (\n companyId: $companyId\n postId: $postId\n slug: $slug\n offset: $offset\n limit: $limit\n sort: $sort\n sortDir: $sortDir\n search: $search\n featured: $featured\n postStatusId: \"5f528253-abb7-484e-95c3-330269ac1102\"\n categoryId: $categoryId\n neighborhoodId: $neighborhoodId\n ) {\n items {\n id\n postId\n title\n subtitle\n description\n status: postStatus\n featured\n slug\n categories {\n id\n name\n }\n createdAt\n publishedAt\n scheduledAt\n createdBy {\n ... on Agent {\n firstName\n lastName\n }\n }\n customAuthor\n media {\n smallUrl\n mediumUrl\n largeUrl\n xLargeUrl\n xxLargeUrl\n height\n width\n altTagText\n }\n seoTitle\n seoDescription\n }\n total\n }\n }\n","testimonials":"\n query Testimonials (\n $companyId: String\n $agentId: ID\n $teamId: ID\n $testimonialIds: [ID!]\n $offset: Int\n $limit: Int\n $sort: String\n $sortDir: String\n $search: String\n ) {\n testimonials (\n companyId: $companyId\n agentId: $agentId\n teamId: $teamId\n testimonialIds: $testimonialIds\n offset: $offset\n limit: $limit\n sort: $sort\n sortDir: $sortDir\n search: $search\n ) {\n items {\n id\n testimonialId\n body\n author\n position\n media {\n smallUrl\n mediumUrl\n largeUrl\n xLargeUrl\n xxLargeUrl\n height\n width\n altTagText\n }\n seoTitle\n seoDescription\n agents {\n slug\n email\n firstName\n lastName\n avatar {\n smallUrl\n height\n width\n }\n }\n }\n total\n }\n }\n","neighborhoods":"\n query Neighborhoods (\n $neighborhoodId: ID\n $companyId: String\n $search: String\n $tag: String\n $offset: Int\n $limit: Int\n $sort: String\n $sortDir: SortDirectionEnum\n ) {\n neighborhoods (\n neighborhoodId: $neighborhoodId\n companyId: $companyId\n search: $search\n tag: $tag\n offset: $offset\n limit: $limit\n sort: $sort\n sortDir: $sortDir\n ) {\n id\n name\n description\n descriptionShort\n slug\n tags\n googlePlaceData\n mlsLink\n createdAt\n media {\n smallUrl\n mediumUrl\n largeUrl\n xLargeUrl\n xxLargeUrl\n height\n width\n }\n seoTitle\n seoDescription\n }\n neighborhoodsCount(\n companyId: $companyId\n search: $search\n tag: $tag\n ) {\n count\n }\n }\n","developments":"\n query Developments (\n $developmentId: ID\n $companyId: String\n $offset: Int\n $limit: Int\n $sort: String\n $sortDir: SortDirectionEnum\n $search: String\n $tag: [String!]\n $agentId: [ID!]\n $neighborhoodId: ID\n $neighborhoodIds: [ID!]\n ) {\n developments (\n developmentId: $developmentId\n companyId: $companyId\n offset: $offset\n limit: $limit\n sort: $sort\n sortDir: $sortDir\n search: $search\n tag: $tag\n agentId: $agentId\n neighborhoodId: $neighborhoodId\n neighborhoodIds: $neighborhoodIds\n ) {\n id\n name\n description\n descriptionShort\n slug\n createdAt\n media {\n smallUrl\n mediumUrl\n largeUrl\n xLargeUrl\n xxLargeUrl\n height\n width\n }\n googlePlaceData\n seoTitle\n seoDescription\n tags\n }\n developmentsCount(\n companyId: $companyId\n search: $search\n tag: $tag\n agentId: $agentId\n neighborhoodId: $neighborhoodId\n neighborhoodIds: $neighborhoodIds\n ) {\n count\n }\n }\n","pois":"\n query PointsOfInterest (\n $regionId: UUID!\n $radiu
1509s: Int\n $offset: Int\n $limit: Int\n $categories: [AreasOfInterestCategories!]\n $sortBy: AreasOfInterestSorting\n ) {\n pois: areasOfInterest (\n input: {\n regionId: $regionId\n radius: $radius\n offset: $offset\n limit: $limit\n categories: $categories\n sortBy: $sortBy\n }\n ) {\n items {\n name\n imageUrl\n url\n reviewCount\n rating\n price\n displayPhone\n distance\n category\n location {\n address1\n address2\n address3\n city\n zipCode\n country\n state\n }\n }\n total\n }\n }\n","offices":"\n query Offices (\n $companyId: ID!\n $officeIds: [ID!]\n $officeMlsIds: [String!]\n $externalIds: [String!]\n $externalSource: String\n $agentId: ID\n $archived: Boolean\n $tags: [String!]\n $slug: String\n $search: String\n $sort: String\n $sortDir: SortDirection\n $offset: Int\n $limit: Int\n ) {\n offices (\n companyId: $companyId\n officeIds: $officeIds\n officeMlsIds: $officeMlsIds\n externalIds: $externalIds\n externalSource: $externalSource\n agentId: $agentId\n archived: $archived\n tags: $tags\n slug: $slug\n search: $search\n sort: $sort\n sortDir: $sortDir\n offset: $offset\n limit: $limit\n ) {\n items {\n id\n companyId\n name\n slug\n officeMlsId\n shortDescription\n fullDescription\n addressLine1\n addressLine2\n addressCity\n addressState\n addressPostalCode\n addressCountry\n phone\n email\n officeHours\n coordinates\n googlePlaceData\n seoTitle\n seoDescription\n fullAddress\n tags\n media {\n id\n originalUrl\n thumbnailUrl\n smallUrl\n mediumUrl\n largeUrl\n xLargeUrl\n xxLargeUrl\n }\n }\n total\n }\n }\n","teams":"\n query Teams (\n $companyId: ID\n $teamIds: [ID!]\n $agentId: ID\n $externalIds: [String!]\n $externalSource: String\n $slug: String\n $search: String\n $sort: String\n $sortDir: String\n $offset: Int\n $limit: Int\n ) {\n teams (\n companyId: $companyId\n teamIds: $teamIds\n agentId: $agentId\n externalIds: $externalIds\n externalSource: $externalSource\n slug: $slug\n search: $search\n sort: $sort\n sortDir: $sortDir\n offset: $offset\n limit: $limit\n ) {\n items {\n id\n companyId\n name\n email\n shortBio\n addressLine1\n addressLine2\n addressCity\n addressState\n addressCountry\n phoneNumber1\n phoneNumber2\n postalCode\n avatar {\n id\n thumbnailUrl\n smallUrl\n mediumUrl\n largeUrl\n }\n urlWebsite\n socialLinks\n socialLinksArray\n tags\n seoTitle\n seoDesc\n slug\n displayOrder\n }\n total\n }\n }\n"}, 1510 propertyPlaceholderImage: {"id":"23f0e196-8d4b-4f94-9e26-946d2b63776f","alt":null,"bytes":16235,"width":500,"format":"png","height":500,"pngUrl":"","shared":true,"curated":false,"duration":null,"largeUrl":"https://media-production.lp-cdn.com/cdn-cgi/image/format=auto,quality=85/https://media-production.lp-cdn.com/media/6700e3d4-afc0-4350-a66a-16894acc4ced","smallUrl":"https://media-production.lp-cdn.com/cdn-cgi/image/format=auto,quality=85/https://media-production.lp-cdn.com/media/6700e3d4-afc0-4350-a66a-16894acc4ced","authorUrl":null,"createdAt":"2025-09-14T23:54:13.970Z","mediumUrl":"https://media-production.lp-cdn.com/cdn-cgi/image/format=auto,quality=85/https://media-production.lp-cdn.com/media/6700e3d4-afc0-4350-a66a-16894acc4ced","sourceUrl":null,"updatedAt":"2025-09-14T23:54:13.970Z","xLargeUrl":"https://media-production.lp-cdn.com/cdn-cgi/image/format=auto,quality=85/https://media-production.lp-cdn.com/media/6700e3d4-afc0-4350-a66a-16894acc4ced","__typename":"Media","altTagText":null,"authorName":null,"sourceName":"r2","xxLargeUrl":"https://media-production.lp-cdn.com/cdn-cgi/image/format=auto,quality=85/https://media-production.lp-cdn.com/media/6700e3d4-afc0-4350-a66a-16894acc4ced","description":null,"displayName":"green-s-white-t-2","originalUrl":"https://media-production.lp-cdn.com/cdn-cgi/image/format=auto,quality=85/https://media-production.lp-cdn.com/media/6700e3d4-afc0-4350-a66a-16894acc4ced","resourceType":"image","thumbnailUrl":"https://media-production.lp-cdn.com/cdn-cgi/image/format=auto,quality=85,fit=scale-down,width=320/https://media-production.lp-cdn.com/media/6700e3d4-afc0-4350-a66a-16894acc4ced","originalFileName":"Green S White T (2)","cloudinaryPublicId":"6700e3d4-afc0-4350-a66a-16894acc4ced"} 1511 }, 1512 objectToQuerystring: objectToQuerystring, 1513 getPath: getPath, 1514 getMLSAutocomplete: getMLSAutocomplete, 1515 getMLSAutocompleteWithFilters: getMLSAutocompleteWithFilters, 1516 makeMlsLink: makeMlsLink, 1517 debounce: debounce, 1518 }; 1519 1520 var wowOffset = 100; 1521 </script>
1521 1522
1522<script> 1523 (()=>{var e={},t={};t={getVideoFirstFrame(e){let t="https://res.cloudinary.com/";if(!e||!e.startsWith(t))return null;let i=e.replace(t,"").replace("f_auto:video","f_auto").split("/");if(-1===i[1].toLowerCase().indexOf("video"))return null;let s=i[i.length-1];s.lastIndexOf(".")>-1?s=`${s.slice(0,s.lastIndexOf("."))}.jpg`:s+=".jpg",i[i.length-1]=s;let r=3;"videos"===i[1].toLowerCase()&&""!==i[2]&&(r=2);let a=/^(?:[a-z]{1,3}|\$\w+)_\S+$/;for(;r<i.length-1&&a.test(i[r]);)r++;return i.splice(r,0,"so_0,eo_0"),t+i.join("/")}},e=function(e,{isEqual:i}){let s=[{field:"thumbnailUrl",w:320},{field:"smallUrl",w:960},{field:"mediumUrl",w:1280},{field:"largeUrl",w:1920},{field:"xLargeUrl",w:2560},{field:"xxLargeUrl",w:3456}],r=function(e,t,i){let s="en-US";if(!e)return"";if("string"==typeof e){let t=e.trim();if(/[^+\-0-9.]/.test(t))return e;if(!(e=parseFloat(t)))return""}let r="number"==typeof i?i:0,a=Number.isInteger(e)?0:r,o={minimumFractionDigits:a,maximumFractionDigits:a};return"USD"===t?`$${e.toLocaleString(s,o)}`:"CAD"===t?`$${e.toLocaleString(s,o)} CAD`:"EUR"===t?`\u{20AC}${e.toLocaleString(s,o)}`:"GBP"===t?`\xa3${e.toLocaleString(s,o)}`:"PERCENT"===t?`${e}%`:"number"==typeof i&&i>-1?e.toLocaleString(s,{maximumFractionDigits:i}):e.toLocaleString(s)},a=function(e){switch(e){case"DAY":return"daily";case"MONTH":return"monthly";case"WEEK":return"weekly";case"YEAR":return"yearly";case"QUARTER":return"quarterly";case"HALF_YEAR":return"semi-annually";case"NIGHTLY":return"nightly";case"SEASONAL":return"seasonally";default:return""}},o=function(e){switch(e){case"DAY":return"day";case"WEEK":return"wk";case"MONTH":return"mo";case"YEAR":return"yr";case"QUARTER":return"3 mos";case"HALF_YEAR":return"6 mos";case"NIGHTLY":return"night";case"SEASONAL":return"season";default:return""}},n=function(e){switch(e){case"DAY":return"day";case"WEEK":return"week";case"MONTH":return"month";case"YEAR":return"year";case"QUARTER":return"quarter";case"HALF_YEAR":return"6 months";case"NIGHTLY":return"night";case"SEASONAL":return"season";default:return""}},l=function(e,t){let i,s,r=t||{};switch(r.mode){case"short":i=o(e),s=r.frequencySeparator||"/";break;case"standard":case"std":i=n(e),s=r.frequencySeparator||"/";break;default:i=a(e),s=r.frequencySeparator||" "}return i?r.frequencyTag||r.frequencyClass?`${s}<${r.frequencyTag||"span"}${r.frequencyClass?` class="${r.frequencyClass}"`:""}>${i}</${r.frequencyTag||"span"}>`:s+i:""};return{isEmpty(e,t){let i=!e||"string"==typeof e&&!e.trim()||!Object.keys(e).length;return t.fn?i?t.fn(this):t.inverse(this):i},ifEquals(e,t,s){return i(e,t)?s.fn(this):s.inverse(this)},"raw-helper":function(e){return e.fn()},striptags:e=>e?(e=(e=(e=e.replace(/<\!--(.|[\r\n])*?-\->/g,"")).replace(/<(xml|style|svg)("[^"]*"|'[^']*'|[^>])*>(.|[\r\n])*?<\/\1>/gi,"")).replace(/ /g," ")).replace(/<\/?("[^"]*"|'[^']*'|[^>])*(>|$)/g,""):"",striptagsLineBreaks:e=>e?(e=(e=(e=(e=e.replace(/<\!--(.|[\r\n])*?-\->/g,"")).replace(/<(xml|style|svg)("[^"]*"|'[^']*'|[^>])*>(.|[\r\n])*?<\/\1>/gi,"")).replace(/(<br\s*\/?>)|(<\/p\s*>)(?=.*(<\/p\s*>|<br\s*\/?>))/g," ")).replace(/ /g," ")).replace(/<\/?("[^"]*"|'[^']*'|[^>])*(>|$)/g,""):"",truncate:(e,t,i)=>e?e.length>t?"string"==typeof i?e.slice(0,t-i.length)+i:e.slice(0,t):e:"",setSubArray(e=[],t,i,s,r){r.data.root[s]=e.slice(t,i)},formatAreaUnit(e){switch(e){case"ACRE":return"Acres";case"SQUARE_METER":return"Sq.M.";case"SQUARE_YARD":return"Sq.Yd.";default:return"Sq.Ft."}},formatFrequency:a,formatFrequencyShort:o,lpFormatFrequency:(e,t)=>l(e,t&&t.hash),subArray(e,t,i,s){return e>=t&&e<i?s.fn(this):s.inverse(this)},formatPropertyStatus(e,t,i){let s="";switch(e){case"SOLD":s="Sold";break;case"FOR_SALE":s="For Sale";break;case"COMING_SOON":s="Coming Soon";break;case"INACTIVE":s="Inactive";break;case"POCKET_LISTING":s="Pocket Listing";break;case"PENDING":s="Pending";break;case"UNDER_CONTRACT":s="Under Contract";break;case"ACTIVE_UNDER_CONTRACT":s="Active Under Contract";break;default:s=e}return("Sold"===s||"Leased"===s)&&t&&"string"==typeof i&&i&&(s+=` on ${i}`),s},formatGrade(e){switch(e){case"UNDERGRADUATE_COURSES":return"Undergrad";case"PRE_KINDERGARTEN":return"PreK";case"KINDERGARTEN":return"K";case"FIRST_GRADE":return"1st";case"SECOND_GRADE":return"2nd";case"THIRD_GRADE":return"3rd";case"FOURTH_GRADE":return"4th";case"FIFTH_GRADE":return"5th";case"SIXTH_GRADE":return"6th";case"SEVENTH_GRADE":return"7th";case"EIGHTH_GRADE":return"8th";case"NINTH_GRADE":return"9th";case"TENTH_GRADE":return"10th";case"ELEVENTH_GRADE":return"11th";case"TWELFTH_GRADE":return"12th";default:return""}},encodeURI:e=>encodeURI(e),encodeURIComponent:e=>encodeURIComponent(e),hbFormatDate(e,t){if(!e)return"";let i="current"===e?new Date:new Date(e);if(Number.isNaN(i.getTime()))return"";if("YYYY"===t||"year"===t)return`${i.getFullYear()}`;if("MM/DD/YY"===t){let e=i.getMonth()+1;return e<10&&(e=`0${e.toString()}`),`${e}/${i.getDate()}/${i.getFullYear().toString().substr(-2)}`}return`${["January","February","March","April","May","June","July","August","September","October","November","December"][i.getMonth()]} ${i.getDate()}, ${i.getFullYear()}`},openHousesFormat(e,t,i){if(!e||!t)return"";let s=e=>{let t=e.getHours();t>12&&(t-=12);let i=`${t}:${e.getMinutes()>9?e.getMinutes():"0"+e.getMinutes()}`;return e.getHours()>11?i+="PM":i+="AM",i},r="",a=e,o=t;
1523i&&(a=new Date(e).toLocaleString("en-US",{timeZone:i}),o=new Date(t).toLocaleString("en-US",{timeZone:i}),[,,,r]=new Date(t).toLocaleString("en-US",{timeZone:i,timeZoneName:"short"}).split(" "));let n=new Date(a),l=n.toLocaleDateString("en-US"),d=s(n),c=s(new Date(o));return`${l} ${d} - ${c} ${r}`},math:(e,t,i)=>(e=parseFloat(e),({"+":e+(i=parseFloat(i)),"-":e-i,"*":e*i,"/":e/i,"%":e%i})[t]),findByKey(e,t,i,s){let r=(e||[]).find(e=>e[t]===i);return s.fn(r)},capitalize(e,t,i){let s;return"string"==typeof e&&e.length&&(s=e.toLowerCase().split(t).map(e=>e.charAt(0).toUpperCase()+e.slice(1)).join(" ").toString()),s},and:(...e)=>Array.prototype.slice.call(e).every(Boolean),or:(...e)=>Array.prototype.slice.call(e,0,-1).some(Boolean),not:e=>!e,orderByIds(t,i,s){let r="",a=null;s.data&&(a=e.createFrame(s.data));let o=(i||[]).filter(Boolean);if(o&&o.length){let e=0;r=o.reduce((i,r,o)=>{let n=(t||[]).find(e=>e.id===r);return n?(a&&(a.index=o-e),i+s.fn(n,{data:a})):(e+=1,i)},"")}else for(let e=0,i=(t||[]).length;e<i;e++)a&&(a.index=e),r+=s.fn(t[e],{data:a});return r},ifIn(e,t,i){return t&&t.indexOf(e)>-1?i.fn(this):i.inverse(this)},partial:(t,i)=>(e.registerPartial(t,e.compile(i.fn())),`
1523<script type="text/x-handlebars-template" class="${t} pagination-script">${i.fn()}<\/script>`),numCompare(e,t,i,s){return({"==":function(e,t){return e==t},"===":function(e,t){return e===t},"!=":function(e,t){return e!=t},"<":function(e,t){return e<t},">":function(e,t){return e>t},"<=":function(e,t){return e<=t},">=":function(e,t){return e>=t}})[i](e,t)?!s.fn||s.fn(this):!!s.fn&&s.inverse(this)},lpFormatNumber:r,arrayToHtmlList:(e,t)=>e.reduce((e,t)=>{try{if("object"==typeof t||null===t)return e;return e+=`<li>${t}</li>`}catch(e){}},""),join:(e,t,i)=>e&&e.join?e.join("string"==typeof t?t:", "):"",dedupe(t,i,s){let r=null,a=0,o=new Set;return s.data&&(r=e.createFrame(s.data)),(t||[]).reduce((e,t,n)=>{let l=i?t[i]:t;return!o.has(l)||i&&void 0===l?(o.add(l),r&&(r.index=n-a),e+s.fn(t,{data:r})):(a+=1,e)},"")},JSONstringify:(e,t)=>JSON.stringify(e),formatPropertyPrice(...t){let i=t[t.length-1].hash,s=t.length>1?t[0]:i.property,a=i.precision||0;t.length>2&&(i.mode=t[1]),i.mode||(i.mode="short");let o=t.length>3?t[2]:i.separator;if("string"!=typeof o&&(o=" | "),s.isPasswordProtected)return"Exclusive Listing";let n=t.length>4?t[3]:i.priceUponRequestText;if("string"!=typeof n&&(n="Price Upon Request"),s.priceUponRequest)return n;let d=s.salesPrice,c=null;"SOLD"!==s.status&&"Leased"!==s.status&&s.reducedPrice&&(i.reducedClass?c=s.reducedPrice:d=s.reducedPrice);let u="";c&&(u+=`<${i.reducedTag||"span"} class="${i.reducedClass}">${r(c,s.currency,a)}</${i.reducedTag||"span"}>`),d&&(d=r(d,s.currency,a),i.priceTag||i.priceClass?u+=`<${i.priceTag||"span"}${i.priceClass?` class="${i.priceClass}"`:""}>${d}</${i.priceTag||"span"}>`:u+=d);let h=s.leasePrice&&r(s.leasePrice,s.currency,a);if(h){u&&(u+=o);let e=`${h}${l(s.leasePeriod,i)}`;i.leaseTag||i.leaseClass?u+=`<${i.leaseTag||"span"}${i.leaseClass?` class="${i.leaseClass}"`:""}>${e}</${i.leaseTag||"span"}>`:u+=e}
1523return new e.SafeString(u)},mediaImage(t,i={}){if(!t)return;let{lazy:r,...a}=i.hash,o="",n="";if("string"==typeof t)o=t;else{let e={},{height:r,width:l,altTagText:d}=t;s.forEach(i=>{t[i.field]&&!e[t[i.field]]&&(e[t[i.field]]=i.w)});let c=Object.keys(e);if(!c.length)return;if(d&&(a.alt=d),r&&l&&(r>=l&&(a.class?a.class+=" portrait":a.class="portrait"),"setDims"in i.hash&&(a.width=l,a.height=r)),c.length>1&&l&&l<e[c[c.length-1]]){let t=c.findIndex(t=>e[t]>=l);c.splice(t+1),e[c[c.length-1]]=l}c.length>1&&(n=c.map(t=>`${t} ${e[t]}w`).join(", "),c.sort((t,i)=>Math.abs(e[t]-1280)-Math.abs(e[i]-1280))),o=c[0]}delete a.setDims,n||delete a.sizes,"alt"in a||(a.alt=""),!("loading"in a)&&(i?.data?.root?.sectionIndex>1||r)&&(a.loading="lazy");let l=Object.keys(a).map(t=>`${e.escapeExpression(t)}="${e.escapeExpression(a[t])}"`).join(" ");return new e.SafeString(`<img src="${o}"${n?` srcset="${n}"`:""}${l?` ${l}`:""}>`)},bgImage:e=>e?"string"==typeof e?e:e.largeUrl||e.url||"":"",concat(...e){let t="";for(let i in e)null!==e[i]&&void 0!==e[i]&&"object"!=typeof e[i]&&(t+=e[i]);return t},setVideoExtension(e,t){if(!e||!t)return"";let i=new URL(e);if("res.cloudinary.com"!==i.host)return i.pathname.endsWith(`.${t}`)?e:"";let s=i.pathname.lastIndexOf("."),r=i.pathname;return -1!==s&&(r=i.pathname.substr(0,s)),i.pathname=`${r}.${t}`,i.toString()},addVideoSources(e){if(!e)return"";if(!e.includes("res.cloudinary.com"))return`<source data-src="${e}">`;let t=e.replace(/\.(?:3gp|mpeg|mp4|m4v|m4p|ogv|ogg|mov|webm)$/,"");return[{format:"webm",codec:"vp9",htmlCodecs:";codecs=vp9"},{format:"mp4",codec:"h265",htmlCodecs:";codecs=hvc1"},{format:"mp4",codec:"h264",htmlCodecs:""}].map(e=>{let i=`${t.replace(/f_auto(?::video)?(?:,q_auto(?::\w+)?)?/,`f_${e.format},vc_${e.codec},q_auto:best,w_1920,c_limit`)}.${e.format}`;return`<source data-src="${i}" type="video/${e.format}${e.htmlCodecs}">`}).join("\n")},cloudinaryVideoFirstFrame:t.getVideoFirstFrame,initials(e,t){if(!e)return"";t?.hash?.endChar&&(e=e.split(t.hash.endChar)[0]);let i=+t?.hash?.maxChars||2,s=e.match(/\b\w/g)?.slice(0,i);return s?(t?.hash?.addText&&(s=s.map(e=>e+t.hash.addText)),s.join(t?.hash?.joinWith||"").toUpperCase()):""},normalizePhone(e){if(!e)return"";let t=String(e).trim();return(t.startsWith("+")?"+":"")+t.replace(/\D/g,"")}}};class i{constructor(e,t,i){if(this.config=e,this.window=t,this.document=i,!this.destroy)throw Error("Controllers must implement a deconstructor")}}let s="lp_lead_form_conversion_fired";function r(e,t){if(e&&t&&"function"==typeof t.sendGoogleTagManagerEvent&&!function(e){try{return"true"===e.sessionStorage.getItem(s)}catch{return!1}}(e))try{t.sendGoogleTagManagerEvent("event","generate_lead");try{e.sessionStorage.setItem(s,"true")}catch{}}catch{}}function a(e){return!!e&&(!!e.expired||Date.now()>=e.expiresAt)}let o="/api/v1/home-valuation";class n extends i{destroy(){}_cleanAddressString(e){if(!e||"string"!=typeof e)return"";let t=e.trim();if(t.includes("User entered address:")){let e=t.match(/User entered address:\s*\n?\s*([^\n]+)/);e&&e[1]&&(t=e[1].trim())}let i=t.indexOf(", call time frame:");return -1!==i&&(t=t.substring(0,i).trim()),t}_transformAddressComponents(e){let t=t=>(e.find(e=>e.componentType===t)||{}).componentName?.text,i={},s=t("street_number"),r=t("route"),a=t("administrative_area_level_1"),o=t("postal_code"),n=t("subpremise"),l=t("locality")||t("sublocality_level_1")||t("neighborhood");return s&&(i.streetNumber=s),r&&(i.streetName=r),l&&(i.city=l),a&&(i.state=a),o&&(i.zipcode=o),n&&(i.addressLine2=n),i}_extractAddressAndCoordinates(e){let t=null,i=null;if(e?.result){let{result:s}=e;s.address?.addressComponents&&(t=this._transformAddressComponents(s.address.addressComponents)),s.geocode?.location&&(i={latitude:s.geocode.location.latitude,longitude:s.geocode.location.longitude})}return{structuredAddress:t,coordinates:i}}_filterEmptyStrings(e){let t={};for(let[i,s]of Object.entries(e))""!==s&&null!=s&&(t[i]=s);return t}_getRawAddress(e){let t=e.activity.content||{},i=e.activity.comments_attributes?.[0]?.text;return[t.address,t["property-address"],t.property_address,t.Property_Address,i,t.message,t.homeValuationAddress,t.propertyAddress].map(e=>e&&this._cleanAddressString(e)).find(Boolean)||""}_logLeadEvent(e,t,i=null){let s={event:e,companyId:this.config.companyId,websiteId:this.config.websiteId,timestamp:new Date().toISOString(),hasEmail:!!t.activity?.author_email,hasAddress:!!this._getRawAddress(t)};if(i&&(s.errorMessage=i.userMessage||(i.status?`Request failed with status ${i.status}`:"An error occurred"),s.errorName=i.name,s.errorStatus=i.status),console.error(`[HomeValuation] ${e}`,JSON.stringify(s)),this.window.posthog)try{this.window.posthog.capture(e,s)}catch(e){console.error("[HomeValuation] PostHog capture failed:",e)}}_getUserFriendlyErrorMessage(e){return"AbortError"===e.name||e.message?.includes("timeout")?"Connection timed out. Please try again.":"TypeError"===e.name&&e.message?.includes("fetch")?"Unable to connect. Please check your internet connection and try again.":503===e.status||502===e.status||504===e.status?"Service temporarily unavailable. Please try again in a moment.":400===e.status?"Please check your information and try again.":"Something went wrong. Please try again or c
1523ontact us directly."}_formatStructuredAddress(e){if(!e||0===Object.keys(e).length)return"";let t=[];return t.push([e.streetNumber,e.streetName,e.addressLine2].filter(Boolean).join(" ")),t.push([[e.city,e.state].filter(Boolean).join(", "),e.zipcode].filter(Boolean).join(" ")),t.filter(Boolean).join(", ")}_buildHomeValuationData(e,t,i,s){let r=this._formatStructuredAddress(i)||this._getRawAddress(e);if(!r)throw Error("Unable to extract home valuation address from form data");let a={companyId:e.companyId,homeValuationAddress:r,homeValuationEstimate:t?new Intl.NumberFormat("en-US",{style:"currency",currency:"USD",maximumFractionDigits:0,minimumFractionDigits:0}).format(t):null,websiteId:e.page.websiteId,sourceUrl:e.activity.source_url},o={leadEmailAddress:e.activity.author_email,leadFullName:e.activity.author_name,leadFirstName:e.activity.firstName,leadLastName:e.activity.lastName,leadPhoneNumber:e.activity.author_phone,parcelId:e.activity.content?.parcelId,resourceId:e.page.pageMeta?.resourceId,pageId:e.page.pageId,sourceResource:e.page.pageMeta?.s
1523ourceResource,pageElementId:e.page.pageMeta?.pageElementId,formId:e.page.pageMeta?.formId,utmSource:e.activity.content?.utm_source,utmMedium:e.activity.content?.utm_medium,utmCampaign:e.activity.content?.utm_campaign,utmTerm:e.activity.content?.utm_term,utmContent:e.activity.content?.utm_content,utmId:e.activity.content?.utm_id,timeToSell:e.activity.content?.timeToSell,lookingToBuy:e.activity.content?.lookingToBuy,consented:!!e.activity.content?.termsAccepted,referrer:e.referrer,content:e.activity.content||{},fields:e.fields||{}},n=this._filterEmptyStrings(o);return{...a,...n,...i&&{address:i},...s&&{coordinates:s}}}async _validateAddressSafely(e){if(!e)return console.error("Home valuation: No address found in form data"),null;try{return await this._validateAddressWithGoogleMaps(e)}catch(e){throw console.error("Error validating address with Google Maps:",e),e.userMessage=this._getUserFriendlyErrorMessage(e),e}}async _getHomeValuationEstimateSafely(e){try{return await this._getHomeValuationEstimate(e)}catch(e){throw console.error("Error getting home valuation estimate:",e),e.userMessage=this._getUserFriendlyErrorMessage(e),e}}_isSafeRedirectUrl(e){try{let{protocol:t}=new URL(e,this.window.location.href);return"https:"===t||"http:"===t}catch{return!1}}_parseResponsePayload(e){try{return e?JSON.parse(e):{}}catch{return{raw:e}}}_createResponseError(e,t){let i=Error(e&&"object"==typeof e&&Object.keys(e).length?e.message||JSON.stringify(e):"Request failed");return e&&"object"==typeof e&&Object.keys(e).length&&Object.assign(i,e),i.status=t,i}_resolveValuationApiBase(){let{config:e}=this;if(void 0!==e.valuationApiBase&&null!==e.valuationApiBase&&(""!==e.valuationApiBase||!e.isBuilder))return e.valuationApiBase;if(e.websiteApiGatewayUrl)return e.websiteApiGatewayUrl;throw Error("websiteApiGatewayUrl/valuationApiBase not configured for home valuation")}async _submitLead(e,t,i){let s=new AbortController,r=setTimeout(()=>s.abort(),1e4);try{let o=await fetch(e,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(t),signal:s.signal});clearTimeout(r);let n=await o.text(),l=this._parseResponsePayload(n);if(!o.ok)throw this._createResponseError(l,o.status);if(l&&"success"===l.status&&l.redirectUrl){if(a(i))return l;if(!this._isSafeRedirectUrl(l.redirectUrl))return console.error("Home valuation: refusing redirect to unsupported protocol"),l;return this.window.location.href=l.redirectUrl,{redirected:!0,url:l.redirectUrl}}return l}catch(e){throw clearTimeout(r),e}}async _submitHomeValuationRequest(e){let t=this._resolveValuationApiBase();this._logLeadEvent("home_valuation_submission_started",e);try{let i=this._getRawAddress(e),s=null;try{s=await this._validateAddressSafely(i)}catch(t){throw this._logLeadEvent("home_valuation_address_validation_failed",e,t),t}let r=null;try{r=await this._getHomeValuationEstimateSafely(s)}catch(t){this._logLeadEvent("home_valuation_estimate_failed",e,t),r=null}let{structuredAddress:a,coordinates:n}=this._extractAddressAndCoordinates(s),l=`${t}${o}`,d=this._buildHomeValuationData(e,r,a,n),c=await this._submitLead(l,d,e.deadline);return this._logLeadEvent("home_valuation_submission_success",e),c}catch(t){throw t.userMessage||(t.userMessage=this._getUserFriendlyErrorMessage(t)),this._logLeadEvent("home_valuation_submission_failed",e,t),t}}async _validateAddressWithGoogleMaps(e){let{config:t,window:i}=this,s=t.googleMapsAPIKey;if(!s&&i.luxuryPresence?.mapApiLoader&&(s=await i.luxuryPresence.mapApiLoader.getMapApiKey()),!s)throw Error("Google Maps API key not configured");let r=new AbortController,a=setTimeout(()=>r.abort(),1e4);try{let t=await fetch(`https://addressvalidation.googleapis.com/v1:validateAddress?key=${s}`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({address:{addressLines:[e]},enableUspsCass:!1}),signal:r.signal});if(clearTimeout(a),!t.ok){let e=Error(`Address validation failed: ${t.status}`);throw e.status=t.status,e}return t.json()}catch(e){throw clearTimeout(a),e}}_hasMandatoryAddressFields(e){return!!(e.streetNumber&&e.streetName&&e.city&&e.state&&e.zipcode)}_logMissingAddressFields(e){let t=[];e.streetNumber||t.push("streetNumber"),e.streetName||t.push("streetName"),e.city||t.push("city"),e.state||t.push("state"),e.zipcode||t.push("zipcode"),console.log("Home valuation estimate skipped - missing required fields:",t.join(", "),"Available fields:",Object.keys(e).join(", "))}_buildAddressQueryString(e){return Object.entries(e).map(([e,t])=>`${encodeURIComponent(e)}=${encodeURIComponent(t)}`).join("&")}async _getHomeValuationEstimate(e=null){let t=`${this._resolveValuationApiBase()}${o}`;if(!e?.result?.address?.addressComponents)return null;let i=this._transformAddressComponents(e.result.address.addressComponents);if(!this._hasMandatoryAddressFields(i))return this._logMissingAddressFields(i),null;let s=this._buildAddressQueryString(i),r=`${t}?${s}`,a=new AbortController,n=setTimeout(()=>a.abort(),1e4);try{let e=await fetch(r,{headers:{Accept:"application/json"},signal:a.signal});if(clearTimeout(n),!e.ok){let t=Error(`Home valuation estimate failed: ${e.status}`);throw t.status=e.status,t}let t=await e.json();return t?.valueDollars??null}catch(e){throw clearTimeout(n),e}}}let l="middleName",d="redirect-pending",c=["name","firstName","lastName",l,"email","phone","phoneNumber","source","message","mlsId","sourceUrl"],u="lp_map_key_failed",h="oauthSuccess",p={cookieyes:{eventName:"cookieyes_consent_update",hasAnalyticsConsent:e=>(function(e){let t=e.cookie.match(/cookieyes-consent=([^;
1523]+)/);if(!t)return!1;try{let e=decodeURIComponent(t[1]);if(e.includes(",")){let t=e.split(",").map(e=>e.trim());if(t.some(e=>e.includes(":")))return t.some(e=>"analytics:yes"===e);return t.includes("analytics")}return e.includes("analytics")}catch(e){return!1}})(e),isAnalyticsAccepted:e=>Array.isArray(e?.accepted)&&e.accepted.includes("analytics")},"lp-consent":{eventName:"lp_consent_update",hasAnalyticsConsent:(e,t)=>!!t.__lpConsent?.state?.c?.analytics,isAnalyticsAccepted:e=>!!e?.choices?.analytics}};function m(e){return"object"==typeof e&&null!==e&&!Array.isArray(e)}function g(e,t){t.forEach(t=>{let i=e[t];Array.isArray(i)&&0===i.length&&delete e[t]})}function y(e,t,i,s){let r=t.map(t=>(function e(t){return Array.isArray(t)?t.flatMap(t=>e(t)):"string"==typeof t?t.split(/\s+/).filter(Boolean):null==t?[]:[t]})(e[t])),a=s?.merge?r.flat():r.find(e=>e.length>0)??[];t.forEach(t=>{delete e[t]}),a.length>0&&(e[i]=[...new Set(a)])}function f(e){let t={...e};if(t.urlWebsite||(t.urlWebsite=null),t.urlYoutube=null,t.urlFacebook=null,t.urlInstagram=null,t.urlLinkedin=null,t.urlPodcast=null,t.urlTwitter=null,Array.isArray(e.socialLinks)){let i=[...e.socialLinks].sort((e,t)=>{let i=e.type?.toLowerCase()||"",s=t.type?.toLowerCase()||"";return i.localeCompare(s)});t.socialLinks=i;let s={youtube:"urlYoutube",facebook:"urlFacebook",instagram:"urlInstagram",linkedin:"urlLinkedin",podcast:"urlPodcast",twitter:"urlTwitter"};i.forEach(e=>{let i=s[e.type?.toLowerCase()??""];i&&(t[i]=e.link)})}return t}function w(e){return e&&Array.isArray(e)?e.map(e=>f(e)):e}function v(e){let{region:t}=e;if(!m(t))return e;let{schools:i,pois:s,...r}=t,a={...r,schools:m(i)?i.data??[]:[],...Array.isArray(s)?{pois:s.map(e=>({...e,category:"string"==typeof e.category?e.category.toUpperCase():e.category}))}:{}};return{...e,region:a}}function b(e){return e&&Array.isArray(e)?e.map(e=>v(e)):e}function S(e){let t=e.featuresAndAmenities;if(!Array.isArray(t))return e;let i=t.map(e=>({featureIds:e.featureIds??[],features:e.features??[],description:e.description}));return{...e,featuresAndAmenities:i}}function _(e){return e&&Array.isArray(e)?e.map(e=>S(e)):e}function E(e,t){return m(e)?t(e):e}function I(e,t){return Array.isArray(e)?t(e):e}let A=new class{constructor(e){this.isBuilder=!1,this.companyId=null,this.websiteId=null,this.pageId=null,this.shareId=null,this.pageMeta=null,this.websiteApiGatewayUrl=null,this.buyerSellerServiceUrl=null,this.leadIngesterUrl=null,this.divolteServiceUrl=null,this.eventBus=null,this.templateId=null,this.myhomeDashboardEnabled=!1,this.mlsEnabled=!1,this.hstValuationRedirectEnabled=!1,this.hvStepTwoCaptureEnabled=!1,this.googleMapsAPIKey=null}get valuationApiBase(){return this.isBuilder?this.websiteApiGatewayUrl:""}destroy(){}setPage(e,t={}){this.pageId=e,this.shareId=t.shareId||null,this.pageMeta={sourceResource:t.sourceResource,pageElementId:t.pageElementId,pageQueryVariables:t.pageQueryVariables||{}}}setIsBuilder(e){this.isBuilder=e}setCompany(e,t={}){this.companyId=e}setWebsite(e,t={}){this.websiteId=e,t.myhomeDashboardEnabled&&(this.myhomeDashboardEnabled=t.myhomeDashboardEnabled),t.mlsEnabled&&(this.mlsEnabled=t.mlsEnabled),t.hstValuationRedirectEnabled&&(this.hstValuationRedirectEnabled=t.hstValuationRedirectEnabled),t.hvStepTwoCaptureEnabled&&(this.hvStepTwoCaptureEnabled=t.hvStepTwoCaptureEnabled)}setWebsiteApiGatewayUrl(e,t={}){this.websiteApiGatewayUrl=e}setBuyerSellerServiceUrl(e,t={}){this.buyerSellerServiceUrl=e}setDivolteServiceUrl(e,t={}){this.divolteServiceUrl=e}setEventBusUrl(e,t={}){this.eventBusUrl=e}setTemplateId(e,t={}){this.templateId=e}setLeadIngesterUrl(e,t={}){this.leadIngesterUrl=e}setGoogleMapsAPIKey(e,t={}){this.googleMapsAPIKey=e}setEventBus({enabled:e,apiKey:t,url:i}){this.eventBus={enabled:e,apiKey:t,url:i}}}({}),L=new class extends i{constructor(e,t,i){super(e,t,i),this.setLoginState=this.setLoginState.bind(this),this.pageId=null,this.modals=[],this.exitModalTriggered={},this.exitModalEventListeners=[]}initialize(e){try{let{config:t,document:i}=this;this.pageId=t.pageId,this.modals=i.querySelectorAll("body > #modals >
1523 .modal"),e.modals.forEach(e=>{this._attachModalHandler(e)})}catch(e){console.log(e)}}destroy(){let{document:e}=this;this.exitModalEventListeners.forEach(t=>{e.removeEventListener("mouseout",t)}),this.modals=[],this.exitModalTriggered={},this.exitModalEventListeners=[]}setModalWithExpiry(e){let{window:t}=this,i=new Date().getTime()+864e5,s=`modal-controller-${e}`;try{t.localStorage.setItem(s,JSON.stringify(i))}catch(e){}}setLoginState(){let{window:e}=this;try{e.localStorage.setItem("isSignedUp","true")}catch(e){}}getModalWithExpiry(e){let{window:t}=this,i=t.localStorage,s=i.getItem(`modal-controller-${e}`);if(!s)return!1;let r=JSON.parse(s);return!(new Date().getTime()>r)||(i.removeItem(`modal-controller-${e}`),!1)}show(e,t={}){let{window:i}=this,s=this.getModalWithExpiry(e);(e&&!s||!0===t.forced)&&(i.lpUI.showModal(`modal-${e}`,t),this.setModalWithExpiry(e))}_attachModalHandler(e){let{pageId:t}=this,{trigger:i,pageSpecific:s}=e;(!s||e.pages.map(e=>e.pageId).includes(t))&&("EXIT"===i?this._exitModalHandler(e):"TIMER"===i?this._timerModalHandler(e):"FORCED"===i&&this._forcedModalHandler(e))}_exitModalHandler(e){let t=this,{document:i,exitModalTriggered:s}=this,{modalId:r}=e;function a(e){!s[r]&&(e.toElement||e.relatedTarget||(t.show(r),s[r]=!0))}i.addEventListener("mouseout",a),this.exitModalEventListeners.push(a)}_timerModalHandler(e){let{modalId:t,timerDelay:i}=e;setTimeout(()=>{this.show(t)},i)}_forcedModalHandler(e){let{modalId:t}=e,{window:i,document:s}=this;if("true"!==i.localStorage.getItem("isSignedUp")){let e=s.querySelector(`#modal-${t}`),r=e?.querySelector("form"),a=r?.dataset.delay||2e3;r.addEventListener("formsubmitted",()=>{this.setLoginState()}),i.addEventListener("oauthSuccess",()=>{this.setLoginState(),r.classList.add("success"),setTimeout(()=>{i.lpUI.hideModal(`modal-${t}`),r.reset(),r.classList.remove("success")},a)}),this.show(t,{forced:!0})}}}(A,window,document),$=new class extends i{constructor(e,t,i){super(e,t,i),this._boundClickHandler=this._buttonClickHandler.bind(this)}initialize(e={}){try{let{document:e}=this;e.body.removeEventListener("click",this._boundClickHandler),e.body.addEventListener("click",this._boundClickHandler)}catch(e){console.error(e)}}destroy(){let{document:e}=this;e.body.removeEventListener("click",this._boundClickHandler)}_buttonClickHandler(e){this._handleButtonClick(e).catch(e=>console.error(e))}async _handleButtonClick(e){let{window:t,document:i}=this,s=e.target.closest("button, a");if(!s)return;let r=s.dataset.type||"",a=s.href||s.dataset.href||"",o=s.target||"",{submit:n}=s.dataset;if(n){try{await this._handleSubmit(s)}catch(e){console.error(e)}((e,t=!1)=>{if(e){if(t)return window.open(e);window.location.assign(e)}})(a,"_blank"===o)}if(this._trackConversion(s),"VIDEO"===r)return void this._handleVideoButton(s);if("CONTACT_US"===r)return void this._handleContactUsButton(s);if("SUBSCRIBE"===r)return void t.lpUI.showModal("modal-global-subscribe");if("MY_ACCOUNT"===r)return void t.lpUI.showModal("modal-global-my-account");if("SHARE_POPUP"===r){let t=s.querySelector(".share-popup");t&&(t.style.display="flex"),e.stopPropagation();return}if("MODAL_"===r.substring(0,6)){let e=r.substring(6);t.lpUI.showModal(`modal-${e}`);return}if(a?.startsWith("mailto:")){let e=a.substring(7);i.sendGoogleAnalyticsEvent({hitType:"event",eventCategory:"button",eventAction:"click",eventLabel:"Email",eventValue:e})}else if(a?.startsWith("tel:")){let e=a.substring(4);i.sendGoogleAnalyticsEvent({hitType:"event",eventCategory:"button",eventAction:"click",eventLabel:"Phone",eventValue:e})}}async _handleSubmit(e){let t=e.closest("form"),{window:i}=this;return t?await i.luxuryPresence.contactForms.submitForm(t):null}_getVimeoSrc(e){if(!e||!e.includes("vimeo.com")||e.length>2e3)return null;let t=e.match(/(?:(?:www\.)?vimeo\.com\/(?:showcase\/\d+(?:\/video\/|\?video[=/])|channels\/(?:\w+\/)?|groups\/(?:[^/]*)\/videos\/|)|player\.vimeo\.com\/video\/)(\d+)(?:(?:\?.*&*h=|\/)+([\d,a-f]+))?/);if(!t)return null;let[,i,s]=t,r=`https://player.vimeo.com/video/${i}?`;return s&&(r+=`h=${s}&`),r+="autoplay=1"}_handleVideoButton(e){let{document:t}=this,i=e.closest("section"),{src:s}=e.dataset,r="";if(s&&(s.includes("youtube.com")||s.includes("youtu.be"))&&!s.includes("youtube.com/embed")){let e=s.match(/(?:youtube\.com\/\S*(?:(?:\/e(?:mbed))?\/|watch\?(?:\S*?&?v=)
1523)|youtu.be\/)([a-zA-Z0-9_-]{6,11})/);e&&(r=e[1])}let a=this._getVimeoSrc(s);if(r?s=`https://youtube.com/embed/${r}?autoplay=1&controls=0`:a&&(s=a),!s||!i)return;let o=s.endsWith(".mp4")||s.endsWith(".webm")||s.includes("cloudinary.com"),n=` 1524 <div id="modal-${i.id}" class="modal visible"> 1525 <div class="modal-content"> 1526 <div class="lightbox-video"> 1527 <div class="video-player"> 1528 <div class="embed-container"> 1529 ${o?`<video controls autoplay src="${s}"></video>`:`<iframe frameborder="0" allowfullscreen="1" allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture" title="YouTube video player" width="100%" height="100%" src="${s}"></iframe>`} 1530 </div> 1531 </div> 1532 </div> 1533 </div> 1534 <button class="close lp-close" type="button" aria-label="close modal"><span class="lp-close-icon" aria-hidden="true"></span></button> 1535 </div> 1536 `;t.body.insertAdjacentHTML("beforeend",n);let l=t.getElementById(`modal-${i.id}`);l.querySelector(".close").addEventListener("click",()=>{l.remove()})}_handleContactUsButton(e){let{window:t,document:i}=this;i.sendGoogleAnalyticsEvent({hitType:"event",eventCategory:"button",eventAction:"click",eventLabel:"contact"}),t.lpUI.showModal("modal-global-contact-us",{scrollLock:!0})}_trackConversion(e){let{window:t,document:i}=this,{gtagConversionId:s,gtagConversionLabel:r,fbEventName:a}=e.dataset;if(s&&r){t.dataLayer&&t.dataLayer.length&&(t.dataLayer.some(e=>e.length&&"config"===e[0]&&e[1]===s)||i.sendGoogleTagManagerEvent("config",s));let e=`${s}/${r}`;i.sendGoogleTagManagerEvent("event","conversion",{send_to:e})}t.fbq&&a&&t.fbq("track",a,{})}}(A,window,document),x=new class extends i{constructor(e,t,i){super(e,t,i),this.validatedForms=[]}initialize(e={}){try{let{window:t,document:i}=this,{selector:s}=e,r=[];if(r=s?i.querySelectorAll(`${s} form[data-type="contact-form"]`):i.querySelectorAll('form[data-type="contact-form"]'),i.querySelectorAll('input[type="tel"]').length&&!t.libphonenumber&&t?.luxuryPresence?.libs){let{loadJs:e,jsLibsMap:i}=t.luxuryPresence.libs,{libphonenumber:s}=i;e(s.jsSrc,this.attachValidation.bind(this,r))}else this.attachValidation(r);this.validatedForms=this.validatedForms.concat(r)}catch(e){console.log(e)}}destroy(){this.validatedForms=[]}attachValidation(e){e.forEach(e=>{e.querySelectorAll("input, select, textarea").forEach(e=>{this.applyFieldValidation(e)})})}applyFieldValidation(e){"tel"===e.getAttribute("type")&&this._applyPhoneValidation(e)}_applyPhoneValidation(e){let{window:t}=this;if(t.libphonenumber){let i=t.libphonenumber.isValidPhoneNumber;e.addEventListener("keyup",function(){if(this.hasAttribute("required")||this.value.replace(/\s/g,"").length)try{let e=this.value;i(e,"US")?this.setCustomValidity(""):this.setCustomValidity("Please enter a valid phone number.")}catch(e){this.setCustomValidity("Please enter a valid phone number.")}else this.setCustomValidity("")})}}}(A,window,document),T=new class extends i{constructor(e,t,i){super(e,t,i),this.forms=[],this.homeValuationService=new n(e,t,i)}initialize(e={}){try{let{document:t}=this,{selector:i}=e,s=[];(s=i?t.querySelectorAll(`${i} form[data-type="contact-form"]`):t.querySelectorAll('form[data-type="contact-form"]')).forEach(e=>{this._attachSubmitHandler(e)}),this.forms=this.forms.concat(s)}catch(e){console.log(e)}}destroy(){this.forms=[]}submitForm(e){this._handleSubmit(null,e).catch(e=>console.error(e))}_attachValidation(e){let{window:t}=this;e.querySelectorAll("input, select, textarea").forEach(e=>{t.luxuryPresence.validation.applyFieldValidation(e)})}_attachSubmitHandler(e){e.addEventListener("submit",t=>this._handleSubmit(t,e))}_extractFormValues(e){let t=new FormData(e),i={},s=[],r=/^name(?:-\d+)?$/;return t.forEach((e,t)=>{if("string"==typeof e){let a=e.trim();r.test(t)&&a&&s.push(a);let o=i[t];i[t]=o?`${o} ${a}`:a}else i[t]=e}),s.length?i.name=s.join(" ").trim():!i.name&&i.firstName&&(i.name=i.firstName,i.lastName&&(i.name+=` ${i.lastName}`)),this._deriveNameParts(i)}_deriveNameParts(e){if(e.firstName||!e.name)return e;let t=e.name.indexOf(" ");return -1===t?{...e,firstName:e.name}:{...e,firstName:e.name.slice(0,t),lastName:e.lastName||e.name.slice(t+1).trim()}}_buildSubmissionData(e,t,i){let{window:s,config:r}=this,a=Object.keys(e).filter(e=>!c.includes(e)).reduce((t,i)=>(t[i]=e[i],t),{}),{pageId:o,companyId:n,websiteId:l,pageMeta:d}=r,u=s.localStorage.getItem("utm_vars")||"{}",h=s.localStorage.getItem("referrer")||"",p=this._getFormId(i);return{activity:{author_email:e.email,author_name:e.name,firstName:e.firstName||void 0,lastName:e.lastName||void 0,author_phone:e.phone||e.phoneNumber,activity_source:e.source||"CONTACT_INQUIRY",comments_attributes:[{text:e.message||void 0}],source_url:s.location.href,content:{...a,...JSON.parse(u)}},page:{pageId:o,companyId:n,websiteId:l,pageMeta:{...d,formId:p}},companyId:n,referrer:h,fields:t}}_handleSubmissionSuccess(e){let{window:t}=this,i=e.dataset.delay||2e3;e.classList.remove("loading"),e.classList.remove("error"),e.classList.add("success"),e.querySelectorAll(".success").forEach(e
1536=>e.classList.remove("hide")),e.dispatchEvent(new Event("formsubmitted")),setTimeout(()=>{t.lpUI.hideClosestModal(e),e.reset(),t.lpUI.sideMenuHide(),e.querySelectorAll(".success").forEach(e=>e.classList.add("hide")),e.classList.remove("success")},i)}async _handleSubmit(e,t){if(e&&e.preventDefault(),!t.classList.contains("loading")){this._hideSubmissionError(t),t.classList.remove("error"),t.classList.add("loading");try{let e=this._extractFormValues(t);if(e.middleName)return void t.classList.remove("loading");let i=this._getFields(t),s=this._buildSubmissionData(e,i,t);r(this.window,this.document);let a=await this._waitForLeadSubmit(e=>this._submitLeadRequest(s,e));if(this._sendGAEvent(s),a?.redirected)return void this._showRedirectPending(t);this._handleSubmissionSuccess(t)}catch(e){console.error("Form submission failed:",e),t.dispatchEvent(new Event("formsubmiterror")),t.classList.remove("loading"),t.classList.add("error"),e.userMessage?this._showSubmissionError(t,e.userMessage):this._showSubmissionError(t,"Something went wrong. Please try again.")}}}async _waitForLeadSubmit(e){let t,i={expired:!1,expiresAt:Date.now()+6e3},s=new Promise(e=>{t=setTimeout(()=>{i.expired=!0,e(null)},6e3)}),r=e(i).catch(e=>{if(a(i))return null;throw e});try{return await Promise.race([r,s])}finally{clearTimeout(t)}}_showRedirectPending(e){if(e.classList.add(d),e.querySelector(`.${d}__indicator`))return;let t=this.document.createElement("div");t.className=`${d}__indicator`,t.setAttribute("role","status"),t.setAttribute("aria-label","Loading"),t.innerHTML='<span class="lp-i lp-i--spinner lp-i--pulse" aria-hidden="true"></span>',e.appendChild(t)}_aliasUserWithEventBus(e){try{if(!this.window.eventBusProvider?.alias||!this.window.eventBusProvider?.isIdentified||!this.window.eventBusProvider?.getDistinctId||!this.window.LuxuryPresenceEventBus?.generateUUIDv5FromCompanyEmail)return;if(this.window.eventBusProvider.isIdentified())return void console.log("[EventBus] User already identified, skipping alias");let t=e.activity?.author_email,{companyId:i}=this.config;if(!t||!i)return void console.warn("[EventBus] Missing required data for user alias");let s=this.window.eventBusProvider.getDistinctId();if(!s)return void console.warn("[EventBus] No anonymous ID available for alias");let r=this.window.LuxuryPresenceEventBus.generateUUIDv5FromCompanyEmail(i,t);this.window.eventBusProvider.alias({anonId:s,canonicalId:r}),console.log("[EventBus] User aliased with canonical ID")}catch(e){console.error("[EventBus] User alias failed:",e)}}async _submitLeadRequest(e,t){let{config:i}=this;return(this._aliasUserWithEventBus(e),i.myhomeDashboardEnabled&&(e.activity?.activity_source==="HOME_VALUATION"||e.activity?.activity_source==="HOME_VALUE"))?this.homeValuationService._submitHomeValuationRequest({...e,deadline:t}):fetch(`${i.leadIngesterUrl}/api/v1/leads`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(e)}).then(e=>e.ok?e.json():e.json().then(e=>{throw e}))}_sendGAEvent(e){let{document:t}=this,i={hitType:"event",eventCategory:"button",eventAction:"click"};switch(e.activity.activity_source){case"NEWSLETTER_SIGNUP":i.eventLabel="Newsletter",t.sendGoogleTagManagerEvent("event","newsletter_signup");break;case"HOME_SEARCH":i.eventLabel="HomeSearch",t.sendGoogleTagManagerEvent("event","home_search");break;case"HOME_VALUE":case"HOME_VALUATION":i.eventLabel="HomeValue",t.sendGoogleTagManagerEvent("event","home_valuation");break;case"EBOOK":i.eventLabel="Ebook",t.sendGoogleTagManagerEvent("event","ebook_download");break;default:i={hitType:"pageview",page:"/thank-you"},t.sendGoogleTagManagerEvent("event","contact_inquiry")}t.sendGoogleAnalyticsEvent(i)}_getFields(e){let t=e.querySelectorAll("input, select, textarea"),i={};return t.forEach(t=>{let{id:s,name:r,type:a}=t;if(r===l)return!0;let o="";if(s){let i=e.querySelector(`label[for='${s}']`);i?o=i.textContent.trim():t.placeholder&&(o=t.placeholder.trim())}i[r]={label:o,type:t.tagName,inputType:"INPUT"===t.tagName?a:"text"}}),i}_getFormId(e){let t=e.closest("section[id^='section-'], footer[id], .modal[id^='modal-']");return t?.id?this._cleanFormId(t.id):""}_cleanFormId(e){for(let t of["section-","modal-"])if(e.startsWith(t))return e.substring(t.length);return e}_showSubmissionError(e,t){let i=e.querySelector(".submission-error-message");i||((i=this.document.createElement("div")).className="submission-error-message",i.setAttribute("role","alert"),e.appendChild(i)),i.textContent=t||"Something went wrong. Please try again.",i.style.display="block"}_hideSubmissionError(e){let t=e.querySelector(".submission-error-message");t&&(t.style.display="none")}}(A,window,document),k=new class extends i{constructor(e,t,i){super(e,t,i),this.retries=3,this.callbacks=[],this.id=`__googleMapsScriptId${Date.now()}`,this._apiKey="",this.reset()}set apiKey(e){this._apiKey=e,this.config.setGoogleMapsAPIKey(e)}get apiKey(){return this._apiKey}reset(){this.deleteScript(),this.done=!1,this.loading=!1,this.failed=!1,this.errors=[],this.onerrorEvent=null}destroy(){this.reset()}async getMapApiKey(){if(this.apiKey)return this.apiKey;let e=this._hadPreviousFailure(),t=!1;for(let i=1;i<=3;i+=1){let s=e&&!t;try{let e=await fetch(this._getMapKeyUrl(i,s));if(t=t||s,this._setFailureFlag(!1),!e.ok)throw Error(`Failed to fetch API key: ${e.status}`);let r=await e.text();if(!r)return"";return this.apiKey=r,this.apiKey}catch(e){console.error(e),i<3&&await this._delay(300*2**(i-1))}}return this._setFailureFlag(!0),""}_getMapKeyUrl(e,t){let i=[];e>1&&i.push(`attempt=${e}`),t&&i.push("recovered_after_failure=1");let s=i.length?`?${i.join("&")}`:"";return`${this._getBaseUrl()}/api/v1/map${s}`}_hadPreviousFailure(){try{return"1"===this.window.sessionStorage.getItem(u)}catch(e){return!1}}_setFailureFlag(e){try{e?this.window.sessionStorage.setItem(u,"1"):this.window.sessionStorage.removeItem(u)}catch(e){}}_delay(e){return new Promise(t=>{this.window.setTimeout(t,e)})}async createUrl(){let e=await this.getMapApiKey();if(!e)throw Error("Refusing to load Google Maps without an API key");
1536let t="https://maps.googleapis.com/maps/api/js";return t+`?callback=__googleMapsCallback&key=${e}&libraries=places`}async setScript(){let e;if(this.document.getElementById(this.id))return void this.callback();try{e=await this.createUrl()}catch(e){console.error(e),this.failed=!0,this.loading=!1,this.onerrorEvent=e,this.callback();return}let t=this.document.createElement("script");t.id=this.id,t.type="text/javascript",t.src=e,t.onerror=this.loadErrorCallback.bind(this),t.defer=!0,t.async=!0,this.document.head.appendChild(t)}loadErrorCallback(e){if(this.errors.push(e),this.errors.length<=this.retries){let e=this.errors.length*2**this.errors.length;console.log(`Failed to load Google Maps script, retrying in ${e} ms.`),setTimeout(()=>{this.deleteScript(),this.setScript().catch(e=>console.error(e))},e)}else this.failed=!0,this.onerrorEvent=e,this.callback()}deleteScript(){let e=this.document.getElementById(this.id);e&&e.remove()}load(){return this.loadPromise()}loadPromise(){return new Promise((e,t)=>{this.loadCallback(i=>{i?t(i):e()})})}loadCallback(e){this.callbacks.push(e),this.execute()}setCallback(){this.window.__googleMapsCallback=this.callback.bind(this)}resetIfRetryingFailed(){this.failed&&this.reset()}callback(){this.done=!0,this.loading=!1,this.callbacks.forEach(e=>{e(this.onerrorEvent)}),this.callbacks=[]}execute(){this.window.google&&this.window.google.maps&&this.window.google.maps.version&&this.callback(),this.resetIfRetryingFailed(),this.done?this.callback():this.loading||(this.loading=!0,this.setCallback(),this.setScript().catch(e=>console.error(e)))}_getBaseUrl(){let{isBuilder:e,websiteApiGatewayUrl:t}=this.config;return e?t:""}resizeStaticMapDimensions(e,t){if(e<=1024&&t<=1024)return{width:e,height:t};let i=Math.min(1024/e,1024/t);return{width:parseInt(e*i),height:parseInt(t*i)}}convertThemeToStaticApiUrl(e){return e.map(e=>{let t=e.stylers.reduce((e,t)=>{let i=t.visibility?`visibility:${t.visibility}`:"",s=t.color?`color:${t.color.replace("#","0x")}`:"",r=t.lightness?`lightness:${t.lightness}`:"";return`${e}|${i}${s}${r}`},""),i=e.elementType?`|element:${e.elementType}`:"";return`feature:${e.featureType}${i}${t}`})}async getMapApiSignedUrl(e){try{let t=await fetch(`${this._getBaseUrl()}/api/v1/map/signature?${e}`);if(!t.ok)throw Error("Failed to fetch signed URL");let{url:i}=await t.json();return i}catch(e){return console.error(e),""}}generateStaticMapUrl(e,t,i,s,r,a){let{width:o,height:n}=this.resizeStaticMapDimensions(r,a),l={center:`${e},${t}`,zoom:i,scale:2,size:`${o}x${n}`,key:this.apiKey};s&&(l.style=this.convertThemeToStaticApiUrl(s));let d=new URLSearchParams;return Object.entries(l).forEach(([e,t])=>{Array.isArray(t)?t.forEach(t=>d.append(e,t.toString())):d.append(e,t.toString())}),`https://maps.googleapis.com/maps/api/staticmap?${d.toString()}`}async generateDigitallySignedStaticMapUrl({srcWidth:e,srcHeight:t,theme:i,...s}){let{width:r,height:a}=this.resizeStaticMapDimensions(e,t),o={...s,size:`${r}x${a}`};i&&(o.style=this.convertThemeToStaticApiUrl(i));let n=new URLSearchParams;Object.entries(o).forEach(([e,t])=>{Array.isArray(t)?t.forEach(t=>n.append(e,t.toString())):n.append(e,t.toString())});let l=n.toString();try{return await this.getMapApiSignedUrl(l)}catch(e){return console.error(e),""}}}(A,window,document),C=new class extends i{destroy(){}updateQueryString(e,t,i){i||(i=this.window.location.href);let s=RegExp(`([?&])${e}=.*?(&|#|$)`,"i"),r="";null!=t&&(Array.isArray(t)?t.length&&(r=this.serializeArray(e,t)):"object"==typeof t?(s=RegExp(`([?&])${e}\\[[^=]*\\]=.*?(&|#|$)`,"i"),r=this.serializeObj(t,"",e)):r=`${e}=${encodeURIComponent(t)}`);let a=i.split("#"),o=a[0];if(s.test(i)){let e=o;for(r=r?`$1${r}$2`:"$1";s.test(e);)o=e.replace(s,r),e=e.replace(s,"$1");o=o.replace(/(&|\?)$/,"")}else if(r){let e=-1!==o.indexOf("?")?"&":"?";o+=`${e}${r}`}return void 0!==a[1]&&null!==a[1]&&(o+=`#${a[1]}`),o}getParameterByName(e,t){t||(t=this.window.location.href),e=e.replace(/[[\]]/g,"\\$&");let i=RegExp(`[?&]${e}(=([^&#]*)|&|#|$)`),s=Array.from(RegExp.prototype[Symbol.matchAll].call(i,t)).flat();if(!s.length){let i=RegExp(`[?&]${e}(\\[.*?\\])=(.*?)(?=&|#|$)`,"g");return s=Array.from(RegExp.prototype[Symbol.matchAll].call(i,t)).flat(),this._parseParamToObject(s,"advancedFilters"===e)}return s.length>3?s.reduce((e,t,i)=>((i+1)%3==0&&e.push(decodeURIComponent(t.replace(/\+/g," "))),e),[]):s[2]?decode
1536URIComponent(s[2].replace(/\+/g," ")):""}makePageKey(e){return e.replace("section-","").replace(/-/g,"")}makeParamKey(e,t){return e.global?e.urlKey:`${t}-${e.urlKey}`}deserializeParams(e,t){let i={},s=this.makePageKey(t),r=this.getParameterByName(s);return r&&(i.page=parseInt(r)),Array.isArray(e)&&e.forEach(e=>{let t=this.makeParamKey(e,s),r=this.getParameterByName(t);if("int"===e.type)isFinite(r=parseInt(r))||(r=null);else if("bool"===e.type||"boolean"===e.type)r="true"===r||"false"!==r&&null;else if("json"===e.type)try{r=JSON.parse(r)}catch(e){}i[e.formKey||e.param]=r}),i}serializeParams(e,t,i){let s=this.window.location.href,r=this.makePageKey(t);return s=this.updateQueryString(r,i.page,s),Array.isArray(e)&&e.forEach(e=>{let t=this.makeParamKey(e,r),a=i[e.formKey||e.param];"json"===e.type&&null!=a&&(a=JSON.stringify(a)),s=this.updateQueryString(t,a,s)}),s}formatSliderAtom(e,t=""){return t+(Number.isInteger(e)?e:e.toFixed(2))}formatSliderValue(e,t="",i=""){return e<1e3?this.formatSliderAtom(e,t):e<1e6?`${this.formatSliderAtom(e/1e3,t)}${i}K`:`${this.formatSliderAtom(e/1e6,t)}${i}M`}formatSliderPriceRange(e,t,i,s){return t.min===e&&0!==e?`${s.lowPrefix}${this.formatSliderValue(e,i," ")}`:t.max===e?`${this.formatSliderValue(e,i," ")}${s.highSuffix}`:`${this.formatSliderValue(e,i," ")}`}formatSliderAreaRange(e,t,i,s){return t.min===e&&0!==e?`${s.lowPrefix}${this.formatSliderValue(e)} ${i}`:t.max===e?`${this.formatSliderValue(e)}${s.highSuffix} ${i}`:`${this.formatSliderValue(e)} ${i}`}getSearchFormValues(e){let{queryElement:t,priceSliderElement:i,areaSliderElement:s,neighborhoodSelect:r}=e,a={};if(t&&(a.search=t.value||null),i){let e=i.value.split(";"),t=parseInt(i.dataset.min),s=parseInt(i.dataset.max),r=parseInt(e[0]),o=parseInt(e[1]);a.priceMin=r!==t?r:null,a.priceMax=o!==s?o:null}if(s){let e=s.value.split(";"),t=parseInt(s.dataset.min),i=parseInt(s.dataset.max),r=parseInt(e[0]),o=parseInt(e[1]);a.areaMin=r!==t?r:null,a.areaMax=o!==i?o:null}return r&&(a.neighborhoodId=r.value||null),a}serializeObj(e,t="",i=""){let s=[];for(let r in e)if(e.hasOwnProperty(r)){let a,o=e[r];if(i){let e=t?`[${t}][${r}]`:`[${r}]`;a=`${i}${e}`}else a=t?`${t}[${r}]`:r;null!==o&&Array.isArray(o)?o.length&&s.push(this.serializeArray(a,o)):null!==o&&"object"==typeof o?s.push(this.serializeObj(o,a)):s.push(`${a}=${encodeURIComponent(o)}`)}return s.join("&")}serializeArray(e,t,i=""){let s=[];return t.forEach(t=>{let r=i?`${i}${e}`:e;s.push(`${r}=${encodeURIComponent(t)}`)}),s.join("&")}_parseParamToObject(e,t=!1){if(!e.length)return null;let i={};for(let s=0;s<e.length;s++)if((s+1)%3==0){let r=decodeURIComponent(e[s].replace(/\+/g," ")),a=e[s-1];Object.assign(i,this._setObjectPath(a,r,i,t))}return i}_setObjectPath(e,t,i,s=!1){let r=e.split(/[\[\]]/).filter(Boolean),a=["in","nin","btw","ciin","cinin"],o={},n=o,l=((e,t,i)=>{if(!t)return;let s=(Array.isArray(t)?t:t.match(/([^[.\]])+/g)).reduce((e,t)=>e&&e[t],e);return void 0===s?i:s})(i,r.join("."));return r.forEach((e,o)=>{o===r.length-1?l?n[e]=Array.isArray(l)?[...l,t]:[l,t]:n[e]=s&&a.includes(e)?[t]:t:(n[e]=i[e]?i[e]:{},n=n[e])}),o}}(A,window,document),M=new class extends i{constructor(e,t,i){super(e,t,i),this._createLightbox=this._createLightbox.bind(this),this.expandSliders=[]}initialize(e={}){try{let{document:e}=this,t=e.querySelectorAll(".has-mobile-expand");t.forEach(e=>{this._addExpandButton(e)}),this.expandSliders=this.expandSliders.concat(t)}catch(e){console.log(e)}}destroy(){let{document:e}=this;e.querySelectorAll(".lp-expand-btn, .lp-expand-btn-wrapper").forEach(e=>e.remove()),this.expandSliders=[]}_addExpandButton(e){let{document:t}=this,i=e.closest("section[id]"),s=e.dataset.append,r=i.querySelector(".lp-expand-btn");if(!r)if((r=t.createElement("button")).className="lp-expand-btn",r.setAttribute("aria-label","Open a lightbox"),r.innerHTML='<span class="lp-i lp-i--expand-alt" aria-hidden="true"></span>',s){let e=i.querySelector(s);e&&e.appendChild(r)}else{let i=t.createElement("div");i.className="lp-expand-btn-wrapper",i.style.position="relative",i.appendChild(r),e.parentNode.insertBefore(i,e.nextSibling)}r.addEventListener("click",()=>{this._createLightbox({slider:e,section:i})})}_createLightbox({slider:e,section:t,initialIndex:i}){let{window:s,document:r}=this,a=`lightbox-for-${t?.id}`,o=s.$&&s.$.fn.slick,n=o&&e.slick,l="function"==typeof s.Splide,d=e.classList.contains("is-initialized")&&e.classList.contains("splide");function c(){let t=r.createElement("div");t.id=a,t.className="lp-lightbox",t.setAttribute("tabindex","-1"),t.setAttribute("role","dialog"),t.setAttribute("aria-modal","true"),t.innerHTML=` 1537 <button class="lp-lightbox__close" aria-label="close modal"></button> 1538 <div class="lp-lightbox__content"> 1539 <div class="lp-lightbox__carousel splide" role="group" aria-label="Image Gallery"> 1540 <div class="splide__arrows"> 1541 <button class="splide__arrow splide__arrow--prev lp-lightbox-arrow lp-lightbox-arrow--prev"></button> 1542 <button class="splide__arrow splide__arrow--next lp-lightbox-arrow lp-lightbox-arrow--next"></button> 1543 </div> 1544 <div class="splide__track"> 1545 <ul class="splide__list"></ul> 1546 </div> 1547 </div> 1548 </div> 1549 `,"function"==typeof s.lpUI.requestScrollLock?s.lpUI.requestScrollLock(a):r.body.style.overflow="hidden",r.body.appendChild(t);let o=t.querySelector(".lp-lightbox__carousel"),n=o.querySelector(".splide__list");t.classList.add("show"),(d?e.querySelectorAll(".splide__slide:not(.splide__slide--clone) img"):e.querySelectorAll("img")).forEac
1549h(e=>{let t=e.cloneNode(!0);t.removeAttribute("style");let i=r.createElement("li");i.className="lp-lightbox__slide splide__slide",i.appendChild(t),n.appendChild(i)});let l=new s.Splide(o,{rewind:!0,arrows:!0,arrowPath:"",type:"loop",clones:1,pagination:!1,perPage:1,perMove:1});l.mount(),void 0!==i&&i>=0&&l.go(i),setTimeout(()=>{t.focus()},100);let c=e=>{if(!t.classList.contains("show"))return;let i=t.querySelector(".splide__arrow--prev"),s=t.querySelector(".splide__arrow--next"),r=t.querySelector(".lp-lightbox__close");"ArrowLeft"===e.key&&i?(e.preventDefault(),i.click()):"ArrowRight"===e.key&&s?(e.preventDefault(),s.click()):"Escape"===e.key&&r&&(e.preventDefault(),r.click())};r.addEventListener("keydown",c),t.querySelector(".lp-lightbox__close").addEventListener("click",()=>{r.removeEventListener("keydown",c),t.classList.remove("show"),l&&l.destroy(),"function"==typeof s.lpUI.releaseScrollLock?s.lpUI.releaseScrollLock(a):r.body.style.overflow="",t.remove()})}if("function"==typeof s.lpUI.requestScrollLock?s.lpUI.requestScrollLock(a):r.body.style.overflow="hidden",o&&!d){let t,i,o,l,d;i={arrows:!0,dots:!1,infinite:!0,draggable:!0,prevArrow:'<button type="button" class="lp-lightbox-arrow--prev lp-lightbox-arrow" aria-label="Previous"></button>',nextArrow:'<button type="button" class="lp-lightbox-arrow--next lp-lightbox-arrow" aria-label="Next"></button>'},(o=r.createElement("div")).id=a,o.className="lp-lightbox",o.setAttribute("tabindex","-1"),o.setAttribute("role","dialog"),o.setAttribute("aria-modal","true"),o.innerHTML=` 1550 <button class="lp-lightbox__close" aria-label="close modal"></button> 1551 <div class="lp-lightbox__content"> 1552 <div class="lp-lightbox__carousel"></div> 1553 </div> 1554 `,r.body.appendChild(o),l=o.querySelector(".lp-lightbox__carousel"),o.classList.add("show"),n?(t=e.slick.$slides.find("img"),i.initialSlide=e.slick?.currentSlide||0,t.each(function(){s.$(".lp-lightbox__carousel").append(s.$(this).clone(!1).removeAttr("style").wrap('<div class="lp-lightbox__slide"></div>').parent())})):(t=e.querySelectorAll("img")).forEach(e=>{let t=e.cloneNode(!0);t.removeAttribute("style");let i=r.createElement("div");i.className="lp-lightbox__slide",i.appendChild(t),l.appendChild(i)}),s.$(l).slick(i),setTimeout(()=>{o.focus()},100),d=e=>{if(!o.classList.contains("show"))return;let t=o.querySelector(".lp-lightbox-arrow--prev"),i=o.querySelector(".lp-lightbox-arrow--next"),s=o.querySelector(".lp-lightbox__close");"ArrowLeft"===e.key&&t?(e.preventDefault(),t.click()):"ArrowRight"===e.key&&i?(e.preventDefault(),i.click()):"Escape"===e.key&&s&&(e.preventDefault(),s.click())},r.addEventListener("keydown",d),o.querySelector(".lp-lightbox__close").addEventListener("click",()=>{r.removeEventListener("keydown",d),o.classList.remove("show");let t=l?.slick?s.$(l).slick("slickCurrentSlide"):0;l?.slick&&s.$(l).slick("unslick"),n&&s.$(e).slick("slickGoTo",t),"function"==typeof s.lpUI.releaseScrollLock?s.lpUI.releaseScrollLock(a):r.body.style.overflow="",o.remove()})}else l?c():(s.luxuryPresence.libs.loadCss(s.luxuryPresence.libs.jsLibsMap.splide.cssSrc),s.luxuryPresence.libs.loadJs(s.luxuryPresence.libs.jsLibsMap.splide.jsSrc,()=>{c(),s.luxuryPresence.libs.jsLibsMap.splide.isLoaded=!0}))}}(A,window,document),P=new class extends i{destroy(){this.window.divolte||(this.window.divolteLp=function(){(this.window.divolteLp.q=this.window.divolteLp.q||[]).push(arguments)})}initialize(e={}){let{divolteServiceUrl:t}=this.config;t&&!this.window.divolte&&this.loadScript()}loadScript(){let{divolteServiceUrl:e}=this.config,t=this.document.createElement("script");t.id="divolte-script",t.type="text/javascript",t.defer=!0,t.async=!0,t.src=`${e}/divolte.js`,this.document.head.appendChild(t),t.addEventListener("load",this.executeQueue.bind(this))}executeQueue(){(this.window.divolteLp.q||[]).forEach(([e,t])=>{this[e](t)}),this.window.divolteLp=this.divolteLp.bind(this)}divolteLp(e,t){try{this[e](t)}catch(e){console.log(e)}}sendLpEvent(e,t){if(!e.includes("pageView"))return void console.log(`${e} IS NOT SUPPORTED`);let{companyId:i,templateId:s,websiteId:r,pageId:a,shareId:o,pageMeta:n}=this.config;this.window.divolte.signal(e,Object.assign({companyId:i,templateId:s,websiteId:r,pageId:a,shareId:o,pageMeta:n},t))}sendLpPageView(){this.sendLpEvent("pageView",{})}}(A,window,document),U=new class extends i{constructor(e,t,i){super(e,t,i)}initialize(e={}){(void 0!==e.enabled?e.enabled:this.config.eventBus?.enabled)&&this.config.eventBus?.apiKey&&this.config.eventBus?.url&&this.loadScript()}loadScript(){let{eventBusUrl:e}=this.config,t=this.document.createElement("script");t.id="posthog-script",t.type="text/javascript",t.defer=!0,t.async=!0,t.src=`${e}/v2.8.0/event-bus-js.js`,this.document.head.appendChild(t),t.addEventListener("load",this.executeQueue.bind(this))}executeQueue(){this.window.LuxuryPresenceEventBus&&(this.window.eventBusProvider=this.window.LuxuryPresenceEventBus.createEventBusProvider({apiKey:this.config.eventBus.apiKey,host:this.config.eventBus.url,defaultSource:"frontend://website-render-engine"}
1554)),(this.window.eventBusLp.q||[]).forEach(([e,t])=>{this[e](t)}),this.window.eventBusLp=this.eventBusLp.bind(this)}destroy(){if(!this.window.eventBusProvider){this.window.eventBusLp=function(){(this.window.eventBusLp.q=this.window.eventBusLp.q||[]).push(arguments)};return}this.window.eventBusProvider.shutdown()}sendLpEvent(e,t){if("user.activity.page.viewed"!==e)return void console.log(`${e} IS NOT SUPPORTED`);if(!this.window.eventBusProvider)return;let{companyId:i}=this.config;try{this.window.eventBusProvider.capture(e,{company:i,data:{}})}catch(e){console.log("EventBus capture error:",e)}}eventBusLp(e,t){try{this[e](t)}catch(e){console.log(e)}}sendLpPageView(){this.sendLpEvent("user.activity.page.viewed",{})}}(A,window,document),N=new class extends i{constructor(e,t,i){super(e,t,i),this.successListeners=[],this._listenToMessages=this._listenToMessages.bind(this),this._listenToOneTapMessage=this._listenToOneTapMessage.bind(this)}initialize(e={}){try{e.googleSignOnEnabled&&!e.iframe&&this._renderGoogleOneTap(),this.document.querySelectorAll('div[data-signin-type="google-sign-in"]').forEach(e=>this._convertGoogleSignIn(e)),this.document.querySelectorAll('div[data-signin-type="facebook-sign-in"]').forEach(e=>this._convertFacebookSignIn(e))}catch(e){console.log(e)}}destroy(){this.successListeners.forEach(e=>{this.window.removeEventListener("message",this._listenToMessages),this.window.removeEventListener("message",this._listenToOneTapMessage),this.window.removeEventListener(h,this.window[e])})}_renderGoogleOneTap(){if(!this._isGoogleOneTapOnCooldown()){let e=this.document.createElement("div");google.accounts.id.initializeIntermediate({src:this._buildUrlAndCopyAttributes(e,e,"googleOneTap")}),this.window.localStorage.removeItem("googleOneTapExpiration"),this.window.addEventListener("message",this._listenToOneTapMessage)}}_listenToOneTapMessage(e){let t="show_intermediate_iframe",{buyerSellerServiceUrl:i}=this.config,{data:s,origin:r}=e,{type:a,height:o,event:n,source:l,token:d}=s;if(a===t||"hide_intermediate_iframe"===a){let e=this.document.getElementById("onetap_google_intermediate_iframe");e&&(e.style.height=o,e.style.display=a===t?"unset":"none")}r===i&&"GOOGLE_SIGN_ON"===l&&("success"===n?(this._setExpirationLsItem(864e5),this._handleQualifyingQuestionsModal(d)):"cancel"===n&&this._setExpirationLsItem(72e5))}_setExpirationLsItem(e){let t=new Date().getTime()+e;this.window.localStorage.setItem("googleOneTapExpiration",t)}_isGoogleOneTapOnCooldown(){return Number(this.window.localStorage.getItem("googleOneTapExpiration"))>new Date().getTime()}_convertGoogleSignIn(e){this._replaceWithIframe("googleSignIn",e)}_convertFacebookSignIn(e){this._replaceWithIframe("facebookSignIn",e)}_replaceWithIframe(e,t){this._attachSuccessCallback(t);let i=this.document.createElement("iframe");i.src=this._buildUrlAndCopyAttributes(t,i,e),i.dataset.isSocialOauthButton=!0,t.replaceWith(i)}_listenToMessages(e){let{buyerSellerServiceUrl:t}=this.config;if(e.origin===t&&"success"===e.data.event){let e=new Event(h);this.window.dispatchEvent(e),r(this.window,this.document),this.successListeners.forEach(t=>{this.window[t]?this.window[t](e):console.error(`Callback function ${t} not found on window object`)}),this.document.documentElement.classList.add("is-login-success")}}_attachSuccessCallback(e){this.window.addEventListener("message",this._listenToMessages);let t=e.dataset.onSuccessFunctionName;t&&this.successListeners.push(t)}_buildUrlAndCopyAttributes(e,t,i){let{buyerSellerServiceUrl:s,companyId:r,websiteId:a,pageId:o,pageMeta:n}=this.config,{location:l}=this.window,d=l.origin+l.pathname,c=new URL(`${s}/buttons/${i}`),u=this.window.localStorage.getItem("utm_vars"),h=this.window.localStorage.getItem("referrer");c.searchParams.append("companyId",r),c.searchParams.append("websiteId",a),c.searchParams.append("pageId",o),c.searchParams.append("sourceUrl",d),c.searchParams.append("pageMeta",JSON.stringify(n)),u&&c.searchParams.append("utm",u),h&&c.searchParams.append("referrer",h);let p=["data-size","data-width","data-text","data-button-type","data-shape","data-layout","data-max-rows","data-use-continue-as","data-type","data-theme","data-logo_alignment","data-locale"];
1554return Array.from(e.attributes).forEach(e=>{p.includes(e.nodeName)?c.searchParams.append(e.nodeName,e.nodeValue):t.setAttribute("id"===e.nodeName?"data-id":e.nodeName,e.nodeValue)}),c.toString()}_decodeToken(e){try{let t=e.split(".")[1].replace(/-/g,"+").replace(/_/g,"/"),i=4-t.length%4,s=4===i?t:t+"=".repeat(i);return JSON.parse(atob(s))}catch(e){return null}}_handleQualifyingQuestionsModal(e){if(e&&this.window.luxuryPresence&&this.window.luxuryPresence.qualifyingQuestionsModal){let t=this._decodeToken(e);t&&t.email&&this.window.luxuryPresence.qualifyingQuestionsModal.showModal(t.email,"Google Sign On")}}}(A,window,document),R=new class extends i{constructor(e,t,i){super(e,t,i),this.showModal=this.showModal.bind(this),this.hasModalBeenSubmitted=this.hasModalBeenSubmitted.bind(this),this.modalId="qualifying-questions-modal",this.cookieKey="qualifyingQuestionsModalSubmitted",this.qualifyingQuestionsModalEnabled=!0,this.eventListeners=[],this.timeouts=[]}initialize(e={}){this.qualifyingQuestionsModalEnabled=e.qualifyingQuestionsModalEnabled??this.qualifyingQuestionsModalEnabled,this.qualifyingQuestionsModalEnabled&&this.attachModalCloseListeners()}destroy(){this.eventListeners.forEach(({element:e,event:t,handler:i})=>{e&&e.removeEventListener&&e.removeEventListener(t,i)}),this.timeouts.forEach(e=>{clearTimeout(e)}),this.restoreBodyScroll(),this.eventListeners=[],this.timeouts=[]}hasModalBeenSubmitted(){return"true"===this.getCookie(this.cookieKey)}setModalSubmittedCookie(){this.setCookie(this.cookieKey,"true",365)}showModal(e,t){!this.qualifyingQuestionsModalEnabled||this.hasModalBeenSubmitted()||(this.updateEmailValue(e),this.updateTriggerSourceValue(t),this.showModalElement())}getModalElement(){let e=this.document.getElementById(this.modalId);return e||console.error("Modal element not found:",this.modalId),e}updateEmailValue(e){let t=this.getModalElement();if(!t)return;let i=t.querySelector('input[name="email"]');i&&"string"==typeof e&&(i.value=e)}updateTriggerSourceValue(e){let t=this.getModalElement();if(!t)return;let i=t.querySelector(`#${this.modalId}-triggerSource`);i&&"string"==typeof e&&(i.value=e)}showModalElement(){let e=this.getModalElement();e&&(e.style.display="flex",this.blockBodyScroll())}getCookie(e){let t=`; ${this.document.cookie}`.split(`; ${e}=`);return 2===t.length?decodeURIComponent(t.pop().split(";").shift()):null}setCookie(e,t,i){let s="";if(i){let e=new Date;e.setTime(e.getTime()+864e5*i),s=`; expires=${e.toUTCString()}`}let r="; path=/; SameSite=Lax";this.window&&this.window.location&&"https:"===this.window.location.protocol&&(r+="; Secure"),this.document.cookie=`${e}=${encodeURIComponent(t||"")}${s}${r}`}blockBodyScroll(){this._prevOverflow=this.document.body.style.overflow,this.document.body.style.overflow="hidden"}restoreBodyScroll(){this.document.body.style.overflow=this._prevOverflow||"",this._prevOverflow=null}attachModalCloseListeners(){let e=this.getModalElement();if(!e)return;let t=this.document.getElementById(`${this.modalId}-form`);if(t){let i=()=>{this.setModalSubmittedCookie();let t=setTimeout(()=>{e.style.display="none",this.restoreBodyScroll()},100);this.timeouts.push(t)};t.addEventListener("formsubmitted",i),this.eventListeners.push({element:t,event:"formsubmitted",handler:i})}let i=e.querySelector('[data-dismiss="modal"]');if(i){let t=()=>{e.style.display="none",this.restoreBodyScroll()};i.addEventListener("click",t),this.eventListeners.push({element:i,event:"click",handler:t})}let s=t=>{(t.target===e||t.target.id===this.modalId)&&(e.style.display="none",this.restoreBodyScroll())};e.addEventListener("click",s),this.eventListeners.push({element:e,event:"click",handler:s})}}(A,window,document),B=new class extends i{constructor(e,t,i){super(e,t,i),this.isValidating=!1,this.lastValidationResult=null,this.lastValidationTime=null,this.validationCacheDuration=3e5}destroy(){this.isValidating=!1,this.lastValidationResult=null,this.lastValidationTime=null}async validateSession(e={}){let{useCache:t=!0}=e;if(t&&null!==this.lastValidationResult&&this.lastValidationTime&&Date.now()-this.lastValidationTime<this.validationCacheDuration)return this.lastValidationResult;if(this.isValidating)return null!==this.lastValidationResult&&this.lastValidationResult;this.isValidating=!0;let i=` 1555 query { 1556 validSession { 1557 success 1558 } 1559 } 1560 `;try{let e=await this.window.fetch("/graphql",{method:"POST",headers:{"Content-Type":"application/json"},credentials:"include",body:JSON.stringify({query:i})});if(!e.ok)return console.error("SessionController: HTTP error during session validation",e.status),this.lastValidationResult=!1,this.lastValidationTime=Date.now(),!1;let t=await e.json();if(t.errors)return this.lastValidationResult=!1,this.lastValidationTime=Date.now(),!1;let s=t.data?.validSession?.success===!0;return this.lastValidationResult=s,this.lastValidationTime=Date.now(),s}catch(e){return console.error("SessionController: Error validating session",e),this.lastValidationResult=!1,this.lastValidationTime=Date.now(),!1}finally{this.isValidating=!1}}clearCache(){this.lastValidationResult=null,this.lastValidationTime=null}}(A,window,document),O=new class extends i{constructor(e,t,i){super(e,t,i),this.consentListener=null,this.eventName=null}destroy(){this.consentListener&&this.eventName&&(this.document.removeEventListener(this.eventName,this.consentListener),this.consentListener=null)}loadScript(){this.document.getElementById("posthog-script")||this.window.luxuryPresence.eventBus.initialize({enabled:this.config.eventBus?.enabled}),this.document.getElementById("divolte-script")||this.window.luxuryPresence.divolte.initialize({})}removeScripts(){this.window.luxuryPresence?.eventBus?.destroy?.(),this.window.luxuryPresence?.divolte?.destroy?.(),this.document.getElementById("posthog-script")?.remove(),this.document.getElementById("divolte-script")?.remove()}async initialize(e={}){let t=p[e.provider];if(!t)return;this.eventName=t.eventName;let i=await this.window.luxuryPresence.session.validateSession();(t.hasAnalyticsConsent(this.document,this.window)||i)&&this.loadScript(),this.consentListener||(this.consentListener=e=>{t.isAnalyticsAccepted(e.detail)?this.loadScript():this.removeScripts()},this.document.addEventListener(t.eventName,this.consentListener))}}(A,window,document),V=new class extends i{destroy(){}transformVariables(e,t){let i;return g(i={...t},["testimonialId"]),y(i,["testimonialId"],"testimonialIds"),0===i.limit&&delete i.limit,(void 0===i.limit||null===i.limit)&&(("testimonials"===e||"testimonialsCount"===e)&&(i.limit=50),("agents"===e||"agentsCount"===e||"neighborhoods"===e||"neighborhoodsCount"===e||"posts"===e||"postsCount"===e||"pressReleases"===e||"pressReleasesCount"===e)&&(i.limit=100)),!function(e){let{sortDir:t}=e;"string"==typeof t&&t.includes("_")&&(e.sortDir=t.replace(/_/g," "))}(i),!function(e,t){switch(t){case"agent":break;case"testimonials":case"testimonialsCount":g(e,["testimonialIds"]);break;case"agents":case"agentsCount":g(e,["officeId","teamId","developmentId","agentIds","tags"]),y(e,["officeId"],"officeIds"),y(e,["teamId"],"teamIds"),y(e,["developmentId"],"developmentIds");break;case"neighborhoods":case"neighborhoodsCount":g(e,["neighborhoodIds","neighborhoodId"]),y(e,["neighborhoodIds","neighborhoodId"],"neighborhoodId");break;case"developments":case"developmentsCount":g(e,["agentId","neighborhoodIds","neighborhoodId","developmentIds","tag"]),e.agentId&&Array.isArray(e.agentId)&&([e.agentId]=e.agentId),y(e,["neighborhoodIds","neighborhoodId"],"neighborhoodIds");break;case"properties":case"propertiesCount":g(e,["statusIds","statusId","propertyTypeIds","propertyTypeId","propertyId","networkId","propertyIds","agentIds","teamIds","officeIds","neighborhoodIds","
1560spaceTypeIds","addressState","addressCity","backfillProviders","backfillMLSListingIds","backfillMLSAgentIds","backfillMLSOfficeIds"]),["propertyIds","agentIds","teamIds","officeIds","neighborhoodIds","spaceTypeIds","backfillMLSListingIds","backfillMLSAgentIds","backfillMLSOfficeIds"].forEach(t=>y(e,[t],t)),y(e,["statusIds","statusId"],"propertyStatusId"),e.excludeStatusId&&(e.excludePropertyStatusId=e.excludeStatusId,delete e.excludeStatusId),y(e,["propertyTypeIds","propertyTypeId"],"propertyTypeId"),y(e,["networkId"],"networkId"),y(e,["propertyId"],"propertyIds"),["salesPriceGTE","salesPriceLTE","leasePriceGTE","leasePriceLTE","livingSpaceSizeGTE","livingSpaceSizeLTE"].forEach(t=>{null!=e[t]&&(e[t]=Math.trunc(Number(e[t])))});break;case"posts":case"postsCount":g(e,["categoryIds","categoryId","neighborhoodId"]),void 0!==e.order&&(e.sort=e.order,delete e.order),y(e,["categoryIds","categoryId"],"categoryId");break;case"postCategories":g(e,["categoryId","categoryIds"]),void 0!==e.order&&(e.sort=e.order,delete e.order),y(e,["categoryIds","categoryId"],"categoryId");break;case"pressReleases":case"pressReleasesCount":g(e,["pressReleaseId","categories","propertyId","developmentId","agentId","teamId"]),y(e,["pressReleaseId"],"pressReleaseIds");break;case"offices":case"officesCount":g(e,["officeId","officeIds","tags"]),y(e,["officeId"],"officeIds");break;case"teams":case"teamsCount":g(e,["teamId","teamIds"]),y(e,["teamId"],"teamIds");break;case"pois":g(e,["categories"]),Array.isArray(e.categories)&&(e.categories=e.categories.map(e=>e.toLowerCase())),"string"==typeof e.sortBy&&(e.sortBy=e.sortBy.toLowerCase())}}(i,e),i}transformResponse(e,t){return"agent"===e?E(t,f):"agents"===e||"agentsCount"===e?I(t,w):"neighborhood"===e?E(t,v):"neighborhoods"===e||"neighborhoodsCount"===e?I(t,b):"development"===e?E(t,S):"developments"===e||"developmentsCount"===e?I(t,_):t}transformPage(e){return{items:e&&e.items||[],count:e&&e.total||0}}}(A,window,document);function D(e,t){if(window.luxuryPresence[e])try{window.luxuryPresence[e].destroy()}catch(e){console.log(e)}window.luxuryPresence[e]=t}D("config",A),D("modals",L),D("buttons",$),D("validation",x),D("contactForms",T),D("mapApiLoader",k),D("pagination",C),D("expandSliders",M),D("divolte",P),D("eventBus",U),D("oauth",N),D("qualifyingQuestionsModal",R),D("session",B),D("consent",O),D("redirects",{checkHstRedirect:function(e){let{config:t}=window.luxuryPresence;return!t.hvStepTwoCaptureEnabled&&!!t.hstValuationRedirectEnabled&&!!t.mlsEnabled&&!!t.myhomeDashboardEnabled&&(window.location.href=`/home-search/home-valuation?address=${encodeURIComponent(e)}`,!0)},destroy(){}}),D("routerApi",V),window.luxuryPresence.formatSliderPriceRange=C.formatSliderPriceRange.bind(C),window.luxuryPresence.formatSliderAreaRange=C.formatSliderAreaRange.bind(C),window.luxuryPresence.getSearchFormValues=C.getSearchFormValues.bind(C),window.luxuryPresence.handlebarsHelpersFactory=function(t){var i;return((i=e)&&i.__esModule?i.default:i)(t,{isEqual:(e,t)=>e==t})}})(); 1561//# sourceMappingURL=lp-sdk.js.map 1562 1563 </script>
1563 1564 1565
1565<script> 1566 var lpGlobalInitialized = false; 1567 1568 function lpGlobalInit () { 1569 if (lpGlobalInitialized) { 1570 return; 1571 } 1572 lpGlobalInitialized = true; 1573 // Initialize wow animation plugin only according to turbolinks 1574 var wow; 1575 if (window.WOW) { 1576 wow = new WOW({ 1577 animateClass: 'animated', 1578 offset: wowOffset, 1579 live: false, 1580 callback: function(box) {} 1581 }); 1582 } 1583 // Initialize handlebar helpers only once 1584 function handlebarsInit() { 1585 if (!window.Handlebars) { 1586 return; 1587 } 1588 HandlebarsIntl.registerWith(Handlebars); 1589 Handlebars.registerHelper(window.luxuryPresence.handlebarsHelpersFactory(Handlebars)); 1590 } 1591 1592 handlebarsInit(); 1593 1594 /* Initialize Luxury Presence SDK */ 1595 try { 1596 window.luxuryPresence.config.setCompany("9916becb-e4dd-4bda-81df-7e6dec908921", {}); 1597 window.luxuryPresence.config.setWebsite("a5440cc9-5b97-48ed-9bee-febaed15953d", { 1598 myhomeDashboardEnabled: true, 1599 mlsEnabled: true, 1600 hstValuationRedirectEnabled: true, 1601 hvStepTwoCaptureEnabled: false 1602 }); 1603 const url = new URL(window.location.href); 1604 const shareId = url.searchParams.get('shareId'); 1605 window.luxuryPresence.config.setPage("7d837bfa-8b89-48f3-bba0-dece72dbc5c4", { 1606 sourceResource: "", 1607 pageElementId: "", 1608 pageQueryVariables: {}, 1609 shareId: "", 1610 }); 1611 window.luxuryPresence.config.setWebsiteApiGatewayUrl("https://wgw.luxurypresence.com", {}); 1612 window.luxuryPresence.config.setBuyerSellerServiceUrl("https://bss.luxurypresence.com", {}); 1613 window.luxuryPresence.config.setDivolteServiceUrl("https://t.luxurypresence.com", {}); 1614 window.luxuryPresence.config.setEventBusUrl("https://cdn.luxurypresence.com/scripts/event-bus-js", {}); 1615 window.luxuryPresence.config.setEventBus({ 1616 enabled: true, 1617 apiKey: "phc_PMYT31xlmXBaTCwpIRx1v6RrpLVZIuP47N3mOT6KLnr", 1618 url: "https://p.luxurypresence.com", 1619 }); 1620 window.luxuryPresence.config.setTemplateId("34ae9410-e2da-4ccb-947e-bdaa3b48f731", {}); 1621 window.luxuryPresence.config.setLeadIngesterUrl("https://leads.luxurypresence.com", {}); 1622 window.luxuryPresence.buttons.initialize({}); 1623 window.luxuryPresence.consent.initialize({ provider: 'lp-consent' }); 1624 window.luxuryPresence.contactForms.initialize({}); 1625 window.luxuryPresence.validation.initialize({}); 1626 window.luxuryPresence.expandSliders.initialize({}); 1627 window.luxuryPresence.oauth.initialize({ googleSignOnEnabled: true, iframe: false }); 1628 window.luxuryPresence.qualifyingQuestionsModal.initialize({ qualifyingQuestionsModalEnabled: true }); 1629 } catch (e) { 1630 console.log(e); 1631 } 1632 1633 /* Inject Section Specific Javascript */ 1634 try { 1635(function init(sectionDomId) { 1636 let address = $('#' + sectionDomId + " .company_address").text().trim(); 1637 $('#' + sectionDomId + " .company_address").text(address); 1638 function setHttp(link) { 1639 if (link.search(/^http[s]?\:\/\/|\//) == -1) { 1640 link = 'http://' + link; 1641 } 1642 return link; 1643 } 1644 $(`#${sectionDomId} .contact-form__form`).on('reset', () => { 1645 const redirectLink = $('#' + sectionDomId + ' .redirect-link'); 1646 if (redirectLink.length) { 1647 const rawHref = redirectLink.attr('href'); 1648 redirectLink.attr('href', setHttp(rawHref)); 1649 redirectLink[0].click(); 1650 } 1651 }); 1652})('modal-global-contact-us'); 1653} catch(e) { 1654console.log(e); 1655} 1656 1657 try { 1658(function init(sectionDomId) { 1659 var resizeMenu = function () { 1660 var widthSoFar = 0; 1661 var availableWidth = $('#' + sectionDomId + ' .navigation').width(); 1662 if ($(window).width() > 1024) { 1663 $('#' + sectionDomId + ' .navigation > li').each(function () { 1664 $(this).hide(); 1665 widthSoFar += $(this).outerWidth(); 1666 if (widthSoFar < availableWidth) $(this).show(); 1667 }); 1668 } 1669 }; 1670 resizeMenu(); 1671 $(window).on('resize.lpui-auto-clean', resizeMenu); 1672 const mediaQuery = window.matchMedia('(hover: hover) and (pointer: fine)'); 1673 var $subNavTrigger = $('body > nav .sub-nav-container a'); 1674 var $subNavContainer = $('body > nav .sub-nav-container'); 1675 if (mediaQuery.matches) { 1676 $subNavTrigger.off('click'); 1677 $subNavContainer.mouseout(function () { 1678 var self = $(this); 1679 self.removeClass('active').find('.sub-nav').removeClass('visible'); 1680 }).mouseover(function () { 1681 $(this).siblings('.sub-nav-container').removeClass('active').find('.sub-nav').removeClass('visible'); 1682 $(this).addClass('active').find('.sub-nav').addClass('visible'); 1683 }).mouseup(function () { 1684 var self = $(this); 1685 self.toggleClass('active'); 1686 }); 1687 } 1688 function isSectionLight(sect) { 1689 if (!sect || !sect.style) { 1690 return true; 1691 } 1692 if (sect.style.backgroundImage) { 1693 return false;
1694 } 1695 if ($(sect).children('.video-wrapper').length) { 1696 return false; 1697 } 1698 return sect.classList.contains('is-background-color-light'); 1699 } 1700 const $header = $(`#${sectionDomId} > .header`); 1701 if ($header.hasClass('theme-auto')) { 1702 if (isSectionLight($('body > section')[0])) { 1703 $header.removeClass('theme-light'); 1704 } else { 1705 $header.addClass('theme-light'); 1706 } 1707 } 1708})('global-navbar'); 1709} catch(e) { 1710console.log(e); 1711} 1712 try { 1713(function init(sectionDomId, options) { 1714 var elementSelector = options.elementSelector || 'nav'; 1715 var element = document.querySelector(elementSelector); 1716 var sections = document.querySelectorAll('body > section'); 1717 var subNavContainers = element.querySelectorAll('.sub-nav'); 1718 var initialBackgroundColor = options.initialBackgroundColor || element.style.backgroundColor; 1719 var backgroundColorScroll = options.backgroundColorScroll || '#191919'; 1720 var fontColor = options.fontColor || '#fff'; 1721 var fontColorScroll = options.fontColorScroll || '#000'; 1722 var didScroll = false; 1723 var lastScrollTop = 0; 1724 var delta = 5; 1725 1726 // eslint-disable-next-line sonarjs/no-collapsible-if 1727 if (wow) { 1728 // Wowjs might not trigger for position fixed elements 1729 if (window.scrollY > 0) { 1730 element.querySelectorAll('.wow').forEach(el => wow.show(el)); 1731 } 1732 } 1733 function adjustNavPinState() { 1734 // Remove 'visible' class from all subNavContainers 1735 for (let i = 0; i < subNavContainers.length; i++) { 1736 subNavContainers[i].classList.remove('visible'); 1737 } 1738 if (window.scrollY > 0) { 1739 element.style.backgroundColor = backgroundColorScroll; 1740 element.style.color = fontColorScroll; 1741 element.classList.add('scroll'); 1742 } else { 1743 element.style.backgroundColor = initialBackgroundColor; 1744 element.style.color = fontColor; 1745 element.classList.remove('scroll'); 1746 } 1747 } 1748 adjustNavPinState(); 1749 function onScroll() { 1750 didScroll = true; 1751 } 1752 window.addEventListener('scroll', onScroll); 1753 1754 // eslint-disable-next-line 1755 var debounceInterval = setInterval(() => { 1756 if (didScroll) { 1757 // eslint-disable-next-line 1758 hasScrolled(); 1759 didScroll = false; 1760 } 1761 }, 250); 1762 function hasScrolled() { 1763 adjustNavPinState(); 1764 // eslint-disable-next-line 1765 var navbarHeight = element.offsetHeight; 1766 // eslint-disable-next-line 1767 var st = window.scrollY; 1768 1769 // Make sure they scroll more than delta 1770 if (Math.abs(lastScrollTop - st) <= delta) { 1771 return; 1772 } 1773 if (st > lastScrollTop && st > navbarHeight) { 1774 // Scroll Down 1775 element.style.transform = `translateY(-${navbarHeight}px) scaleY(0)`; 1776 document.documentElement.style.setProperty('--global-header-height', '0px'); 1777 1778 // Some sections "follow" the navbar with class sticky (i.e. Producer search) 1779 sections.forEach(section => { 1780 if (section.classList.contains('sticky')) { 1781 section.style.top = '0px'; 1782 } 1783 }); 1784 } else { 1785 // Scroll Up 1786 // eslint-disable-next-line 1787 if (st + window.innerHeight < document.documentElement.scrollHeight) { 1788 element.style.transform = `translateY(0) scaleY(1)`; 1789 document.documentElement.style.setProperty('--global-header-height', `${navbarHeight}px`); 1790 sections.forEach(section => { 1791 if (section.classList.contains('sticky')) { 1792 section.style.top = `${navbarHeight}px`; 1793 } 1794 }); 1795 } 1796 } 1797 lastScrollTop = st; 1798 } 1799})('NAVBAR', JSON.parse("{\"fontColor\":\"#211F1F\",\"elementSelector\":\"nav\",\"fontColorScroll\":\"#ffffff\",\"backgroundColorScroll\":\"#2C3426\",\"initialBackgroundColor\":\"transparent\"}")); 1800} catch(e) { 1801console.log(e); 1802} 1803 try { 1804(function init(sectionDomId) { 1805 sectionDomId = "global-sidemenu"; 1806 var $sidemenu = $('#' + sectionDomId); 1807 const subNavItems = $('body > div.sidemenu .sub-nav-container .sub-nav__item'); 1808 const hideSubNavItems = () => { 1809 subNavItems.removeClass('fadeInUp'); 1810 }; 1811 const showSubNavItems = subnav => { 1812 if ($(subnav).find('.arrow').hasClass('active')) { 1813 $(".sidemenu").find('.arrow').removeClass('active'); 1814 } else { 1815 $(".sidemenu").find('.arrow').removeClass('active'); 1816 $(subnav).find('.arrow').addClass('active'); 1817 } 1818 let i = 0; 1819 subnav.find('.sub-nav__item').each((idx, item) => { 1820 i++; 1821 var timeout; 1822 clearTimeout(timeout); 1823 timeout = setTimeout(() => { 1824 $(item).addClass('fadeInUp'); 1825 }, 100 + i * 50); 1826 }); 1827 }; 1828 $(document).on("click", function (e) {
1829 if ($(e.target).closest(".navigation").length < 1) { 1830 hideSubNavItems(); 1831 } 1832 }); 1833 $('body > div.sidemenu .sub-nav-container > a').click(function (e) { 1834 const subnavContainer = $(this).closest('.sub-nav-container'); 1835 hideSubNavItems(); 1836 showSubNavItems(subnavContainer); 1837 }); 1838 const hideSideMenu = () => { 1839 $('body > div.sidemenu').removeClass('visible'); 1840 }; 1841 $('body > div.sidemenu .navigation .navigation__item:not(.sub-nav-container) .navigation__link').on('click', function (e) { 1842 onHide(); 1843 hideSideMenu(); 1844 }); 1845 $('body > div.sidemenu .sub-nav-container .sub-nav__link').on('click', function (e) { 1846 onHide(); 1847 setTimeout(() => { 1848 hideSideMenu(); 1849 }, 1601); 1850 }); 1851 var shown = false; 1852 function onShow() { 1853 if (shown) { 1854 return; 1855 } 1856 shown = true; 1857 window.lpUI.requestScrollLock(sectionDomId); 1858 $('#' + sectionDomId + ' .navigation__link').removeClass('fade-in'); 1859 $('#' + sectionDomId + ' .lp-socials__link').removeClass('fade-in'); 1860 let i = 0; 1861 $('#' + sectionDomId + ' .navigation__link').each(function () { 1862 i++; 1863 setTimeout(() => { 1864 $(this).addClass('fade-in'); 1865 }, 900 + i * 50); 1866 }); 1867 $('#' + sectionDomId + ' .lp-socials__link').each(function () { 1868 i++; 1869 setTimeout(() => { 1870 $(this).addClass('fade-in'); 1871 }, 900 + i * 50); 1872 }); 1873 } 1874 function onHide() { 1875 hideSubNavItems(); 1876 if (!shown) { 1877 return; 1878 } 1879 $('#' + sectionDomId + ' .lp-socials__link').removeClass('fade-in'); 1880 let i = 0; 1881 $($('#' + sectionDomId + ' .navigation__link').get().reverse()).each(function () { 1882 i++; 1883 setTimeout(() => { 1884 $(this).removeClass('fade-in'); 1885 }, i * 50); 1886 }); 1887 shown = false; 1888 setTimeout(() => { 1889 window.lpUI.releaseScrollLock(sectionDomId); 1890 }, 1600); 1891 } 1892 $sidemenu.on('lpui-show', onShow); 1893 $sidemenu.on('lpui-hide', onHide); 1894})('global-sidemenu'); 1895} catch(e) { 1896console.log(e); 1897} 1898 1899 try { 1900(function init(sectionDomId) { 1901 function setHttp(link) { 1902 if (link.search(/^http[s]?\:\/\/|\//) == -1) { 1903 link = 'http://' + link; 1904 } 1905 return link; 1906 } 1907 $(`#${sectionDomId} form`).on("reset", function () { 1908 const redirectLink = $('#' + sectionDomId + ' .redirect-link'); 1909 if (redirectLink.length) { 1910 const rawHref = redirectLink.attr('href'); 1911 redirectLink.attr('href', setHttp(rawHref)); 1912 redirectLink[0].click(); 1913 } 1914 }); 1915})('global-footer'); 1916} catch(e) { 1917console.log(e); 1918} 1919 1920 try { 1921(function init(sectionDomId) {})('global-mobile-contact'); 1922} catch(e) { 1923console.log(e); 1924} 1925 1926 try { 1927(function init(sectionDomId, options) { 1928 const $section = $('#' + sectionDomId); 1929 const $videoWrap = $section.find('.full-screen-video-component > .video-wrapper'); 1930 const $playButton = $section.find('.js-play-btn'); 1931 if ($videoWrap.length) { 1932 const $video = $videoWrap.find('video'); 1933 $video.each(function () { 1934 var v = this; 1935 if (v.readyState > 0) { 1936 $videoWrap.addClass('playing'); 1937 var promise = v.play(); 1938 if (promise !== undefined) { 1939 promise.catch(error => { 1940 $playButton.addClass('visible'); 1941 }).then(() => {}); 1942 } 1943 } else { 1944 v.addEventListener('canplay', function () { 1945 $videoWrap.addClass('playing'); 1946 }, { 1947 once: true 1948 }); 1949 } 1950 }); 1951 } 1952 $playButton.on('click', function () { 1953 const $video = $videoWrap.find('video'); 1954 this.classList.remove('visible'); 1955 if ($video[0].currentTime === 0) { 1956 $video[0].load(); 1957 $video[0].play(); 1958 } 1959 }); 1960 window.luxuryPresence.mapApiLoader.load().then(() => { 1961 const $searchWrapper = $section.find('.search-wrapper'); 1962 if (!$searchWrapper.length) { 1963 return; 1964 } 1965 const searchMls = $searchWrapper[0].dataset.searchMls === 'true'; 1966 const searchProperties = $searchWrapper[0].dataset.searchProperties === 'true'; 1967 const searchPlaces = searchMls; 1968 const showNeighborhoods = searchMls; 1969 const searchNearEnabled = searchMls; 1970 const $searchInput = $section.find('.search-input'); 1971 const $searchResults = $section.find('.search-results'); 1972 const $resultsContainer = $section.find('.results-container'); 1973 const $loader = $section.find('.search-in-progress'); 1974 const $predefined = $section.find('.predefined-links'); 1975 const $searchBtn = $section.find('.search-button'); 1976 const $leaseFalseButton = $section.find('.jsLeaseFalse'); 1977 const $leaseTrueButton = $section.find('.jsLeaseTrue'); 1978 const $nextSection = $section.next(); 1979 const fixZIndex = $nextSection.length && parseInt($nextSection.css('z-index')) || 1; 1980 const searchDelay = 300; 1981 const maxPlaces = 3; 1982 const maxMls = 5; 1983 const leaseFilter = $leaseFalseButton.length > 0 && $leaseTrueButton.length > 0; 1984 const service = new google.maps.places.AutocompleteService(); 1985 const geocoder = new google.maps.Geocoder(); 1986 var keyword; 1987 var leasePropertyState = false;
1988 var leasePropertySearched; 1989 var searchActive = false; 1990 var isLoading = false; 1991 function showSearchResults() { 1992 searchActive = true; 1993 updateSearchDisplay(); 1994 } 1995 function hideSearchResults() { 1996 searchActive = false; 1997 updateSearchDisplay(); 1998 } 1999 function showLoading() { 2000 isLoading = true; 2001 updateSearchDisplay(); 2002 } 2003 function hideLoading() { 2004 isLoading = false; 2005 updateSearchDisplay(); 2006 } 2007 function updateSearchDisplay() { 2008 if (leaseFilter) { 2009 if (leasePropertyState) { 2010 $leaseTrueButton.addClass('active'); 2011 $leaseFalseButton.removeClass('active'); 2012 } else { 2013 $leaseFalseButton.addClass('active'); 2014 $leaseTrueButton.removeClass('active'); 2015 } 2016 } 2017 if (!searchActive) { 2018 $searchResults.removeClass('show'); 2019 $searchResults.css('height', '0'); 2020 return; 2021 } 2022 var hasResults = !!$resultsContainer.html(); 2023 var hasPredefined = $predefined.find('a:not(.not-processed)').length > 0; 2024 if (hasResults) { 2025 $predefined.addClass('not-visible'); 2026 $loader.addClass('not-visible'); 2027 $resultsContainer.removeClass('not-visible'); 2028 } else if (isLoading) { 2029 $resultsContainer.addClass('not-visible'); 2030 $predefined.addClass('not-visible'); 2031 $loader.removeClass('not-visible'); 2032 } else if (hasPredefined) { 2033 $resultsContainer.addClass('not-visible'); 2034 $loader.addClass('not-visible'); 2035 $predefined.removeClass('not-visible'); 2036 } else { 2037 $resultsContainer.addClass('not-visible'); 2038 $loader.addClass('not-visible'); 2039 $predefined.addClass('not-visible'); 2040 } 2041 var height = 0; 2042 height += $predefined[0].getBoundingClientRect().height; 2043 height += $resultsContainer[0].getBoundingClientRect().height; 2044 height += $loader[0].getBoundingClientRect().height; 2045 if (height > 0) { 2046 $searchResults.addClass('show'); 2047 } else { 2048 $searchResults.removeClass('show'); 2049 } 2050 $searchResults.css('height', height + 'px'); 2051 } 2052 function clearSelection() { 2053 $searchResults.find('.selected-link').removeClass('selected-link'); 2054 } 2055 function moveSelection(up) { 2056 var $cont = $resultsContainer.html() ? $resultsContainer : $predefined; 2057 var $links = $cont.find('.results-link'); 2058 if (!$links.length) { 2059 return; 2060 } 2061 var idx = -1; 2062 $links.each(function (i) { 2063 if (idx === -1 && $(this).is('.selected-link')) { 2064 idx = i; 2065 } 2066 }); 2067 var newIdx; 2068 if (up) { 2069 newIdx = idx - 1; 2070 if (newIdx < 0) { 2071 newIdx = $links.length - 1; 2072 } 2073 } else { 2074 newIdx = idx + 1; 2075 if (newIdx > $links.length - 1) { 2076 newIdx = 0; 2077 } 2078 } 2079 if (newIdx !== idx) { 2080 $searchResults.find('.selected-link').removeClass('selected-link'); 2081 $($links.get(newIdx)).addClass('selected-link'); 2082 } 2083 } 2084 var newSearchTimer; 2085 function inputChanged(ev) { 2086 if (ev.which === 38) { 2087 ev.preventDefault(); 2088 moveSelection(true); 2089 return false; 2090 } 2091 if (ev.which === 40) { 2092 ev.preventDefault(); 2093 moveSelection(); 2094 return false; 2095 } 2096 if (ev.which === 13) { 2097 $lnk = $searchResults.find('.selected-link'); 2098 if ($lnk.length) { 2099 $lnk[0].click(); 2100 hideSearchResults(); 2101 } else { 2102 $searchBtn.click(); 2103 } 2104 } 2105 window.clearTimeout(newSearchTimer); 2106 newSearchTimer = window.setTimeout(startSearch, searchDelay); 2107 } 2108 function startSearch() { 2109 const term = $searchInput.val(); 2110 if (term === keyword && leasePropertySearched === leasePropertyState) { 2111 return; 2112 } 2113 leasePropertySearched = leasePropertyState; 2114 keyword = term; 2115 if (term) { 2116 doSearch(term, leasePropertySearched); 2117 } else { 2118 setResults(null); 2119 } 2120 } 2121 function mlsSearch(term, leaseProperty) { 2122 var query = { 2123 keyword_search: term, 2124 limit: maxMls 2125 }; 2126 if (leaseFilter && leaseProperty) { 2127 query.lease_property = true; 2128 } 2129 return superagent.get(window.location.protocol + '//' + window.location.host + '/home-search/listings.json').query(query).then(function (res) { 2130 if (!Array.isArray(res.body)) { 2131 return []; 2132 } 2133 return res.body.map(function (item) { 2134 return { 2135 id: item.id, 2136 display_address: [item.address_1, item.city, [item.state, item.postal_code].filter(function (i) { 2137 return i; 2138 }).join(' ')].filter(function (i) { 2139 return i; 2140 }).join(', ') 2141 }; 2142 }); 2143 }, function (e) { 2144 console.log(e); 2145 return []; 2146 }); 2147 } 2148 function resolveGeoBounds(placeId, description, terms) { 2149 return new Promise(function (resolve, reject) { 2150 geocoder.geocode({ 2151 'placeId': placeId 2152 }, function (results, status) { 2153 if (status != 'OK') { 2154 return resolve(null); 2155 } 2156 var result = results[0]; 2157 var bounds = new google.maps.LatLngBounds();
2158 bounds.extend(result.geometry.viewport.getSouthWest()); 2159 bounds.extend(result.geometry.viewport.getNorthEast()); 2160 result.geometry.bounds = bounds.toJSON(); 2161 var placeUrl = window.luxuryPresence.makeMlsLink(result); 2162 return resolve({ 2163 placeUrl: placeUrl, 2164 description: description, 2165 cityName: terms[0].value, 2166 stateName: terms[1].value 2167 }); 2168 }); 2169 }); 2170 } 2171 function resolveAutocomplete(term, deeper) { 2172 var request = { 2173 input: term, 2174 componentRestrictions: { 2175 country: 'us' 2176 }, 2177 types: deeper ? ['geocode'] : ['(regions)'], 2178 limit: 1 2179 }; 2180 return new Promise(function (resolve, reject) { 2181 service.getPlacePredictions(request, function (results, status) { 2182 if (status !== google.maps.places.PlacesServiceStatus.OK) { 2183 resolve(null); 2184 return; 2185 } 2186 if (!Array.isArray(results)) { 2187 resolve(null); 2188 return; 2189 } 2190 if (deeper) { 2191 var allowedTypes = { 2192 'neighborhood': true, 2193 'administrative_area_level_3': true, 2194 'administrative_area_level_4': true, 2195 'administrative_area_level_5': true, 2196 'sublocality_level_1': true, 2197 'sublocality_level_2': true, 2198 'sublocality_level_3': true 2199 }; 2200 results = results.filter(function (res) { 2201 return res.types.find(t => allowedTypes[t]); 2202 }); 2203 } 2204 if (!results.length) { 2205 resolve(null); 2206 return; 2207 } 2208 resolve(results); 2209 }); 2210 }); 2211 } 2212 var placesResult = {}; 2213 function placesSearch(term, ignoreInput) { 2214 if (placesResult.term !== term) { 2215 placesResult = { 2216 term: term, 2217 result: resolveAutocomplete(term).then(function (results) { 2218 if (!ignoreInput && term !== keyword) { 2219 return null; 2220 } 2221 if (ignoreInput && !results) { 2222 return resolveAutocomplete(term, true); 2223 } 2224 return results; 2225 }).then(function (results) { 2226 if (!ignoreInput && term !== keyword) { 2227 return []; 2228 } 2229 if (!results) { 2230 return []; 2231 } 2232 var geoResultPromises = results.map(function (result) { 2233 return resolveGeoBounds(result.place_id, result.description, result.terms); 2234 }); 2235 return Promise.all(geoResultPromises).then(function (geoLinks) { 2236 return geoLinks.filter(function (i) { 2237 return i; 2238 }).slice(0, maxPlaces); 2239 }); 2240 }) 2241 }; 2242 } 2243 return placesResult.result; 2244 } 2245 function propertiesSearch(term, leaseProperty) { 2246 var payload = { 2247 companyId: window.luxuryPresence.defaults.companyId, 2248 search: term, 2249 offset: 0, 2250 limit: 6, 2251 statusIds: ["5f528253-abb7-484e-95c3-330269ac1105", "959c11cf-8655-4f91-874c-292b0ab7ea6b", "a0012964-4f51-4430-abf8-6547c5ab6441", "df04ccbe-4621-4140-a504-ee1a17430bb7", "88b4ace6-f39b-4b25-a051-8f6dba976833", "96031d77-bbe5-4de3-90d8-1e4e70de8ca8"] 2252 }; 2253 if (leaseFilter) { 2254 payload.leaseProperty = !!leaseProperty; 2255 } 2256 var useRouter = Boolean(options && options.useRouterApi); 2257 return superagent.post((useRouter ? window.luxuryPresence.defaults.routerUrl : window.luxuryPresence.defaults.apiGatewayUrl) + '/graphql').send({ 2258 query: window.luxuryPresence.defaults.gql.properties, 2259 variables: useRouter ? window.luxuryPresence.routerApi.transformVariables('properties', payload) : payload 2260 }).then(function (res) { 2261 var data = res.body.data || {}; 2262 var page = data.properties || {}; 2263 return useRouter ? page.items || [] : page || []; 2264 }, function (err) { 2265 return []; 2266 }); 2267 } 2268 function doSearch(term, leaseProperty) { 2269 showLoading(); 2270 Promise.all([searchMls ? mlsSearch(term, leaseProperty) : [], searchPlaces ? placesSearch(term) : [], searchProperties ? propertiesSearch(term, leaseProperty) : []]).then(function (res) { 2271 if (term !== keyword) { 2272 return; 2273 } 2274 setResults(res[0], res[1], res[2], leaseProperty); 2275 }); 2276 } 2277 function makeResultsBlockHtml(title, links) { 2278 if (!links || !links.length) { 2279 return ''; 2280 } 2281 var html = '<div class="results-block">'; 2282 html += '<div class="results-block-title">'; 2283 if (searchNearEnabled) { 2284 html += '<div class="search-near-container"><a class="search-near lp-link lp-link--light">Search Near Me</a></div>'; 2285 } 2286 html += '<div class="results-title-label">' + title + '</div></div>'; 2287 html += links.join('') + '</div>'; 2288 return html; 2289 } 2290 function setResults(mlsResults, placesResults, propertiesResults, leaseProperty) { 2291 clearSelection(); 2292 hideLoading(); 2293 if (!mlsResults) { 2294 $resultsContainer.html(''); 2295 updateSearchDisplay(); 2296 return; 2297 } 2298 if (!mlsResults.length && !placesResults.length && !propertiesResults.length) { 2299 $resultsContainer.html('<div class="nothing-found">No results found</div>'); 2300 updateSearchDisplay(); 2301 return; 2302 } 2303 var propertiesHtml = makeResultsBlockHtml('Featured Properties', propertiesResults.map(function (result) { 2304 return `<a href="/properties/${result.slug}" class="results-link">${result.privateAddress ? result.name : result.fullAddress}</a>`; 2305 })); 2306 var placesHtml = makeResultsBlockHtml('Locations', placesResults.map(function (result) { 2307 return `<a class="results-link" href="${result.placeUrl}${leaseProperty ? '&lease_property=true' : ''}&cityName=${result.cityName}&stateName=${result.stateName}">${result.description}</a>`; 2308 })); 2309 var mlsHtml = makeResultsBlockHtml('Address', mlsResults.map(function (result) { 2310 return `<a href="/home-search/listings/${result.id}" class="results-link">${result.display_address}</a>`; 2311 }));
2312 $resultsContainer.html(propertiesHtml + placesHtml + mlsHtml); 2313 updateSearchDisplay(); 2314 } 2315 function searchBtnClicked() { 2316 var resultsBlockHref = $("#" + sectionDomId + " .results-block .results-link").attr("href"); 2317 const term = $searchInput.val(); 2318 if (!term) { 2319 return; 2320 } 2321 if (searchMls) { 2322 window.location.href = resultsBlockHref; 2323 return; 2324 } 2325 if (searchProperties) { 2326 window.location.href = "/properties/sale"; 2327 } 2328 } 2329 var neighborhoods = null; 2330 function fetchNeighborhoods() { 2331 var url = window.luxuryPresence.defaults.apiGatewayUrl; 2332 var gqlQuery = 'query ($companyId: String, $offset: Int, $limit: Int) {' + 'neighborhoods (companyId: $companyId, offset: $offset, limit: $limit) {id, name, mlsLink, googlePlaceData}}'; 2333 var payload = {}; 2334 payload.offset = 0; 2335 payload.limit = 100; 2336 payload.companyId = window.luxuryPresence.defaults.companyId; 2337 return superagent.post(url + '/graphql').withCredentials().send({ 2338 query: gqlQuery, 2339 variables: payload 2340 }).then(function (res) { 2341 neighborhoods = res.body.data && res.body.data.neighborhoods; 2342 if (neighborhoods && !neighborhoods.length) { 2343 neighborhoods = null; 2344 } 2345 }); 2346 } 2347 function setPredefinedNeighborhoods() { 2348 return fetchNeighborhoods().then(function () { 2349 if (!neighborhoods) { 2350 return; 2351 } 2352 var leaseProperty = leaseFilter && leasePropertyState; 2353 var placesHtml = makeResultsBlockHtml('Locations', neighborhoods.map(function (item) { 2354 return `<a class="results-link" href="${item.mlsLink}${leaseProperty ? '&lease_property=true' : ''}">${item.googlePlaceData && item.googlePlaceData.formatted_address || item.name}</a>`; 2355 })); 2356 $predefined.html(placesHtml); 2357 updateSearchDisplay(); 2358 }); 2359 } 2360 if (showNeighborhoods) { 2361 setPredefinedNeighborhoods(); 2362 } 2363 $searchInput.on('focus', showSearchResults); 2364 $searchInput.on('keyup focus', inputChanged); 2365 $searchResults.on('mouseenter', '.results-link', function (ev) { 2366 clearSelection(); 2367 }); 2368 $searchBtn.on('click', searchBtnClicked); 2369 $leaseFalseButton.on('click', function () { 2370 if (leasePropertyState) { 2371 leasePropertyState = false; 2372 if (showNeighborhoods) { 2373 setPredefinedNeighborhoods(); 2374 } 2375 updateSearchDisplay(); 2376 setResults(null); 2377 startSearch(); 2378 } 2379 }); 2380 $leaseTrueButton.on('click', function () { 2381 if (!leasePropertyState) { 2382 leasePropertyState = true; 2383 if (showNeighborhoods) { 2384 setPredefinedNeighborhoods(); 2385 } 2386 updateSearchDisplay(); 2387 setResults(null); 2388 startSearch(); 2389 } 2390 }); 2391 function createPolygonUrl(center, radius, n) { 2392 var step = Math.PI * 2 / n; 2393 var angle = 0 - step / 2; 2394 var points = []; 2395 var kx = 1.0 / Math.cos(center[1] * Math.PI / 180); 2396 for (var i = 0; i < n; i++) { 2397 points.push('[' + (center[0] + radius * Math.sin(angle) * kx).toFixed(5) + ',' + (center[1] - radius * Math.cos(angle)).toFixed(5) + ']'); 2398 angle += step; 2399 } 2400 points.push(points[0]); 2401 var str = '[[' + points.join(',') + ']]'; 2402 return '&polygon=' + encodeURIComponent(str); 2403 } 2404 function makeNearMeUrl(center, leaseProperty) { 2405 var url = '/home-search/listings?search_type=envelope'; 2406 if (leaseProperty) { 2407 url += '&lease_property=true'; 2408 } 2409 var distance = 0.11; 2410 var lat = center[1]; 2411 var lng = center[0]; 2412 url += '&south=' + (lat - distance); 2413 url += '&north=' + (lat + distance); 2414 url += '&west=' + (lng - distance); 2415 url += '&east=' + (lng + distance); 2416 url += createPolygonUrl(center, distance, 54); 2417 return url; 2418 } 2419 var $locMsg = null; 2420 $section.on('click', '.search-near', function () { 2421 showLoading(); 2422 navigator.geolocation.getCurrentPosition(function (position) { 2423 hideLoading(); 2424 hideSearchResults(); 2425 if (!position || !position.coords || !position.coords.latitude || !position.coords.longitude) { 2426 showLocationMessage('Unknown Location', '<p>Getting position of your device failed.</p><p>
2426You can type your address manually in the search field</p>'); 2427 return; 2428 } 2429 var url = makeNearMeUrl([position.coords.longitude, position.coords.latitude], leaseFilter && leasePropertyState); 2430 var link = document.createElement('a'); 2431 link.href = url; 2432 link.class = 'lp-visually-hidden'; 2433 $section[0].appendChild(link); 2434 link.click(); 2435 setTimeout(function () { 2436 $section[0].removeChild(link); 2437 }, 100); 2438 }, function (geoError) { 2439 hideLoading(); 2440 hideSearchResults(); 2441 var title = 'Unknown Location'; 2442 var msg; 2443 if (geoError.code === 1) { 2444 msg = '<p>To be able to search near you we need to know your current location.</p><p>If you don\'t want to give access to your device\'s location, you can type your address in the search field</p>'; 2445 } else { 2446 msg = '<p>Getting position of your device failed.</p><p>You can type your address manually in the search field</p>'; 2447 } 2448 showLocationMessage(title, msg); 2449 }); 2450 }); 2451 var locHideTimer = null; 2452 function showLocationMessage(title, message) { 2453 clearTimeout(locHideTimer); 2454 if (!$locMsg) { 2455 var html = `<div class="loc-msg-backdrop"> 2456 <div class="loc-msg-wrap"> 2457 <div class="loc-msg-modal"> 2458 <div class="loc-msg-close"></div> 2459 <h4 class="loc-msg-title lp-h4"></h4> 2460 <div class="loc-msg-container"></div> 2461 </div> 2462 </div> 2463 </div> 2464 `; 2465 $locMsg = $(html); 2466 $locMsg.on('click', hideLocationMessage); 2467 $section.append($locMsg); 2468 } 2469 $locMsg.find('.loc-msg-container').html(message); 2470 $locMsg.find('.loc-msg-title').html(title); 2471 setTimeout(function () { 2472 if ($locMsg) { 2473 $section.addClass('visible-loc-msg'); 2474 } 2475 }); 2476 } 2477 function hideLocationMessage() { 2478 $section.removeClass('visible-loc-msg'); 2479 locHideTimer = setTimeout(function () { 2480 $locMsg.remove(); 2481 $locMsg = null; 2482 }, 400); 2483 } 2484 function outsideClickHandler(e) { 2485 if ($searchWrapper.find($(e.target)).length > 0) { 2486 return; 2487 } 2488 hideSearchResults(); 2489 } 2490 $(document).on('click', outsideClickHandler); 2491 if ('geolocation' in navigator) { 2492 $searchWrapper.removeClass('search-near-hidden'); 2493 } 2494 updateSearchDisplay(); 2495 }); 2496})('section-c91d81a1-22b1-46c2-b383-355d4dc6717a', 'undefined'); 2497} catch(e) { 2498console.log(e); 2499} 2500 try { 2501(function init(sectionDomId) { 2502 var $section = $('#' + sectionDomId); 2503 $section.find('.media-card__description').each(function () { 2504 var $desc = $(this); 2505 var fullHtml = $desc.html(); 2506 var text = $desc.text(); 2507 if (text.length > 188) { 2508 var substring = text.substring(0, 188); 2509 $desc.empty().append(`<span class="substring">${substring}... <a class="btn-more">VIEW MORE</a></span>`).append(`<div class="more-text">${fullHtml} <a class="btn-more">VIEW LESS</a></div>`); 2510 $desc.addClass('cropped'); 2511 } 2512 }); 2513 $section.find('.btn-more').on('click', function (e) { 2514 e.preventDefault(); 2515 $(this).closest('.media-card__description').toggleClass('cropped'); 2516 }); 2517})('section-3be22ff3-0794-4b4a-bbcb-f157aa9408b9', 'undefined'); 2518} catch(e) { 2519console.log(e); 2520} 2521 try { 2522(function init(sectionDomId) { 2523 var $section = $('#' + sectionDomId); 2524 $section.find('.media-card__description').each(function () { 2525 var $desc = $(this); 2526 var fullHtml = $desc.html(); 2527 var text = $desc.text(); 2528 if (text.length > 188) { 2529 var substring = text.substring(0, 188); 2530 $desc.empty().append(`<span class="substring">${substring}... <a class="btn-more">VIEW MORE</a></span>`).append(`<div class="more-text">${fullHtml} <a class="btn-more">VIEW LESS</a></div>`); 2531 $desc.addClass('cropped'); 2532 } 2533 }); 2534 $section.find('.btn-more').on('click', function (e) { 2535 e.preventDefault(); 2536 $(this).closest('.media-card__description').toggleClass('cropped'); 2537 }); 2538})('section-603a8c8e-0751-4c5a-89cb-80c5906875fe', 'undefined'); 2539} catch(e) { 2540console.log(e); 2541} 2542 try { 2543(function init(sectionDomId) {})('section-38f463dd-93fe-4ac6-9056-a96318555ecd', 'undefined'); 2544} catch(e) { 2545console.log(e); 2546} 2547 2548 var { body } = document; 2549 var globalNav = body.querySelector(':scope > nav'); 2550 var globalSideMenu = body.querySelector(':scope > div.sidemenu'); 2551 2552 document.querySelectorAll('body > .modal .close').forEach(modalCloseBtn => { 2553 modalCloseBtn.addEventListener('click', function() { 2554 window.lpUI.hideClosestModal(modalCloseBtn); 2555 }); 2556 }); 2557 2558 window.addEventListener('click', function() { 2559 document.querySelectorAll('.share-popup').forEach(sharedPopup => { 2560 sharedPopup.style.display = 'none' ; 2561 }); 2562 }); 2563 2564 /* Misc Partials / Addons */ 2565 function initWOW() { 2566 if (wow) { 2567 wow.init(); 2568 wow.scrollHandler(); 2569 setTimeout(function () { 2570 const wowHideStyle = document.getElementById('wow-hide-elements'); 2571 if(wowHideStyle) { 2572 wowHideStyle.disabled = true; 2573 } 2574 }, 1); 2575 } 2576 } 2577 2578 const wowHideElements = document.getElementById('wow-hide-elements'); 2579 if (wowHideElements) { 2580 wowHideElements.disabled = false;
2581 } 2582 2583 initWOW(); 2584 2585 /* Generic Navbar Handling */ 2586 globalNav?.querySelectorAll('.hamburger-component').forEach(hamburgerComponent => { 2587 hamburgerComponent.addEventListener('click', function() { 2588 window.lpUI.sideMenuToggle(); 2589 }); 2590 }); 2591 globalSideMenu?.querySelectorAll('.toggle').forEach(toggleEl => { 2592 toggleEl.addEventListener('click', function() { 2593 window.lpUI.sideMenuToggle(); 2594 }); 2595 }); 2596 2597 document.querySelectorAll('body > nav .sub-nav-container > a, body > div.sidemenu .sub-nav-container > a').forEach(linkEl => { 2598 linkEl.addEventListener('click', function(e) { 2599 e.preventDefault(); 2600 e.stopPropagation(); 2601 var subNav = linkEl.parentElement.querySelector(':scope > .sub-nav'); 2602 if (subNav && subNav.classList.contains('visible')){ 2603 subNav.classList.remove('visible'); 2604 } else { 2605 globalNav?.querySelectorAll('.sub-nav-container .sub-nav').forEach(globalSubNav => { 2606 globalSubNav.classList.remove('visible'); 2607 }); 2608 globalSideMenu?.querySelectorAll('.sub-nav').forEach(sideMenuSubNav => { 2609 sideMenuSubNav.classList.remove('visible'); 2610 }); 2611 subNav?.classList.add('visible'); 2612 } 2613 }); 2614 }); 2615 window.addEventListener('click', function() { 2616 document.querySelectorAll('nav .sub-nav.visible, .sidemenu .sub-nav.visible').forEach(subNavEl => { 2617 subNavEl.classList.remove('visible'); 2618 }); 2619 }); 2620 2621 } 2622 2623 document.addEventListener('DOMContentLoaded', lpGlobalInit); 2624 2625 </script>
2625 2626 2627
2627<script type="module"> 2628 function selectorExists(selector) { 2629 return document.querySelector(selector) !== null; 2630 } 2631 2632 // Function to initialize the third-party library 2633 function initParoller(selector = '.my-paroller') { 2634 var $parollerElements = $(selector); 2635 if ($parollerElements.length > 0 && typeof $parollerElements.paroller === 'function') { 2636 $parollerElements.paroller(); 2637 } 2638 } 2639 2640 const parollerSelector = '.my-paroller'; 2641 2642 if (selectorExists(parollerSelector)) { 2643 window.luxuryPresence.libs.loadJs(window.luxuryPresence.libs.jsLibsMap.paroller.jsSrc, function() { 2644 initParoller(parollerSelector); 2645 window.luxuryPresence.libs.jsLibsMap.paroller.isLoaded = true; 2646 }); 2647 } 2648 </script>
2648 2649 2650 <!-- Follow Up Boss Page View Tracker--> 2651
2651<script type="text/plain" data-consent-category="analytics"> 2652 window.widgetTracker("send", "pageview"); 2653 </script>
2653 2654 <!-- End Follow Up Boss Page View Tracker --> 2655 <!-- Google Tag Manager (noscript) -->
vendor: 80 bytes, lines 2655-2656
2655 2656 <noscript><iframe src="https://www.googletagmanager.com/ns.html?id=
2656GTM-TWQBNFZM
vendor: 107 bytes, lines 2656-2658
2656" 2657 height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript> 2658
2658<!-- End Google Tag Manager --> 2659 <!-- Google Tag Manager (noscript) -->
vendor: 80 bytes, lines 2659-2660
2659 2660 <noscript><iframe src="https://www.googletagmanager.com/ns.html?id=
2660GTM-T9SFQGHZ
vendor: 107 bytes, lines 2660-2662
2660" 2661 height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript> 2662
2662<!-- End Google Tag Manager --> 2663 2664 2665
2665<script 2666 src="https://cdn.luxurypresence.com/scripts/a11y-widget/latest/widget.js" 2667 data-website-id="a5440cc9-5b97-48ed-9bee-febaed15953d" 2668 2669 defer></script>
vendor: 1 bytes, line 2669
2669
2670<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:'a45d6f00fb11b900',t:'MTc5MTIxMzg3MA=='};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>
2670<script type="module" src="https://static.cloudflareinsights.com/beacon.min.js/v31edd6df95cf4e85bb4c19e7a9bdbcba1788362987495" integrity="sha512-iIg7k2xntmwu6/uSb5tpc/hySgZc4eoL31yB29W6tJFo2akwjPWcEqnCEdJvGexCL0KEQwVYv5BlowfhVz26hg==" data-cf-beacon='{"version":"2024.11.0","token":"d2a8f4b3d65944edb8fcd6ffce49ee5e","spa":2}' crossorigin="anonymous"></script>
2670 2671</body> 2672</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.