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>Contact Us - Sundial Real Estate</title> 10 <meta property="og:title" content="Contact Us - Sundial Real Estate"> 11 <meta name="twitter:title" content="Contact Us - Sundial Real Estate"> 12 <meta name="description" content="Sundial Real Estate provides trustworthy advice & high-quality service to its clients. Let's discuss your transactions today by filling out the details here!"> 13 <meta property="og:description" content="Sundial Real Estate provides trustworthy advice & high-quality service to its clients. Let's discuss your transactions today by filling out the details here!"> 14 <meta name="twitter:description" content="Sundial Real Estate provides trustworthy advice & high-quality service to its clients. Let's discuss your transactions today by filling out the details here!"> 15 <meta property="og:image" content="https://media-production.lp-cdn.com/media/ea50e0ff-9391-4680-baf8-442eb64b0f5d"> 16 <meta name="twitter:image" content="https://media-production.lp-cdn.com/media/ea50e0ff-9391-4680-baf8-442eb64b0f5d"> 17 <meta property="og:url" content="https://sundialrealestate.com/contact"> 18 <link rel="canonical" href="https://sundialrealestate.com/contact"> 19
19<script>(function(html){html.className = html.className.replace(/\bno-js\b/,'js')})(document.documentElement);</script>
19 20 <link rel="preconnect" href="https://fonts.googleapis.com"> 21 <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin> 22 <link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Montserrat:100,100i,200,200i,300,300i,400,400i,500,500i,600,600i,700,700i,800,800i,900,900i"> 23 <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'"> 24 <noscript><link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/ion-rangeslider/2.3.1/css/ion.rangeSlider.min.css"></noscript> 25 <link rel="icon" type="image/x-icon" href="/favicon.ico"> 26 <link rel="icon" type="image/png" sizes="16x16" href="/favicon-16x16.png"> 27 <link rel="icon" type="image/png" sizes="32x32" href="/favicon-32x32.png"> 28 <link rel="icon" type="image/png" sizes="48x48" href="/favicon-48x48.png"> 29 <style id="global-css">:root{--global-primary-font-family:Montserrat,sans-serif;--global-primary-font-family-short:Montserrat;--global-secondary-font-family:Montserrat,sans-serif;--global-secondary-font-family-short:Montserrat;--global-body-padding:0px;--global-background-color:#fff;--global-body-font-size:16px;--global-h1-font-size:45px;--global-h2-font-size:30px;--global-h3-font-size:28px;--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:#fff;font-family:Montserrat,sans-serif;font-size:16px;}@media (min-width: 768px){body{padding:0px 0px 0px 0px;}}h1,h2,h3,h4,h5,h6,button{font-family:Montserrat,sans-serif;}h1{font-size:45px;}h2{font-size:30px;}h3{font-size:28px;}h4{font-size:28px;}h5{font-size:22px;}h6{font-size:20px;}</style> 30 <link rel="stylesheet" type="text/css" href="https://styles.luxurypresence.com/masterpiece/index.css" /> 31 <style id="website-css">.auto-year-update::after{content:' Sundial Real Estate, LICENSE #1059660';}@media only screen and (max-width: 1024px){#modal-global-contact-us div.contact-form__close.close{color:#fff;opacity:1;}}nav#global-navbar .header.theme-light .header__hamburger circle{fill:#F6BA18;}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{color:#000;background-color:#fff;}nav#global-navbar .header.theme-light ul.navigation li.navigation__item .sub-nav__link:hover{color:#FFF;background-color:#F6BA18;}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:#000!important;border-color:#fff!important;}nav#global-navbar .header .header__hamburger circle{fill:#F6BA18;}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:#F6BA18;}nav#global-navbar .header ul.navigation li.navigation__item .navigation__link:after{background:#fff;}nav#global-navbar .header .search__btn svg{color:#000;}nav#global-navbar.scroll .header{background-color:#fff;}nav#global-navbar.scroll .header .header__hamburger circle{fill:#F6BA18;}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:#F6BA18;}nav#global-navbar.scroll .header ul.navigation li.navigation__item .navigation__link:after{background:#F6BA18;}nav#global-navbar.scroll .header .search__btn svg{color:#000;}nav#global-navbar.scroll .header a.header__btn-contact{background:transparent;color:#000!important;border-color:#000!important;}nav#global-navbar.scroll .header a.header__btn-contact:hover{background:#fff!important;color:#000!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;}#global-footer .site-footer__disclaimer:after{background-color:#000;opacity:1;}footer#global-footer a:hover{color:#F6BA18;}
31footer#global-footer div.site-footer__col-content.lp-a{opacity:1;}footer#global-footer .footer-navigation__link:hover{color:#F6BA18;}footer#global-footer .site-footer__disclaimer{color:#000;opacity:1;}@media screen and (max-width:768px){div#global-mobile-contact div.mobile-contact div.buttons-holder{bottom:100px;right:20px;}}#global-footer .site-footer__disclaimer:after{background-color:#000;opacity:1;}footer#global-footer a:hover{color:#F6BA18;}footer#global-footer div.site-footer__col-content.lp-a{opacity:1;}footer#global-footer .footer-navigation__link:hover{color:#F6BA18;}footer#global-footer .site-footer__disclaimer{color:#000;opacity:1;}@media (min-width:769px){nav#global-navbar .header__logo a.logo{width:240px;height:40px;max-width:240px;}nav#global-navbar .header__logo a.logo .logo__img{width:250px;height:40px;}}@media (max-width: 768px){nav#global-navbar .header__logo a.logo{width:240px;height:auto;max-width:400px;}nav#global-navbar .header__logo a.logo .logo__img{width:600px;height:auto;}}nav#global-navbar .header__container{max-width:1500px;}</style> 32 <style id="wow-hide-elements">.wow{visibility:hidden!important}</style> 33 <style id="page-css"> 34 #section-c02c049d-1919-46eb-a603-1cce7a5ab4cf{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;background-color:#000000;--gradient-color:var(--overlay-color, rgba(0, 0, 0, 0.30));background-image:linear-gradient(var(--gradient-color), var(--gradient-color)),url('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/woulgtapa3dtve8xgjwb');background-repeat:no-repeat;-webkit-background-position:center;background-position:center;-webkit-background-size:cover;background-size:cover;}#section-c02c049d-1919-46eb-a603-1cce7a5ab4cf .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-c02c049d-1919-46eb-a603-1cce7a5ab4cf .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-c02c049d-1919-46eb-a603-1cce7a5ab4cf .video-wrapper .full-screen-video-component .video-wrapper.playing video{opacity:1!important;}#section-c02c049d-1919-46eb-a603-1cce7a5ab4cf .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-c02c049d-1919-46eb-a603-1cce7a5ab4cf .lp-play.visible{opacity:1;cursor:pointer;}@media (max-width: 900px){#section-c02c049d-1919-46eb-a603-1cce7a5ab4cf .lp-play.visible{display:none;}}@media (max-width: 900px){#section-c02c049d-1919-46eb-a603-1cce7a5ab4cf .lp-play{display:none;}}#section-c02c049d-1919-46eb-a603-1cce7a5ab4cf.parallax-enabled{z-index:unset;}#section-c02c049d-1919-46eb-a603-1cce7a5ab4cf.parallax-enabled .lp-container{position:relative;}#section-c02c049d-1919-46eb-a603-1cce7a5ab4cf.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-c02c049d-1919-46eb-a603-1cce7a5ab4cf.parallax-enabled>div.video-wrapper{left:0;top:0;width:100%;}}#section-c02c049d-1919-46eb-a603-1cce7a5ab4cf.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-c02c049d-1919-46eb-a603-1cce7a5ab4cf.parallax-enabled>div.overlay-component{left:0;top:0;width:100%;}}#section-c02c049d-1919-46eb-a603-1cce7a5ab4cf.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);
34background: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-c02c049d-1919-46eb-a603-1cce7a5ab4cf.parallax-enabled .opening-with-search:before{left:0;top:0;width:100%;}}#section-c02c049d-1919-46eb-a603-1cce7a5ab4cf .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-c02c049d-1919-46eb-a603-1cce7a5ab4cf .opening-with-search:before{display:none;}#section-c02c049d-1919-46eb-a603-1cce7a5ab4cf .opening-with-search.height-class-Full{min-height:100vh;}#section-c02c049d-1919-46eb-a603-1cce7a5ab4cf .opening-with-search.height-class-Full>div.video-wrapper{height:100vh;}#section-c02c049d-1919-46eb-a603-1cce7a5ab4cf .opening-with-search.height-class-Full:before{min-height:100vh;}#section-c02c049d-1919-46eb-a603-1cce7a5ab4cf .opening-with-search.height-class-770px{min-height:770px;}#section-c02c049d-1919-46eb-a603-1cce7a5ab4cf .opening-with-search.height-class-770px>div.video-wrapper{height:770px;}#section-c02c049d-1919-46eb-a603-1cce7a5ab4cf .opening-with-search.height-class-770px:before{min-height:770px;}#section-c02c049d-1919-46eb-a603-1cce7a5ab4cf .opening-with-search.height-class-600px{min-height:600px;}#section-c02c049d-1919-46eb-a603-1cce7a5ab4cf .opening-with-search.height-class-600px>div.video-wrapper{height:600px;}#section-c02c049d-1919-46eb-a603-1cce7a5ab4cf .opening-with-search.height-class-600px:before{min-height:600px;}#section-c02c049d-1919-46eb-a603-1cce7a5ab4cf .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-c02c049d-1919-46eb-a603-1cce7a5ab4cf .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-c02c049d-1919-46eb-a603-1cce7a5ab4cf .opening-with-search .opening-description{letter-spacing:.1em;margin-bottom:15px;max-width:640px;margin-left:auto;margin-right:auto;}#section-c02c049d-1919-46eb-a603-1cce7a5ab4cf .opening-with-search .opening-description a,#section-c02c049d-1919-46eb-a603-1cce7a5ab4cf .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-c02c049d-1919-46eb-a603-1cce7a5ab4cf .opening-with-search .opening-pretitle{margin-bottom:15px;max-width:860px;margin-left:auto;margin-right:auto;white-space:pre-line;}#section-c02c049d-1919-46eb-a603-1cce7a5ab4cf .opening-with-search .opening-title{margin-bottom:15px;max-width:860px;margin-left:auto;margin-right:auto;white-space:pre-line;}#section-c02c049d-1919-46eb-a603-1cce7a5ab4cf .opening-with-search .opening-button{margin:0 15px;}@media (max-width: 768px){#section-c02c049d-1919-46eb-a603-1cce7a5ab4cf .opening-with-search .opening-button{margin:0;}}#section-c02c049d-1919-46eb-a603-1cce7a5ab4cf .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;-webkit-justify-content:center;justify-content:center;-webkit-align-items:stretch;-webkit-box-align:stretch;-ms-flex-align:stretch;align-items:stretch;}#section-c02c049d-1919-46eb-a603-1cce7a5ab4cf .opening-with-search .search-form.with-filters{padding-top:32px;}#section-c02c049d-1919-46eb-a603-1cce7a5ab4cf .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;
34-webkit-justify-content:center;justify-content:center;cursor:pointer;-webkit-transition:all .3s ease;transition:all .3s ease;}#section-c02c049d-1919-46eb-a603-1cce7a5ab4cf .opening-with-search .search-button:hover{background-color:#fff;color:#000;}#section-c02c049d-1919-46eb-a603-1cce7a5ab4cf .opening-with-search .search-lease-tabs{position:absolute;left:0;bottom:100%;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;}#section-c02c049d-1919-46eb-a603-1cce7a5ab4cf .opening-with-search .search-lease-tab{padding:4px 20px;background-color:#000;color:#fff;cursor:pointer;}#section-c02c049d-1919-46eb-a603-1cce7a5ab4cf .opening-with-search .search-lease-tab.active{background-color:#fff;color:#000;}#section-c02c049d-1919-46eb-a603-1cce7a5ab4cf .opening-with-search .search-wrapper{margin:5px;letter-spacing:normal;width:100%;max-width:444px;position:relative;}#section-c02c049d-1919-46eb-a603-1cce7a5ab4cf .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-c02c049d-1919-46eb-a603-1cce7a5ab4cf .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-c02c049d-1919-46eb-a603-1cce7a5ab4cf .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-c02c049d-1919-46eb-a603-1cce7a5ab4cf .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-c02c049d-1919-46eb-a603-1cce7a5ab4cf .opening-with-search .results-container,#section-c02c049d-1919-46eb-a603-1cce7a5ab4cf .opening-with-search .predefined-links{padding:10px 0;}#section-c02c049d-1919-46eb-a603-1cce7a5ab4cf .opening-with-search .results-container a,#section-c02c049d-1919-46eb-a603-1cce7a5ab4cf .opening-with-search .predefined-links a{color:#b6b6b6;-webkit-transition:color 0.3s ease;transition:color 0.3s ease;}#section-c02c049d-1919-46eb-a603-1cce7a5ab4cf .opening-with-search .results-container a:hover,#section-c02c049d-1919-46eb-a603-1cce7a5ab4cf .opening-with-search .predefined-links a:hover{color:#fff;}#section-c02c049d-1919-46eb-a603-1cce7a5ab4cf .opening-with-search .predefined-links{max-height:400px;overflow:auto;}#section-c02c049d-1919-46eb-a603-1cce7a5ab4cf .opening-with-search .results-block{margin:15px 0;}#section-c02c049d-1919-46eb-a603-1cce7a5ab4cf .opening-with-search .results-block-title{margin:0;padding:0 48px;}#section-c02c049d-1919-46eb-a603-1cce7a5ab4cf .opening-with-search .results-block-title .results-title-label{margin:0 20px 10px 0;}#section-c02c049d-1919-46eb-a603-1cce7a5ab4cf .opening-with-search .results-block-title .search-near-container{margin-bottom:15px;}#section-c02c049d-1919-46eb-a603-1cce7a5ab4cf .opening-with-search .results-block:nth-child(n + 2) .search-near-container{display:none;}#section-c02c049d-1919-46eb-a603-1cce7a5ab4cf .opening-with-search .results-link{display:block;padding:4px 48px;width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}#section-c02c049d-1919-46eb-a603-1cce7a5ab4cf .opening-with-search .results-link.selected-link{color:#fff;background-color:rgba(255, 255, 255, 0.2);}#section-c02c049d-1919-46eb-a603-1cce7a5ab4cf .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;-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-c02c049d-1919-46eb-a603-1cce7a5ab4cf .opening-with-search .not-visible{display:none!important;}#section-c02c049d-1919-46eb-a603-1cce7a5ab4cf .opening-with-search .nothing-found{width:100%;padding:20px;}@media (max-width: 560px){#section-c02c049d-1919-46eb-a603-1cce7a5ab4cf .opening-with-search .search-form{-webkit-box-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;}#section-c02c049d-1919-46eb-a603-1cce7a5ab4cf .opening-with-search .search-button{width:100%;max-width:444px;}}#section-c02c049d-1919-46eb-a603-1cce7a5ab4cf .opening-with-search .search-near{cursor:pointer;}#section-c02c049d-1919-46eb-a603-1cce7a5ab4cf .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-c02c049d-1919-46eb-a603-1cce7a5ab4cf .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;
34-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-c02c049d-1919-46eb-a603-1cce7a5ab4cf .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-c02c049d-1919-46eb-a603-1cce7a5ab4cf .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-c02c049d-1919-46eb-a603-1cce7a5ab4cf .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-c02c049d-1919-46eb-a603-1cce7a5ab4cf .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-c02c049d-1919-46eb-a603-1cce7a5ab4cf .loc-msg-close:hover{-webkit-transform:scale(1.2);-moz-transform:scale(1.2);-ms-transform:scale(1.2);transform:scale(1.2);}#section-c02c049d-1919-46eb-a603-1cce7a5ab4cf .search-near-hidden .search-near-container{display:none;}#section-c02c049d-1919-46eb-a603-1cce7a5ab4cf .loc-msg-title{-webkit-flex:0 0 auto;-ms-flex:0 0 auto;flex:0 0 auto;margin-bottom:20px;}#section-c02c049d-1919-46eb-a603-1cce7a5ab4cf .loc-msg-container{-webkit-flex:0 1 auto;-ms-flex:0 1 auto;flex:0 1 auto;overflow:auto;}#section-c02c049d-1919-46eb-a603-1cce7a5ab4cf .loc-msg-container p{margin:0;}#section-c02c049d-1919-46eb-a603-1cce7a5ab4cf .loc-msg-container p+p{margin-top:1em;}#section-c02c049d-1919-46eb-a603-1cce7a5ab4cf.visible-loc-msg{z-index:1000;}#section-c02c049d-1919-46eb-a603-1cce7a5ab4cf.visible-loc-msg .loc-msg-backdrop{background-color:rgba(255,255,255,0.4);}#section-c02c049d-1919-46eb-a603-1cce7a5ab4cf.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%);}@media (min-width: 960px) and (orientation: landscape){#section-c02c049d-1919-46eb-a603-1cce7a5ab4cf{background-image:linear-gradient(var(--gradient-color), var(--gradient-color)),url('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/woulgtapa3dtve8xgjwb');}}@media (min-width: 1280px) and (orientation: landscape){#section-c02c049d-1919-46eb-a603-1cce7a5ab4cf{background-image:linear-gradient(var(--gradient-color), var(--gradient-color)),url('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/woulgtapa3dtve8xgjwb');}}@media (min-width: 1920px) and (orientation: landscape){#section-c02c049d-1919-46eb-a603-1cce7a5ab4cf{background-image:linear-gradient(var(--gradient-color), var(--gradient-color)),url('https://media-production.lp-cdn.com/cdn-cgi/image/format=auto,quality=85/https://media-production.lp-cdn.com/media/woulgtapa3dtve8xgjwb');}}@media (min-width: 2560px) and (orientation: landscape){#section-c02c049d-1919-46eb-a603-1cce7a5ab4cf{background-image:linear-gradient(var(--gradient-color), var(--gradient-color)),url('https://media-production.lp-cdn.com/cdn-cgi/image/format=auto,quality=85/https://media-production.lp-cdn.com/media/woulgtapa3dtve8xgjwb');}}#section-b4d4f5c1-8476-43a0-87d1-672e27bc9d8f{color:#000;--fontColor:#000;--fontColor_H:0;--fontColor_S:0%;--fontColor_L:0%;--fontColor_A:1;--fontColor_darkenDir:1;--bgColor:#ffffff;--bgColor_H:0;--bgColor_S:0%;--bgColor_L:100%;--bgColor_A:1;--bgColor_darkenDir:-1;background-color:#ffffff;}#section-b4d4f5c1-8476-43a0-87d1-672e27bc9d8f.modal.is-background-color-light>button.close{padding:5px;}#section-b4d4f5c1-8476-43a0-87d1-672e27bc9d8f.modal.is-background-color-light>button.close:before{content:'';width:100%;display:block;padding-bottom:100%;-webkit-clip-path:polygon(8% 0, 50% 42%, 92% 0, 100% 8%, 58% 50%, 100% 92%, 92% 100%, 50% 58%, 8% 100%, 0 92%, 42% 50%, 0 8%);clip-path:polygon(8% 0, 50% 42%, 92% 0, 100% 8%, 58% 50%, 100% 92%, 92% 100%, 50% 58%, 8% 100%, 0 92%, 42% 50%, 0 8%);background-color:#000;-webkit-transition:all .3s ease;transition:all .3s ease;}#section-b4d4f5c1-8476-43a0-87d1-672e27bc9d8f.modal.is-background-color-light>button.close:hover:before{-webkit-transform:scale(1.2);-moz-transform:scale(1.2);-ms-transform:scale(1.2);transform:scale(1.2);}#section-b4d4f5c1-8476-43a0-87d1-672e27bc9d8f.modal.is-background-color-light>button.close>img,#section-b4d4f5c1-8476-43a0-87d1-672e27bc9d8f.modal.is-background-color-light>button.close .lp-close-icon{display:none;}#section-b4d4f5c1-8476-43a0-87d1-672e27bc9d8f .elem-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:-16px;margin-right:-16px;-webkit-box-flex-wrap:nowrap;-webkit-flex-wrap:nowrap;-ms-flex-wrap:nowrap;flex-wrap:nowrap;}@media (max-width: 767px){#section-b4d4f5c1-8476-43a0-87d1-672e27bc9d8f .elem-row{-webkit-box-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;}}
34#section-b4d4f5c1-8476-43a0-87d1-672e27bc9d8f .elem-col{min-height:1px;padding-left:16px;padding-right:16px;}@media (max-width: 767px){#section-b4d4f5c1-8476-43a0-87d1-672e27bc9d8f .elem-col{-webkit-flex-basis:100%;-ms-flex-preferred-size:100%;flex-basis:100%;max-width:unset;}}#section-b4d4f5c1-8476-43a0-87d1-672e27bc9d8f .form-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;-webkit-align-items:flex-start;-webkit-box-align:flex-start;-ms-flex-align:flex-start;align-items:flex-start;margin-left:-16px;margin-right:-16px;}#section-b4d4f5c1-8476-43a0-87d1-672e27bc9d8f .form-col{padding-left:16px;padding-right:16px;-webkit-flex:1 1 400px;-ms-flex:1 1 400px;flex:1 1 400px;}#section-b4d4f5c1-8476-43a0-87d1-672e27bc9d8f .form-col:last-child .custom-form__group{margin-bottom:20px;}@media (min-width: 768px){#section-b4d4f5c1-8476-43a0-87d1-672e27bc9d8f .form-col:last-child .custom-form__group{margin-bottom:30px;}}#section-b4d4f5c1-8476-43a0-87d1-672e27bc9d8f .lp-label{text-transform:none;}#section-b4d4f5c1-8476-43a0-87d1-672e27bc9d8f .lp-label.field-required:after{content:' *';}#section-b4d4f5c1-8476-43a0-87d1-672e27bc9d8f .custom-form{padding-top:80px;padding-bottom:80px;}@media (max-width: 767px){#section-b4d4f5c1-8476-43a0-87d1-672e27bc9d8f .custom-form{padding-top:50px;padding-bottom:50px;}}#section-b4d4f5c1-8476-43a0-87d1-672e27bc9d8f .custom-form__img-col{margin-bottom:30px;}@media (min-width: 768px){#section-b4d4f5c1-8476-43a0-87d1-672e27bc9d8f .custom-form__img-col{margin-bottom:0;-webkit-flex:0 0 50%;-ms-flex:0 0 50%;flex:0 0 50%;max-width:50%;}}@media (min-width: 768px){#section-b4d4f5c1-8476-43a0-87d1-672e27bc9d8f .custom-form__form-col{-webkit-flex:1 1 auto;-ms-flex:1 1 auto;flex:1 1 auto;}}@media (min-width: 992px){#section-b4d4f5c1-8476-43a0-87d1-672e27bc9d8f .custom-form__form-col{-webkit-flex:1 1 auto;-ms-flex:1 1 auto;flex:1 1 auto;}}#section-b4d4f5c1-8476-43a0-87d1-672e27bc9d8f .custom-form__header{max-width:600px;margin-left:auto;margin-right:auto;margin-bottom:50px;text-align:center;}@media (max-width: 767px){#section-b4d4f5c1-8476-43a0-87d1-672e27bc9d8f .custom-form__header{margin-bottom:30px;}}#section-b4d4f5c1-8476-43a0-87d1-672e27bc9d8f .custom-form__heading{margin-bottom:24px;}@media (max-width: 767px){#section-b4d4f5c1-8476-43a0-87d1-672e27bc9d8f .custom-form__heading{margin-bottom:13px;}}#section-b4d4f5c1-8476-43a0-87d1-672e27bc9d8f .custom-form__description{margin-bottom:0;}#section-b4d4f5c1-8476-43a0-87d1-672e27bc9d8f .custom-form__img-block{width:100%;height:430px;background:currentColor center/cover no-repeat;}#section-b4d4f5c1-8476-43a0-87d1-672e27bc9d8f .custom-form__img-block img{height:100%;width:100%;object-fit:cover;}#section-b4d4f5c1-8476-43a0-87d1-672e27bc9d8f .custom-form__download-form{width:100%;margin-bottom:0;}@media (min-width: 992px){#section-b4d4f5c1-8476-43a0-87d1-672e27bc9d8f .custom-form__download-form{height:100%;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;-webkit-box-pack:start;-ms-flex-pack:start;-webkit-justify-content:flex-start;justify-content:flex-start;}}@media (min-width: 768px){#section-b4d4f5c1-8476-43a0-87d1-672e27bc9d8f .custom-form__footer{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;}}#section-b4d4f5c1-8476-43a0-87d1-672e27bc9d8f .custom-form__container{max-width:1160px;margin-left:auto;margin-right:auto;}#section-b4d4f5c1-8476-43a0-87d1-672e27bc9d8f .form-field-descr{opacity:0.5;margin-top:8px;font-size:82%;}#section-b4d4f5c1-8476-43a0-87d1-672e27bc9d8f .lp-btn-icons{width:0;-webkit-transition:width .3s ease;transition:width .3s ease;display:inline-block;float:left;line-height:inherit;overflow:visible;position:relative;}#section-b4d4f5c1-8476-43a0-87d1-672e27bc9d8f .lp-btn-icons:before{content:'';display:inline-block;width:0px;height:1em;vertical-align:middle;}#section-b4d4f5c1-8476-43a0-87d1-672e27bc9d8f .lp-btn-icons .lp-btn-icon-loading{position:absolute;display:block;width:0;height:17px;opacity:0;top:50%;left:0;-webkit-transform:translateY(-50%);-moz-transform:translateY(-50%);-ms-transform:translateY(-50%);transform:translateY(-50%);-webkit-transition:width .3s ease,opacity .3s ease;transition:width .3s ease,opacity .3s ease;overflow:hidden;}#section-b4d4f5c1-8476-43a0-87d1-672e27bc9d8f .lp-btn-icons .lp-btn-icon-loading:before{content:none;display:block;background-color:currentColor;width:17px;height:17px;-webkit-clip-path:path('M8.5 0A 8.5 8.5 0 1 1 1.89 3.15L 4.23 5.04A 5.5 5.5 0 1 0 8.5 3Z');clip-path:path('M8.5 0A 8.5 8.5 0 1 1 1.89 3.15L 4.23 5.04A 5.5 5.5 0 1 0 8.5 3Z');-webkit-animation:i-spin 2s linear infinite;animation:i-spin 2s linear infinite;}#section-b4d4f5c1-8476-43a0-87d1-672e27bc9d8f .lp-btn-icons .lp-btn-icon-success{position:absolute;display:block;width:0;height:17px;opacity:0;top:50%;left:0;-webkit-transform:translateY(-50%) scale(1.02);-moz-transform:translateY(-50%) scale(1.02);-ms-transform:translateY(-50%) scale(1.02);transform:translateY(-50%) scale(1.02);-webkit-transition:width .3s ease,opacity .3s ease;transition:width .3s ease,opacity .3s ease;background-color:currentColor;-webkit-clip-path:path('M0 8.5 A 8.5 8.5 0 0 1 17 8.5 A 8.5 8.5 0 0 1 0 8.5 H 1.2 A 7.3 7.3 0 1 0 15.8 8.5 A 7.3 7.3 0 1 0 1.2 8.5 H0 m5.201-.344L7.4 10.35l4.436-4.45c.311-.202.58-.191.807.033.227.225.25.488.072.788L7.85 11.59c-.14.141-.291.212-.451.212-.16 0-.31-.061-.45-.183L4.338 8.99c-.192-.311-.172-.58.06-.806.231-.226.5-.235.803-.027');clip-path:path('M0 8.5 A 8.5 8.5 0 0 1 17 8.5 A 8.5 8.5 0 0 1 0 8.5 H 1.2 A 7.3 7.3 0 1 0 15.8 8.5 A 7.3 7.3 0 1 0 1.2 8.5 H0 m5.201-.344L7.4 10.35l4.436-4.45c.311-.202.58-.191.807.033.227.225.25.488.072.788L7.85 11.59c-.14.141-.291.212-.451.212-.16 0-.31-.061-.45-.183L4.338 8.99c-.192-.311-.172-.58.06-.806.231-.226.5-.235.803-.027');}#section-b4d4f5c1-8476-43a0-87d1-672e27bc9d8f .loading input,#section-b4d4f5c1-8476-43a0-87d1-672e27bc9d8f .success input,#section-b4d4f5c1-8476-43a0-87d1-672e27bc9d8f .loading select,#section-b4d4f5c1-8476-43a0-87d1-672e27bc9d8f .success select,#section-b4d4f5c1-8476-43a0-87d1-672e27bc9d8f .loading button,#section-b4d4f5c1-8476-43a0-87d1-672e27bc9d8f .success button{pointer-events:none;}#section-b4d4f5c1-8476-43a0-87d1-672e27bc9d8f .loading .lp-btn-icons,#section-b4d4f5c1-8476-43a0-87d1-672e27bc9d8f .success .lp-btn-icons{width:27px;}#section-b4d4f5c1-8476-43a0-87d1-672e27bc9d8f .loading .lp-btn-icons .lp-btn-icon-loading,#section-b4d4f5c1-8476-43a0-87d1-672e27bc9d8f .success .lp-btn-icons .lp-btn-icon-loading{width:17px;}#section-b4d4f5c1-8476-43a0-87d1-672e27bc9d8f .loading .lp-btn-icons .lp-btn-icon-success,#section-b4d4f5c1-8476-43a0-87d1-672e27bc9d8f .success .lp-btn-icons .lp-btn-icon-success{width:17px;}#section-b4d4f5c1-8476-43a0-87d1-672e27bc9d8f .loading .lp-btn-icons .lp-btn-icon-loading{opacity:1;}#section-b4d4f5c1-8476-43a0-87d1-672e27bc9d8f .loading .lp-btn-icons .lp-btn-icon-loading:before{content:'';}#section-b4d4f5c1-8476-43a0-87d1-672e27bc9d8f .success .lp-btn-icons .lp-btn-icon-success{opacity:1;}#section-b4d4f5c1-8476-43a0-87d1-672e27bc9d8f .js-backup-email{display:none;}#section-b4d4f5c1-8476-43a0-87d1-672e27bc9d8f .lp-h-pot{height:0;overflow:hidden;visibility:hidden;position:absolute;}#section-b4d4f5c1-8476-43a0-87d1-672e27bc9d8f .visually-hidden{position:absolute;overflow:hidden;clip:rect(0 0 0 0);width:1px;height:1px;margin:-1px;padding:0;border:0;}#section-b4d4f5c1-8476-43a0-87d1-672e27bc9d8f .uf-cus-sel-content{max-height:210px;overflow-y:auto;}#section-b4d4f5c1-8476-43a0-87d1-672e27bc9d8f .lp-input-group .uf-cus-sel-toggle{width:100%;}#section-b4d4f5c1-8476-43a0-87d1-672e27bc9d8f .uf-cus-sel{position:relative;width:100%;--optionHoverColor:hsl(var(--bgColor_H), calc(var(--bgColor_S) + 6% * var(--bgColor_darkenDir)), calc(var(--bgColor_L) + 14% * var(--bgColor_darkenDir)));}#section-b4d4f5c1-8476-43a0-87d1-672e27bc9d8f .uf-cus-sel-toggle{position:relative;display:block;width:100%;font-family:inherit;text-align:left;text-transform:none;cursor:pointer;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;-webkit-transition:all .25s;transition:all .25s;}#section-b4d4f5c1-8476-43a0-87d1-672e27bc9d8f .uf-cus-sel-toggle.is-placeholder{color:#999;}#section-b4d4f5c1-8476-43a0-87d1-672e27bc9d8f .uf-cus-sel-toggle:after{box-sizing:border-box;content:"";position:absolute;right:20px;top:50%;margin-top:0;height:10px;width:10px;border-top:2px solid currentColor;border-left:2px solid currentColor;-webkit-transform:rotateZ(-135deg) translateY(10px);-moz-transform:rotateZ(-135deg) translateY(10px);-ms-transform:rotateZ(-135deg) translateY(10px);transform:rotateZ(-135deg) translateY(10px);-webkit-transition:all .2s;transition:all .2s;}@media (min-width: 992px){#section-b4d4f5c1-8476-43a0-87d1-672e27bc9d8f .uf-cus-sel-toggle:after{right:25px;}}.uf-cus-sel.open #section-b4d4f5c1-8476-43a0-87d1-672e27bc9d8f .uf-cus-sel-toggle:after{-webkit-transform:rotate(45deg);-moz-transform:rotate(45deg);-ms-transform:rotate(45deg);transform:rotate(45deg);}#section-b4d4f5c1-8476-43a0-87d1-672e27bc9d8f .uf-cus-sel-menu{display:none;position:absolute;width:calc(100% + var(--uf-border-left, 0px) + var(--uf-border-right, 0px));top:100%;left:calc(0px - var(--uf-border-left, 0px));z-index:1;}@media (max-width: 768px){#section-b4d4f5c1-8476-43a0-87d1-672e27bc9d8f .uf-cus-sel-menu{position:relative;top:auto;}}#section-b4d4f5c1-8476-43a0-87d1-672e27bc9d8f .uf-cus-sel-content{width:100%;background-color:var(--bgColor, #000);border:1px solid #979797;border-top:none;}#section-b4d4f5c1-8476-43a0-87d1-672e27bc9d8f .uf-cus-sel-item{display:block;width:100%;padding:11px 24px;border:solid 1px transparent;background:transparent;border-radius:0;color:inherit;font-family:inherit;font-size:inherit;line-height:24px;text-align:left;text-transform:none;-webkit-transition:all .25s;transition:all .25s;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;cursor:pointer;}#section-b4d4f5c1-8476-43a0-87d1-672e27bc9d8f .uf-cus-sel-item:focus,#section-b4d4f5c1-8476-43a0-87d1-672e27bc9d8f .uf-cus-sel-item:hover{background-color:var(--optionHoverColor, #262222);}#section-b4d4f5c1-8476-43a0-87d1-672e27bc9d8f .uf-cus-sel-item.is-selected{font-weight:700;}#section-b4d4f5c1-8476-43a0-87d1-672e27bc9d8f .uf-cus-sel-item.is-disabled,#section-b4d4f5c1-8476-43a0-87d1-672e27bc9d8f .uf-cus-sel-item:disabled{display:none;}#section-b4d4f5c1-8476-43a0-87d1-672e27bc9d8f .lp-text--subtitle{margin-left:auto;margin-right:auto;}#section-b4d4f5c1-8476-43a0-87d1-672e27bc9d8f .custom-form__checkbox-container{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:column-reverse;-ms-flex-direction:column-reverse;flex-direction:column-reverse;gap:8px;}#section-b4d4f5c1-8476-43a0-87d1-672e27bc9d8f .custom-form__checkbox-container .lp-label{opacity:1;}#section-b4d4f5c1-8476-43a0-87d1-672e27bc9d8f .custom-form__checkboxes-label{font-size:14px;line-height:1.43;font-weight:600;margin-bottom:0;}#section-b4d4f5c1-8476-43a0-87d1-672e27bc9d8f .custom-form__checkboxes-description{font-size:14px;line-height:1.43;font-weight:400;margin-bottom:0;}#section-b4d4f5c1-8476-43a0-87d1-672e27bc9d8f .custom-form__checkbox-item{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;gap:10px;}#section-b4d4f5c1-8476-43a0-87d1-672e27bc9d8f .custom-form__checkbox-label{cursor:pointer;font-size:inherit;line-height:1.4;margin:0;}#section-b4d4f5c1-8476-43a0-87d1-672e27bc9d8f .lp-input::-webkit-input-placeholder{text-transform:none;}#section-b4d4f5c1-8476-43a0-87d1-672e27bc9d8f .lp-input::-moz-placeholder{text-transform:none;}#section-b4d4f5c1-8476-43a0-87d1-672e27bc9d8f .lp-input:-ms-input-placeholder{text-transform:none;}#section-b4d4f5c1-8476-43a0-87d1-672e27bc9d8f .lp-input::placeholder{text-transform:none;}#section-50aa3994-7612-44a8-bc55-905d7248abd2{color:#ffffff;--fontColor:#ffffff;--fontColor_H:0;--fontColor_S:0%;--fontColor_L:100%;--fontColor_A:1;--fontColor_darkenDir:-1;--bgColor:rgba(134, 134, 136, 1);--bgColor_H:240;--bgColor_S:1%;--bgColor_L:53%;--bgColor_A:1;--bgColor_darkenDir:-1;background-color:rgba(134, 134, 136, 1);}#section-50aa3994-7612-44a8-bc55-905d7248abd2 .section{position:relative;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;}@media(max-width: 1024px){#section-50aa3994-7612-44a8-bc55-905d7248abd2 .section{-webkit-flex-direction:column-reverse;-ms-flex-direction:column-reverse;flex-direction:column-reverse;}}#section-50aa3994-7612-44a8-bc55-905d7248abd2 .section__map{width:50%;height:680px;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;position:relative;}@media(max-width: 1024px){#section-50aa3994-7612-44a8-bc55-905d7248abd2 .section__map{width:100%;height:464px;}}@media (max-width: 768px){#section-50aa3994-7612-44a8-bc55-905d7248abd2 .section__map{height:412px;}}#section-50aa3994-7612-44a8-bc55-905d7248abd2 .section__map img{display:block;width:100%;height:100%;object-fit:cover;}#section-50aa3994-7612-44a8-bc55-905d7248abd2 .section__text{width:50%;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;
34-webkit-justify-content:center;justify-content:center;padding:72px;}@media(max-width: 1024px){#section-50aa3994-7612-44a8-bc55-905d7248abd2 .section__text{width:100%;min-height:464px;}}@media (max-width: 768px){#section-50aa3994-7612-44a8-bc55-905d7248abd2 .section__text{min-height:412px;}}#section-50aa3994-7612-44a8-bc55-905d7248abd2 .section__text-group{width:100%;}#section-50aa3994-7612-44a8-bc55-905d7248abd2 .section__text-group+.section__button{margin-top:50px;}#section-50aa3994-7612-44a8-bc55-905d7248abd2 .section__title{margin-bottom:16px;text-align:center;}#section-50aa3994-7612-44a8-bc55-905d7248abd2 .section__description{text-align:center;}#section-50aa3994-7612-44a8-bc55-905d7248abd2 .map{height:100%;border:none;overflow:hidden;width:100%;}#section-50aa3994-7612-44a8-bc55-905d7248abd2 .custom-controls{display:none;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;-webkit-box-pack:end;-ms-flex-pack:end;-webkit-justify-content:flex-end;justify-content:flex-end;position:absolute;right:0;top:0;padding:16px;z-index:1;height:100%;}#section-50aa3994-7612-44a8-bc55-905d7248abd2 .custom-controls.show{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;}@media (max-width: 1024px){#section-50aa3994-7612-44a8-bc55-905d7248abd2 .custom-controls{display:none;}}#section-50aa3994-7612-44a8-bc55-905d7248abd2 .custom-controls--mobile{display:none;}@media (max-width: 700px){#section-50aa3994-7612-44a8-bc55-905d7248abd2 .custom-controls--mobile{display:block;position:absolute;top:32px;right:32px;}}#section-50aa3994-7612-44a8-bc55-905d7248abd2 .control-btn{border:none;width:40px;height:40px;border-radius:4px;background-color:#fff;cursor:pointer;padding:0;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-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;-webkit-transition:width .6s ease,height .6s ease;transition:width .6s ease,height .6s ease;}#section-50aa3994-7612-44a8-bc55-905d7248abd2 .control-btn +.control-btn{margin-top:8px;}#section-50aa3994-7612-44a8-bc55-905d7248abd2 .control-btn svg{-webkit-transition:-webkit-transform .6s ease;transition:transform .6s ease;}#section-50aa3994-7612-44a8-bc55-905d7248abd2 .control-btn svg path{stroke:#000;}@media (max-width: 1024px){#section-50aa3994-7612-44a8-bc55-905d7248abd2 .control-btn{width:40px;height:40px;}#section-50aa3994-7612-44a8-bc55-905d7248abd2 .control-btn svg{-webkit-transform:scale(.8);-moz-transform:scale(.8);-ms-transform:scale(.8);transform:scale(.8);}}#section-50aa3994-7612-44a8-bc55-905d7248abd2 .control-btn.js-is-fullscreen{background-color:var(--bgColor);}#section-962259ca-bbed-43b9-b966-6672a66322ca{color:#ffffff;--fontColor:#ffffff;--fontColor_H:0;--fontColor_S:0%;--fontColor_L:100%;--fontColor_A:1;--fontColor_darkenDir:-1;--bgColor:rgba(134, 134, 136, 1);--bgColor_H:240;--bgColor_S:1%;--bgColor_L:53%;--bgColor_A:1;--bgColor_darkenDir:-1;background-color:rgba(134, 134, 136, 1);}#section-962259ca-bbed-43b9-b966-6672a66322ca .section{display:none;overflow:hidden;}@media(min-width: 993px){#section-962259ca-bbed-43b9-b966-6672a66322ca .lp-container{padding-bottom:200px;}}@media(min-width: 769px){#section-962259ca-bbed-43b9-b966-6672a66322ca .lp-container{padding-bottom:194px;}}#section-962259ca-bbed-43b9-b966-6672a66322ca .title-group{-webkit-flex-basis:100%;-ms-flex-preferred-size:100%;flex-basis:100%;display:block;margin-bottom:48px;}@media(min-width: 769px){#section-962259ca-bbed-43b9-b966-6672a66322ca .title-group{dis
34play:none;}}#section-962259ca-bbed-43b9-b966-6672a66322ca .collection{width:100%;min-width:400px;}#section-962259ca-bbed-43b9-b966-6672a66322ca .collection:not(.slick-initialized){display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;}#section-962259ca-bbed-43b9-b966-6672a66322ca .collection:not(.slick-initialized) .item-box:nth-child(n+6){display:none;}@media(max-width: 768px){#section-962259ca-bbed-43b9-b966-6672a66322ca .collection:not(.slick-initialized){-webkit-box-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;}}#section-962259ca-bbed-43b9-b966-6672a66322ca .collection .slick-track{margin-left:0;margin-right:0;}#section-962259ca-bbed-43b9-b966-6672a66322ca .collection .slick-list{overflow:visible;}#section-962259ca-bbed-43b9-b966-6672a66322ca .collection img{max-width:100%;}@media(min-width: 1025px){#section-962259ca-bbed-43b9-b966-6672a66322ca .collection .slick-slide:not(:nth-child(4n-2)){opacity:.3;-webkit-transition:opacity .4s ease-in-out;transition:opacity .4s ease-in-out;}#section-962259ca-bbed-43b9-b966-6672a66322ca .collection .slick-slide:nth-child(4n-2) .item__img{opacity:.3;-webkit-transition:opacity .4s ease-in-out;transition:opacity .4s ease-in-out;-webkit-transform:translate(-50%, 45px);-moz-transform:translate(-50%, 45px);-ms-transform:translate(-50%, 45px);transform:translate(-50%, 45px);}#section-962259ca-bbed-43b9-b966-6672a66322ca .collection .slick-slide:nth-child(4n-2) .item__img svg{display:block;}#section-962259ca-bbed-43b9-b966-6672a66322ca .collection .slick-slide:nth-child(4n-2) .item__info{-webkit-transform:translate(0, calc(50% + 45px));-moz-transform:translate(0, calc(50% + 45px));-ms-transform:translate(0, calc(50% + 45px));transform:translate(0, calc(50% + 45px));}#section-962259ca-bbed-43b9-b966-6672a66322ca .collection .slick-slide:nth-child(4n-2) .media-type-icon{top:50%;-webkit-transform:translate(0, calc(50% + 35px));-moz-transform:translate(0, calc(50% + 35px));-ms-transform:translate(0, calc(50% + 35px));transform:translate(0, calc(50% + 35px));}#section-962259ca-bbed-43b9-b966-6672a66322ca .collection .slick-active:not(:nth-child(4n-2)){opacity:1;-webkit-transition:opacity .4s ease-in-out;transition:opacity .4s ease-in-out;}#section-962259ca-bbed-43b9-b966-6672a66322ca .collection .slick-active:nth-child(4n-2) .item__img{opacity:1;-webkit-transition:opacity .4s ease-in-out;transition:opacity .4s ease-in-out;}}@media (min-width: 769px) and (max-width: 1025px){#section-962259ca-bbed-43b9-b966-6672a66322ca .collection .slick-slide:not(:nth-child(even)){opacity:.3;-webkit-transition:opacity .4s ease-in-out;transition:opacity .4s ease-in-out;}#section-962259ca-bbed-43b9-b966-6672a66322ca .collection .slick-slide:nth-child(even) .item__img{opacity:.3;-webkit-transition:opacity .4s ease-in-out;transition:opacity .4s ease-in-out;-webkit-transform:translate(-50%, 45px);-moz-transform:translate(-50%, 45px);-ms-transform:translate(-50%, 45px);transform:translate(-50%, 45px);}#section-962259ca-bbed-43b9-b966-6672a66322ca .collection .slick-slide:nth-child(even) .item__img svg{display:block;}#section-962259ca-bbed-43b9-b966-6672a66322ca .collection .slick-slide:nth-child(even) .item__info{-webkit-transform:translate(0, calc(50% + 45px));-moz-transform:translate(0, calc(50% + 45px));-ms-transform:translate(0, calc(50% + 45px));transform:translate(0, calc(50% + 45px));}#section-962259ca-bbed-43b9-b966-6672a66322ca .collection .slick-slide:nth-child(even) .media-type-icon{top:50%;-webkit-transform:translate(0, calc(50% + 35px));-moz-transform:translate(0, calc(50% + 35px));-ms-transform:translate(0, calc(50% + 35px));transform:translate(0, calc(50% + 35px));}#section-962259ca-bbed-43b9-b966-6672a66322ca .collection .slick-active:not(:nth-child(even)){opacity:1;-webkit-transition:opacity .4s ease-in-out;transition:opacity .4s ease-in-out;}#section-962259ca-bbed-43b9-b966-6672a66322ca .collection .slick-active:nth-child(even) .item__img{opacity:1;-webkit-transition:opacity .4s ease-in-out;transition:opacity .4s ease-in-out;}}@media(max-width: 768px){#section-962259ca-bbed-43b9-b966-6672a66322ca .collection .slick-slide{opacity:.3;-webkit-transition:opacity .4s ease-in-out;transition:opacity .4s ease-in-out;}#section-962259ca-bbed-43b9-b966-6672a66322ca .collection .slick-active{opacity:1;-webkit-transition:opacity .4s ease-in-out;transition:opacity .4s ease-in-out;}#section-962259ca-bbed-43b9-b966-6672a66322ca .collection .slick-slide:nth-child(4n-1),#section-962259ca-bbed-43b9-b966-6672a66322ca .collection .slick-slide:nth-child(4n){-webkit-transform:translate(-200%, 100%);-moz-transform:translate(-200%, 100%);-ms-transform:translate(-200%, 100%);transform:translate(-200%, 100%);}}@media(min-width: 1440px){#section-962259ca-bbed-43b9-b966-6672a66322ca .collection{overflow:hidden;height:514px;}}#section-962259ca-bbed-43b9-b966-6672a66322ca .slider-holder{-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;}@media(max-width: 768px){#section-962259ca-bbed-43b9-b966-6672a66322ca .slider-holder{height:calc(100vw - 24px);}}@media(min-width: 1440px){#section-962259ca-bbed-43b9-b966-6672a66322ca .slider-holder{width:1440px;margin-left:auto;margin-right:auto;height:310px;}}
34#section-962259ca-bbed-43b9-b966-6672a66322ca .item{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;position:relative;z-index:1;width:310px;height:310px;overflow:visible;margin-right:67px;cursor:default;}@media(max-width: 1024px){#section-962259ca-bbed-43b9-b966-6672a66322ca .item{width:298px;height:298px;margin-right:44px;}}@media(max-width: 768px){#section-962259ca-bbed-43b9-b966-6672a66322ca .item{margin-right:0;margin-bottom:0;width:calc(50vw - 48px);height:calc(50vw - 48px);}}@media(max-width: 560px){#section-962259ca-bbed-43b9-b966-6672a66322ca .item{margin-right:0;margin-bottom:0;}}#section-962259ca-bbed-43b9-b966-6672a66322ca .item__img{top:50%;left:50%;-webkit-transform:translate(-50%, -50%);-moz-transform:translate(-50%, -50%);-ms-transform:translate(-50%, -50%);transform:translate(-50%, -50%);position:absolute;height:100%;width:100%;background-color:gray;-webkit-background-size:cover;background-size:cover;-webkit-background-position:center center;background-position:center center;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-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;-webkit-transition:all linear 0.2s;transition:all linear 0.2s;transform-origin:bottom;}#section-962259ca-bbed-43b9-b966-6672a66322ca .item__img svg{display:none;}#section-962259ca-bbed-43b9-b966-6672a66322ca .item__text{top:50%;left:50%;-webkit-transform:translate(-50%, -50%);-moz-transform:translate(-50%, -50%);-ms-transform:translate(-50%, -50%);transform:translate(-50%, -50%);position:absolute;overflow:hidden;height:100%;width:100%;word-break:break-all;}@media (max-width: 768px){#section-962259ca-bbed-43b9-b966-6672a66322ca .item__text{display:none;}}#section-962259ca-bbed-43b9-b966-6672a66322ca .item__text .username-group{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:justify;-webkit-justify-content:space-between;justify-content:space-between;}#section-962259ca-bbed-43b9-b966-6672a66322ca .item__text .username-group .lp-h5{cursor:pointer;display:inline-block;}#section-962259ca-bbed-43b9-b966-6672a66322ca .item__text .username-group .lp-h5 span{-webkit-transition:0.2s all;transition:0.2s all;display:inline-block;}@media (hover: hover) and (pointer: fine){#section-962259ca-bbed-43b9-b966-6672a66322ca .item__text .username-group .lp-h5:hover span{-webkit-transform:translateX(5px);-moz-transform:translateX(5px);-ms-transform:translateX(5px);transform:translateX(5px);}}#section-962259ca-bbed-43b9-b966-6672a66322ca .item__text .username-group .arrow-icon{display:inline-block;margin-top:9px;width:21px;}@media (max-width: 768px){#section-962259ca-bbed-43b9-b966-6672a66322ca .item-box{padding:13px;}}#section-962259ca-bbed-43b9-b966-6672a66322ca .item__info{position:absolute;top:0;left:0;bottom:0;right: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;padding:10%;overflow:hidden;color:#fff;text-align:center;background-color:rgba(0, 0, 0, 0.7);opacity:0;-webkit-transition:opacity .3s ease;transition:opacity .3s ease;cursor:pointer;}@media (hover: hover){#section-962259ca-bbed-43b9-b966-6672a66322ca .item__info:hover{opacity:1;}}#section-962259ca-bbed-43b9-b966-6672a66322ca .item__caption{text-overflow:ellipsis;-webkit-line-clamp:5;display:-webkit-box;-webkit-box-orient:vertical;overflow:hidden;}#section-962259ca-bbed-43b9-b966-6672a66322ca h5{color:var(--userColor);text-transform:uppercase;}#section-962259ca-bbed-43b9-b966-6672a66322ca h3{color:var(--fontColor);margin-bottom:16px;white-space:pre-line;}@media (max-width: 768px){#section-962259ca-bbed-43b9-b966-6672a66322ca h3{width:calc(100vw - 50px);}}#section-962259ca-bbed-43b9-b966-6672a66322ca a{-webkit-text-decoration:none;text-decoration:none;}#section-962259ca-bbed-43b9-b966-6672a66322ca .media-type-icon{position:absolute;top:10px;right:10px;}#section-962259ca-bbed-43b9-b966-6672a66322ca .has-data .section{dis
34play:block;}#section-962259ca-bbed-43b9-b966-6672a66322ca.has-data .section{display:block;}#section-962259ca-bbed-43b9-b966-6672a66322ca#section-temp .section{display:block;}#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;-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;
34-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;}#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);color:var(--themeWhite);}}@media (max-width: 768px){nav .header__btn-contact{padding:10px;margin-left:5px;margin-right:12px;}}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;
34-webkit-justify-content:center;justify-content:center;margin-left:41px;width:60px;height:60px;border:none;}@media (max-width: 768px){nav .header__hamburger{width:40px;height:40px;margin-left:15px;}}@media (hover: hover) and (pointer: fine){nav .header__hamburger:hover .line--top{width:12px;x:30px;}nav .header__hamburger:hover .line--bottom{width:24px;x:18px;}}nav .header__hamburger svg{width:100%;height:100%;}nav .header__hamburger circle{fill:var(--themeBeige);}nav .header__hamburger .line{fill:var(--themeWhite);height:2px;width:24px;x:18px;y:26px;-webkit-transition:0.2s all;transition:0.2s all;}nav .header__hamburger .line--bottom{width:12px;x:30px;y:32px;}nav .sub-nav{position:absolute;left: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);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);}@media (hover: hover) and (pointer: fine){nav .sub-nav__link:hover{color:var(--themeWhite);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);color:var(--themeBlack);}}nav .scroll .search__btn{color:var(--themeWhite);}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, #fff);border-color:var(--themeBlack, #fff);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, #fff);border-color:var(--themeBlack, #fff);background-color:var(--themeWhite, #fff);}nav.scroll .search__btn{color:var(--themeWhite);}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: 1024px){nav .navigation{display:none;}}nav .navigation__item{padding:0;margin:0;visibility:hidden;height: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:width .3s linear;transition:width .3s linear;background:var(--themeBeige);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:18px;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;white-space:nowrap;-webkit-font-smoothing:unset;-webkit-transition:color .3s linear;transition:color .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:-webkit-transform 0.2s linear;transition:transform 0.2s linear;}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;
34-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:#ffffff;color:#14171A;--fontColor:#14171A;--fontColor_H:210;--fontColor_S:13%;--fontColor_L:9%;--fontColor_A:1;--fontColor_darkenDir:1;--bgColor:#ffffff;--bgColor_H:0;--bgColor_S:0%;--bgColor_L:100%;--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;}
34footer .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;}}
34footer .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{z-index:200;position:relative;}body>div.mobile-contact-wrapper .lp-ico:before{content:'';width:1em;height:1em;background-color:currentColor;-webkit-background-size:cover;background-size:cover;display:block;-webkit-mask-position:center;-webkit-mask-position:center;mask-position:center;-webkit-mask-size:contain;-webkit-mask-size:contain;mask-size:contain;-webkit-mask-repeat:no-repeat;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-transition:all .3s;transition:all .3s;}body>div.mobile-contact-wrapper .lp-ico-search:before{-webkit-mask-image:url("data:image/svg+xml,%3Csvg width='25' height='25' viewB
34ox='0 0 25 25' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M21.6231 21.3002L17.1372 16.8143M19.5606 10.9877C19.5606 15.5441 15.8669 19.2377 11.3106 19.2377C6.75421 19.2377 3.06055 15.5441 3.06055 10.9877C3.06055 6.43135 6.75421 2.73769 11.3106 2.73769C15.8669 2.73769 19.5606 6.43135 19.5606 10.9877Z' stroke='black' stroke-width='1.82813' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");-webkit-mask-image:url("data:image/svg+xml,%3Csvg width='25' height='25' viewBox='0 0 25 25' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M21.6231 21.3002L17.1372 16.8143M19.5606 10.9877C19.5606 15.5441 15.8669 19.2377 11.3106 19.2377C6.75421 19.2377 3.06055 15.5441 3.06055 10.9877C3.06055 6.43135 6.75421 2.73769 11.3106 2.73769C15.8669 2.73769 19.5606 6.43135 19.5606 10.9877Z' stroke='black' stroke-width='1.82813' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");mask-image:url("data:image/svg+xml,%3Csvg width='25' height='25' viewBox='0 0 25 25' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M21.6231 21.3002L17.1372 16.8143M19.5606 10.9877C19.5606 15.5441 15.8669 19.2377 11.3106 19.2377C6.75421 19.2377 3.06055 15.5441 3.06055 10.9877C3.06055 6.43135 6.75421 2.73769 11.3106 2.73769C15.8669 2.73769 19.5606 6.43135 19.5606 10.9877Z' stroke='black' stroke-width='1.82813' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");}body>div.mobile-contact-wrapper .lp-ico-arrow-top:before{-webkit-mask-image:url("data:image/svg+xml,%3Csvg width='17' height='16' viewBox='0 0 17 16' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M12.8716 9.99976L8.87158 5.99976L4.87158 9.99976' stroke='white' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");-webkit-mask-image:url("data:image/svg+xml,%3Csvg width='17' height='16' viewBox='0 0 17 16' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M12.8716 9.99976L8.87158 5.99976L4.87158 9.99976' stroke='white' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");mask-image:url("data:image/svg+xml,%3Csvg width='17' height='16' viewBox='0 0 17 16' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M12.8716 9.99976L8.87158 5.99976L4.87158 9.99976' stroke='white' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");}body>div.mobile-contact-wrapper .lp-ico-scroll-top:before{-webkit-mask-image:url("data:image/svg+xml,%3Csvg width='24' height='24' viewBox='0 0 24 24' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M21 3H3M12 21V7M12 7L5 14M12 7L19 14' stroke='white' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E ");-webkit-mask-image:url("data:image/svg+xml,%3Csvg width='24' height='24' viewBox='0 0 24 24' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M21 3H3M12 21V7M12 7L5 14M12 7L19 14' stroke='white' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E ");mask-image:url("data:image/svg+xml,%3Csvg width='24' height='24' viewBox='0 0 24 24' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M21 3H3M12 21V7M12 7L5 14M12 7L19 14' stroke='white' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E ");}body>div.mobile-contact-wrapper .lp-ico-close:before{-webkit-mask-image:url("data:image/svg+xml,%3Csvg width='24' height='24' viewBox='0 0 24 24' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M17.5986 6.32617L5.59863 18.3262M5.59863 6.32617L17.5986 18.3262' stroke='white' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E ");-webkit-mask-image:url("data:image/svg+xml,%3Csvg width='24' height='24' viewBox='0 0 24 24' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M17.5986 6.32617L5.59863 18.3262M5.59863 6.32617L17.5986 18.3262' stroke='white' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E ");mask-image:url("data:image/svg+xml,%3Csvg width='24' height='24' viewBox='0 0 24 24' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M17.5986 6.32617L5.59863 18.3262M5.59863 6.32617L17.5986 18.3262' stroke='white' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E ");}body>div.mobile-contact-wrapper .lp-ico-phone:before{-webkit-mask-image:url("data:image/svg+xml,%3Csvg width='24' height='24' viewBox='0 0 24 24' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M13.8
34699 6.57142C14.7459 6.74157 15.551 7.16808 16.1821 7.79637C16.8132 8.42465 17.2416 9.22612 17.4126 10.0982M13.8699 3C15.6899 3.20128 17.3871 4.01265 18.6827 5.3009C19.9784 6.58914 20.7955 8.27768 21 10.0893M10.4412 13.592C9.36357 12.5192 8.51264 11.3061 7.88843 10.0118C7.83474 9.90047 7.80789 9.84481 7.78726 9.77437C7.71397 9.52405 7.76662 9.21668 7.91909 9.00469C7.962 8.94504 8.01326 8.894 8.11578 8.79194C8.42933 8.47979 8.58611 8.32372 8.6886 8.16677C9.07515 7.57491 9.07515 6.81189 8.6886 6.22002C8.58611 6.06308 8.42933 5.90701 8.11578 5.59486L7.94101 5.42087C7.46438 4.94637 7.22607 4.70912 6.97012 4.58024C6.4611 4.32392 5.85996 4.32392 5.35093 4.58024C5.09499 4.70912 4.85667 4.94637 4.38004 5.42087L4.23867 5.56161C3.76367 6.03449 3.52617 6.27093 3.34478 6.59239C3.1435 6.94909 2.99878 7.5031 3.00001 7.91222C3.00111 8.28092 3.07295 8.53291 3.21664 9.03688C3.98881 11.7453 5.44574 14.3009 7.58743 16.4331C9.72911 18.5652 12.2963 20.0156 15.0168 20.7843C15.523 20.9274 15.7761 20.9989 16.1465 21C16.5575 21.0012 17.114 20.8571 17.4723 20.6568C17.7952 20.4762 18.0327 20.2397 18.5077 19.7669L18.649 19.6261C19.1257 19.1516 19.364 18.9144 19.4934 18.6596C19.7509 18.1528 19.7509 17.5544 19.4934 17.0476C19.364 16.7928 19.1257 16.5556 18.649 16.0811L18.4743 15.9071C18.1607 15.5949 18.0039 15.4388 17.8463 15.3368C17.2518 14.952 16.4853 14.952 15.8908 15.3368C15.7332 15.4388 15.5764 15.5949 15.2628 15.9071C15.1603 16.0091 15.1091 16.0602 15.0491 16.1029C14.8362 16.2547 14.5274 16.3071 14.276 16.2341C14.2052 16.2136 14.1493 16.1869 14.0375 16.1334C12.7374 15.512 11.5189 14.6648 10.4412 13.592Z' stroke='white' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");-webkit-mask-image:url("data:image/svg+xml,%3Csvg width='24' height='24' viewBox='0 0 24 24' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M13.8699 6.57142C14.7459 6.74157 15.551 7.16808 16.1821 7.79637C16.8132 8.42465 17.2416 9.22612 17.4126 10.0982M13.8699 3C15.6899 3.20128 17.3871 4.01265 18.6827 5.3009C19.9784 6.58914 20.7955 8.27768 21 10.0893M10.4412 13.592C9.36357 12.5192 8.51264 11.3061 7.88843 10.0118C7.83474 9.90047 7.80789 9.84481 7.78726 9.77437C7.71397 9.52405 7.76662 9.21668 7.91909 9.00469C7.962 8.94504 8.01326 8.894 8.11578 8.79194C8.42933 8.47979 8.58611 8.32372 8.6886 8.16677C9.07515 7.57491 9.07515 6.81189 8.6886 6.22002C8.58611 6.06308 8.42933 5.90701 8.11578 5.59486L7.94101 5.42087C7.46438 4.94637 7.22607 4.70912 6.97012 4.58024C6.4611 4.32392 5.85996 4.32392 5.35093 4.58024C5.09499 4.70912 4.85667 4.94637 4.38004 5.42087L4.23867 5.56161C3.76367 6.03449 3.52617 6.27093 3.34478 6.59239C3.1435 6.94909 2.99878 7.5031 3.00001 7.91222C3.00111 8.28092 3.07295 8.53291 3.21664 9.03688C3.98881 11.7453 5.44574 14.3009 7.58743 16.4331C9.72911 18.5652 12.2963 20.0156 15.0168 20.7843C15.523 20.9274 15.7761 20.9989 16.1465 21C16.5575 21.0012 17.114 20.8571 17.4723 20.6568C17.7952 20.4762 18.0327 20.2397 18.5077 19.7669L18.649 19.6261C19.1257 19.1516 19.364 18.9144 19.4934 18.6596C19.7509 18.1528 19.7509 17.5544 19.4934 17.0476C19.364 16.7928 19.1257 16.5556 18.649 16.0811L18.4743 15.9071C18.1607 15.5949 18.0039 15.4388 17.8463 15.3368C17.2518 14.952 16.4853 14.952 15.8908 15.3368C15.7332 15.4388 15.5764 15.5949 15.2628 15.9071C15.1603 16.0091 15.1091 16.0602 15.0491 16.1029C14.8362 16.2547 14.5274 16.3071 14.276 16.2341C14.2052 16.2136 14.1493 16.1869 14.0375 16.1334C12.7374 15.512 11.5189 14.6648 10.4412 13.592Z' stroke='white' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");mask-image:url("data:image/svg+xml,%3Csvg width='24' height='24' viewBox='0 0 24 24' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M13.8699 6.57142C14.7459 6.74157 15.551 7.16808 16.1821 7.79637C16.8132 8.42465 17.2416 9.22612 17.4126 10.0982M13.8699 3C15.6899 3.20128 17.3871 4.01265 18.6827 5.3009C19.9784 6.58914 20.7955 8.27768 21 10.0893M10.4412 13.592C9.36357 12.5192 8.51264 11.3061 7.88843 10.0118C7.83474 9.90047 7.80789 9.84481 7.78726 9.77437C7.71397 9.52405 7.76662 9.21668 7.91909 9.00469C7.962 8.94504 8.01326 8.894 8.11578 8.79194C8.42933 8.47979 8.58611 8.32372 8.6886 8.16677C9.07515 7.57491 9.07515 6.81189 8.6886 6.22002C8.58611 6.06308 8.42933 5.90701 8.11578 5.59486L7.94101 5.42087C7.46438 4.94637 7.22607 4.70912 6.97012 4.58024C6.4611 4.32392 5.85996 4.32392 5.35093 4.58024C5.09499 4.70912 4.85667 4.94637 4.38004 5.42087L4.23867 5.56161C3.76367 6.03449 3.52617 6.27093 3.34478 6.59239C3.1435 6.94909 2.99878 7.5031 3.00001 7.91222C3.00111 8.28092 3.07295 8.53291 3.21664 9.03688C3.98881 11.7453 5.44574 14.3009 7.58743 16.4331C9.72911 18.5652 12.2963 20.0156 15.0168 20.7843C15.523 20.9274 15.7761 20.9989 16.1465 21C16.5575 21.0012 17.114 20.8571 17.4723 20.6568C17.7952 20.4762 18.0327 20.2397 18.5077 19.7669L18.649 19.6261C19.1257 19.1516 19.364 18.9144 19.4934 18.6596C19.7509 18.1528 19.7509 17.5544 19.4934 17.0476C19.364 16.7928 19.1257 16.5556 18.649 16.0811L18.4743 15.9071C18.1607 15.5949 18.0039 15.4388 17.8463 15.3368C17.2518 14.952 16.4853 14.952 15.8908 15.3368C15.7332 15.4388 15.5764 15.5949 15.2628 15.9071C15.1603 16.0091 15.1091 16.0602 15.0491 16.1029C14.8362 16.2547 14.5274 16.3071 14.276 16.2341C14.2052 16.2136 14.1493 16.1869 14.0375 16.1334C12.7374 15.512 11.5189 14.6648 10.4412 13.592Z' stroke='white' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");}body>div.mobile-contact-wrapper .lp-ico-sms:before{-webkit-mask-image:url("data:image/svg+xml,%3Csvg width='24' height='24' viewBox='0 0 24 24' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M21 11.5C21.0034 12.8199 20.6951 14.1219 20.1 15.3C19.3944 16.7117 18.3098 17.8992 16.9674 18.7293C15.6251 19.5594 14.0782 19.9994 12.5 20C11.1801 20.0034 9.87812 19.6951 8.7 19.1L3 21L4.9 15.3C4.30493 14.1219 3.99656 12.8199 4 11.5C4.00061 9.92176 4.44061 8.37485 5.27072 7.03255C6.10083 5.69025 7.28825 4.60557 8.7 3.9C9.87812 3.30493 11.1801 2.99656 12.5 3H13C15.0843 3.11499 17.053 3.99476 18.5291 5.47086C20.0052 6.94695 20.885 8.91565 21 11V11.5Z' stroke='white' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");-webkit-mask-image:url("data:image/svg+xml,%3Csvg width='24' height='24' viewBox='0 0 24 24' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M21 11.5C21.0034 12.8199 20.6951 14.1219 20.1 15.3C19.3944 16.7117 18.3098 17.8992 16.9674 18.7293C15.6251 19.5594 14.0782 19.9994 12.5 20C11.1801 20.0034 9.87812 19.6951 8.7 19.1L3 21L4.9 15.3C4.30493 14.1219 3.99656 12.8199 4 11.5C4.00061 9.92176 4.44061 8.37485 5.27072 7.03255C6.10083 5.69025 7.28825 4.60557 8.7 3.9C9.87812 3.30493 11.1801 2.99656 12.5 3H13C15.0843 3.11499 17.053 3.99476 18.5291 5.47086C20.0052 6.94695 20.885 8.91565 21 11V11.5Z' stroke='white' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");mask-image:url("data:image/svg+xml,%3Csvg width='24' height='24' viewBox='0 0 24 24' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M21 11.5C21.0034 12.8199 20.6951 14.1219 20.1 15.3C19.3944 16.7117 18.3098 17.8992 16.9674 18.7293C15.6251 19.5594 14.0782 19.9994 12.5 20C11.1801 20.0034 9.87812 19.6951 8.7 19.1L3 21L4.9 15.3C4.30493 14.1219 3.99656 12.8199 4 11.5C4.00061 9.92176 4.44061 8.37485 5.27072 7.03255C6.10083 5.69025 7.28825 4.60557 8.7 3.9C9.87812 3.30493 11.1801 2.99656 12.5 3H13C15.0843 3.11499 17.053 3.99476 18.5291 5.47086C20.0052 6.94695 20.885 8.91565 21 11V11.5Z' stroke='white' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");}body>div.mobile-contact-wrapper .lp-ico-email:before{-webkit-mask-image:url("data:image/svg+xml,%3Csvg width='24' height='24' viewBox='0 0 24 24' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M21.5 18L14.85
3471 12M9.14286 12L2.50003 18M2 7L10.1649 12.7154C10.8261 13.1783 11.1567 13.4097 11.5163 13.4993C11.8339 13.5785 12.1661 13.5785 12.4837 13.4993C12.8433 13.4097 13.1739 13.1783 13.8351 12.7154L22 7M6.8 20H17.2C18.8802 20 19.7202 20 20.362 19.673C20.9265 19.3854 21.3854 18.9265 21.673 18.362C22 17.7202 22 16.8802 22 15.2V8.8C22 7.11984 22 6.27976 21.673 5.63803C21.3854 5.07354 20.9265 4.6146 20.362 4.32698C19.7202 4 18.8802 4 17.2 4H6.8C5.11984 4 4.27976 4 3.63803 4.32698C3.07354 4.6146 2.6146 5.07354 2.32698 5.63803C2 6.27976 2 7.11984 2 8.8V15.2C2 16.8802 2 17.7202 2.32698 18.362C2.6146 18.9265 3.07354 19.3854 3.63803 19.673C4.27976 20 5.11984 20 6.8 20Z' stroke='white' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");-webkit-mask-image:url("data:image/svg+xml,%3Csvg width='24' height='24' viewBox='0 0 24 24' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M21.5 18L14.8571 12M9.14286 12L2.50003 18M2 7L10.1649 12.7154C10.8261 13.1783 11.1567 13.4097 11.5163 13.4993C11.8339 13.5785 12.1661 13.5785 12.4837 13.4993C12.8433 13.4097 13.1739 13.1783 13.8351 12.7154L22 7M6.8 20H17.2C18.8802 20 19.7202 20 20.362 19.673C20.9265 19.3854 21.3854 18.9265 21.673 18.362C22 17.7202 22 16.8802 22 15.2V8.8C22 7.11984 22 6.27976 21.673 5.63803C21.3854 5.07354 20.9265 4.6146 20.362 4.32698C19.7202 4 18.8802 4 17.2 4H6.8C5.11984 4 4.27976 4 3.63803 4.32698C3.07354 4.6146 2.6146 5.07354 2.32698 5.63803C2 6.27976 2 7.11984 2 8.8V15.2C2 16.8802 2 17.7202 2.32698 18.362C2.6146 18.9265 3.07354 19.3854 3.63803 19.673C4.27976 20 5.11984 20 6.8 20Z' stroke='white' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");mask-image:url("data:image/svg+xml,%3Csvg width='24' height='24' viewBox='0 0 24 24' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M21.5 18L14.8571 12M9.14286 12L2.50003 18M2 7L10.1649 12.7154C10.8261 13.1783 11.1567 13.4097 11.5163 13.4993C11.8339 13.5785 12.1661 13.5785 12.4837 13.4993C12.8433 13.4097 13.1739 13.1783 13.8351 12.7154L22 7M6.8 20H17.2C18.8802 20 19.7202 20 20.362 19.673C20.9265 19.3854 21.3854 18.9265 21.673 18.362C22 17.7202 22 16.8802 22 15.2V8.8C22 7.11984 22 6.27976 21.673 5.63803C21.3854 5.07354 20.9265 4.6146 20.362 4.32698C19.7202 4 18.8802 4 17.2 4H6.8C5.11984 4 4.27976 4 3.63803 4.32698C3.07354 4.6146 2.6146 5.07354 2.32698 5.63803C2 6.27976 2 7.11984 2 8.8V15.2C2 16.8802 2 17.7202 2.32698 18.362C2.6146 18.9265 3.07354 19.3854 3.63803 19.673C4.27976 20 5.11984 20 6.8 20Z' stroke='white' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");}body>div.mobile-contact-wrapper a{-webkit-text-decoration:none;text-decoration:none;}body>div.mobile-contact-wrapper .btn-holder{bottom:-50px;left:19px;position:fixed;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;gap:13px;opacity:0;-webkit-transition:all .3s;transition:all .3s;}@media (max-width: 1024px){body>div.mobile-contact-wrapper .btn-holder{right:19px;padding:0 48px;-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center;}}body>div.mobile-contact-wrapper .btn-holder.visible{bottom:28px;opacity:1;}body>div.mobile-contact-wrapper .search-btn{width:48px;height:48px;border-radius:999px;font-size:0;line-height:0;display:-webkit-inline-box;display:-webkit-inline-flex;display:-ms-inline-flexbox;display:inline-flex;-webkit-transition:all .3s;transition:all .3s;padding:12px;color:#141414;background:#fff;}@media (max-width: 1024px){body>div.mobile-contact-wrapper .search-btn{position:absolute;left:0;bottom:0;}}body>div.mobile-contact-wrapper .search-btn:before{width:24px;height:24px;}body>div.mobile-contact-wrapper .connect-btn{height:48px;padding:0 24px;display:-webkit-inline-box;display:-webkit-inline-flex;display:-ms-inline-flexbox;display:inline-flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;gap:4px;text-transform:uppercase;border-radius:25px;color:var(--pillTextColor);background:var(--pillBackgroundColor);border:1px solid rgba(255, 255, 255, 0.2);cursor:pointer;font-size:10px;font-style:normal;font-weight:500;line-height:16px;letter-spacing:0.4px;-webkit-flex-direction:row-reverse;-ms-flex-direction:row-reverse;flex-direction:row-reverse;-webkit-transition:all .4s;transition:all .4s;box-shadow:0 0 0 0 rgba(255, 255, 255, 0.2);-webkit-animation:pulsate 2s ease infinite;animation:pulsate 2s ease infinite;}body>div.mobile-contact-wrapper .connect-btn:before{width:16px;height:16px;}body>div.mobile-contact-wrapper .pop-up{display:none;position:fixed;bottom:0;left:0;width:100%;-webkit-transition:all .3s;transition:all .3s;border-radius:16px 16px 0 0;color:var(--textColor);background:var(--backgroundColor);}@media (max-height: 850px){body>div.mobile-contact-wrapper .pop-up{max-height:85vh;overflow-y:auto;}}@media (min-width: 1025px){body>div.mobile-contact-wrapper .pop-up{max-height:none;overflow-y:initial;max-width:637px;border-radius:16px;bottom:28px;left:19px;}}body>div.mobile-contact-wrapper .pop-up .lp-container{padding-top:24px;padding-bottom:24px;-webkit-box-pack:center;-ms-flex-pack:center;
34-webkit-justify-content:center;justify-content:center;}@media (min-width: 1025px){body>div.mobile-contact-wrapper .pop-up .lp-container{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;padding-top:40px;padding-bottom:40px;min-height:450px;padding-left:56px;padding-right:56px;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;}}body>div.mobile-contact-wrapper .pop-up .close-btn{width:44px;height:44px;background-color:transparent;border-color:transparent;display:block;margin:24px auto 0;-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;color:var(--textColor);cursor:pointer;padding:10px;border:0;}body>div.mobile-contact-wrapper .pop-up .close-btn:before{width:24px;height:24px;}@media (min-width: 1025px){body>div.mobile-contact-wrapper .pop-up .close-btn{position:absolute;top:14px;right:12px;margin:0;}}body>div.mobile-contact-wrapper .pop-up .icon-btn{width:44px;height:44px;border-radius:999px;display:-webkit-inline-box;display:-webkit-inline-flex;display:-ms-inline-flexbox;display:inline-flex;-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;margin-left:8px;color:var(--textColor);position:relative;}body>div.mobile-contact-wrapper .pop-up .icon-btn:after{position:absolute;bottom:0;width:100%;left:0;border-radius:999px;
34height:100%;content:'';border:solid 1px var(--textColor);opacity:.3;}body>div.mobile-contact-wrapper .pop-up .icon-btn:before{width:24px;height:24px;}body>div.mobile-contact-wrapper .success-block{display:none;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;}@media (min-width: 1025px){body>div.mobile-contact-wrapper .success-block{-webkit-align-items:flex-start;-webkit-box-align:flex-start;-ms-flex-align:flex-start;align-items:flex-start;}}body>div.mobile-contact-wrapper .success-block .lp-btn{margin-top:24px;}body>div.mobile-contact-wrapper .contact-form{margin:0;}@media (max-width: 1024px){body>div.mobile-contact-wrapper .contact-form__item{width:100%;}}body>div.mobile-contact-wrapper .contact-form__item .lp-input{width:100%;}body>div.mobile-contact-wrapper .contact-form__item .is-placeholder{color:#818181;}body>div.mobile-contact-wrapper .contact-form__item+.contact-form__item{margin-top:16px;}body>div.mobile-contact-wrapper .contact-form.show-success .contact-form__container,body>div.mobile-contact-wrapper .contact-form.success .contact-form__container{display:none;}body>div.mobile-contact-wrapper .contact-form.show-success .success-block,body>div.mobile-contact-wrapper .contact-form.success .success-block{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;}body>div.mobile-contact-wrapper .contact-form .lp-disclaimer{margin-top:16px;}body>div.mobile-contact-wrapper .contact-form .lp-h3{margin-bottom:16px;}body>div.mobile-contact-wrapper .success-message{font-size:22px;}@-webkit-keyframes pulsate{0%{box-shadow:0 0 0 0 rgba(255, 255, 255, 0.2);}50%{box-shadow:0 0 4px 6px rgba(255, 255, 255, .5);}100%{box-shadow:0 0 12px 12px rgba(255, 255, 255, 0);}} 35 </style> 36 <style id="custom-style-css">.hyperlink-style-1{color:rgba(33, 31, 31, 1)!important;}.hyperlink-style-1:hover{color:rgba(246, 186, 24, 1)!important;}.pagination-style-1 li a{color:rgba(246, 186, 24, 1)!important;background-color:rgba(255, 255, 255, 0)!important;border-color:rgba(246, 186, 24, 1)!important;}.pagination-style-1 li a:hover{color:rgba(255, 255, 255, 1)!important;background-color:rgba(246, 186, 24, 1)!important;border-color:rgba(246, 186, 24, 1)!important;}.pagination-style-1 li.active a{color:rgba(255, 255, 255, 1)!important;background-color:rgba(246, 186, 24, 1)!important;border-color:rgba(246, 186, 24, 1)!important;}.social_icons-style-1 a{border-color:rgba(246, 186, 24, 1)!important;background-color:rgba(246, 186, 24, 1)!important;color:rgba(255, 255, 255, 1)!important;}.social_icons-style-1 a:hover{border-color:rgba(248, 206, 93, 1)!important;background-color:rgba(248, 206, 93, 1)!important;color:rgba(255, 255, 255, 1)!important;}.social_icons-style-1 a i{color:inherit!important;}
36.social_icons-style-1 a svg,.social_icons-style-1 a svg path{fill:currentColor!important;}.button-style-1{color:rgba(255, 255, 255, 1)!important;background-color:rgba(246, 186, 24, 1)!important;border-color:rgba(246, 186, 24, 1)!important;}.button-style-1:hover{color:rgba(255, 255, 255, 1)!important;background-color:rgba(248, 206, 93, 1)!important;border-color:rgba(248, 206, 93, 1)!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, 1)!important;}.pagination-style-2 li a:hover{color:rgba(246, 186, 24, 1)!important;background-color:rgba(255, 255, 255, 1)!important;border-color:rgba(255, 255, 255, 1)!important;}.pagination-style-2 li.active a{color:rgba(246, 186, 24, 1)!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:rgba(246, 186, 24, 1)!important;}.button-style-2{color:rgba(246, 186, 24, 1)!important;background-color:rgba(255, 255, 255, 1)!important;border-color:rgba(255, 255, 255, 1)!important;}.button-style-2:hover{color:rgba(255, 255, 255, 1)!important;background-color:rgba(255, 255, 255, 0)!important;border-color:rgba(255,255,255,1)!important;}.social_icons-style-2 a{border-color:rgba(255, 255, 255, 1)!important;background-color:rgba(255, 255, 255, 1)!important;color:rgba(246, 186, 24, 1)!important;}.social_icons-style-2 a:hover{border-color:rgba(255,255,255,1)!important;background-color:rgba(255, 255, 255, 0)!important;color:rgba(255, 255, 255, 1)!important;}.social_icons-style-2 a i{color:inherit!important;}
36.social_icons-style-2 a svg,.social_icons-style-2 a svg path{fill:currentColor!important;}.button-style-3{color:rgba(255, 255, 255, 1)!important;background-color:rgba(255, 255, 255, 0)!important;border-color:rgba(255, 255, 255, 1)!important;}.button-style-3:hover{color:rgba(246, 186, 24, 1)!important;background-color:rgba(255, 255, 255, 1)!important;border-color:rgba(255, 255, 255, 1)!important;}</style> 37 <!-- LP Consent bootstrap: blocking; resolves consent state, pushes Consent Mode 38 defaults, and dynamically loads the locale + main (and banner if needed). --> 39
39<script src="https://cdn.luxurypresence.com/scripts/lp-consent/latest/lp-consent-boot.js" data-website-id="4f5abd92-f372-41bf-8c80-8070772ada5c"></script>
39 40 41 42 <!-- Follow Up Boss Tracker Code --> 43
43<script type="text/plain" data-consent-category="analytics"> 44 (function(w,i,d,g,e,t){w["WidgetTrackerObject"]=g;(w[g]=w[g]||function() 45 {(w[g].q=w[g].q||[]).push(arguments);}),(w[g].ds=1*new Date());(e="script"), 46 (t=d.createElement(e)),(e=d.getElementsByTagName(e)[0]);t.async=1;t.src=i; 47 e.parentNode.insertBefore(t,e);}) 48 (window,"https://widgetbe.com/agent",document,"widgetTracker"); 49 window.widgetTracker("create", "WT-XDZHAPCM"); 50 </script>
50 51 <!-- End Follow Up Boss Tracker Code --> 52
52<script> 53 (function utmParse() { 54 const url = new URL(window.location.href); 55 if (url.search) { 56 const utm = url.search.split(/\?|&/g).reduce((acc, current) => { 57 const matched = current.match(/utm_(content|campaign|medium|source|term|id)|gclid/g); 58 if (matched) { 59 acc[matched[0]] = current.replace(`${matched[0]}=`, ''); 60 } 61 return acc; 62 }, {}); 63 if (Object.keys(utm).length) { 64 window.localStorage.setItem('utm_vars', JSON.stringify(utm)); 65 } else { 66 // Remove old utm vars 67 window.localStorage.removeItem('utm_vars'); 68 } 69 } 70 // Set referrer in local storage 71 // This is meant to be stored once to avoid self-referrals and to have the first referrer only. 72 if (!window.localStorage.getItem('referrer')) { 73 // Capture the Referrer URL 74 const referrer = document.referrer; 75 if (referrer) { 76 // Only store the referrer if it comes from outside the current domain (to avoid self-referrals) 77 const currentDomain = window.location.hostname; 78 const referrerDomain = new URL(referrer).hostname; 79 80 if (referrerDomain !== currentDomain) { 81 // Store it in localStorage 82 localStorage.setItem('referrer', referrer); 83 } 84 } 85 } 86 })(); 87 </script>
87 88 89 <!-- GOOGLE TRANSLATE STYLES are moved to external CSS --> 90</head> 91<body> 92 <div id="google_translate_element" style="display: none"></div> 93 94 <nav id="global-navbar" data-el-id="b395957e-29e6-4bd5-99ee-352fbee7732a"> 95 <div class="header theme-auto"> 96 <div class="lp-container header__container"> 97 <div class="header__logo"> 98 <a href="/" class="logo"> 99 <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/oskiycxgauo7q0fl54qg" 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/oskiycxgauo7q0fl54qg 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/oskiycxgauo7q0fl54qg 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/oskiycxgauo7q0fl54qg 1280w, https://media-production.lp-cdn.com/cdn-cgi/image/format=auto,quality=85/https://media-production.lp-cdn.com/media/oskiycxgauo7q0fl54qg 1500w" sizes="500px" class="logo__img dark" alt=""> 100 <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/lsxosddpic9eocd4vmcx" 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/lsxosddpic9eocd4vmcx 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/lsxosddpic9eocd4vmcx 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/lsxosddpic9eocd4vmcx 1280w, https://media-production.lp-cdn.com/cdn-cgi/image/format=auto,quality=85/https://media-production.lp-cdn.com/media/lsxosddpic9eocd4vmcx 1500w" sizes="500px" class="logo__img light" alt=""> 101 </a> 102 </div> 103 104 <div class="header__right"> 105 <ul class="navigation"> 106 <li class="navigation__item"> 107 <a href="/" class="navigation__link">Central Florida</a> 108 </li> 109 <li class="navigation__item"> 110 <a href="/south-florida" class="navigation__link">South Florida</a> 111 </li> 112 <li class="navigation__item"> 113 <a href="/properties" class="navigation__link">Properties</a> 114 </li> 115 <li class="navigation__item"> 116 <a href="/home-search/listings?search_type=envelope&south=28.37463296567888&west=-81.70064415976563&north=28.593712802350638&east=-81.21449914023438&property_type%5B%5D=Co-op&property_type%5B%5D=Condo&property_type%5B%5D=Commercial&property_type%5B%5D=Land&property_type%5B%5D=Multi-family&property_type%5B%5D=Manufactured&property_type%5B%5D=Residential&property_type%5B%5D=Townhouse&property_type%5B%5D=Other&property_type%5B%5D=Co-op&property_type%5B%5D=Condo&property_type%5B%5D=Commercial&property_type%5B%5D=Land&property_type%5B%5D=Multi-family&property_type%5B%5D=Manufactured&property_type%5B%5D=Residential&property_type%5B%5D=Townhouse&property_type%5B%5D=Other&status%5B%5D=Active&status_days%5BActive%5D=36500&status%5B%5D=Under+Contract&status_days%5BUnder+Contract%5D=36500&status%5B%5D=Pending&status_days%5BPending%5D=36500&status_days%5BSold%5D=180&mailer_schedule=instant&order=status_modified_at%3Adesc&page=1" class="navigation__link">Search Homes</a> 117 </li> 118 <li class="navigation__item"> 119 <a href="/contact" class="navigation__link">Contact Us</a> 120 </li> 121 <li class="navigation__item"> 122 <a href="tel:4074629050" class="navigation__link">(407) 462-9050</a> 123 </li> 124 <li class="navigation__item"> 125 <a href="tel:4076012200" class="navigation__link">(407) 601-2200</a> 126 </li> 127 128 </ul> 129 130 131 132 133 134 <button class="hamburger-component header__hamburger">
135 <svg width="60" height="60" viewBox="0 0 60 60" fill="none" xmlns="http://www.w3.org/2000/svg"> 136 <circle cx="30" cy="30" r="30" /> 137 <rect class="line line--top" x="18" y="26" width="24" height="2" /> 138 <rect class="line line--bottom" x="30" y="32" width="12" height="2" /> 139 </svg> 140 </button> 141 </div> 142 143 </div> 144</div> 145 </nav> 146 <div id="global-sidemenu" class="sidemenu" data-el-id="1575f740-92ae-4292-919d-936adffb0f46"> 147 <div class="sidemenu__container"> 148 149 150 <div class="sidemenu__img" style="background-image: url('https://media-production.lp-cdn.com/media/181ce774-4e2f-4725-b10e-901cb9b2bc6f');"> 151 </div> 152 153 <div class="sidemenu__wrapper"> 154 <div class="sidemenu__header"> 155 <button class="sidemenu__toggle toggle sidemenu__toggle--right">Close Menu</button> 156 </div> 157 158 <div class="sidemenu__nav"> 159 <ul class="navigation"> 160 <li class="navigation__item" > 161 <a href="/" class="navigation__link" >Home</a> 162 </li> 163 <li class="navigation__item" > 164 <a href="/properties" class="navigation__link" >Properties</a> 165 </li> 166 <li class="navigation__item" > 167 <a href="/communities" class="navigation__link" >Communities</a> 168 </li> 169 <li class="navigation__item" > 170 <a href="/buying" class="navigation__link" >Buying</a> 171 </li> 172 <li class="navigation__item" > 173 <a href="/selling" class="navigation__link" >Selling</a> 174 </li> 175 <li class="navigation__item" > 176 <a href="/home-search/listings?search_type=envelope&south=28.37463296567888&west=-81.70064415976563&north=28.593712802350638&east=-81.21449914023438&property_type%5B%5D=Co-op&property_type%5B%5D=Condo&property_type%5B%5D=Commercial&property_type%5B%5D=Land&property_type%5B%5D=Multi-family&property_type%5B%5D=Manufactured&property_type%5B%5D=Residential&property_type%5B%5D=Townhouse&property_type%5B%5D=Other&property_type%5B%5D=Co-op&property_type%5B%5D=Condo&property_type%5B%5D=Commercial&property_type%5B%5D=Land&property_type%5B%5D=Multi-family&property_type%5B%5D=Manufactured&property_type%5B%5D=Residential&property_type%5B%5D=Townhouse&property_type%5B%5D=Other&status%5B%5D=Active&status_days%5BActive%5D=36500&status%5B%5D=Under+Contract&status_days%5BUnder+Contract%5D=36500&status%5B%5D=Pending&status_days%5BPending%5D=36500&status_days%5BSold%5D=180&mailer_schedule=instant&order=status_modified_at%3Adesc&page=1" class="navigation__link" >Search Homes</a> 177 </li> 178 <li class="navigation__item sub-nav-container" data-wow-delay="2.6s"> 179 <a href="#" class="navigation__link"> 180 About Us 181 <svg width="24" height="24" viewBox="0 0 24 24" fill="none" class="arrow" xmlns="http://www.w3.org/2000/svg"> 182 <path d="M7.41 8.58984L12 13.1698L16.59 8.58984L18 9.99984L12 15.9998L6 9.99984L7.41 8.58984Z" fill="currentColor"/> 183 </svg> 184 </a> 185 <ul class="sub-nav"> 186 <li class="sub-nav__item"><a href="/about-us" class="sub-nav__link feature">Meet the Team</a></li> 187 <li class="sub-nav__item"><a href="/testimonials" class="sub-nav__link feature">Testimonials</a></li> 188 <li class="sub-nav__item"><a href="/military-rewards-program" class="sub-nav__link feature">Military Rewards Program </a></li> 189 <li class="sub-nav__item"><a href="/careers" class="sub-nav__link feature">Careers</a></li> 190 </ul> 191 192 </li> 193 <li class="navigation__item sub-nav-container" data-wow-delay="2.7s"> 194 <a href="#" class="navigation__link"> 195 Locations 196 <svg width="24" height="24" viewBox="0 0 24 24" fill="none" class="arrow" xmlns="http://www.w3.org/2000/svg"> 197 <path d="M7.41 8.58984L12 13.1698L16.59 8.58984L18 9.99984L12 15.9998L6 9.99984L7.41 8.58984Z" fill="currentColor"/> 198 </svg> 199 </a> 200 <ul class="sub-nav"> 201 <li class="sub-nav__item"><a href="/" class="sub-nav__link feature">Central Florida</a></li> 202 <li class="sub-nav__item"><a href="/south-florida" class="sub-nav__link feature">South Florida</a></li> 203 </ul> 204 205 </li> 206 <li class="navigation__item" > 207 <a href="/contact" class="navigation__link" >Contact Us</a> 208 </li> 209 </ul> 210 </div> 211 212 <div class="sidemenu__socials"> 213 <ul class="lp-socials social_icons-style-2 sidemenu-social-links"> 214 215 </ul> </div> 216 </div> 217</div> 218 219 </div> 220 <div id="global-mobile-contact" class="mobile-contact-wrapper" data-el-id="befe5af2-a6ca-4119-924a-a85d96d36b51"> 221 <div class="btn-holder" 222style=" 223--backgroundColor: rgba(20, 20, 20, 1); 224--textColor: rgba(255, 255, 255, 1); 225--pillTextColor: rgba(26, 26, 26, 1);
226--pillBackgroundColor: rgba(255, 255, 255, 1);"> 227 228 <button type="button" class="connect-btn lp-ico lp-ico-arrow-top visible">Let's Connect</button> 229</div> 230 231 232<div class="pop-up" style="--backgroundColor: rgba(20, 20, 20, 1); --textColor: rgba(255, 255, 255, 1);"> 233 <div class="lp-container"> 234 <form data-type="contact-form" class="contact-form"> 235 <div class="contact-form__container"> 236 <h3 class="lp-h3">Leave a Message</h3> 237 238 <div class="contact-form__content"> 239 <div class="contact-form__inputs-container"> 240 <div class="contact-form__item"> 241 <input 242 id="__FullName" 243 type="text" name="name" 244 class="lp-input lp-input--light" 245 required 246 placeholder="Full Name"> 247 </div> 248 <div class="contact-form__item"> 249 <input 250 id="__Email" 251 type="email" name="email" 252 class="lp-input js-email-input lp-input--light" 253 required 254 placeholder="Email"> 255 </div> 256 <div class="contact-form__item"> 257 <input 258 class="lp-input lp-input--light" 259 type="tel" 260 placeholder="Phone" 261 id="__Phone" 262 name="phone" 263 required> 264 </div> 265 266 <div class="contact-form__item input-group-select"> 267 <select name="interest" id="-field-interest" placeholder="Interest" 268 class="lp-input dropdown-select js-select js-form-element lp-input--light" required> 269 <option value="" disabled selected data-label="Interest">Interested in...</option> 270 <option value="Selling & Buying">Selling & Buying</option> 271 <option value="Selling">Selling</option> 272 <option value="Buying">Buying</option> 273 <option value="Renting">Renting</option> 274 <option value="Other">Other</option> 275 </select> 276 <label for="-field-interest" class="lp-label sr-only">Interest</label> 277 </div> 278 279 <div class="contact-form__item"> 280 <textarea 281 name="message" 282 rows="4" 283 id="__Message" 284 class="lp-input lp-input--light" 285 placeholder="Message" 286 required></textarea> 287 </div> 288 <div class="lp-disclaimer"> <label style='display: none;' for='-termsAccepted'>Opt In/Disclaimer Consent:</label> 289 <label class='lp-tcr-content'> 290 <span class='lp-tcr-checkbox'> 291 <input 292 type='checkbox' 293 id='-termsAccepted' 294 name='termsAccepted' 295 oninvalid="this.setCustomValidity('Please accept the terms and conditions')" 296 oninput="this.setCustomValidity('')" 297 required 298 /></span> 299 <span class='lp-tcr-message'> 300 301 I agree to be contacted by 302 Sundial Real Estate- 303 via call, email, and text for real estate services. To opt out, you can reply 'stop' at any time or reply 'help' for assistance. 304 You can also click the unsubscribe link in the emails. Message and data rates may apply. Message frequency may vary. 305 <a href='/terms-and-conditions' target='_blank'>Privacy Policy</a>. 306 </span> 307 </label> 308 309</div> 310 <button type="submit" class="lp-btn lp-btn--filled lp-btn--dark submit contact-form__item">Submit</button> 311 312 <div class="lp-h-pot"> 313 <input id="__newsSignMiddleName" name="middleName" value="" autocomplete="off" tabindex="-1"> 314 </div> 315 316 <input style="display: none;" type="text" name="source" value="CONTACT_INQUIRY" /> 317 <input type="hidden" name="button_text" value="Let's Connect"> 318 </div> 319 </div> 320 </div> 321 322 323 <div class="success-block"> 324 <h3 class="lp-h3 success-message">Thank you for your message. We will be in touch with you shortly.</h3> 325 326 </div> 327 </form> 328 329 <button type="button" class="close-btn lp-ico lp-ico-close"></button> 330 331 332 </div> 333</div> 334 335 336 </div> 337 <section class="image-section is-font-color-light is-background-color-dark" id="section-c02c049d-1919-46eb-a603-1cce7a5ab4cf" data-el-id="bce33bae-7388-4ccc-abff-e0ce18ec46d2"> 338
339<script> 340 (function(){ 341 const sectionId = 'section-c02c049d-1919-46eb-a603-1cce7a5ab4cf' 342 const section = document.querySelector(`#${sectionId}`); 343 var sectionBg = window.getComputedStyle(section, null).getPropertyValue('background-image'); 344 345 if('true' === 'true') { 346 section.classList.add('parallax-enabled'); 347 section.style.setProperty('--sectionBackground', sectionBg); 348 section.style.setProperty('background', 'transparent'); 349 } 350 })() 351</script>
351 352 353 354<div class="opening-with-search height-class-770px parallax"> 355 <div class="center-block"> 356 <button class='lp-play video-section__play-button js-play-btn'></button> 357 <div class="container lp-container"> 358 359 <div class="lp-title-group"> 360 361 362 <h1 class="h1 lp-h1 opening-title lp-pre-line" style="color: #ffffff">Contact Us</h1> 363 364 365 </div> 366 367 <div class="buttons"></div> 368 369 </div> 370 </div> 371 <div class="bottom-spacer"></div> 372</div> 373</section> 374<section id="section-b4d4f5c1-8476-43a0-87d1-672e27bc9d8f" class="solid-section is-font-color-dark is-background-color-light" data-el-id="ee03b9c1-ce78-4c15-86a1-10124375dc59"> 375 <div class="custom-form redesign" id="js-contact-form"> 376 <div class="lp-container custom-form__container"> 377 378 <div class="elem-row custom-form__row"> 379 <div class="elem-col custom-form__form-col"> 380 <form class="custom-form__download-form" data-type="contact-form" data-delay="6000"> 381 <div class="form-row custom-form__form-row"> 382 383 <div class="h-pot lp-h-pot"> 384 <label for="section-b4d4f5c1-8476-43a0-87d1-672e27bc9d8f-middleName">Middle Name</label> 385 <input id="section-b4d4f5c1-8476-43a0-87d1-672e27bc9d8f-middleName" name="middleName" value="" autocomplete="off" tabindex="-1"> 386 </div> 387 388 <div class="form-col js-backup-email"> 389 <div class="lp-form-group custom-form__group"> 390 <div class="lp-input-group"> 391 <label for="section-b4d4f5c1-8476-43a0-87d1-672e27bc9d8f-required-email-field" class="lp-label field-required">Email</label> 392 <input type="email" id="section-b4d4f5c1-8476-43a0-87d1-672e27bc9d8f-required-email-field" name="email" class="lp-input lp-input--dark js-form-element js-backup-field" placeholder="Email *" required> 393 </div> 394 </div> 395 </div> 396 397 398 <div class="form-col"> 399 <div class="lp-form-group custom-form__group"> 400 <div class="lp-input-group"> 401 <label for="section-b4d4f5c1-8476-43a0-87d1-672e27bc9d8f-field-0" class="lp-label field-required">First Name</label> 402 <input type="text" id="section-b4d4f5c1-8476-43a0-87d1-672e27bc9d8f-field-0" name="name" class="lp-input lp-input--dark js-form-element" placeholder="First Name *" required> 403 </div> 404 </div> 405 </div> 406 <div class="form-col"> 407 <div class="lp-form-group custom-form__group"> 408 <div class="lp-input-group"> 409 <label for="section-b4d4f5c1-8476-43a0-87d1-672e27bc9d8f-field-1" class="lp-label field-required">Last Name</label> 410 <input type="text" id="section-b4d4f5c1-8476-43a0-87d1-672e27bc9d8f-field-1" name="name" class="lp-input lp-input--dark js-form-element" placeholder="Last Name *" required> 411 </div> 412 </div> 413 </div> 414 <div class="form-col"> 415 <div class="lp-form-group custom-form__group"> 416 <div class="lp-input-group"> 417 <label for="section-b4d4f5c1-8476-43a0-87d1-672e27bc9d8f-field-2" class="lp-label">Phone</label> 418 <input type="tel" id="section-b4d4f5c1-8476-43a0-87d1-672e27bc9d8f-field-2" name="phone" class="lp-input lp-input--dark js-form-element" placeholder="Phone"> 419 </div> 420 </div> 421 </div> 422 <div class="form-col"> 423 <div class="lp-form-group custom-form__group"> 424 <div class="lp-input-group"> 425 <label for="section-b4d4f5c1-8476-43a0-87d1-672e27bc9d8f-field-3" class="lp-label field-required">Email</label> 426 <input type="email" id="section-b4d4f5c1-8476-43a0-87d1-672e27bc9d8f-field-3" name="email" class="lp-input lp-input--dark js-form-element" placeholder="Email *" required> 427 </div> 428 </div> 429 </div> 430 <div class="form-col"> 431 <div class="lp-form-group custom-form__group">
432 <div class="lp-input-group"> 433 <label for="section-b4d4f5c1-8476-43a0-87d1-672e27bc9d8f-field-4" class="lp-label">What are you interested in?</label> 434 <select name="interest" id="section-b4d4f5c1-8476-43a0-87d1-672e27bc9d8f-field-4" class="lp-input lp-input--dark dropdown-select js-select js-form-element" > 435 <option value="" selected disabled hidden data-label="What are you interested in? "></option> 436 <option value="Buying a Home">Buying a Home</option> 437 <option value="Selling a Home">Selling a Home</option> 438 <option value="Investing in a Property">Investing in a Property</option> 439 <option value="General Information">General Information</option> 440 </select> 441 </div> 442 </div> 443 </div> 444 <div class="form-col"> 445 <div class="lp-form-group custom-form__group"> 446 <div class="lp-input-group"> 447 <label for="section-b4d4f5c1-8476-43a0-87d1-672e27bc9d8f-field-5" class="lp-label">How would you like to be contacted?</label> 448 <select name="How would you like to be contacted?" id="section-b4d4f5c1-8476-43a0-87d1-672e27bc9d8f-field-5" placeholder="How would you like to be contacted?" class="lp-input lp-input--dark dropdown-select js-select js-form-element" > 449 <option value="" selected disabled hidden data-label="How would you like to be contacted? "></option> 450 <option value="Email">Email</option> 451 <option value="Phone">Phone</option> 452 </select> 453 </div> 454 </div> 455 </div> 456 <div class="form-col"> 457 <div class="lp-form-group custom-form__group"> 458 <div class="lp-input-group"> 459 <label for="section-b4d4f5c1-8476-43a0-87d1-672e27bc9d8f-field-6" class="lp-label field-required">Message</label> 460 <textarea name="message" rows="4" id="section-b4d4f5c1-8476-43a0-87d1-672e27bc9d8f-field-6" class="lp-input lp-input--dark js-form-element" placeholder="Message *" required></textarea> 461 </div> 462 </div> 463 </div> 464 </div> 465 466 <div class="lp-disclaimer"> <label style='display: none;' for='section-b4d4f5c1-8476-43a0-87d1-672e27bc9d8f-termsAccepted'>Opt In/Disclaimer Consent:</label> 467 <label class='lp-tcr-content'> 468 <span class='lp-tcr-checkbox'> 469 <input 470 type='checkbox' 471 id='section-b4d4f5c1-8476-43a0-87d1-672e27bc9d8f-termsAccepted' 472 name='termsAccepted' 473 oninvalid="this.setCustomValidity('Please accept the terms and conditions')" 474 oninput="this.setCustomValidity('')" 475 required 476 /></span> 477 <span class='lp-tcr-message'> 478 479 I agree to be contacted by 480 Sundial Real Estate- 481 via call, email, and text for real estate services. To opt out, you can reply 'stop' at any time or reply 'help' for assistance. 482 You can also click the unsubscribe link in the emails. Message and data rates may apply. Message frequency may vary. 483 <a href='/terms-and-conditions' target='_blank'>Privacy Policy</a>. 484 </span> 485 </label> 486 487</div> 488 489 <div class="custom-form__footer"> 490 <button type="submit" class="lp-btn lp-btn--dark lp-btn--filled lp-btn--mob-full-width custom-form__submit-btn button-style-1"> 491 <span class="lp-btn-icons"> 492 <span class="lp-btn-icon-loading"></span> 493 <span class="lp-btn-icon-success"></span> 494 </span> 495 Submit 496 </button> 497 </div> 498 </form> 499 </div> 500 </div> 501 </div> 502 <a href="/contact" class="visually-hidden js-redirect-link">link</a> 503</div> 504 505 506</section> 507<section id="section-50aa3994-7612-44a8-bc55-905d7248abd2" class="solid-section is-font-color-light is-background-color-light" data-el-id="6c23381a-d4eb-47dd-bfc1-583e3d03ead2"> 508 <div class="section redesign"> 509 <div class="section__map"> 510 <div class="map js-container" data-location="{"fullData":{"types":["premise"],"geometry":{"bounds":{"east":-81.3971744,"west":-81.3974144,"north":28.5953447,"south":28.59514},"location":{"lat":28.5952274,"lng":-81.3973096},"viewport":{"east":-81.39591616970849,"west":-81.3986141302915,"north":28.5966338302915,"south":28.5939358697085},"location_type":"ROOFTOP"},"place_id":"ChIJhxfk_Zpw54gRKYQkh_ZpSDw","formatted_address":"4314 Edgewater Dr, Orlando, FL 32804, USA","address_components":[{"types":["street_number"],"long_name":"4314","short_name":"4314"},{"types":["route"],"long_name":"Edgewater Drive","short_name":"Edgewater Dr"},{"types":["locality","political"],"long_name":"Orlando","short_name":"Orlando"},{"types":["administrative_area_level_2","political"],"long_name":"Orange County","short_name":"Orange County"},{"types":["administrative_area_level_1","political"],"long_name":"Florida","short_name":"FL"},{"types":["country","political"],"long_name":"United States","short_name":"US"},{"types":["postal_code"],"long_name":"32804","short_name":"32804"},{"types":["postal_code_suffix"],"long_name":"2135","short_name":"2135"}]},"mapOptions":{"zoom":14,"center":{"lat":28.5952274,"lng":-81.3973096}},"formattedAddress":"4314 Edgewater Dr, Orlando, FL 32804, USA"}" data-bw=false></div>
511 <div class="custom-controls"> 512 <button class="control-btn plus js-plus"> 513 <svg width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg"> 514 <path d="M10 18.3333C14.6024 18.3333 18.3333 14.6024 18.3333 10C18.3333 5.39762 14.6024 1.66666 10 1.66666C5.39763 1.66666 1.66667 5.39762 1.66667 10C1.66667 14.6024 5.39763 18.3333 10 18.3333Z" stroke="black" stroke-width="1.66667" stroke-linecap="round" stroke-linejoin="round"/> 515 <path d="M10 6.66666V13.3333" stroke="black" stroke-width="1.66667" stroke-linecap="round" stroke-linejoin="round"/> 516 <path d="M6.66667 10H13.3333" stroke="black" stroke-width="1.66667" stroke-linecap="round" stroke-linejoin="round"/> 517 </svg> 518 </button> 519 <button class="control-btn minus js-minus"> 520 <svg width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg"> 521 <path d="M10 18.3333C14.6024 18.3333 18.3333 14.6024 18.3333 10C18.3333 5.39762 14.6024 1.66666 10 1.66666C5.39763 1.66666 1.66667 5.39762 1.66667 10C1.66667 14.6024 5.39763 18.3333 10 18.3333Z" stroke="black" stroke-width="1.66667" stroke-linecap="round" stroke-linejoin="round"/> 522 <path d="M6.66667 10H13.3333" stroke="black" stroke-width="1.66667" stroke-linecap="round" stroke-linejoin="round"/> 523 </svg> 524 </button> 525 </div> 526 </div> 527 528 <div class="section__text"> 529 <div class="section__text-group"> 530 <h2 class="lp-h2 section__title">Visit Us</h2> 531 <div class="section__description"><p>4314 Edgewater Dr. Orlando, FL 32804</p></div> 532 </div> 533 <a 534 href="https://www.google.com/maps/place/4314+Edgewater+Dr,+Orlando,+FL+32804,+USA/@28.5951858,-81.3977818,119m/data=!3m1!1e3!4m6!3m5!1s0x88e7709afde41787:0x3c4869f687248429!8m2!3d28.5952274!4d-81.3973096!16s%2Fg%2F11bw3_91j2?entry=ttu" 535 target="_blank" 536 class="lp-btn lp-btn--outline lp-btn--light section__button button-style-2" 537 538 539 540 541 542 > 543 Get Directions 544 </a> 545 </div> 546</div> 547</section> 548<section id="section-962259ca-bbed-43b9-b966-6672a66322ca" class="solid-section is-font-color-light is-background-color-light" data-el-id="3614c9e1-cfd9-4976-8483-8f4b825fd098"> 549
549<script type="text/x-handlebars-template" class="jsIGTemplate"> 550 <a href="https://www.instagram.com/{{username}}" target="_blank" class="title-group js-title-group"> 551 <h3 class="lp-h3 js-h3"></h3> 552 <div class="username-group"><h5 class="lp-h5">@{{username}}</h5><svg class="arrow-icon" width="18" height="12" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M-.002 7h14.085l-3.558 3.59L11.926 12l5.965-6-5.965-6-1.401 1.41L14.084 5H-.002v2Z" fill="#CCB091"/></svg></div> 553 </a> 554 555 {{#each items}} 556 {{#if mediaUrl}} 557 <div class="item-box"> 558 <a href="https://www.instagram.com/{{../username}}" target="_blank" class="item insta-type-{{mediaType}}"> 559 <div class="item__text"> 560 <h3 class="lp-h3 js-h3"></h3> 561 <div class="username-group"> <h5 class="lp-h5">@{{../username}}</h5> <svg class="arrow-icon" width="18" height="12" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M-.002 7h14.085l-3.558 3.59L11.926 12l5.965-6-5.965-6-1.401 1.41L14.084 5H-.002v2Z" fill="#CCB091"/></svg></div> 562 </div> 563 <div class="item__img" style="background-image: url('{{#ifEquals mediaType 'VIDEO'}}{{thumbnailUrl}}{{else}}{{mediaUrl}}{{/ifEquals}}');"></div> 564 {{#ifEquals mediaType 'VIDEO'}} 565 <div class="media-type-icon"> 566 <svg width="30px" height="30px" viewBox="0 0 30 30" fill="none" xmlns="http://www.w3.org/2000/svg"><path fill="#fff" d="M19.369 6.042H2.082A2.086 2.086 0 000 8.125v13.71a2.086 2.086 0 002.083 2.083h17.285a2.086 2.086 0 002.084-2.083V8.125a2.086 2.086 0 00-2.084-2.083zM22.84 17.833l7.16 3.91V8.262l-7.16 3.908v5.662z"/></svg> 567 </div> 568 {{/ifEquals}} 569 {{#if caption}} 570 <div class="item__info"><div class="item__caption">{{caption}}</div></div> 571 {{/if}} 572 </a> 573 </div> 574 {{/if}} 575 {{/each}} 576</script>
576 577 578 579<div class="section"> 580 <div class="lp-container lp-container--l lp-vertical-paddings" style="--userColor: rgba(255, 255, 255, 1);"> 581 <div class="slider-holder js-slider-holder" data-title="Follow Us on Instagram" > 582 <div class="collection js-collection jsIGContainer"></div> 583 </div> 584 </div> 585</div> 586 587 588</section> 589 590 <div id="modals" class="modals"></div> 591 <footer id="global-footer" class="is-font-color-dark is-background-color-light" data-el-id="f3892c1c-f128-483a-b998-cb1ea48c25c1"> 592 <div class="site-footer"> 593 594 <div class="site-footer__bottom"> 595 <div class="lp-container"> 596 597 <div class="site-footer__logo-bar"> 598 <div class="site-footer__logo-container"> 599 <img src="https://media-production.lp-cdn.com/media/ae66ac9b-d049-4338-a435-d37d71d64ed3" alt=""> 600 </div> 601 <div class="site-footer__logo-container"> 602 603 </div> 604 </div> 605 606 <div class="site-footer__info"> 607 <div class="site-footer__col"> 608 <h5 class="lp-h5 site-footer__col-title">Sundial Real Estate</h5> 609 610 <div class="site-footer__col-content lp-a"><p><a href="tel:4074629050">(407) 462-9050</a><br><a href="tel:4076012200">(407) 601-2200</a><br><a href="/cdn-cgi/l/email-protection#50393e363f1023253e3439313c2235313c3523243124357e333f3d"><span class="__cf_email__" data-cfemail="fc95929a93bc8f899298959d908e999d90998f889d8899d29f9391">[email protected]</span></a></p></div> 611 </div> 612 613 614 <div class="site-footer__col"> 615 <h5 class="lp-h5 site-footer__col-title">Address</h5> 616 617 <div class="site-footer__col-content lp-a"><p>4314 Edgewater Dr.<br />Orlando, FL 32804</p></div> 618 </div> 619 620 <div class="site-footer__navigation-wrap"> 621 <ul class="footer-navigation"> 622 <li class="footer-navigation__item"> 623 <a href="/" class="footer-navigation__link">Central Florida</a> 624 </li> 625 <li class="footer-navigation__item"> 626 <a href="/south-florida" class="footer-navigation__link">South Florida</a> 627 </li> 628 <li class="footer-navigation__item"> 629 <a href="/about-us" class="footer-navigation__link">Meet the Team</a> 630 </li> 631 <li class="footer-navigation__item"> 632 <a href="/properties" class="footer-navigation__link">Properties</a> 633 </li> 634 <li class="footer-navigation__item"> 635 <a href="/communities" class="footer-navigation__link">Communities</a> 636 </li> 637 <li class="footer-navigation__item"> 638 <a href="/testimonials" class="footer-navigation__link">Testimonials</a> 639 </li> 640 <li class="footer-navigation__item"> 641 <a href="/contact" class="footer-navigation__link">Contact Us</a> 642 </li> 643 </ul> 644 645 <ul class="lp-socials social_icons-style-1 site-footer__socials socials"> 646 647 </ul> 648 649 </div> 650 </div> 651 652 <div class="site-footer__disclaimer"><p style="font-size: 12px;">All information is deemed reliable but not guaranteed and should be independently reviewed and verified. <br><img style="filter: invert(0); margin-top: 10px;" src="https://media-production.lp-cdn.com/media/f3ea4bfe-72c7-4456-83b9-09697f1e9bbb" width="100px;" height="auto;"></p></div> 653 654 <div class="site-footer__copy"> 655 <div class="lp-a site-footer__copy-lp"> 656 <span>Powered by</span> 657 <a href="https://www.luxurypresence.com/" class="" target="_blank">Luxury Presence</a> 658 </div> 659 <div>Copyright © <span class="auto-year-update">2026</span> | <a href="/terms-and-conditions">Privacy Policy</a></div> 660 </div> 661 662 </div> 663 </div> 664 665 666 667</div> 668 669 </footer> 670 671 <div id="modal-global-contact-us" class="modal " 672 data-el-id="" 673 style="background-color: ;" 674 > 675 <div class="modal-content"> 676 <div class="contact-form"> 677 <div class="contact-form__close close"></div> 678 <div class="contact-form__container"> 679 680 <form class="contact-form__form" data-type="contact-form" style="color: #FFFFFF; background: rgba(134, 134, 136, 1); fill: #FFFFFF;"> 681 <h5 class="lp-h5 contact-form__title1">Get in Touch</h5> 682 <div class="input-container"> 683 <input id="-cmp-name" name="name" type="text" class="lp-in
683put lp-input--light contact-form__input" placeholder="Name" required> 684 <span class="input-icon"></span> 685 </div> 686 687 <div class="input-container"> 688 <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-]+)+"> 689 <span class="input-icon"></span> 690 </div> 691 692 <div class="input-container"> 693 <input id="-cmp-phone" name="phone" type="tel" class="lp-input lp-input--light contact-form__input" placeholder="Phone" required> 694 <span class="input-icon"></span> 695 </div> 696 697 <div class="input-container"> 698 <textarea id="-cmp-contactMessage" placeholder="Message" name="message" required type="text" class="lp-input lp-input--light contact-form__input"></textarea> 699 <span class="input-icon"></span> 700 </div> 701 702 <div class="h-pot"> 703 <label for="-cmp-middleName">Middle Name</label> 704 <input id="-cmp-middleName" name="middleName" value="" autocomplete="off" tabindex="-1"> 705 </div> 706 707 <div class="lp-disclaimer"> <label style='display: none;' for='-termsAccepted'>Opt In/Disclaimer Consent:</label> 708 <label class='lp-tcr-content'> 709 <span class='lp-tcr-checkbox'> 710 <input 711 type='checkbox' 712 id='-termsAccepted' 713 name='termsAccepted' 714 oninvalid="this.setCustomValidity('Please accept the terms and conditions')" 715 oninput="this.setCustomValidity('')" 716 required 717 /></span> 718 <span class='lp-tcr-message'> 719 720 I agree to be contacted by 721 Sundial Real Estate- 722 via call, email, and text for real estate services. To opt out, you can reply 'stop' at any time or reply 'help' for assistance. 723 You can also click the unsubscribe link in the emails. Message and data rates may apply. Message frequency may vary. 724 <a href='/terms-and-conditions' target='_blank'>Privacy Policy</a>. 725 </span> 726 </label> 727 728 </div> 729 730 <input type="hidden" name="source" value="CONTACT_INQUIRY"> 731 <button class="contact-form__submit btn lp-btn lp-btn--filled button-style-2" type="submit"> 732 733 <span class="sync-icon lp-i--spin"> 734 <svg width="20" height="15" viewBox="0 0 20 15" fill="currentColor" xmlns="http://www.w3.org/2000/svg"> 735 <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" /> 736 </svg> 737 </span> 738 739 <span class="success-icon"> 740 <svg width="20" height="20" viewBox="0 0 20 20" fill="currentColor" xmlns="http://www.w3.org/2000/svg"> 741 <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" /> 742 </svg> 743 </span> 744 745 Submit<span class="success-text">ted</span> 746 </button> 747 </form> 748 749 <div class="contact-form__details"> 750 <h5 class="lp-h5 contact-form__title2">Contact Details</h5> 751 <div class="company"> 752 <div class="company_contact lp-a"> 753 <p><strong>Sundial Real Estate</strong></p> 754 <p><a href="tel:8007863425">(800) 786-3425</a></p> 755 <p><a href="/cdn-cgi/l/email-protection#7d14131b123d0e081319141c110f181c11180e091c0918531e1210"><span class="__cf_email__" data-cfemail="8be2e5ede4cbf8fee5efe2eae7f9eeeae7eef8ffeaffeea5e8e4e6">[email protected]</span></a></p> 756 <p><br /><br />4314 Edgewater Dr.<br />Orlando, FL 32804</p> 757 </div> 758 </div> 759 760 <div class="socials"> 761 <ul class="lp-socials social_icons-style-1 lp-socials socials--theme-1"> 762 763 </ul> </div> 764 </div> 765 </div> 766 </div> 767 <!-- version 1 --> 768 </div> 769 <button class="close lp-close" type="button" aria-label="close modal">
770 <span class="lp-close-icon" aria-hidden="true"></span> 771 </button> 772 </div> 773 <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;"> 774 <style> 775 #qualifying-questions-modal .custom-select-toggle { 776 border: 1px solid #848484; 777 border-radius: 8px; 778 padding: 12px 16px; 779 } 780 781 #qualifying-questions-modal .custom-select-toggle.is-placeholder { 782 color: #848484; 783 } 784 785 #qualifying-questions-modal #qualifying-questions-modal-phoneNumber::placeholder { 786 color: #848484; 787 opacity: 1; 788 } 789 790 #qualifying-questions-modal .disclaimer-more { 791 display: none; 792 } 793 794 #qualifying-questions-modal #qualifying-questions-modal-disclaimer-text:not(.collapsed) .disclaimer-more { 795 display: inline; 796 } 797 798 #qualifying-questions-modal #qualifying-questions-modal-disclaimer-text:not(.collapsed) .disclaimer-ellipsis { 799 display: none; 800 } 801 </style>
vendor: 119 bytes, lines 801-802
801 802 <script data-cfasync="false" src="/cdn-cgi/scripts/5c5dd728/cloudflare-static/email-decode.min.js"></script>
802<script> 803 function toggleDisclaimerQualifyingQuestionsModal() { 804 const disclaimerText = document.getElementById('qualifying-questions-modal-disclaimer-text'); 805 const toggleButton = document.getElementById('qualifying-questions-modal-toggle-disclaimer'); 806 807 if (disclaimerText.classList.contains('collapsed')) { 808 disclaimerText.classList.remove('collapsed'); 809 toggleButton.textContent = 'Read less'; 810 toggleButton.setAttribute('aria-expanded', 'true'); 811 } else { 812 disclaimerText.classList.add('collapsed'); 813 toggleButton.textContent = 'Read more'; 814 toggleButton.setAttribute('aria-expanded', 'false'); 815 } 816 } 817 </script>
817 818 <div style="max-width: 400px; width: 95%; margin: 0 auto;"> 819 <div style="background: #fff; border: none; border-radius: 16px; color: black; box-shadow: none; position: relative;"> 820 <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;"> 821 <span aria-hidden="true">×</span> 822 </button> 823 <div style="padding: 40px 30px 32px;"> 824 <div style="text-align: left; margin-bottom: 32px;"> 825 <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;"> 826 Thanks, please provide more information to help serve you 827 </h2> 828 </div> 829 <form id="qualifying-questions-modal-form" data-type="contact-form"> 830 <input type="hidden" name="source" value="PROFILE_UPDATE" /> 831 <input type="hidden" name="email" value="" id="qualifying-questions-modal-email" /> 832 <input type="hidden" name="triggerSource" id="qualifying-questions-modal-triggerSource" value="" /> 833 <label for="qualifying-questions-modal-email" style="display:none;"> 834 Email 835 </label> 836 <label for="qualifying-questions-modal-triggerSource" style="display:none;"> 837 Trigger Source 838 </label> 839 840 <div style="margin-bottom: 20px;"> 841 <label for="qualifying-questions-modal-phoneNumber" style="display:none;"> 842 Phone Number 843 </label> 844 <input 845 type="tel" 846 id="qualifying-questions-modal-phoneNumber" 847 name="phoneNumber" 848 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;" 849 pattern="^\+?1?[-.\s]?\(?[0-9]{3}\)?[-.\s]?[0-9]{3}[-.\s]?[0-9]{4}$" 850 required 851 placeholder="Phone" 852 aria-label="Phone Number" 853 inputmode="tel" 854 autocomplete="tel" 855 onfocus="this.style.borderColor='black';" 856 onblur="this.style.borderColor='#848484';" 857 /> 858 </div> 859 860 <div style="margin-bottom: 20px;"> 861 <label for="qualifying-questions-modal-interest" style="display:none;"> 862 Interest 863 </label> 864 <select 865 id="qualifying-questions-modal-interest" 866 name="interest" 867 required 868 data-label="Interest" 869 aria-label="Interest" 870 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;" 871 onfocus="this.style.borderColor='black'; this.style.color='black';" 872 onblur="this.style.borderColor='#848484'; if(this.value === '') this.style.color='#848484'; else this.style.color='black';" 873 > 874 <option value="" style="background: #fff; color: #848484;" disabled selected>Interested in...</option> 875 <option value="Selling & Buying" style="background: #fff; color: black;">Selling & Buying</option> 876 <option value="Selling" style="background: #fff; color: black;">Selling</option> 877 <option value="Buying" style="background: #fff; color: black;">Buying</option> 878 <option value="Renting" style="background: #fff; color: black;">Renting</option> 879 <option value="Other" style="background: #fff; color: black;">Other</option> 880 </select> 881 </div> 882 883 <div style="margin-bottom: 32px; font-size: 12px; line-height: 1.2;"> 884 <label style='display: none;' for='qualifying-questions-modal-qualifying-questions-termsAccepted'>Opt In/Disclaimer Consent:</label> 885 <label class='lp-tcr-content'>
886 <span class='lp-tcr-checkbox'> 887 <input 888 type='checkbox' 889 id='qualifying-questions-modal-qualifying-questions-termsAccepted' 890 name='termsAccepted' 891 aria-describedby='qualifying-questions-modal-disclaimer-text' 892 oninvalid="this.setCustomValidity('Please accept the terms and conditions')" 893 oninput="this.setCustomValidity('')" 894 required 895 /></span> 896 <span class='lp-tcr-message'> 897 <div id="qualifying-questions-modal-disclaimer-text" class="collapsed" style="color: #848484;"> 898 899 I agree to be contacted by 900 <strong>Sundial Real Estate-</strong> 901 via call, email, and text <span class="disclaimer-more">for real estate services. 902 To opt out, you can reply 'stop' at any time or reply 'help' for assistance. 903 You can also click the unsubscribe link in the emails. 904 Message and data rates may apply. Message frequency may vary.</span> 905 <span class="disclaimer-ellipsis">...</span> 906 <a href='/terms-and-conditions' target='_blank' rel='noopener noreferrer' style='text-decoration: underline;'>Privacy Policy</a>. 907 </div> 908 <button 909 id="qualifying-questions-modal-toggle-disclaimer" 910 type="button" 911 style="background: none; border: none; color: #848484; font-size: inherit; font-weight: bold; padding: 0; margin-top: 4px; cursor: pointer;" 912 aria-expanded="false" 913 onclick="toggleDisclaimerQualifyingQuestionsModal()" 914 > 915 Read more 916 </button> 917 </span> 918 </label> 919 </div> 920 921 <div> 922 <button 923 type="submit" 924 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;" 925 onmouseover="this.style.background='transparent'; this.style.color='black';" 926 onmouseout="this.style.background='black'; this.style.color='white';" 927 > 928 Submit 929 </button> 930 </div> 931 </form> 932 </div> 933 </div> 934 </div> 935 </div> 936 937
937<script> 938 (function() { 939 var lazyVideos = [].slice.call(document.querySelectorAll("video.lazy")); 940 941 if ("IntersectionObserver" in window && lazyVideos.length > 0) { 942 var lazyVideoObserver = new IntersectionObserver(function(entries, observer) { 943 entries.forEach(function(video) { 944 if (video.isIntersecting) { 945 for (var source in video.target.children) { 946 var videoSource = video.target.children[source]; 947 if (typeof videoSource.tagName === "string" && videoSource.tagName === "SOURCE") { 948 videoSource.src = videoSource.dataset.src; 949 } 950 } 951 952 video.target.load(); 953 video.target.classList.remove("lazy"); 954 lazyVideoObserver.unobserve(video.target); 955 } 956 }); 957 }); 958 959 lazyVideos.forEach(function(lazyVideo) { 960 lazyVideoObserver.observe(lazyVideo); 961 }); 962 } 963 })(); 964 </script>
964 965 966 <!-- Global site tag (gtag.js) - Google Analytics --> 967
967<script defer src="https://www.googletagmanager.com/gtag/js"></script>
967 968 969 <!-- Google Tag Manager --> 970
970<script>(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start': 971 new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0], 972 j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.defer=true;j.async=false;j.src= 973 'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f); 974 })(window,document,'script','dataLayer','GTM-WQKMKLV');</script>
974 975 <!-- End Google Tag Manager --> 976 <!-- Google Tag Manager --> 977
977<script>(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start': 978 new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0], 979 j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.defer=true;j.async=false;j.src= 980 'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f); 981 })(window,document,'script','dataLayer','GTM-NRB4D5T');</script>
981 982 <!-- End Google Tag Manager --> 983 <!-- Google Tag Manager --> 984
984<script>(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start': 985 new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0], 986 j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.defer=true;j.async=false;j.src= 987 'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f); 988 })(window,document,'script','dataLayer','GTM-T9SFQGHZ');</script>
988 989 <!-- End Google Tag Manager --> 990 991 992 <!-- LP Tracker (divolte.js) - LP Divolte --> 993
993<script>window.divolteLp=window.divolteLp||function(){(divolteLp.q=divolteLp.q||[]).push(arguments)}</script>
993 994 <!-- LP Tracker (eventBus) - LP EventBus --> 995
995<script>window.eventBusLp=window.eventBusLp||function(){(eventBusLp.q=eventBusLp.q||[]).push(arguments)}</script>
995 996 997
997<script> 998 window.dataLayer = window.dataLayer || []; 999 document.sendGoogleTagManagerEvent = function() { 1000 /* Honor GPC-enabled browsers and prevent GTM event if GPC is enabled. More details: https://global-privacy-control.glitch.me/ */ 1001 if (window.navigator.globalPrivacyControl) { 1002 return; 1003 } 1004 1005 dataLayer.push(arguments); 1006 } 1007 1008 document.sendGoogleTagManagerEvent('js', new Date()); 1009 document.sendGoogleTagManagerEvent('config', 'G-TRJV74QHX7', { page: location.pathname, location: location.href }); 1010 document.sendGoogleAnalyticsEvent = function(googleEvent) { 1011 document.sendGoogleTagManagerEvent('event', googleEvent.eventAction || googleEvent.hitType, { 1012 event_category: googleEvent.eventCategory, 1013 event_label: googleEvent.eventLabel, 1014 value: googleEvent.eventValue, 1015 page: googleEvent.page, 1016 location: googleEvent.location 1017 }) 1018 }; 1019 1020 document.addEventListener("DOMContentLoaded", function() { 1021 (function() { 1022 //If the page has an element with ID of auto-year-update the element will be populated with the current year. 1023 var date = new Date(); 1024 var elements = document.getElementsByClassName('auto-year-update'); 1025 var i; 1026 for (i = 0; i < elements.length; i++) { 1027 elements[i].innerText = date.getFullYear(); 1028 } 1029 })(); 1030 if (window.divolteLp) { 1031 window.divolteLp('sendLpPageView', {}); 1032 } 1033 if (window.eventBusLp) { 1034 window.eventBusLp('sendLpPageView', {}); 1035 } 1036 }); 1037 </script>
1037 1038 1039 <!-- Facebook Pixel Code --> 1040
1040<script type="text/plain" data-consent-category="advertising">
vendor: 575 bytes, lines 1040-1049
1040 1041 !function(f,b,e,v,n,t,s) 1042 {if(f.fbq)return;n=f.fbq=function(){n.callMethod? 1043 n.callMethod.apply(n,arguments):n.queue.push(arguments)}; 1044 if(!f._fbq)f._fbq=n;n.push=n;n.loaded=!0;n.version='2.0'; 1045 n.queue=[];t=b.createElement(e);t.async=!0; 1046 t.src=v;s=b.getElementsByTagName(e)[0]; 1047 s.parentNode.insertBefore(t,s)}(window, document,'script', 1048 'https://connect.facebook.net/en_US/fbevents.js'); 1049 fbq('init', '
1049970764856896967
vendor: 58 bytes, lines 1049-1051
1049'); 1050 fbq('track', 'PageView'); 1051
1051</script>
1051 1052 <noscript><img height="1" width="1" style="display:none" 1053 src="https://www.facebook.com/tr?id=970764856896967&ev=PageView&noscript=1" 1054 /></noscript> 1055 <!-- End Facebook Pixel Code --> 1056 1057
1057<script> 1058 // Function to dynamically load a script 1059 function loadScript(url, callback) { 1060 var script = document.createElement('script'); 1061 script.type = 'text/javascript'; 1062 script.src = url; 1063 script.defer = true; 1064 script.async = true; 1065 script.onload = callback; 1066 document.head.appendChild(script); 1067 } 1068 1069 // Function to dynamically load CSS file 1070 function loadCSS(url) { 1071 var link = document.createElement("link"); 1072 link.rel = "stylesheet"; 1073 link.href = url; 1074 document.head.appendChild(link); 1075 } 1076 1077 // Global methods / variables that can be accessed by element js 1078 window.luxuryPresence = { 1079 libs: { 1080 loadJs: loadScript, 1081 loadCss: loadCSS, 1082 jsLibsMap: { 1083 paroller: { 1084 jsSrc: 'https://d1e1jt2fj4r8r.cloudfront.net/javascript/jquery.paroller.min.js', 1085 isLoaded: false, 1086 }, 1087 ionRangeSlider: { 1088 jsSrc: 'https://cdnjs.cloudflare.com/ajax/libs/ion-rangeslider/2.3.1/js/ion.rangeSlider.min.js', 1089 cssSrc: 'https://cdnjs.cloudflare.com/ajax/libs/ion-rangeslider/2.3.1/css/ion.rangeSlider.min.css', 1090 isLoaded: false, 1091 requires: ['jquery'], 1092 }, 1093 splide: { 1094 jsSrc: 'https://cdnjs.cloudflare.com/ajax/libs/splidejs/4.1.4/js/splide.min.js', 1095 cssSrc: 'https://cdnjs.cloudflare.com/ajax/libs/splidejs/4.1.4/css/splide-core.min.css', 1096 isLoaded: false, 1097 }, 1098 wow: { 1099 jsSrc: 'https://cdnjs.cloudflare.com/ajax/libs/wow/1.1.2/wow.min.js', 1100 isLoaded: false, 1101 }, 1102 jquery: { 1103 jsSrc: 'https://cdnjs.cloudflare.com/ajax/libs/jquery/3.7.1/jquery.min.js', 1104 isLoaded: false, 1105 }, 1106 slick: { 1107 jsSrc: 'https://cdnjs.cloudflare.com/ajax/libs/slick-carousel/1.8.1/slick.min.js', 1108 isLoaded: false, 1109 requires: ['jquery'], 1110 }, 1111 libphonenumber: { 1112 jsSrc: 'https://cdnjs.cloudflare.com/ajax/libs/libphonenumber-js/1.11.8/libphonenumber-js.min.js', 1113 isLoaded: false, 1114 }, 1115 }, 1116 }, 1117 }; 1118 </script>
1118 1119
1119<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>
1119 1120
1120<script defer src="https://cdnjs.cloudflare.com/ajax/libs/handlebars.js/4.7.8/handlebars.min.js"></script>
1120 1121
1121<script defer src="https://cdn.jsdelivr.net/npm/[email protected]/dist/handlebars-intl.min.js"></script>
1121 1122
1122<script defer src="https://cdnjs.cloudflare.com/ajax/libs/superagent/4.1.0/superagent.min.js"></script>
1122 1123
1123<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>
1123 1124
1124<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>
1124 1125
1125<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>
1125 1126 1127 <!-- GOOGLE TRANSLATE SCRIPT --> 1128
1128<script> 1129 function googleTranslateElementInit() { 1130 // list of languages can be overridden by setting window.customLanguages in the head JS. example `window.customLanguages = 'en,de,fr,ro,sk,pl'` 1131 // Language codes can be taken from here https://cloud.google.com/translate/docs/languages 1132 const DEFAULT_LANGUAGES = 'en,es,zh-CN,zh-TW,tl,vi,ar,ko,ru,de,fr,hi,pt'; 1133 document.querySelectorAll('[data-type="TRANSLATE"]').forEach(function(translate){ 1134 translate.innerText = ''; 1135 new google.translate.TranslateElement({ 1136 pageLanguage: 'en', 1137 layout: google.translate.TranslateElement.InlineLayout.SIMPLE, 1138 includedLanguages: window.customLanguages || DEFAULT_LANGUAGES, 1139 }, translate); 1140 }); 1141 } 1142 </script>
1142 1143
1143<script defer src="//translate.google.com/translate_a/element.js?cb=googleTranslateElementInit"></script>
1143 1144
1144<script defer src="https://accounts.google.com/gsi/intermediate"></script>
1144 1145 1146 <!-- GOOGLE TRANSLATE SCRIPT END--> 1147
1147<script> 1148 1149 // UI helpers 1150 (function () { 1151 1152 function getSideMenu () { 1153 return document.querySelector('body > div.sidemenu'); 1154 } 1155 1156 function sideMenuHide (instant) { 1157 var sideMenu = getSideMenu(); 1158 if (!sideMenu || !sideMenu.classList.contains('visible')) { 1159 return; 1160 } 1161 sideMenu.classList.remove('visible'); 1162 sideMenu.dispatchEvent(new CustomEvent('lpui-hide', { detail: { instant: !!instant } })); 1163 window.dispatchEvent(new CustomEvent('lpui-sidemenu-hide', { detail: {instant: !!instant} })); 1164 } 1165 1166 function sideMenuShow () { 1167 var sideMenu = getSideMenu(); 1168 if (!sideMenu || sideMenu.classList.contains('visible')) { 1169 return; 1170 } 1171 sideMenu.classList.add('visible'); 1172 sideMenu.dispatchEvent(new Event('lpui-show')); 1173 window.dispatchEvent(new Event('lpui-sidemenu-show')); 1174 } 1175 1176 function sideMenuToggle () { 1177 var sideMenu = getSideMenu(); 1178 if (!sideMenu) { 1179 return; 1180 } 1181 var isSideMenuVisible = sideMenu.classList.contains('visible'); 1182 if (isSideMenuVisible) { 1183 sideMenuHide(); 1184 } else { 1185 sideMenuShow(); 1186 } 1187 } 1188 1189 var scrollLockRequests = {}; 1190 window.__debug_scrollLockRequests = scrollLockRequests; 1191 var hideScrollStyles = ''+ 1192 'body {'+ 1193 'overflow: hidden;' + 1194 '}'; 1195 var hideScrollId = 'hide-body-scroll-style'; 1196 1197 function scrollLock () { 1198 var style = document.createElement('style'); 1199 style.id = hideScrollId; 1200 style.textContent = hideScrollStyles; 1201 document.head.appendChild(style); 1202 window.dispatchEvent(new Event('lpui-scroll-locked')); 1203 } 1204 1205 function scrollUnlock () { 1206 document.getElementById(hideScrollId)?.remove(); 1207 window.dispatchEvent(new Event('lpui-scroll-unlocked')); 1208 } 1209 1210 function requestScrollLock (lockId) { 1211 var wasLocked = Object.keys(scrollLockRequests).length > 0; 1212 scrollLockRequests[lockId || '__anonymous_lock'] = true; 1213 if (!wasLocked) { 1214 scrollLock(); 1215 } 1216 } 1217 1218 function releaseScrollLock (lockId) { 1219 if (lockId) { 1220 delete scrollLockRequests[lockId]; 1221 if (!Object.keys(scrollLockRequests).length) { 1222 scrollUnlock(); 1223 } 1224 } else { 1225 scrollLockRequests = {}; 1226 window.__debug_scrollLockRequests = scrollLockRequests; 1227 scrollUnlock(); 1228 } 1229 } 1230 1231 function showModal (modalId, options) { 1232 var modal = document.getElementById(modalId); 1233 if (!modal) { 1234 return; 1235 } 1236 1237 if (!modal.classList.contains('visible')) { 1238 modal.classList.add('visible'); 1239 if (options && options.scrollLock) { 1240 window.lpUI.requestScrollLock(modalId); 1241 } 1242 modal.dispatchEvent(new Event('lpui-show')); 1243 window.dispatchEvent(new CustomEvent('lpui-modal-show', { detail: { id: modalId } })); 1244 } 1245 1246 const visibleModals = document.querySelectorAll('.modal.visible'); 1247 1248 if (visibleModals.length > 1) { 1249 1250 const maxZIndex = Array.from(visibleModals).reduce((maxZIndex, modal) => { 1251 const zIndex = window.getComputedStyle(modal).zIndex; 1252 const parsedZIndex = zIndex !== 'auto' ? parseInt(zIndex) : 0; 1253 return Math.max(maxZIndex, parsedZIndex); 1254 }, 0); 1255 1256 modal.style.zIndex = maxZIndex + 1; 1257 } 1258 1259 } 1260 1261 function _hideModal (modalEl) { 1262 if (!modalEl) { 1263 return; 1264 } 1265 if (!modalEl.classList.contains('visible')) { 1266 return; 1267 } 1268 modalEl.classList.remove('visible'); 1269 modalEl.style.zIndex = '';
1270 modalEl.dispatchEvent(new Event('lpui-hide')); 1271 var modalId = modalEl.getAttribute('id'); 1272 if (modalId) { 1273 window.lpUI.releaseScrollLock(modalId); 1274 window.dispatchEvent(new CustomEvent('lpui-modal-hide', { detail: { id: modalId } })); 1275 } 1276 } 1277 1278 function hideModal (modalId) { 1279 _hideModal(document.getElementById(modalId)); 1280 } 1281 1282 function hideClosestModal (el) { 1283 const modal = el?.closest('.modal'); 1284 if (!modal) { 1285 return; 1286 } 1287 if (modal.classList) { 1288 _hideModal(modal); 1289 return; 1290 } 1291 if (modal.length && modal[0].classList) { 1292 _hideModal(modal[0]); 1293 } 1294 } 1295 1296 window.lpUI = { 1297 sideMenuHide: sideMenuHide, 1298 sideMenuShow: sideMenuShow, 1299 sideMenuToggle: sideMenuToggle, 1300 requestScrollLock: requestScrollLock, 1301 releaseScrollLock: releaseScrollLock, 1302 showModal: showModal, 1303 hideModal: hideModal, 1304 hideClosestModal: hideClosestModal 1305 } 1306 })(); 1307 1308 var stringifyPrimitive = function(v) { 1309 switch (typeof v) { 1310 case 'string': 1311 return v; 1312 1313 case 'boolean': 1314 return v ? 'true' : 'false'; 1315 1316 case 'number': 1317 return isFinite(v) ? v : ''; 1318 1319 default: 1320 return ''; 1321 } 1322 }; 1323 1324 function objectToQuerystring(obj, sep, eq, name) { 1325 // https://github.com/Gozala/querystring/blob/master/encode.js 1326 sep = sep || '&'; 1327 eq = eq || '='; 1328 if (obj === null) { 1329 obj = undefined; 1330 } 1331 1332 if (typeof obj === 'object') { 1333 return Object.keys(obj).map(function(k) { 1334 var ks = encodeURIComponent(stringifyPrimitive(k)) + eq; 1335 if (Array.isArray(obj[k])) { 1336 return obj[k].map(function(v) { 1337 return ks + encodeURIComponent(stringifyPrimitive(v)); 1338 }).join(sep); 1339 } else { 1340 return ks + encodeURIComponent(stringifyPrimitive(obj[k])); 1341 } 1342 }).filter(Boolean).join(sep); 1343 1344 } 1345 1346 if (!name) return ''; 1347 return encodeURIComponent(stringifyPrimitive(name)) + eq + 1348 encodeURIComponent(stringifyPrimitive(obj)); 1349 } 1350 1351 function getPath(url, options) { 1352 var parser = document.createElement('a'); 1353 parser.href = url || ''; 1354 var path = parser.pathname || ''; 1355 if (path[0] !== '/') { 1356 // IE does not return path starting with a slash 1357 path = '/' + path; 1358 } 1359 1360 if (options && options.queryString) { 1361 path += parser.search; 1362 } 1363 1364 return path; 1365 } 1366 1367 function getMLSAutocomplete(keyword) { 1368 var searchURL = window.location.protocol + '//' + window.location.hostname + '/home-search/auto_complete'; 1369 var query = { 1370 kind: 'listings', 1371 query: keyword 1372 }; 1373 1374 return superagent 1375 .get(searchURL) 1376 .query(query) 1377 .then(function(res) { 1378 var data = res.body || []; 1379 /* 1380 Of the format: 1381 [{ 1382 "_index": "listing_auto_completes_production_20190723232720775", 1383 "_type": "listing_auto_complete", 1384 "_id": "235875624", 1385 "_score": 0, 1386 "status_modified_at": 1553250708, 1387 "city": "Jupiter", 1388 "price": 1335743, 1389 "display_address": "10088 Calabrese Trail Unit: 9 Jupiter FL 33478", 1390 "sold_price": null, 1391 "id": 235875624, 1392 "state": "FL", 1393 "photo_urls": [ 1394 "http://cdn.photos.sparkplatform.com/fl/20190322153144208228000000-o.jpg" 1395 ], 1396 "status": "Pending" 1397 }, ...] 1398 */ 1399 1400 return data; 1401 }); 1402 } 1403 1404 function getMLSAutocompleteWithFilters(keyword, filters = {}) { 1405 var searchURL = window.location.protocol + '//' + window.location.hostname + '/home-search/auto_complete'; 1406 1407 return superagent 1408 .get(searchURL) 1409 .query({ kind: 'listings', query: keyword, ...filters }) 1410 .then(function(res) { 1411 /* 1412 Of the format: 1413 [{ 1414 "_index": "listing_auto_completes_production_20190723232720775", 1415 "_type": "listing_auto_complete", 1416 "_id": "235875624", 1417 "_score": 0, 1418 "status_modified_at": 1553250708, 1419 "city": "Jupiter", 1420 "price": 1335743, 1421 "display_address": "10088 Calabrese Trail Unit: 9 Jupiter FL 33478", 1422 "sold_price": null, 1423 "id": 235875624, 1424 "state": "FL", 1425 "photo_urls": [ 1426 "http://cdn.photos.sparkplatform.com/fl/20190322153144208228000000-o.jpg" 1427 ], 1428 "status": "Pending" 1429 }, ...] 1430 */ 1431 return res.body || []; 1432 }); 1433 } 1434 1435 function makeMlsLink(data) { 1436 // Code Dupe from utils/googlePlace 1437 // mapping of google data type to mls data type 1438 var mapping = { 1439 neighborhood: 'neighborhood', 1440 locality: 'place', 1441 administrative_area_level_2: 'county', 1442 administrative_area_level_1: 'state', 1443 postal_code: 'postalcode', 1444 }; 1445 1446 function _filterTypes(types) { 1447 return types.filter(function(type) { return type !== 'political' }); 1448 } 1449 1450 if (!data || !Object.keys(data).length) { 1451 return '/home-search/listings'; 1452 } 1453 1454 var newData = {};
1455 _filterTypes(data.types).forEach(function(type) { 1456 if (mapping[type]) { 1457 newData.search_type = mapping[type]; 1458 } 1459 }); 1460 newData.omnibox = data.formatted_address; 1461 data.address_components.forEach(function(component) { 1462 _filterTypes(component.types).forEach(function(type) { 1463 if (mapping[type]) { 1464 newData[mapping[type]] = component.long_name; 1465 } 1466 }); 1467 }); 1468 var bounds = data.geometry.bounds; 1469 var convertedData = Object.assign(bounds, newData); 1470 1471 return '/home-search/listings?' + objectToQuerystring(convertedData); 1472 } 1473 1474 function debounce(func, wait) { 1475 let timeout; 1476 return function(...args) { 1477 const context = this; 1478 clearTimeout(timeout); 1479 timeout = setTimeout(() => func.apply(context, args), wait) 1480 } 1481 } 1482 1483 // Global methods / variables that can be accessed by element js 1484 window.luxuryPresence = { 1485 ...window.luxuryPresence, 1486 defaults: { 1487 companyId: '91fbc08c-fdd4-4694-9b47-af7763429a7a', 1488 apiGatewayUrl: '/api-gw', 1489 routerUrl: '/api-nv', 1490 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\
1490n }\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 $pressReleaseId: ID\n $companyId: String\n $offset: Int\n $limit: Int\n $sort: String\n $sortDir: SortDirectionEnum\n $search: String\n $categories: [String!]\n $propertyId: [String!]\n $developmentId: [String!]\n $agentId: [String!]\n $teamId: [String!]\n $year: [Int!]\n ) {\n pressReleases (\n pressReleaseId: $pressReleaseId\n companyId: $companyId\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 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 }\n publishedAt\n categories\n }\n pressReleasesCount(\n companyId: $companyId\n search: $search\n categories: $categories\n propertyId: $propertyId\n developmentId: $developmentId\n agentId: $agentId\n teamId: $teamId\n year: $year\n ) {\n count\n }\n }\n","posts":"\n query Posts (\n $postId: ID\n $companyId: String\n $offset: Int\n $limit: Int\n $order: String\n $sortDir: SortDirectionEnum\n $search: String\n $featured: Boolean\n $categoryId: String\n $categoryIds: [String!]\n $neighborhoodId: [String!]\n ) {\n posts (\n postId: $postId\n companyId: $companyId\n offset: $offset\n limit: $limit\n order: $order\n sortDir: $sortDir\n search: $search\n featured: $featured\n postStatusId: \"5f528253-abb7-484e-95c3-330269ac1102\"\n categoryId: $categoryId\n categoryIds: $categoryIds\n neighborhoodId: $neighborhoodId\n ) {\n id\n title\n subtitle\n description\n status\n featured\n slug\n categories {\n id\n name\n }\n createdAt\n publishedAt\n scheduledAt\n createdBy {\n firstName\n lastName\n }\n customAuthor\n media {\n smallUrl\n mediumUrl\n largeUrl\n xLargeUrl\n xxLargeUrl\n height\n width\n }\n seoTitle\n seoDescription\n slug\n }\n postsCount(\n companyId: $companyId\n search: $search\n featured: $featured\n postStatusId: \"5f528253-
1490abb7-484e-95c3-330269ac1102\"\n categoryId: $categoryId\n categoryIds: $categoryIds\n neighborhoodId: $neighborhoodId\n ) {\n count\n }\n }\n","testimonials":"\n query Testimonials(\n $testimonialId: ID\n $agentId: ID\n $teamId: ID\n $companyId: String\n $offset: Int\n $limit: Int\n $sort: String\n $sortDir: SortDirectionEnum\n $search: String\n ) {\n testimonials(\n testimonialId: $testimonialId\n agentId: $agentId\n teamId: $teamId\n companyId: $companyId\n offset: $offset\n limit: $limit\n sort: $sort\n sortDir: $sortDir\n search: $search\n ){\n id\n body\n author\n position\n media {\n smallUrl\n mediumUrl\n largeUrl\n xLargeUrl\n xxLargeUrl\n height\n width\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 testimonialsCount(\n companyId: $companyId\n agentId: $agentId\n teamId: $teamId\n search: $search\n ) {\n count\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":"\nquery PointsOfInterest(\n $regionId: String!,\n $radius: Int,\n $offset: Int,\n $limit: Int,\n $categories: [PoiCategoryEnum!],\n $sortBy: PoiSortByEnum\n) {\n pois(\n regionId: $regi
1490onId,\n radius: $radius,\n offset: $offset,\n limit: $limit,\n categories: $categories,\n sortBy: $sortBy\n ) {\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 }\n","offices":"\n query Offices (\n $officeId: ID\n $officeIds: [ID!]\n $companyId: String\n $slug: String\n $sort: String\n $sortDir: SortDirectionEnum\n $search: String\n $tags: [String]\n $offset: Int\n $limit: Int\n ) {\n offices (\n officeId: $officeId\n officeIds: $officeIds\n companyId: $companyId\n slug: $slug\n sort: $sort\n sortDir: $sortDir\n search: $search\n tags: $tags\n offset: $offset\n limit: $limit\n ) {\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 media {\n id\n originalUrl\n thumbnailUrl\n smallUrl\n mediumUrl\n largeUrl\n xLargeUrl\n xxLargeUrl\n }\n }\n officesCount(\n companyId: $companyId\n officeId: $officeId\n officeIds: $officeIds\n slug: $slug\n search: $search\n tags: $tags\n ) {\n count\n }\n }\n","teams":"query TeamsAndCount(\n $offset: Int\n $limit: Int\n $search: String\n $sort: String\n $sortDir: SortDirectionEnum\n $companyId: ID\n) {\n teams(\n offset: $offset\n limit: $limit\n sort: $sort\n sortDir: $sortDir\n search: $search\n companyId: $companyId\n ) {\n \n id\n companyId\n name\n email\n shortBio\n fullBio\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 }\n teamsCount(\n search: $search\n companyId: $companyId\n ) {\n count\n }\n}"}, 1491 propertyPlaceholderImage: {"id":"4c2396cb-efce-4135-9418-543669d41742","alt":null,"bytes":15718,"width":1920,"format":"jpg","height":1200,"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/rwdbltnzdqrkcvkjmorq","smallUrl":"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/rwdbltnzdqrkcvkjmorq","authorUrl":null,"mediumUrl":"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/rwdbltnzdqrkcvkjmorq","sourceUrl":null,"xLargeUrl":"https://media-production.lp-cdn.com/cdn-cgi/image/format=auto,quality=85/https://media-production.lp-cdn.com/media/rwdbltnzdqrkcvkjmorq","__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/rwdbltnzdqrkcvkjmorq","description":null,"displayName":"property-logo","originalUrl":"https://media-production.lp-cdn.com/cdn-cgi/image/format=auto,quality=85/https://media-production.lp-cdn.com/media/rwdbltnzdqrkcvkjmorq","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/rwdbltnzdqrkcvkjmorq","originalFileName":"Property logo"} 1492 }, 1493 objectToQuerystring: objectToQuerystring, 1494 getPath: getPath, 1495 getMLSAutocomplete: getMLSAutocomplete, 1496 getMLSAutocompleteWithFilters: getMLSAutocompleteWithFilters, 1497 makeMlsLink: makeMlsLink, 1498 debounce: debounce, 1499 }; 1500 1501 var wowOffset = 100; 1502 </script>
1502 1503
1503<script> 1504 (()=>{var e={},t={};t={getVideoFirstFrame(e){let t="https://res.cloudinary.com/";if(!e||!e.startsWith(t))return null;let s=e.replace(t,"").replace("f_auto:video","f_auto").split("/");if(-1===s[1].toLowerCase().indexOf("video"))return null;let i=s[s.length-1];i.lastIndexOf(".")>-1?i=`${i.slice(0,i.lastIndexOf("."))}.jpg`:i+=".jpg",s[s.length-1]=i;let r=3;"videos"===s[1].toLowerCase()&&""!==s[2]&&(r=2);let a=/^(?:[a-z]{1,3}|\$\w+)_\S+$/;for(;r<s.length-1&&a.test(s[r]);)r++;return s.splice(r,0,"so_0,eo_0"),t+s.join("/")}},e=function(e,{isEqual:s}){let i=[{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,s){let i="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 s?s:0,a=Number.isInteger(e)?0:r,o={minimumFractionDigits:a,maximumFractionDigits:a};return"USD"===t?`$${e.toLocaleString(i,o)}`:"CAD"===t?`$${e.toLocaleString(i,o)} CAD`:"EUR"===t?`\u{20AC}${e.toLocaleString(i,o)}`:"GBP"===t?`\xa3${e.toLocaleString(i,o)}`:"PERCENT"===t?`${e}%`:"number"==typeof s&&s>-1?e.toLocaleString(i,{maximumFractionDigits:s}):e.toLocaleString(i)},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 s,i,r=t||{};switch(r.mode){case"short":s=o(e),i=r.frequencySeparator||"/";break;case"standard":case"std":s=n(e),i=r.frequencySeparator||"/";break;default:s=a(e),i=r.frequencySeparator||" "}return s?r.frequencyTag||r.frequencyClass?`${i}<${r.frequencyTag||"span"}${r.frequencyClass?` class="${r.frequencyClass}"`:""}>${s}</${r.frequencyTag||"span"}>`:i+s:""};return{isEmpty(e,t){let s=!e||"string"==typeof e&&!e.trim()||!Object.keys(e).length;return t.fn?s?t.fn(this):t.inverse(this):s},ifEquals(e,t,i){return s(e,t)?i.fn(this):i.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,s)=>e?e.length>t?"string"==typeof s?e.slice(0,t-s.length)+s:e.slice(0,t):e:"",setSubArray(e=[],t,s,i,r){r.data.root[i]=e.slice(t,s)},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,s,i){return e>=t&&e<s?i.fn(this):i.inverse(this)},formatPropertyStatus(e,t,s){let i="";switch(e){case"SOLD":i="Sold";break;case"FOR_SALE":i="For Sale";break;case"COMING_SOON":i="Coming Soon";break;case"INACTIVE":i="Inactive";break;case"POCKET_LISTING":i="Pocket Listing";break;case"PENDING":i="Pending";break;case"UNDER_CONTRACT":i="Under Contract";break;case"ACTIVE_UNDER_CONTRACT":i="Active Under Contract";break;default:i=e}return("Sold"===i||"Leased"===i)&&t&&"string"==typeof s&&s&&(i+=` on ${s}`),i},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 s="current"===e?new Date:new Date(e);if(Number.isNaN(s.getTime()))return"";if("YYYY"===t||"year"===t)return`${s.getFullYear()}`;if("MM/DD/YY"===t){let e=s.getMonth()+1;return e<10&&(e=`0${e.toString()}`),`${e}/${s.getDate()}/${s.getFullYear().toString().substr(-2)}`}return`${["January","February","March","April","May","June","July","August","September","October","November","December"][s.getMonth()]} ${s.getDate()}, ${s.getFullYear()}`}
1504,openHousesFormat(e,t,s){if(!e||!t)return"";let i=e=>{let t=e.getHours();t>12&&(t-=12);let s=`${t}:${e.getMinutes()>9?e.getMinutes():"0"+e.getMinutes()}`;return e.getHours()>11?s+="PM":s+="AM",s},r="",a=e,o=t;s&&(a=new Date(e).toLocaleString("en-US",{timeZone:s}),o=new Date(t).toLocaleString("en-US",{timeZone:s}),[,,,r]=new Date(t).toLocaleString("en-US",{timeZone:s,timeZoneName:"short"}).split(" "));let n=new Date(a),l=n.toLocaleDateString("en-US"),d=i(n),c=i(new Date(o));return`${l} ${d} - ${c} ${r}`},math:(e,t,s)=>(e=parseFloat(e),({"+":e+(s=parseFloat(s)),"-":e-s,"*":e*s,"/":e/s,"%":e%s})[t]),findByKey(e,t,s,i){let r=(e||[]).find(e=>e[t]===s);return i.fn(r)},capitalize(e,t,s){let i;return"string"==typeof e&&e.length&&(i=e.toLowerCase().split(t).map(e=>e.charAt(0).toUpperCase()+e.slice(1)).join(" ").toString()),i},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,s,i){let r="",a=null;i.data&&(a=e.createFrame(i.data));let o=(s||[]).filter(Boolean);if(o&&o.length){let e=0;r=o.reduce((s,r,o)=>{let n=(t||[]).find(e=>e.id===r);return n?(a&&(a.index=o-e),s+i.fn(n,{data:a})):(e+=1,s)},"")}else for(let e=0,s=(t||[]).length;e<s;e++)a&&(a.index=e),r+=i.fn(t[e],{data:a});return r},ifIn(e,t,s){return t&&t.indexOf(e)>-1?s.fn(this):s.inverse(this)},partial:(t,s)=>(e.registerPartial(t,e.compile(s.fn())),`
1504<script type="text/x-handlebars-template" class="${t} pagination-script">${s.fn()}<\/script>`),numCompare(e,t,s,i){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}})[s](e,t)?!i.fn||i.fn(this):!!i.fn&&i.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,s)=>e&&e.join?e.join("string"==typeof t?t:", "):"",dedupe(t,s,i){let r=null,a=0,o=new Set;return i.data&&(r=e.createFrame(i.data)),(t||[]).reduce((e,t,n)=>{let l=s?t[s]:t;return!o.has(l)||s&&void 0===l?(o.add(l),r&&(r.index=n-a),e+i.fn(t,{data:r})):(a+=1,e)},"")},JSONstringify:(e,t)=>JSON.stringify(e),formatPropertyPrice(...t){let s=t[t.length-1].hash,i=t.length>1?t[0]:s.property,a=s.precision||0;t.length>2&&(s.mode=t[1]),s.mode||(s.mode="short");let o=t.length>3?t[2]:s.separator;if("string"!=typeof o&&(o=" | "),i.isPasswordProtected)return"Exclusive Listing";let n=t.length>4?t[3]:s.priceUponRequestText;if("string"!=typeof n&&(n="Price Upon Request"),i.priceUponRequest)return n;let d=i.salesPrice,c=null;"SOLD"!==i.status&&"Leased"!==i.status&&i.reducedPrice&&(s.reducedClass?c=i.reducedPrice:d=i.reducedPrice);let u="";c&&(u+=`<${s.reducedTag||"span"} class="${s.reducedClass}">${r(c,i.currency,a)}</${s.reducedTag||"span"}>`),d&&(d=r(d,i.currency,a),s.priceTag||s.priceClass?u+=`<${s.priceTag||"span"}${s.priceClass?` class="${s.priceClass}"`:""}>${d}</${s.priceTag||"span"}>`:u+=d);let h=i.leasePrice&&r(i.leasePrice,i.currency,a);if(h){u&&(u+=o);let e=`${h}${l(i.leasePeriod,s)}`;s.leaseTag||s.leaseClass?u+=`<${s.leaseTag||"span"}${s.leaseClass?` class="${s.leaseClass}"`:""}>${e}</${s.leaseTag||"span"}>`:u+=e}
1504return new e.SafeString(u)},mediaImage(t,s={}){if(!t)return;let{lazy:r,...a}=s.hash,o="",n="";if("string"==typeof t)o=t;else{let e={},{height:r,width:l,altTagText:d}=t;i.forEach(s=>{t[s.field]&&!e[t[s.field]]&&(e[t[s.field]]=s.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 s.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,s)=>Math.abs(e[t]-1280)-Math.abs(e[s]-1280))),o=c[0]}delete a.setDims,n||delete a.sizes,"alt"in a||(a.alt=""),!("loading"in a)&&(s?.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 s in e)null!==e[s]&&void 0!==e[s]&&"object"!=typeof e[s]&&(t+=e[s]);return t},setVideoExtension(e,t){if(!e||!t)return"";let s=new URL(e);if("res.cloudinary.com"!==s.host)return s.pathname.endsWith(`.${t}`)?e:"";let i=s.pathname.lastIndexOf("."),r=s.pathname;return -1!==i&&(r=s.pathname.substr(0,i)),s.pathname=`${r}.${t}`,s.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 s=`${t.replace(/f_auto(?::video)?(?:,q_auto(?::\w+)?)?/,`f_${e.format},vc_${e.codec},w_1920,c_limit`)}.${e.format}`;return`<source data-src="${s}" 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 s=+t?.hash?.maxChars||2,i=e.match(/\b\w/g)?.slice(0,s);return i?(t?.hash?.addText&&(i=i.map(e=>e+t.hash.addText)),i.join(t?.hash?.joinWith||"").toUpperCase()):""},normalizePhone(e){if(!e)return"";let t=String(e).trim();return(t.startsWith("+")?"+":"")+t.replace(/\D/g,"")}}};class s{constructor(e,t,s){if(this.config=e,this.window=t,this.document=s,!this.destroy)throw Error("Controllers must implement a deconstructor")}}let i="lp_lead_form_conversion_fired";function r(e,t){if(e&&t&&"function"==typeof t.sendGoogleTagManagerEvent&&!function(e){try{return"true"===e.sessionStorage.getItem(i)}catch{return!1}}(e))try{t.sendGoogleTagManagerEvent("event","generate_lead");try{e.sessionStorage.setItem(i,"true")}catch{}}catch{}}let a="/api/v1/home-valuation";class o extends s{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 s=t.indexOf(", call time frame:");return -1!==s&&(t=t.substring(0,s).trim()),t}_transformAddressComponents(e){let t=t=>(e.find(e=>e.componentType===t)||{}).componentName?.text,s={},i=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 i&&(s.streetNumber=i),r&&(s.streetName=r),l&&(s.city=l),a&&(s.state=a),o&&(s.zipcode=o),n&&(s.addressLine2=n),s}_extractAddressAndCoordinates(e){let t=null,s=null;if(e?.result){let{result:i}=e;i.address?.addressComponents&&(t=this._transformAddressComponents(i.address.addressComponents)),i.geocode?.location&&(s={latitude:i.geocode.location.latitude,longitude:i.geocode.location.longitude})}return{structuredAddress:t,coordinates:s}}_filterEmptyStrings(e){let t={};for(let[s,i]of Object.entries(e))""!==i&&null!=i&&(t[s]=i);return t}_getRawAddress(e){let t=e.activity.content||{},s=e.activity.comments_attributes?.[0]?.text;return[t.address,t["property-address"],t.property_address,t.Property_Address,s,t.message,t.homeValuationAddress,t.propertyAddress].map(e=>e&&this._cleanAddressString(e)).find(Boolean)||""}_logLeadEvent(e,t,s=null){let i={event:e,companyId:this.config.companyId,websiteId:this.config.websiteId,timestamp:new Date().toISOString(),hasEmail:!!t.activity?.author_email,hasAddress:!!this._getRawAddress(t)};if(s&&(i.errorMessage=s.userMessage||(s.status?`Request failed with status ${s.status}`:"An error occurred"),i.errorName=s.name,i.errorStatus=s.status),console.error(`[HomeValuation] ${e}`,JSON.stringify(i)),this.window.posthog)try{this.window.posthog.capture(e,i)}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
1504ontact 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,s,i){let r=this._formatStructuredAddress(s)||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,leadPhoneNumber:e.activity.author_phone,parcelId:e.activity.content?.parcelId,resourceId:e.page.pageMeta?.resourceId,pageId:e.page.pageId,sourceResource:e.page.pageMeta?.sourceResource,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,referrer:e.referrer,content:e.activity.content||{},fields:e.fields||{}},n=this._filterEmptyStrings(o);return{...a,...n,...s&&{address:s},...i&&{coordinates:i}}}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}}_parseResponsePayload(e){try{return e?JSON.parse(e):{}}catch{return{raw:e}}}_createResponseError(e,t){let s=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(s,e),s.status=t,s}async _submitLead(e,t){let s=new AbortController,i=setTimeout(()=>s.abort(),1e4);try{let r=await fetch(e,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(t),signal:s.signal});clearTimeout(i);let a=await r.text(),o=this._parseResponsePayload(a);if(!r.ok)throw this._createResponseError(o,r.status);if(o&&"success"===o.status&&o.redirectUrl)return this.window.location.href=o.redirectUrl,{redirected:!0,url:o.redirectUrl};return o}catch(e){throw clearTimeout(i),e}}async _submitHomeValuationRequest(e){let{config:t}=this;if(!t.websiteApiGatewayUrl)throw Error("websiteApiGatewayUrl not configured for home valuation");this._logLeadEvent("home_valuation_submission_started",e);try{let s=this._getRawAddress(e),i=null;try{i=await this._validateAddressSafely(s)}catch(t){throw this._logLeadEvent("home_valuation_address_validation_failed",e,t),t}let r=null;try{r=await this._getHomeValuationEstimateSafely(i)}catch(t){this._logLeadEvent("home_valuation_estimate_failed",e,t),r=null}let{structuredAddress:o,coordinates:n}=this._extractAddressAndCoordinates(i),l=`${t.websiteApiGatewayUrl}${a}`,d=this._buildHomeValuationData(e,r,o,n),c=await this._submitLead(l,d);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:s}=this,i=t.googleMapsAPIKey;if(!i&&s.luxuryPresence?.mapApiLoader&&(i=await s.luxuryPresence.mapApiLoader.getMapApiKey()),!i)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=${i}`,{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{config:t}=this;if(!t.websiteApiGatewayUrl)throw Error("websiteApiGatewayUrl not configured");let s=`${t.websiteApiGatewayUrl}${a}`;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 r=this._buildAddressQueryString(i),o=`${s}?${r}`,n=new AbortController,l=setTimeout(()=>n.abort(),1e4);try{let e=await fetch(o,{headers:{Accept:"application/json"},signal:n.signal});if(clearTimeout(l),!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(l),e}}}let n="middleName",l=["name","firstName","lastName",n,"email","phone","phoneNumber","source","message","mlsId","sourceUrl"],d="lp_map_key_failed",c="oauthSuccess",u={cookieyes:{eventName:"cookieyes_consent_update",hasAnalyticsConsent:e=>(function(e){let t=e.cookie.match(/cookieyes-consent=([^;
1504]+)/);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 h(e){return"object"==typeof e&&null!==e&&!Array.isArray(e)}function p(e,t){t.forEach(t=>{let s=e[t];Array.isArray(s)&&0===s.length&&delete e[t]})}function m(e,t,s,i){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=i?.merge?r.flat():r.find(e=>e.length>0)??[];t.forEach(t=>{delete e[t]}),a.length>0&&(e[s]=[...new Set(a)])}function g(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 s=[...e.socialLinks].sort((e,t)=>{let s=e.type?.toLowerCase()||"",i=t.type?.toLowerCase()||"";return s.localeCompare(i)});t.socialLinks=s;let i={youtube:"urlYoutube",facebook:"urlFacebook",instagram:"urlInstagram",linkedin:"urlLinkedin",podcast:"urlPodcast",twitter:"urlTwitter"};s.forEach(e=>{let s=i[e.type?.toLowerCase()??""];s&&(t[s]=e.link)})}return t}function y(e){return e&&Array.isArray(e)?e.map(e=>g(e)):e}function f(e){let{region:t}=e;if(!h(t))return e;let{schools:s,pois:i,...r}=t,a={...r,schools:h(s)?s.data??[]:[],...Array.isArray(i)?{pois:i.map(e=>({...e,category:"string"==typeof e.category?e.category.toUpperCase():e.category}))}:{}};return{...e,region:a}}function w(e){return e&&Array.isArray(e)?e.map(e=>f(e)):e}function b(e){let t=e.featuresAndAmenities;if(!Array.isArray(t))return e;let s=t.map(e=>({featureIds:e.featureIds??[],features:e.features??[],description:e.description}));return{...e,featuresAndAmenities:s}}function v(e){return e&&Array.isArray(e)?e.map(e=>b(e)):e}function S(e,t){return h(e)?t(e):e}function _(e,t){return Array.isArray(e)?t(e):e}let E=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.googleMapsAPIKey=null}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)}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:s}){this.eventBus={enabled:e,apiKey:t,url:s}}}({}),I=new class extends s{constructor(e,t,s){super(e,t,s),this.setLoginState=this.setLoginState.bind(this),this.pageId=null,this.modals=[],this.exitModalTriggered={},this.exitModalEventListeners=[]}initialize(e){try{let{config:t,document:s}=this;this.pageId=t.pageId,this.modals=s.querySelectorAll("body > #modals > .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}
1504=this,s=new Date().getTime()+864e5,i=`modal-controller-${e}`;try{t.localStorage.setItem(i,JSON.stringify(s))}catch(e){}}setLoginState(){let{window:e}=this;try{e.localStorage.setItem("isSignedUp","true")}catch(e){}}getModalWithExpiry(e){let{window:t}=this,s=t.localStorage,i=s.getItem(`modal-controller-${e}`);if(!i)return!1;let r=JSON.parse(i);return!(new Date().getTime()>r)||(s.removeItem(`modal-controller-${e}`),!1)}show(e,t={}){let{window:s}=this,i=this.getModalWithExpiry(e);(e&&!i||!0===t.forced)&&(s.lpUI.showModal(`modal-${e}`,t),this.setModalWithExpiry(e))}_attachModalHandler(e){let{pageId:t}=this,{trigger:s,pageSpecific:i}=e;(!i||e.pages.map(e=>e.pageId).includes(t))&&("EXIT"===s?this._exitModalHandler(e):"TIMER"===s?this._timerModalHandler(e):"FORCED"===s&&this._forcedModalHandler(e))}_exitModalHandler(e){let t=this,{document:s,exitModalTriggered:i}=this,{modalId:r}=e;function a(e){!i[r]&&(e.toElement||e.relatedTarget||(t.show(r),i[r]=!0))}s.addEventListener("mouseout",a),this.exitModalEventListeners.push(a)}_timerModalHandler(e){let{modalId:t,timerDelay:s}=e;setTimeout(()=>{this.show(t)},s)}_forcedModalHandler(e){let{modalId:t}=e,{window:s,document:i}=this;if("true"!==s.localStorage.getItem("isSignedUp")){let e=i.querySelector(`#modal-${t}`),r=e?.querySelector("form"),a=r?.dataset.delay||2e3;r.addEventListener("formsubmitted",()=>{this.setLoginState()}),s.addEventListener("oauthSuccess",()=>{this.setLoginState(),r.classList.add("success"),setTimeout(()=>{s.lpUI.hideModal(`modal-${t}`),r.reset(),r.classList.remove("success")},a)}),this.show(t,{forced:!0})}}}(E,window,document),A=new class extends s{constructor(e,t,s){super(e,t,s),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:s}=this,i=e.target.closest("button, a");if(!i)return;let r=i.dataset.type||"",a=i.href||i.dataset.href||"",o=i.target||"",{submit:n}=i.dataset;if(n){try{await this._handleSubmit(i)}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(i),"VIDEO"===r)return void this._handleVideoButton(i);if("CONTACT_US"===r)return void this._handleContactUsButton(i);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=i.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);s.sendGoogleAnalyticsEvent({hitType:"event",eventCategory:"button",eventAction:"click",eventLabel:"Email",eventValue:e})}else if(a?.startsWith("tel:")){let e=a.substring(4);s.sendGoogleAnalyticsEvent({hitType:"event",eventCategory:"button",eventAction:"click",eventLabel:"Phone",eventValue:e})}}async _handleSubmit(e){let t=e.closest("form"),{window:s}=this;return t?await s.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[,s,i]=t,r=`https://player.vimeo.com/video/${s}?`;return i&&(r+=`h=${i}&`),r+="autoplay=1"}_handleVideoButton(e){let{document:t}=this,s=e.closest("section"),{src:i}=e.dataset,r="";if(i&&(i.includes("youtube.com")||i.includes("youtu.be"))&&!i.includes("youtube.com/embed")){let e=i.match(/(?:youtube\.com\/\S*(?:(?:\/e(?:mbed))?\/|watch\?(?:\S*?&?v=))|youtu.be\/)([a-zA-Z0-9_-]{6,11})/);e&&(r=e[1])}let a=this._getVimeoSrc(i);if(r?i=`https://youtube.com/embed/${r}?autoplay=1&controls=0`:a&&(i=a),!i||!s)return;let o=i.endsWith(".mp4")||i.endsWith(".webm")||i.includes("cloudinary.com"),n=` 1505 <div id="modal-${s.id}" class="modal visible"> 1506 <div class="modal-content"> 1507 <div class="lightbox-video"> 1508 <div class="video-player"> 1509 <div class="embed-container"> 1510 ${o?`<video controls autoplay src="${i}"></video>`:`<iframe frameborder="0" allowfullscreen="1" allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture" title="YouTube video player" width="100%" height="100%" src="${i}"></iframe>`} 1511 </div> 1512 </div> 1513 </div> 1514 </div> 1515 <button class="close lp-close" type="button" aria-label="close modal"><span class="lp-close-icon" aria-hidden="true"></span></button> 1516 </div> 1517 `;t.body.insertAdjacentHTML("beforeend",n);let l=t.getElementById(`modal-${s.id}`);l.querySelector(".close").addEventListener("click",()=>{l.remove()})}_handleContactUsButton(e){let{window:t,document:s}=this;s.sendGoogleAnalyticsEvent({hitType:"event",eventCategory:"button",eventAction:"click",eventLabel:"contact"}),t.lpUI.showModal("modal-global-contact-us",{scrollLock:!0})}_trackConversion(e){let{window:t,document:s}=this,{gtagConversionId:i,gtagConversionLabel:r,fbEventName:a}=e.dataset;if(i&&r){t.dataLayer&&t.dataLayer.length&&(t.dataLayer.some(e=>e.length&&"config"===e[0]&&e[1]===i)||s.sendGoogleTagManagerEvent("config",i));let e=`${i}/${r}`;s.sendGoogleTagManagerEvent("event","conversion",{send_to:e})}t.fbq&&a&&t.fbq("track",a,{})}}(E,window,document),L=new class extends s{constructor(e,t,s){super(e,t,s),this.validatedForms=[]}initialize(e={}){try{let{window:t,document:s}=this,{selector:i}=e,r=[];if(r=i?s.querySelectorAll(`${i} form[data-type="contact-form"]`):s.querySelectorAll('form[data-type="contact-form"]'),s.querySelectorAll('input[type="tel"]').length&&!t.libphonenumber&&t?.luxuryPresence?.libs){let{loadJs:e,jsLibsMap:s}=t.luxuryPresence.libs,{libphonenumber:i}=s;e(i.jsSrc,this.attachValidation.bind(this,r))}else this.attachValidation(r);this.validatedForms=this.validatedForms.concat(r)}catch(e){console.log(e)}}destroy(){this.validatedForms=[]}
1517attachValidation(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 s=t.libphonenumber.isValidPhoneNumber;e.addEventListener("keyup",function(){if(this.hasAttribute("required")||this.value.replace(/\s/g,"").length)try{let e=this.value;s(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("")})}}}(E,window,document),$=new class extends s{constructor(e,t,s){super(e,t,s),this.forms=[],this.homeValuationService=new o(e,t,s)}initialize(e={}){try{let{document:t}=this,{selector:s}=e,i=[];(i=s?t.querySelectorAll(`${s} form[data-type="contact-form"]`):t.querySelectorAll('form[data-type="contact-form"]')).forEach(e=>{this._attachSubmitHandler(e)}),this.forms=this.forms.concat(i)}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),s={},i=[],r=/^name(?:-\d+)?$/;return t.forEach((e,t)=>{if("string"==typeof e){let a=e.trim();r.test(t)&&a&&i.push(a);let o=s[t];s[t]=o?`${o} ${a}`:a}else s[t]=e}),i.length?s.name=i.join(" ").trim():!s.name&&s.firstName&&(s.name=s.firstName,s.lastName&&(s.name+=` ${s.lastName}`)),s}_buildSubmissionData(e,t,s){let{window:i,config:r}=this,a=Object.keys(e).filter(e=>!l.includes(e)).reduce((t,s)=>(t[s]=e[s],t),{}),{pageId:o,companyId:n,websiteId:d,pageMeta:c}=r,u=i.localStorage.getItem("utm_vars")||"{}",h=i.localStorage.getItem("referrer")||"",p=this._getFormId(s);return{activity:{author_email:e.email,author_name:e.name,author_phone:e.phone||e.phoneNumber,activity_source:e.source||"CONTACT_INQUIRY",comments_attributes:[{text:e.message||void 0}],source_url:i.location.href,content:{...a,...JSON.parse(u)}},page:{pageId:o,companyId:n,websiteId:d,pageMeta:{...c,formId:p}},companyId:n,referrer:h,fields:t}}_handleSubmissionSuccess(e){let{window:t}=this,s=e.dataset.delay||2e3;e.classList.remove("loading"),e.classList.remove("error"),e.classList.add("success"),e.querySelectorAll(".success").forEach(e=>e.classList.remove("hide")),e.dispatchEvent(new Event("formsubmitted")),r(this.window,this.document),setTimeout(()=>{t.lpUI.hideClosestModal(e),e.reset(),t.lpUI.sideMenuHide(),e.querySelectorAll(".success").forEach(e=>e.classList.add("hide")),e.classList.remove("success")},s)}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 s=this._getFields(t),i=this._buildSubmissionData(e,s,t);await this._submitLeadRequest(i),this._sendGAEvent(i),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.")}}}_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:s}=this.config;if(!t||!s)return void console.warn("[EventBus] Missing required data for user alias");let i=this.window.eventBusProvider.getDistinctId();if(!i)return void console.warn("[EventBus] No anonymous ID available for alias");let r=this.window.LuxuryPresenceEventBus.generateUUIDv5FromCompanyEmail(s,t);this.window.eventBusProvider.alias({anonId:i,canonicalId:r}),console.log("[EventBus] User aliased with canonical ID")}catch(e){console.error("[EventBus] User alias failed:",e)}}
1517async _submitLeadRequest(e){let{config:t}=this;return(this._aliasUserWithEventBus(e),t.myhomeDashboardEnabled&&(e.activity?.activity_source==="HOME_VALUATION"||e.activity?.activity_source==="HOME_VALUE"))?this.homeValuationService._submitHomeValuationRequest(e):fetch(`${t.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,s={hitType:"event",eventCategory:"button",eventAction:"click"};switch(e.activity.activity_source){case"NEWSLETTER_SIGNUP":s.eventLabel="Newsletter",t.sendGoogleTagManagerEvent("event","newsletter_signup");break;case"HOME_SEARCH":s.eventLabel="HomeSearch",t.sendGoogleTagManagerEvent("event","home_search");break;case"HOME_VALUE":case"HOME_VALUATION":s.eventLabel="HomeValue",t.sendGoogleTagManagerEvent("event","home_valuation");break;case"EBOOK":s.eventLabel="Ebook",t.sendGoogleTagManagerEvent("event","ebook_download");break;default:s={hitType:"pageview",page:"/thank-you"},t.sendGoogleTagManagerEvent("event","contact_inquiry")}t.sendGoogleAnalyticsEvent(s)}_getFields(e){let t=e.querySelectorAll("input, select, textarea"),s={};return t.forEach(t=>{let{id:i,name:r,type:a}=t;if(r===n)return!0;let o="";if(i){let s=e.querySelector(`label[for='${i}']`);s?o=s.textContent.trim():t.placeholder&&(o=t.placeholder.trim())}s[r]={label:o,type:t.tagName,inputType:"INPUT"===t.tagName?a:"text"}}),s}_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 s=e.querySelector(".submission-error-message");s&&(s.textContent=t||"Something went wrong. Please try again.",s.style.display="block")}_hideSubmissionError(e){let t=e.querySelector(".submission-error-message");t&&(t.style.display="none")}}(E,window,document),x=new class extends s{constructor(e,t,s){super(e,t,s),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 s=1;s<=3;s+=1){let i=e&&!t;try{let e=await fetch(this._getMapKeyUrl(s,i));if(t=t||i,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),s<3&&await this._delay(300*2**(s-1))}}return this._setFailureFlag(!0),""}_getMapKeyUrl(e,t){let s=[];e>1&&s.push(`attempt=${e}`),t&&s.push("recovered_after_failure=1");let i=s.length?`?${s.join("&")}`:"";return`${this._getBaseUrl()}/api/v1/map${i}`}_hadPreviousFailure(){try{return"1"===this.window.sessionStorage.getItem(d)}catch(e){return!1}}_setFailureFlag(e){try{e?this.window.sessionStorage.setItem(d,"1"):this.window.sessionStorage.removeItem(d)}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");let 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)=>
1517{this.loadCallback(s=>{s?t(s):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 s=Math.min(1024/e,1024/t);return{width:parseInt(e*s),height:parseInt(t*s)}}convertThemeToStaticApiUrl(e){return e.map(e=>{let t=e.stylers.reduce((e,t)=>{let s=t.visibility?`visibility:${t.visibility}`:"",i=t.color?`color:${t.color.replace("#","0x")}`:"",r=t.lightness?`lightness:${t.lightness}`:"";return`${e}|${s}${i}${r}`},""),s=e.elementType?`|element:${e.elementType}`:"";return`feature:${e.featureType}${s}${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:s}=await t.json();return s}catch(e){return console.error(e),""}}generateStaticMapUrl(e,t,s,i,r,a){let{width:o,height:n}=this.resizeStaticMapDimensions(r,a),l={center:`${e},${t}`,zoom:s,scale:2,size:`${o}x${n}`,key:this.apiKey};i&&(l.style=this.convertThemeToStaticApiUrl(i));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:s,...i}){let{width:r,height:a}=this.resizeStaticMapDimensions(e,t),o={...i,size:`${r}x${a}`};s&&(o.style=this.convertThemeToStaticApiUrl(s));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),""}}}(E,window,document),k=new class extends s{destroy(){}updateQueryString(e,t,s){s||(s=this.window.location.href);let i=RegExp(`([?&])${e}=.*?(&|#|$)`,"i"),r="";null!=t&&(Array.isArray(t)?t.length&&(r=this.serializeArray(e,t)):"object"==typeof t?(i=RegExp(`([?&])${e}\\[[^=]*\\]=.*?(&|#|$)`,"i"),r=this.serializeObj(t,"",e)):r=`${e}=${encodeURIComponent(t)}`);let a=s.split("#"),o=a[0];if(i.test(s)){let e=o;for(r=r?`$1${r}$2`:"$1";i.test(e);)o=e.replace(i,r),e=e.replace(i,"$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 s=RegExp(`[?&]${e}(=([^&#]*)|&|#|$)`),i=Array.from(RegExp.prototype[Symbol.matchAll].call(s,t)).flat();if(!i.length){let s=RegExp(`[?&]${e}(\\[.*?\\])=(.*?)(?=&|#|$)`,"g");return i=Array.from(RegExp.prototype[Symbol.matchAll].call(s,t)).flat(),this._parseParamToObject(i,"advancedFilters"===e)}return i.length>3?i.reduce((e,t,s)=>((s+1)%3==0&&e.push(decodeURIComponent(t.replace(/\+/g," "))),e),[]):i[2]?decodeURIComponent(i[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 s={},i=this.makePageKey(t),r=this.getParameterByName(i);return r&&(s.page=parseInt(r)),Array.isArray(e)&&e.forEach(e=>{let t=this.makeParamKey(e,i),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){}s[e.formKey||e.param]=r}),s}serializeParams(e,t,s){let i=this.window.location.href,r=this.makePageKey(t);return i=this.updateQueryString(r,s.page,i),Array.isArray(e)&&e.forEach(e
1517=>{let t=this.makeParamKey(e,r),a=s[e.formKey||e.param];"json"===e.type&&null!=a&&(a=JSON.stringify(a)),i=this.updateQueryString(t,a,i)}),i}formatSliderAtom(e,t=""){return t+(Number.isInteger(e)?e:e.toFixed(2))}formatSliderValue(e,t="",s=""){return e<1e3?this.formatSliderAtom(e,t):e<1e6?`${this.formatSliderAtom(e/1e3,t)}${s}K`:`${this.formatSliderAtom(e/1e6,t)}${s}M`}formatSliderPriceRange(e,t,s,i){return t.min===e&&0!==e?`${i.lowPrefix}${this.formatSliderValue(e,s," ")}`:t.max===e?`${this.formatSliderValue(e,s," ")}${i.highSuffix}`:`${this.formatSliderValue(e,s," ")}`}formatSliderAreaRange(e,t,s,i){return t.min===e&&0!==e?`${i.lowPrefix}${this.formatSliderValue(e)} ${s}`:t.max===e?`${this.formatSliderValue(e)}${i.highSuffix} ${s}`:`${this.formatSliderValue(e)} ${s}`}getSearchFormValues(e){let{queryElement:t,priceSliderElement:s,areaSliderElement:i,neighborhoodSelect:r}=e,a={};if(t&&(a.search=t.value||null),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.priceMin=r!==t?r:null,a.priceMax=o!==i?o:null}if(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.areaMin=r!==t?r:null,a.areaMax=o!==s?o:null}return r&&(a.neighborhoodId=r.value||null),a}serializeObj(e,t="",s=""){let i=[];for(let r in e)if(e.hasOwnProperty(r)){let a,o=e[r];if(s){let e=t?`[${t}][${r}]`:`[${r}]`;a=`${s}${e}`}else a=t?`${t}[${r}]`:r;null!==o&&Array.isArray(o)?o.length&&i.push(this.serializeArray(a,o)):null!==o&&"object"==typeof o?i.push(this.serializeObj(o,a)):i.push(`${a}=${encodeURIComponent(o)}`)}return i.join("&")}serializeArray(e,t,s=""){let i=[];return t.forEach(t=>{let r=s?`${s}${e}`:e;i.push(`${r}=${encodeURIComponent(t)}`)}),i.join("&")}_parseParamToObject(e,t=!1){if(!e.length)return null;let s={};for(let i=0;i<e.length;i++)if((i+1)%3==0){let r=decodeURIComponent(e[i].replace(/\+/g," ")),a=e[i-1];Object.assign(s,this._setObjectPath(a,r,s,t))}return s}_setObjectPath(e,t,s,i=!1){let r=e.split(/[\[\]]/).filter(Boolean),a=["in","nin","btw","ciin","cinin"],o={},n=o,l=((e,t,s)=>{if(!t)return;let i=(Array.isArray(t)?t:t.match(/([^[.\]])+/g)).reduce((e,t)=>e&&e[t],e);return void 0===i?s:i})(s,r.join("."));return r.forEach((e,o)=>{o===r.length-1?l?n[e]=Array.isArray(l)?[...l,t]:[l,t]:n[e]=i&&a.includes(e)?[t]:t:(n[e]=s[e]?s[e]:{},n=n[e])}),o}}(E,window,document),T=new class extends s{constructor(e,t,s){super(e,t,s),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,s=e.closest("section[id]"),i=e.dataset.append,r=s.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>',i){let e=s.querySelector(i);e&&e.appendChild(r)}else{let s=t.createElement("div");s.className="lp-expand-btn-wrapper",s.style.position="relative",s.appendChild(r),e.parentNode.insertBefore(s,e.nextSibling)}r.addEventListener("click",()=>{this._createLightbox({slider:e,section:s})})}_createLightbox({slider:e,section:t,initialIndex:s}){let{window:i,document:r}=this,a=`lightbox-for-${t?.id}`,o=i.$&&i.$.fn.slick,n=o&&e.slick,l="function"==typeof i.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=` 1518 <button class="lp-lightbox__close" aria-label="close modal"></button> 1519 <div class="lp-lightbox__content"> 1520 <div class="lp-lightbox__carousel splide" role="group" aria-label="Image Gallery"> 1521 <div class="splide__arrows"> 1522 <button class="splide__arrow splide__arrow--prev lp-lightbox-arrow lp-lightbox-arrow--prev"></button> 1523 <button class="splide__arrow splide__arrow--next lp-lightbox-arrow lp-lightbox-arrow--next"></button> 1524 </div> 1525 <div class="splide__track"> 1526 <ul class="splide__list"></ul> 1527 </div> 1528 </div> 1529 </div> 1530 `,"function"==typeof i.lpUI.requestScrollLock?i.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
1530h(e=>{let t=e.cloneNode(!0);t.removeAttribute("style");let s=r.createElement("li");s.className="lp-lightbox__slide splide__slide",s.appendChild(t),n.appendChild(s)});let l=new i.Splide(o,{rewind:!0,arrows:!0,arrowPath:"",type:"loop",clones:1,pagination:!1,perPage:1,perMove:1});l.mount(),void 0!==s&&s>=0&&l.go(s),setTimeout(()=>{t.focus()},100);let c=e=>{if(!t.classList.contains("show"))return;let s=t.querySelector(".splide__arrow--prev"),i=t.querySelector(".splide__arrow--next"),r=t.querySelector(".lp-lightbox__close");"ArrowLeft"===e.key&&s?(e.preventDefault(),s.click()):"ArrowRight"===e.key&&i?(e.preventDefault(),i.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 i.lpUI.releaseScrollLock?i.lpUI.releaseScrollLock(a):r.body.style.overflow="",t.remove()})}if("function"==typeof i.lpUI.requestScrollLock?i.lpUI.requestScrollLock(a):r.body.style.overflow="hidden",o&&!d){let t,s,o,l,d;s={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=` 1531 <button class="lp-lightbox__close" aria-label="close modal"></button> 1532 <div class="lp-lightbox__content"> 1533 <div class="lp-lightbox__carousel"></div> 1534 </div> 1535 `,r.body.appendChild(o),l=o.querySelector(".lp-lightbox__carousel"),o.classList.add("show"),n?(t=e.slick.$slides.find("img"),s.initialSlide=e.slick?.currentSlide||0,t.each(function(){i.$(".lp-lightbox__carousel").append(i.$(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 s=r.createElement("div");s.className="lp-lightbox__slide",s.appendChild(t),l.appendChild(s)}),i.$(l).slick(s),setTimeout(()=>{o.focus()},100),d=e=>{if(!o.classList.contains("show"))return;let t=o.querySelector(".lp-lightbox-arrow--prev"),s=o.querySelector(".lp-lightbox-arrow--next"),i=o.querySelector(".lp-lightbox__close");"ArrowLeft"===e.key&&t?(e.preventDefault(),t.click()):"ArrowRight"===e.key&&s?(e.preventDefault(),s.click()):"Escape"===e.key&&i&&(e.preventDefault(),i.click())},r.addEventListener("keydown",d),o.querySelector(".lp-lightbox__close").addEventListener("click",()=>{r.removeEventListener("keydown",d),o.classList.remove("show");let t=l?.slick?i.$(l).slick("slickCurrentSlide"):0;l?.slick&&i.$(l).slick("unslick"),n&&i.$(e).slick("slickGoTo",t),"function"==typeof i.lpUI.releaseScrollLock?i.lpUI.releaseScrollLock(a):r.body.style.overflow="",o.remove()})}else l?c():(i.luxuryPresence.libs.loadCss(i.luxuryPresence.libs.jsLibsMap.splide.cssSrc),i.luxuryPresence.libs.loadJs(i.luxuryPresence.libs.jsLibsMap.splide.jsSrc,()=>{c(),i.luxuryPresence.libs.jsLibsMap.splide.isLoaded=!0}))}}(E,window,document),C=new class extends s{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:s,templateId:i,websiteId:r,pageId:a,shareId:o,pageMeta:n}=this.config;this.window.divolte.signal(e,Object.assign({companyId:s,templateId:i,websiteId:r,pageId:a,shareId:o,pageMeta:n},t))}sendLpPageView(){this.sendLpEvent("pageView",{})}}(E,window,document),M=new class extends s{constructor(e,t,s){super(e,t,s)}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"}
1535)),(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:s}=this.config;try{this.window.eventBusProvider.capture(e,{company:s,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",{})}}(E,window,document),U=new class extends s{constructor(e,t,s){super(e,t,s),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(c,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:s}=this.config,{data:i,origin:r}=e,{type:a,height:o,event:n,source:l,token:d}=i;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===s&&"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 s=this.document.createElement("iframe");s.src=this._buildUrlAndCopyAttributes(t,s,e),s.dataset.isSocialOauthButton=!0,t.replaceWith(s)}_listenToMessages(e){let{buyerSellerServiceUrl:t}=this.config;if(e.origin===t&&"success"===e.data.event){let e=new Event(c);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,s){let{buyerSellerServiceUrl:i,companyId:r,websiteId:a,pageId:o,pageMeta:n}=this.config,{location:l}=this.window,d=l.origin+l.pathname,c=new URL(`${i}/buttons/${s}`),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"];
1535return 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,"/"),s=4-t.length%4,i=4===s?t:t+"=".repeat(s);return JSON.parse(atob(i))}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")}}}(E,window,document),P=new class extends s{constructor(e,t,s){super(e,t,s),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:s})=>{e&&e.removeEventListener&&e.removeEventListener(t,s)}),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 s=t.querySelector('input[name="email"]');s&&"string"==typeof e&&(s.value=e)}updateTriggerSourceValue(e){let t=this.getModalElement();if(!t)return;let s=t.querySelector(`#${this.modalId}-triggerSource`);s&&"string"==typeof e&&(s.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,s){let i="";if(s){let e=new Date;e.setTime(e.getTime()+864e5*s),i=`; 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||"")}${i}${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 s=()=>{this.setModalSubmittedCookie();let t=setTimeout(()=>{e.style.display="none",this.restoreBodyScroll()},100);this.timeouts.push(t)};t.addEventListener("formsubmitted",s),this.eventListeners.push({element:t,event:"formsubmitted",handler:s})}let s=e.querySelector('[data-dismiss="modal"]');if(s){let t=()=>{e.style.display="none",this.restoreBodyScroll()};s.addEventListener("click",t),this.eventListeners.push({element:s,event:"click",handler:t})}let i=t=>{(t.target===e||t.target.id===this.modalId)&&(e.style.display="none",this.restoreBodyScroll())};e.addEventListener("click",i),this.eventListeners.push({element:e,event:"click",handler:i})}}(E,window,document),R=new class extends s{constructor(e,t,s){super(e,t,s),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 s=` 1536 query { 1537 validSession { 1538 success 1539 } 1540 } 1541 `;try{let e=await this.window.fetch("/graphql",{method:"POST",headers:{"Content-Type":"application/json"},credentials:"include",body:JSON.stringify({query:s})});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 i=t.data?.validSession?.success===!0;return this.lastValidationResult=i,this.lastValidationTime=Date.now(),i}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}}(E,window,document),N=new class extends s{constructor(e,t,s){super(e,t,s),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=u[e.provider];if(!t)return;this.eventName=t.eventName;let s=await this.window.luxuryPresence.session.validateSession();(t.hasAnalyticsConsent(this.document,this.window)||s)&&this.loadScript(),this.consentListener||(this.consentListener=e=>{t.isAnalyticsAccepted(e.detail)?this.loadScript():this.removeScripts()},this.document.addEventListener(t.eventName,this.consentListener))}}(E,window,document),O=new class extends s{destroy(){}transformVariables(e,t){let s;return p(s={...t},["testimonialId"]),m(s,["testimonialId"],"testimonialIds"),0===s.limit&&delete s.limit,(void 0===s.limit||null===s.limit)&&(("testimonials"===e||"testimonialsCount"===e)&&(s.limit=50),("agents"===e||"agentsCount"===e||"neighborhoods"===e||"neighborhoodsCount"===e||"pressReleases"===e||"pressReleasesCount"===e)&&(s.limit=100)),!function(e){let{sortDir:t}=e;"string"==typeof t&&t.includes("_")&&(e.sortDir=t.replace(/_/g," "))}(s),!function(e,t){switch(t){case"agent":break;case"testimonials":case"testimonialsCount":p(e,["testimonialIds"]);break;case"agents":case"agentsCount":p(e,["officeId","teamId","developmentId","agentIds","tags"]),m(e,["officeId"],"officeIds"),m(e,["teamId"],"teamIds"),m(e,["developmentId"],"developmentIds");break;case"neighborhoods":case"neighborhoodsCount":p(e,["neighborhoodIds","neighborhoodId"]),m(e,["neighborhoodIds","neighborhoodId"],"neighborhoodId");break;case"developments":case"developmentsCount":p(e,["agentId","neighborhoodIds","neighborhoodId","developmentIds","tag"]),e.agentId&&Array.isArray(e.agentId)&&([e.agentId]=e.agentId),m(e,["neighborhoodIds","neighborhoodId"],"neighborhoodIds");break;case"properties":case"propertiesCount":p(e,["statusIds","statusId","propertyTypeIds","propertyTypeId","propertyId","networkId","propertyIds","agentIds","teamIds","officeIds","neighborhoodIds","
1541spaceTypeIds","addressState","addressCity","backfillProviders","backfillMLSListingIds","backfillMLSAgentIds","backfillMLSOfficeIds"]),["propertyIds","agentIds","teamIds","officeIds","neighborhoodIds","spaceTypeIds","backfillMLSListingIds","backfillMLSAgentIds","backfillMLSOfficeIds"].forEach(t=>m(e,[t],t)),m(e,["statusIds","statusId"],"propertyStatusId"),e.excludeStatusId&&(e.excludePropertyStatusId=e.excludeStatusId,delete e.excludeStatusId),m(e,["propertyTypeIds","propertyTypeId"],"propertyTypeId"),m(e,["networkId"],"networkId"),m(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":p(e,["categoryIds","categoryId","neighborhoodId"]),void 0!==e.order&&(e.sort=e.order,delete e.order),m(e,["categoryIds","categoryId"],"categoryId"),void 0!==e.postId&&delete e.postId;break;case"postCategories":p(e,["categoryId","categoryIds"]),void 0!==e.order&&(e.sort=e.order,delete e.order),m(e,["categoryIds","categoryId"],"categoryId");break;case"pressReleases":case"pressReleasesCount":p(e,["pressReleaseId","categories","propertyId","developmentId","agentId","teamId"]),m(e,["pressReleaseId"],"pressReleaseIds");break;case"offices":case"officesCount":p(e,["officeId","officeIds","tags"]),m(e,["officeId"],"officeIds");break;case"teams":case"teamsCount":p(e,["teamId","teamIds"]),m(e,["teamId"],"teamIds");break;case"pois":p(e,["categories"]),Array.isArray(e.categories)&&(e.categories=e.categories.map(e=>e.toLowerCase())),"string"==typeof e.sortBy&&(e.sortBy=e.sortBy.toLowerCase())}}(s,e),s}transformResponse(e,t){return"agent"===e?S(t,g):"agents"===e||"agentsCount"===e?_(t,y):"neighborhood"===e?S(t,f):"neighborhoods"===e||"neighborhoodsCount"===e?_(t,w):"development"===e?S(t,b):"developments"===e||"developmentsCount"===e?_(t,v):t}transformPage(e){return{items:e&&e.items||[],count:e&&e.total||0}}}(E,window,document);function B(e,t){if(window.luxuryPresence[e])try{window.luxuryPresence[e].destroy()}catch(e){console.log(e)}window.luxuryPresence[e]=t}B("config",E),B("modals",I),B("buttons",A),B("validation",L),B("contactForms",$),B("mapApiLoader",x),B("pagination",k),B("expandSliders",T),B("divolte",C),B("eventBus",M),B("oauth",U),B("qualifyingQuestionsModal",P),B("session",R),B("consent",N),B("redirects",{checkHstRedirect:function(e){let{config:t}=window.luxuryPresence;return!!t.hstValuationRedirectEnabled&&!!t.mlsEnabled&&!!t.myhomeDashboardEnabled&&(window.location.href=`/home-search/home-valuation?address=${encodeURIComponent(e)}`,!0)},destroy(){}}),B("routerApi",O),window.luxuryPresence.formatSliderPriceRange=k.formatSliderPriceRange.bind(k),window.luxuryPresence.formatSliderAreaRange=k.formatSliderAreaRange.bind(k),window.luxuryPresence.getSearchFormValues=k.getSearchFormValues.bind(k),window.luxuryPresence.handlebarsHelpersFactory=function(t){var s;return((s=e)&&s.__esModule?s.default:s)(t,{isEqual:(e,t)=>e==t})}})(); 1542//# sourceMappingURL=lp-sdk.js.map 1543 1544 </script>
1544 1545 1546
1546<script> 1547 var lpGlobalInitialized = false; 1548 1549 function lpGlobalInit () { 1550 if (lpGlobalInitialized) { 1551 return; 1552 } 1553 lpGlobalInitialized = true; 1554 // Initialize wow animation plugin only according to turbolinks 1555 var wow; 1556 if (window.WOW) { 1557 wow = new WOW({ 1558 animateClass: 'animated', 1559 offset: wowOffset, 1560 live: false, 1561 callback: function(box) {} 1562 }); 1563 } 1564 // Initialize handlebar helpers only once 1565 function handlebarsInit() { 1566 if (!window.Handlebars) { 1567 return; 1568 } 1569 HandlebarsIntl.registerWith(Handlebars); 1570 Handlebars.registerHelper(window.luxuryPresence.handlebarsHelpersFactory(Handlebars)); 1571 } 1572 1573 handlebarsInit(); 1574 1575 var modalContentUrl = "/modals.html"; 1576 const modalsContainer = document.getElementById('modals'); 1577 if (modalsContainer) { 1578 fetch(modalContentUrl).then(function(res) { 1579 if (!res.ok) { 1580 throw new Error(`HTTP error! Status: ${res.status}`); 1581 } 1582 return res.text(); 1583 }).then(function(resultText) { 1584 modalsContainer.innerHTML = resultText; 1585 1586 // now we need to execute all script elements 1587 Array.from(modalsContainer.getElementsByTagName('script')).forEach(function (s) { 1588 const script = document.createElement("script"); 1589 script.text = s.innerHTML; 1590 Array.from(s.attributes).forEach(function (a) { 1591 script.setAttribute(a.name, a.value); 1592 }) 1593 s.parentNode.replaceChild(script, s); 1594 }); 1595 1596 try { 1597 window.luxuryPresence.modals.initialize(window.luxuryPresence._modalIncludes); 1598 window.luxuryPresence.contactForms.initialize({ selector: '#modals' }); 1599 window.luxuryPresence.validation.initialize({ selector: '#modals' }); 1600 window.luxuryPresence.oauth.initialize({ 1601 googleSignOnEnabled: true, 1602 iframe: false }); 1603 } catch (e) { 1604 console.log(e); 1605 } 1606 document.querySelectorAll('.modals > .modal .close').forEach(closeModalBtn => { 1607 closeModalBtn.addEventListener('click', function() { 1608 window.lpUI.hideClosestModal(closeModalBtn); 1609 }); 1610 }); 1611 }).catch((e) => console.log(e)); 1612 } 1613 /* Initialize Luxury Presence SDK */ 1614 try { 1615 window.luxuryPresence.config.setCompany("91fbc08c-fdd4-4694-9b47-af7763429a7a", {}); 1616 window.luxuryPresence.config.setWebsite("4f5abd92-f372-41bf-8c80-8070772ada5c", { 1617 myhomeDashboardEnabled: true, 1618 mlsEnabled: true, 1619 hstValuationRedirectEnabled: true 1620 }); 1621 const url = new URL(window.location.href); 1622 const shareId = url.searchParams.get('shareId'); 1623 window.luxuryPresence.config.setPage("7e06a21b-36d5-4c77-9e06-560e3dfbcc1c", { 1624 sourceResource: "", 1625 pageElementId: "", 1626 pageQueryVariables: {}, 1627 shareId: "", 1628 }); 1629 window.luxuryPresence.config.setWebsiteApiGatewayUrl("https://wgw.luxurypresence.com", {}); 1630 window.luxuryPresence.config.setBuyerSellerServiceUrl("https://bss.luxurypresence.com", {}); 1631 window.luxuryPresence.config.setDivolteServiceUrl("https://t.luxurypresence.com", {}); 1632 window.luxuryPresence.config.setEventBusUrl("https://cdn.luxurypresence.com/scripts/event-bus-js", {}); 1633 window.luxuryPresence.config.setEventBus({ 1634 enabled: true, 1635 apiKey: "phc_PMYT31xlmXBaTCwpIRx1v6RrpLVZIuP47N3mOT6KLnr", 1636 url: "https://p.luxurypresence.com", 1637 }); 1638 window.luxuryPresence.config.setTemplateId("e3960201-1a19-4660-a991-8658653d81e9", {}); 1639 window.luxuryPresence.config.setLeadIngesterUrl("https://leads.luxurypresence.com", {}); 1640 window.luxuryPresence.buttons.initialize({}); 1641 window.luxuryPresence.consent.initialize({ provider: 'lp-consent' }); 1642 window.luxuryPresence.contactForms.initialize({}); 1643 window.luxuryPresence.validation.initialize({}); 1644 window.luxuryPresence.expandSliders.initialize({}); 1645 window.luxuryPresence.oauth.initialize({ googleSignOnEnabled: true, iframe: false }); 1646 window.luxuryPresence.qualifyingQuestionsModal.initialize({ qualifyingQuestionsModalEnabled: true }); 1647 } catch (e) { 1648 console.log(e); 1649 } 1650 1651 /* Inject Section Specific Javascript */ 1652 try { 1653(function init(sectionDomId) { 1654 let address = $('#' + sectionDomId + " .company_address").text().trim(); 1655 $('#' + sectionDomId + " .company_address").text(address); 1656 function setHttp(link) { 1657 if (link.search(/^http[s]?\:\/\/|\//) == -1) { 1658 link = 'http://' + link; 1659 } 1660 return link; 1661 } 1662 $(`#${sectionDomId} .contact-form__form`).on('reset', () => { 1663 const redirectLink = $('#' + sectionDomId + ' .redirect-link'); 1664 if (redirectLink.length) { 1665 const rawHref = redirectLink.attr('href'); 1666 redirectLink.attr('href', setHttp(rawHref)); 1667 redirectLink[0].click(); 1668 } 1669 }); 1670})('modal-global-contact-us'); 1671} catch(e) { 1672console.log(e); 1673} 1674 1675 try { 1676(function init(sectionDomId) { 1677 var resizeMenu = function () { 1678 var widthSoFar = 0; 1679 var availableWidth = $('#' + sectionDomId + ' .navigation').width(); 1680 if ($(window).width() > 1024) { 1681 $('#' + sectionDomId + ' .navigation > li').each(function () { 1682 $(this).hide(); 1683 const currentItemWidth = $(this).outerWidth(); 1684 if (availableWidth - widthSoFar >= currentItemWidth) $(this).css({ 1685 "visibility": "visible", 1686 "display": "list-item", 1687 "height": "auto" 1688 }); 1689 widthSoFar += $(this).outerWidth(); 1690 }); 1691 } 1692 }; 1693 $(window).on('resize.lpui-auto-clean', resizeMenu); 1694 const mediaQuery = window.matchMedia('(hover: hover) and (pointer: fine)'); 1695 var $subNavTrigger = $('body > nav .sub-nav-container a'); 1696 var $subNavContainer = $('body > nav .sub-nav-container'); 1697 if (mediaQuery.matches) { 1698 $subNavTrigger.off('click'); 1699 $subNavContainer.mouseout(function () { 1700 var self = $(this); 1701 self.removeClass('active').find('.sub-nav').removeClass('visible'); 1702 }).mouseover(function () { 1703 $(this).siblings('.sub-nav-container').removeClass('active').find('.sub-nav').removeClass('visible'); 1704 $(this).addClass('active').find('.sub-nav').addClass('visible'); 1705 }).mouseup(function () { 1706 var self = $(this); 1707 self.toggleClass('active'); 1708 }); 1709 } 1710 function isSectionLight(sect) { 1711 if (!sect || !sect.style) { 1712 return true; 1713 } 1714 if (sect.style.backgroundImage) { 1715 return false;
1716 } 1717 if ($(sect).children('.video-wrapper').length) { 1718 return false; 1719 } 1720 return sect.classList.contains('is-background-color-light'); 1721 } 1722 const $header = $(`#${sectionDomId} > .header`); 1723 if ($header.hasClass('theme-auto')) { 1724 if (isSectionLight($('body > section')[0])) { 1725 $header.removeClass('theme-light'); 1726 } else { 1727 $header.addClass('theme-light'); 1728 } 1729 } 1730 var resizeTimeout; 1731 clearTimeout(resizeTimeout); 1732 resizeTimeout = setTimeout(function () { 1733 resizeMenu(); 1734 }, 1000); 1735})('global-navbar'); 1736} catch(e) { 1737console.log(e); 1738} 1739 try { 1740(function init(sectionDomId, options) { 1741 var elementSelector = options.elementSelector || 'nav'; 1742 var element = document.querySelector(elementSelector); 1743 var sections = document.querySelectorAll('body > section'); 1744 var subNavContainers = element.querySelectorAll('.sub-nav'); 1745 var initialBackgroundColor = options.initialBackgroundColor || element.style.backgroundColor; 1746 var backgroundColorScroll = options.backgroundColorScroll || '#191919'; 1747 var fontColor = options.fontColor || '#fff'; 1748 var fontColorScroll = options.fontColorScroll || '#000'; 1749 var didScroll = false; 1750 var lastScrollTop = 0; 1751 var delta = 5; 1752 1753 // eslint-disable-next-line sonarjs/no-collapsible-if 1754 if (wow) { 1755 // Wowjs might not trigger for position fixed elements 1756 if (window.scrollY > 0) { 1757 element.querySelectorAll('.wow').forEach(el => wow.show(el)); 1758 } 1759 } 1760 function adjustNavPinState() { 1761 // Remove 'visible' class from all subNavContainers 1762 for (let i = 0; i < subNavContainers.length; i++) { 1763 subNavContainers[i].classList.remove('visible'); 1764 } 1765 if (window.scrollY > 0) { 1766 element.style.backgroundColor = backgroundColorScroll; 1767 element.style.color = fontColorScroll; 1768 element.classList.add('scroll'); 1769 } else { 1770 element.style.backgroundColor = initialBackgroundColor; 1771 element.style.color = fontColor; 1772 element.classList.remove('scroll'); 1773 } 1774 } 1775 adjustNavPinState(); 1776 function onScroll() { 1777 didScroll = true; 1778 } 1779 window.addEventListener('scroll', onScroll); 1780 1781 // eslint-disable-next-line 1782 var debounceInterval = setInterval(() => { 1783 if (didScroll) { 1784 // eslint-disable-next-line 1785 hasScrolled(); 1786 didScroll = false; 1787 } 1788 }, 250); 1789 function hasScrolled() { 1790 adjustNavPinState(); 1791 // eslint-disable-next-line 1792 var navbarHeight = element.offsetHeight; 1793 // eslint-disable-next-line 1794 var st = window.scrollY; 1795 1796 // Make sure they scroll more than delta 1797 if (Math.abs(lastScrollTop - st) <= delta) { 1798 return; 1799 } 1800 if (st > lastScrollTop && st > navbarHeight) { 1801 // Scroll Down 1802 element.style.transform = `translateY(-${navbarHeight}px) scaleY(0)`; 1803 document.documentElement.style.setProperty('--global-header-height', '0px'); 1804 1805 // Some sections "follow" the navbar with class sticky (i.e. Producer search) 1806 sections.forEach(section => { 1807 if (section.classList.contains('sticky')) { 1808 section.style.top = '0px'; 1809 } 1810 }); 1811 } else { 1812 // Scroll Up 1813 // eslint-disable-next-line 1814 if (st + window.innerHeight < document.documentElement.scrollHeight) { 1815 element.style.transform = `translateY(0) scaleY(1)`; 1816 document.documentElement.style.setProperty('--global-header-height', `${navbarHeight}px`); 1817 sections.forEach(section => { 1818 if (section.classList.contains('sticky')) { 1819 section.style.top = `${navbarHeight}px`; 1820 } 1821 }); 1822 } 1823 } 1824 lastScrollTop = st; 1825 } 1826})('NAVBAR', JSON.parse("{\"fontColor\":\"#211F1F\",\"elementSelector\":\"nav\",\"fontColorScroll\":\"#ffffff\",\"backgroundColorScroll\":\"#2C3426\",\"initialBackgroundColor\":\"transparent\"}")); 1827} catch(e) { 1828console.log(e); 1829} 1830 try { 1831(function init(sectionDomId) { 1832 sectionDomId = "global-sidemenu"; 1833 var $sidemenu = $('#' + sectionDomId); 1834 const subNavItems = $('body > div.sidemenu .sub-nav-container .sub-nav__item'); 1835 const hideSubNavItems = () => { 1836 subNavItems.removeClass('fadeInUp'); 1837 }; 1838 const showSubNavItems = subnav => { 1839 if ($(subnav).find('.arrow').hasClass('active')) { 1840 $(".sidemenu").find('.arrow').removeClass('active'); 1841 } else { 1842 $(".sidemenu").find('.arrow').removeClass('active'); 1843 $(subnav).find('.arrow').addClass('active'); 1844 } 1845 let i = 0; 1846 subnav.find('.sub-nav__item').each((idx, item) => { 1847 i++; 1848 var timeout; 1849 clearTimeout(timeout); 1850 timeout = setTimeout(() => { 1851 $(item).addClass('fadeInUp'); 1852 }, 100 + i * 50); 1853 }); 1854 }; 1855 $(document).on("click", function (e) {
1856 if ($(e.target).closest(".navigation").length < 1) { 1857 hideSubNavItems(); 1858 } 1859 }); 1860 $('body > div.sidemenu .sub-nav-container > a').click(function (e) { 1861 const subnavContainer = $(this).closest('.sub-nav-container'); 1862 hideSubNavItems(); 1863 showSubNavItems(subnavContainer); 1864 }); 1865 const hideSideMenu = () => { 1866 $('body > div.sidemenu').removeClass('visible'); 1867 }; 1868 $('body > div.sidemenu .navigation .navigation__item:not(.sub-nav-container) .navigation__link').on('click', function (e) { 1869 onHide(); 1870 hideSideMenu(); 1871 }); 1872 $('body > div.sidemenu .sub-nav-container .sub-nav__link').on('click', function (e) { 1873 onHide(); 1874 setTimeout(() => { 1875 hideSideMenu(); 1876 }, 1601); 1877 }); 1878 var shown = false; 1879 function onShow() { 1880 if (shown) { 1881 return; 1882 } 1883 shown = true; 1884 window.lpUI.requestScrollLock(sectionDomId); 1885 $('#' + sectionDomId + ' .navigation__link').removeClass('fade-in'); 1886 $('#' + sectionDomId + ' .lp-socials__link').removeClass('fade-in'); 1887 let i = 0; 1888 $('#' + sectionDomId + ' .navigation__link').each(function () { 1889 i++; 1890 setTimeout(() => { 1891 $(this).addClass('fade-in'); 1892 }, 900 + i * 50); 1893 }); 1894 $('#' + sectionDomId + ' .lp-socials__link').each(function () { 1895 i++; 1896 setTimeout(() => { 1897 $(this).addClass('fade-in'); 1898 }, 900 + i * 50); 1899 }); 1900 } 1901 function onHide() { 1902 hideSubNavItems(); 1903 if (!shown) { 1904 return; 1905 } 1906 $('#' + sectionDomId + ' .lp-socials__link').removeClass('fade-in'); 1907 let i = 0; 1908 $($('#' + sectionDomId + ' .navigation__link').get().reverse()).each(function () { 1909 i++; 1910 setTimeout(() => { 1911 $(this).removeClass('fade-in'); 1912 }, i * 50); 1913 }); 1914 shown = false; 1915 setTimeout(() => { 1916 window.lpUI.releaseScrollLock(sectionDomId); 1917 }, 1600); 1918 } 1919 $sidemenu.on('lpui-show', onShow); 1920 $sidemenu.on('lpui-hide', onHide); 1921})('global-sidemenu'); 1922} catch(e) { 1923console.log(e); 1924} 1925 1926 try { 1927(function init(sectionDomId) { 1928 function setHttp(link) { 1929 if (link.search(/^http[s]?\:\/\/|\//) == -1) { 1930 link = 'http://' + link; 1931 } 1932 return link; 1933 } 1934 $(`#${sectionDomId} form`).on("reset", function () { 1935 const redirectLink = $('#' + sectionDomId + ' .redirect-link'); 1936 if (redirectLink.length) { 1937 const rawHref = redirectLink.attr('href'); 1938 redirectLink.attr('href', setHttp(rawHref)); 1939 redirectLink[0].click(); 1940 } 1941 }); 1942})('global-footer'); 1943} catch(e) { 1944console.log(e); 1945} 1946 1947 try { 1948(function init(sectionDomId) { 1949 var _section = $('#' + sectionDomId); 1950 var _footer = document.getElementById('global-footer'); 1951 const redirectLink = _section.find('.js-redirect-link'); 1952 function setHttp(link) { 1953 if (link.search(/^(http[s]?\:\/\/|\/)/) == -1) { 1954 link = 'https://' + link; 1955 } 1956 return link; 1957 } 1958 function redirectPage(link) { 1959 if (link.length) { 1960 window.location.href = setHttp(link.attr('href')); 1961 } 1962 } 1963 const emailInput = _section.find('.js-email-input'); 1964 const emailRegex = /[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~\-]+@[a-zA-Z0-9-]+(?:\.[a-zA-Z0-9-]+)+/; 1965 emailInput.on('input', function () { 1966 if (emailRegex.test(this.value)) { 1967 this.setCustomValidity(''); 1968 } else { 1969 this.setCustomValidity('Please enter a valid email address.'); 1970 } 1971 this.reportValidity(); 1972 }); 1973 _section.find('input[name="name"]').on("keyup", function () { 1974 if (this.value.replaceAll(/\d/g, "").trim().split(" ").length < 2 || this.value.replaceAll(/\d/g, "").trim() === "") { 1975 this.setCustomValidity("Please input your first name and last name."); 1976 } else { 1977 this.setCustomValidity(""); 1978 } 1979 }); 1980 _section.find('form').on("reset", function () { 1981 $(this).addClass("show-success"); 1982 redirectPage(redirectLink); 1983 }); 1984 $(window).scroll(function () { 1985 if ($(this).scrollTop() >= 150) _section.find('.btn-holder').addClass('visible');else _section.find('.btn-holder').removeClass('visible'); 1986 }); 1987 _section.find('.close-btn, .connect-btn').click(function () { 1988 _section.find('.pop-up').toggle(); 1989 _section.find('.btn-holder').toggle(); 1990 }); 1991 if (!_footer) return; 1992 const observer = new IntersectionObserver(entries => {
1993 entries.forEach(entry => { 1994 if (entry.isIntersecting) _section.hide();else _section.show(); 1995 }); 1996 }, { 1997 threshold: 0.1 1998 }); 1999 observer.observe(_footer); 2000 function selectToDropdown(selectItem) { 2001 let customDropdown = ` 2002 <div class="custom-select" role="presentation"> 2003 <button class="custom-select-toggle is-placeholder" type="button" aria-haspopup="true" aria-expanded="false"></button> 2004 <div class="custom-select-menu" style="display: none;max-height: none;"> 2005 <div class="custom-select-content"> 2006 </div> 2007 </div> 2008 </div>`; 2009 $(customDropdown).insertAfter(selectItem); 2010 let $dropdown = $($(selectItem).next()); 2011 let $dropdownToggle = $dropdown.find(".custom-select-toggle"); 2012 let $dropdownMenu = $dropdown.find(".custom-select-menu"); 2013 let $dropdownContent = $dropdown.find(".custom-select-content"); 2014 $dropdownToggle.addClass($(selectItem).attr("class")).removeClass("dropdown-select"); 2015 $dropdownToggle.attr("id", $(selectItem).attr("id") + "custom"); 2016 $dropdownMenu.attr("aria-labelledby", $dropdownToggle.attr("id")); 2017 appendOptionButtons(selectItem, $dropdownContent); 2018 $(selectItem).removeClass().addClass("sr-only"); 2019 var toggleText = $(selectItem).find(":selected").first().text() || $(selectItem).children().first().text(); 2020 $dropdownToggle.html(toggleText); 2021 $dropdown.on("click", ".custom-select-item", function (e) { 2022 if ($(this).hasClass("is-disabled")) return; 2023 let elementNumber = $(this).index(); 2024 let $originalSelect = $(this).closest(".custom-select").siblings("select"); 2025 let $linkedOption = $originalSelect.find("option").eq(elementNumber); 2026 if (!$linkedOption.prop("selected")) { 2027 $linkedOption.prop("selected", true); 2028 $originalSelect.change(); 2029 $(this).addClass("is-selected").siblings(".custom-select-item").removeClass("is-selected"); 2030 $dropdownToggle.html($(this).html()); 2031 closeSelectMenu($(this).closest(".custom-select-menu")); 2032 } 2033 $dropdownToggle.removeClass("is-placeholder"); 2034 }); 2035 function convertOptionToButton(option) { 2036 var optionText = $(option).text(); 2037 var optionValue = $(option).attr("value") || $(option).text(); 2038 var optionIsDisabled = $(option).prop("disabled"); 2039 var outputButton = `<button value="${optionValue}" class="custom-select-item" type="button" ${optionIsDisabled ? "disabled" : ""}>${optionText}</button>`; 2040 return outputButton; 2041 } 2042 function appendOptionButtons(selectItem, appendTarget) { 2043 $(selectItem).find("option").each(function () { 2044 let currentButton = convertOptionToButton(this); 2045 $(appendTarget).append(currentButton); 2046 }); 2047 } 2048 function showSelectMenu(selectMenu) { 2049 var customSelect = $(selectMenu).closest(".custom-select")[0]; 2050 $(customSelect).addClass("open"); 2051 $(selectMenu).slideDown(); 2052 } 2053 function closeSelectMenu(selectMenu) { 2054 var customSelect = $(selectMenu).closest(".custom-select")[0]; 2055 $(customSelect).removeClass("open"); 2056 $(selectMenu).slideUp(); 2057 } 2058 $dropdown.on("click", ".custom-select-toggle", function (e) { 2059 var $customSelect = $(this).closest(".custom-select"); 2060 var selectMenu = $customSelect.find(".custom-select-menu")[0]; 2061 if ($customSelect.hasClass("open")) { 2062 closeSelectMenu(selectMenu); 2063 } else { 2064 showSelectMenu(selectMenu); 2065 } 2066 }); 2067 $(document).on("click", function (e) { 2068 if ($(e.target).closest(".custom-select").length < 1 && $(".custom-select").hasClass("open")) { 2069 $(".custom-select.open").each(function () { 2070 var selectMenu = $(this).find(".custom-select-menu")[0]; 2071 closeSelectMenu(selectMenu); 2072 }); 2073 } 2074 }); 2075 } 2076 $(".pop-up select[name='interest']").each(function () { 2077 selectToDropdown(this); 2078 }); 2079})('global-mobile-contact'); 2080} catch(e) { 2081console.log(e); 2082} 2083 2084 try { 2085(function init(sectionDomId) { 2086 const $section = $('#' + sectionDomId); 2087 const $videoWrap = $section.find('.full-screen-video-component > .video-wrapper'); 2088 const $playButton = $section.find('.js-play-btn'); 2089 if ($videoWrap.length) { 2090 const $video = $videoWrap.find('video'); 2091 $video.each(function () { 2092 var v = this; 2093 if (v.readyState > 0) { 2094 $videoWrap.addClass('playing'); 2095 var promise = v.play(); 2096 if (promise !== undefined) { 2097 promise.catch(error => { 2098 $playButton.addClass('visible'); 2099 }).then(() => {}); 2100 } 2101 } else { 2102 v.addEventListener('canplay', function () { 2103 $videoWrap.addClass('playing'); 2104 }, { 2105 once: true 2106 }); 2107 } 2108 }); 2109 } 2110 $playButton.on('click', function () { 2111 const $video = $videoWrap.find('video'); 2112 this.classList.remove('visible'); 2113 if ($video[0].currentTime === 0) { 2114 $video[0].load(); 2115 $video[0].play(); 2116 } 2117 }); 2118 window.luxuryPresence.mapApiLoader.load().then(() => {
2119 const $searchWrapper = $section.find('.search-wrapper'); 2120 if (!$searchWrapper.length) { 2121 return; 2122 } 2123 const searchMls = $searchWrapper[0].dataset.searchMls === 'true'; 2124 const searchProperties = $searchWrapper[0].dataset.searchProperties === 'true'; 2125 const searchPlaces = searchMls; 2126 const showNeighborhoods = searchMls; 2127 const searchNearEnabled = searchMls; 2128 const $searchInput = $section.find('.search-input'); 2129 const $searchResults = $section.find('.search-results'); 2130 const $resultsContainer = $section.find('.results-container'); 2131 const $loader = $section.find('.search-in-progress'); 2132 const $predefined = $section.find('.predefined-links'); 2133 const $searchBtn = $section.find('.search-button'); 2134 const $leaseFalseButton = $section.find('.jsLeaseFalse'); 2135 const $leaseTrueButton = $section.find('.jsLeaseTrue'); 2136 const $nextSection = $section.next(); 2137 const fixZIndex = $nextSection.length && parseInt($nextSection.css('z-index')) || 1; 2138 const searchDelay = 300; 2139 const maxPlaces = 3; 2140 const maxMls = 5; 2141 const leaseFilter = $leaseFalseButton.length > 0 && $leaseTrueButton.length > 0; 2142 const service = new google.maps.places.AutocompleteService(); 2143 const geocoder = new google.maps.Geocoder(); 2144 var keyword; 2145 var leasePropertyState = false; 2146 var leasePropertySearched; 2147 var searchActive = false; 2148 var isLoading = false; 2149 function showSearchResults() { 2150 searchActive = true; 2151 updateSearchDisplay(); 2152 } 2153 function hideSearchResults() { 2154 searchActive = false; 2155 updateSearchDisplay(); 2156 } 2157 function showLoading() { 2158 isLoading = true; 2159 updateSearchDisplay(); 2160 } 2161 function hideLoading() { 2162 isLoading = false; 2163 updateSearchDisplay(); 2164 } 2165 function updateSearchDisplay() { 2166 if (leaseFilter) { 2167 if (leasePropertyState) { 2168 $leaseTrueButton.addClass('active'); 2169 $leaseFalseButton.removeClass('active'); 2170 } else { 2171 $leaseFalseButton.addClass('active'); 2172 $leaseTrueButton.removeClass('active'); 2173 } 2174 } 2175 if (!searchActive) { 2176 $searchResults.removeClass('show'); 2177 $searchResults.css('height', '0'); 2178 return; 2179 } 2180 var hasResults = !!$resultsContainer.html(); 2181 var hasPredefined = $predefined.find('a:not(.not-processed)').length > 0; 2182 if (hasResults) { 2183 $predefined.addClass('not-visible'); 2184 $loader.addClass('not-visible'); 2185 $resultsContainer.removeClass('not-visible'); 2186 } else if (isLoading) { 2187 $resultsContainer.addClass('not-visible'); 2188 $predefined.addClass('not-visible'); 2189 $loader.removeClass('not-visible'); 2190 } else if (hasPredefined) { 2191 $resultsContainer.addClass('not-visible'); 2192 $loader.addClass('not-visible'); 2193 $predefined.removeClass('not-visible'); 2194 } else { 2195 $resultsContainer.addClass('not-visible'); 2196 $loader.addClass('not-visible'); 2197 $predefined.addClass('not-visible'); 2198 } 2199 var height = 0; 2200 height += $predefined[0].getBoundingClientRect().height; 2201 height += $resultsContainer[0].getBoundingClientRect().height; 2202 height += $loader[0].getBoundingClientRect().height; 2203 if (height > 0) { 2204 $searchResults.addClass('show'); 2205 } else { 2206 $searchResults.removeClass('show'); 2207 } 2208 $searchResults.css('height', height + 'px'); 2209 } 2210 function clearSelection() { 2211 $searchResults.find('.selected-link').removeClass('selected-link'); 2212 } 2213 function moveSelection(up) { 2214 var $cont = $resultsContainer.html() ? $resultsContainer : $predefined; 2215 var $links = $cont.find('.results-link'); 2216 if (!$links.length) { 2217 return; 2218 } 2219 var idx = -1; 2220 $links.each(function (i) { 2221 if (idx === -1 && $(this).is('.selected-link')) { 2222 idx = i; 2223 } 2224 }); 2225 var newIdx; 2226 if (up) { 2227 newIdx = idx - 1; 2228 if (newIdx < 0) { 2229 newIdx = $links.length - 1; 2230 } 2231 } else { 2232 newIdx = idx + 1; 2233 if (newIdx > $links.length - 1) { 2234 newIdx = 0; 2235 } 2236 } 2237 if (newIdx !== idx) { 2238 $searchResults.find('.selected-link').removeClass('selected-link'); 2239 $($links.get(newIdx)).addClass('selected-link'); 2240 } 2241 } 2242 var newSearchTimer; 2243 function inputChanged(ev) { 2244 if (ev.which === 38) { 2245 ev.preventDefault(); 2246 moveSelection(true); 2247 return false;
2248 } 2249 if (ev.which === 40) { 2250 ev.preventDefault(); 2251 moveSelection(); 2252 return false; 2253 } 2254 if (ev.which === 13) { 2255 $lnk = $searchResults.find('.selected-link'); 2256 if ($lnk.length) { 2257 $lnk[0].click(); 2258 hideSearchResults(); 2259 } else { 2260 $searchBtn.click(); 2261 } 2262 } 2263 window.clearTimeout(newSearchTimer); 2264 newSearchTimer = window.setTimeout(startSearch, searchDelay); 2265 } 2266 function startSearch() { 2267 const term = $searchInput.val(); 2268 if (term === keyword && leasePropertySearched === leasePropertyState) { 2269 return; 2270 } 2271 leasePropertySearched = leasePropertyState; 2272 keyword = term; 2273 if (term) { 2274 doSearch(term, leasePropertySearched); 2275 } else { 2276 setResults(null); 2277 } 2278 } 2279 function mlsSearch(term, leaseProperty) { 2280 var query = { 2281 keyword_search: term, 2282 limit: maxMls 2283 }; 2284 if (leaseFilter && leaseProperty) { 2285 query.lease_property = true; 2286 } 2287 return superagent.get(window.location.protocol + '//' + window.location.host + '/home-search/listings.json').query(query).then(function (res) { 2288 if (!Array.isArray(res.body)) { 2289 return []; 2290 } 2291 return res.body.map(function (item) { 2292 return { 2293 id: item.id, 2294 display_address: [item.address_1, item.city, [item.state, item.postal_code].filter(function (i) { 2295 return i; 2296 }).join(' ')].filter(function (i) { 2297 return i; 2298 }).join(', ') 2299 }; 2300 }); 2301 }, function (e) { 2302 console.log(e); 2303 return []; 2304 }); 2305 } 2306 function resolveGeoBounds(placeId, description, terms) { 2307 return new Promise(function (resolve, reject) { 2308 geocoder.geocode({ 2309 'placeId': placeId 2310 }, function (results, status) { 2311 if (status != 'OK') { 2312 return resolve(null); 2313 } 2314 var result = results[0]; 2315 var bounds = new google.maps.LatLngBounds();
2316 bounds.extend(result.geometry.viewport.getSouthWest()); 2317 bounds.extend(result.geometry.viewport.getNorthEast()); 2318 result.geometry.bounds = bounds.toJSON(); 2319 var placeUrl = window.luxuryPresence.makeMlsLink(result); 2320 return resolve({ 2321 placeUrl: placeUrl, 2322 description: description, 2323 cityName: terms[0].value, 2324 stateName: terms[1].value 2325 }); 2326 }); 2327 }); 2328 } 2329 function resolveAutocomplete(term, deeper) { 2330 var request = { 2331 input: term, 2332 componentRestrictions: { 2333 country: 'us' 2334 }, 2335 types: deeper ? ['geocode'] : ['(regions)'], 2336 limit: 1 2337 }; 2338 return new Promise(function (resolve, reject) { 2339 service.getPlacePredictions(request, function (results, status) { 2340 if (status !== google.maps.places.PlacesServiceStatus.OK) { 2341 resolve(null); 2342 return; 2343 } 2344 if (!Array.isArray(results)) { 2345 resolve(null); 2346 return; 2347 } 2348 if (deeper) { 2349 var allowedTypes = { 2350 'neighborhood': true, 2351 'administrative_area_level_3': true, 2352 'administrative_area_level_4': true, 2353 'administrative_area_level_5': true, 2354 'sublocality_level_1': true, 2355 'sublocality_level_2': true, 2356 'sublocality_level_3': true 2357 }; 2358 results = results.filter(function (res) { 2359 return res.types.find(t => allowedTypes[t]); 2360 }); 2361 } 2362 if (!results.length) { 2363 resolve(null); 2364 return; 2365 } 2366 resolve(results); 2367 }); 2368 }); 2369 } 2370 var placesResult = {}; 2371 function placesSearch(term, ignoreInput) { 2372 if (placesResult.term !== term) { 2373 placesResult = { 2374 term: term, 2375 result: resolveAutocomplete(term).then(function (results) { 2376 if (!ignoreInput && term !== keyword) { 2377 return null; 2378 } 2379 if (ignoreInput && !results) { 2380 return resolveAutocomplete(term, true); 2381 } 2382 return results; 2383 }).then(function (results) { 2384 if (!ignoreInput && term !== keyword) { 2385 return []; 2386 } 2387 if (!results) { 2388 return []; 2389 } 2390 var geoResultPromises = results.map(function (result) { 2391 return resolveGeoBounds(result.place_id, result.description, result.terms); 2392 }); 2393 return Promise.all(geoResultPromises).then(function (geoLinks) { 2394 return geoLinks.filter(function (i) { 2395 return i; 2396 }).slice(0, maxPlaces); 2397 }); 2398 }) 2399 }; 2400 } 2401 return placesResult.result; 2402 } 2403 function propertiesSearch(term, leaseProperty) { 2404 var payload = { 2405 companyId: window.luxuryPresence.defaults.companyId, 2406 search: term, 2407 offset: 0, 2408 limit: 6, 2409 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"] 2410 }; 2411 if (leaseFilter) { 2412 payload.leaseProperty = !!leaseProperty; 2413 } 2414 return superagent.post(window.luxuryPresence.defaults.apiGatewayUrl + '/graphql').send({ 2415 query: window.luxuryPresence.defaults.gql.properties, 2416 variables: payload 2417 }).then(function (res) { 2418 return (res.body.data || {}).properties || []; 2419 }, function (err) { 2420 return []; 2421 }); 2422 } 2423 function doSearch(term, leaseProperty) { 2424 showLoading(); 2425 Promise.all([searchMls ? mlsSearch(term, leaseProperty) : [], searchPlaces ? placesSearch(term) : [], searchProperties ? propertiesSearch(term, leaseProperty) : []]).then(function (res) { 2426 if (term !== keyword) { 2427 return; 2428 } 2429 setResults(res[0], res[1], res[2], leaseProperty); 2430 }); 2431 } 2432 function makeResultsBlockHtml(title, links) { 2433 if (!links || !links.length) { 2434 return ''; 2435 } 2436 var html = '<div class="results-block">'; 2437 html += '<div class="results-block-title">'; 2438 if (searchNearEnabled) { 2439 html += '<div class="search-near-container"><a class="search-near lp-link lp-link--light">Search Near Me</a></div>'; 2440 } 2441 html += '<div class="results-title-label">' + title + '</div></div>'; 2442 html += links.join('') + '</div>'; 2443 return html; 2444 } 2445 function setResults(mlsResults, placesResults, propertiesResults, leaseProperty) { 2446 clearSelection(); 2447 hideLoading(); 2448 if (!mlsResults) { 2449 $resultsContainer.html(''); 2450 updateSearchDisplay(); 2451 return; 2452 } 2453 if (!mlsResults.length && !placesResults.length && !propertiesResults.length) { 2454 $resultsContainer.html('<div class="nothing-found">No results found</div>'); 2455 updateSearchDisplay(); 2456 return; 2457 } 2458 var propertiesHtml = makeResultsBlockHtml('Featured Properties', propertiesResults.map(function (result) { 2459 return `<a href="/properties/${result.slug}" class="results-link">${result.privateAddress ? result.name : result.fullAddress}</a>`; 2460 })); 2461 var placesHtml = makeResultsBlockHtml('Locations', placesResults.map(function (result) { 2462 return `<a class="results-link" href="${result.placeUrl}${leaseProperty ? '&lease_property=true' : ''}&cityName=${result.cityName}&stateName=${result.stateName}">${result.description}</a>`; 2463 })); 2464 var mlsHtml = makeResultsBlockHtml('Address', mlsResults.map(function (result) { 2465 return `<a href="/home-search/listings/${result.id}" class="results-link">${result.display_address}</a>`; 2466 }));
2467 $resultsContainer.html(propertiesHtml + placesHtml + mlsHtml); 2468 updateSearchDisplay(); 2469 } 2470 function searchBtnClicked() { 2471 var resultsBlockHref = $("#" + sectionDomId + " .results-block .results-link").attr("href"); 2472 const term = $searchInput.val(); 2473 if (!term) { 2474 return; 2475 } 2476 if (searchMls) { 2477 window.location.href = resultsBlockHref; 2478 return; 2479 } 2480 if (searchProperties) { 2481 window.location.href = "/properties/sale"; 2482 } 2483 } 2484 var neighborhoods = null; 2485 function fetchNeighborhoods() { 2486 var url = window.luxuryPresence.defaults.apiGatewayUrl; 2487 var gqlQuery = 'query ($companyId: String, $offset: Int, $limit: Int) {' + 'neighborhoods (companyId: $companyId, offset: $offset, limit: $limit) {id, name, mlsLink, googlePlaceData}}'; 2488 var payload = {}; 2489 payload.offset = 0; 2490 payload.limit = 100; 2491 payload.companyId = window.luxuryPresence.defaults.companyId; 2492 return superagent.post(url + '/graphql').withCredentials().send({ 2493 query: gqlQuery, 2494 variables: payload 2495 }).then(function (res) { 2496 neighborhoods = res.body.data && res.body.data.neighborhoods; 2497 if (neighborhoods && !neighborhoods.length) { 2498 neighborhoods = null; 2499 } 2500 }); 2501 } 2502 function setPredefinedNeighborhoods() { 2503 return fetchNeighborhoods().then(function () { 2504 if (!neighborhoods) { 2505 return; 2506 } 2507 var leaseProperty = leaseFilter && leasePropertyState; 2508 var placesHtml = makeResultsBlockHtml('Locations', neighborhoods.map(function (item) { 2509 return `<a class="results-link" href="${item.mlsLink}${leaseProperty ? '&lease_property=true' : ''}">${item.googlePlaceData && item.googlePlaceData.formatted_address || item.name}</a>`; 2510 })); 2511 $predefined.html(placesHtml); 2512 updateSearchDisplay(); 2513 }); 2514 } 2515 if (showNeighborhoods) { 2516 setPredefinedNeighborhoods(); 2517 } 2518 $searchInput.on('focus', showSearchResults); 2519 $searchInput.on('keyup focus', inputChanged); 2520 $searchResults.on('mouseenter', '.results-link', function (ev) { 2521 clearSelection(); 2522 }); 2523 $searchBtn.on('click', searchBtnClicked); 2524 $leaseFalseButton.on('click', function () { 2525 if (leasePropertyState) { 2526 leasePropertyState = false; 2527 if (showNeighborhoods) { 2528 setPredefinedNeighborhoods(); 2529 } 2530 updateSearchDisplay(); 2531 setResults(null); 2532 startSearch(); 2533 } 2534 }); 2535 $leaseTrueButton.on('click', function () { 2536 if (!leasePropertyState) { 2537 leasePropertyState = true; 2538 if (showNeighborhoods) { 2539 setPredefinedNeighborhoods(); 2540 } 2541 updateSearchDisplay(); 2542 setResults(null); 2543 startSearch(); 2544 } 2545 }); 2546 function createPolygonUrl(center, radius, n) { 2547 var step = Math.PI * 2 / n; 2548 var angle = 0 - step / 2; 2549 var points = []; 2550 var kx = 1.0 / Math.cos(center[1] * Math.PI / 180); 2551 for (var i = 0; i < n; i++) { 2552 points.push('[' + (center[0] + radius * Math.sin(angle) * kx).toFixed(5) + ',' + (center[1] - radius * Math.cos(angle)).toFixed(5) + ']'); 2553 angle += step; 2554 } 2555 points.push(points[0]); 2556 var str = '[[' + points.join(',') + ']]'; 2557 return '&polygon=' + encodeURIComponent(str); 2558 } 2559 function makeNearMeUrl(center, leaseProperty) { 2560 var url = '/home-search/listings?search_type=envelope'; 2561 if (leaseProperty) { 2562 url += '&lease_property=true'; 2563 } 2564 var distance = 0.11; 2565 var lat = center[1]; 2566 var lng = center[0]; 2567 url += '&south=' + (lat - distance); 2568 url += '&north=' + (lat + distance); 2569 url += '&west=' + (lng - distance); 2570 url += '&east=' + (lng + distance); 2571 url += createPolygonUrl(center, distance, 54); 2572 return url; 2573 } 2574 var $locMsg = null; 2575 $section.on('click', '.search-near', function () { 2576 showLoading(); 2577 navigator.geolocation.getCurrentPosition(function (position) { 2578 hideLoading(); 2579 hideSearchResults(); 2580 if (!position || !position.coords || !position.coords.latitude || !position.coords.longitude) { 2581 showLocationMessage('Unknown Location', '<p>Getting position of your device failed.</p><p>
2581You can type your address manually in the search field</p>'); 2582 return; 2583 } 2584 var url = makeNearMeUrl([position.coords.longitude, position.coords.latitude], leaseFilter && leasePropertyState); 2585 var link = document.createElement('a'); 2586 link.href = url; 2587 link.class = 'lp-visually-hidden'; 2588 $section[0].appendChild(link); 2589 link.click(); 2590 setTimeout(function () { 2591 $section[0].removeChild(link); 2592 }, 100); 2593 }, function (geoError) { 2594 hideLoading(); 2595 hideSearchResults(); 2596 var title = 'Unknown Location'; 2597 var msg; 2598 if (geoError.code === 1) { 2599 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>'; 2600 } else { 2601 msg = '<p>Getting position of your device failed.</p><p>You can type your address manually in the search field</p>'; 2602 } 2603 showLocationMessage(title, msg); 2604 }); 2605 }); 2606 var locHideTimer = null; 2607 function showLocationMessage(title, message) { 2608 clearTimeout(locHideTimer); 2609 if (!$locMsg) { 2610 var html = `<div class="loc-msg-backdrop"> 2611 <div class="loc-msg-wrap"> 2612 <div class="loc-msg-modal"> 2613 <div class="loc-msg-close"></div> 2614 <h4 class="loc-msg-title lp-h4"></h4> 2615 <div class="loc-msg-container"></div> 2616 </div> 2617 </div> 2618 </div> 2619 `; 2620 $locMsg = $(html); 2621 $locMsg.on('click', hideLocationMessage); 2622 $section.append($locMsg); 2623 } 2624 $locMsg.find('.loc-msg-container').html(message); 2625 $locMsg.find('.loc-msg-title').html(title); 2626 setTimeout(function () { 2627 if ($locMsg) { 2628 $section.addClass('visible-loc-msg'); 2629 } 2630 }); 2631 } 2632 function hideLocationMessage() { 2633 $section.removeClass('visible-loc-msg'); 2634 locHideTimer = setTimeout(function () { 2635 $locMsg.remove(); 2636 $locMsg = null; 2637 }, 400); 2638 } 2639 function outsideClickHandler(e) { 2640 if ($searchWrapper.find($(e.target)).length > 0) { 2641 return; 2642 } 2643 hideSearchResults(); 2644 } 2645 $(document).on('click', outsideClickHandler); 2646 if ('geolocation' in navigator) { 2647 $searchWrapper.removeClass('search-near-hidden'); 2648 } 2649 updateSearchDisplay(); 2650 }); 2651})('section-c02c049d-1919-46eb-a603-1cce7a5ab4cf', 'undefined'); 2652} catch(e) { 2653console.log(e); 2654} 2655 try { 2656(function init(sectionDomId) { 2657 const $section = $('#' + sectionDomId); 2658 const $form = $section.find('.custom-form__download-form'); 2659 const redirectLink = $section.find('.js-redirect-link'); 2660 function redirectPage(link) { 2661 if (link.length) { 2662 const rawHref = link.attr('href'); 2663 link.attr('href', setHttp(rawHref)); 2664 link[0].click(); 2665 } 2666 } 2667 function setHttp(link) { 2668 if (link.search(/^http[s]?\:\/\/|\//) == -1) { 2669 link = 'https://' + link; 2670 } 2671 return link; 2672 } 2673 $form.on('reset', function () { 2674 redirectPage(redirectLink); 2675 }); 2676 var backupEmailField = $section.find('.js-backup-email'); 2677 if (backupEmailField) { 2678 var dynEmailField = $section.find('input.js-form-element[name="email"]:not(.js-backup-field)'); 2679 if (dynEmailField.length === 0) { 2680 backupEmailField.removeClass('js-backup-email'); 2681 } else { 2682 backupEmailField.remove(); 2683 } 2684 } 2685 var $allElements = $section.find('.js-form-element'); 2686 const putAllInMessage = false; 2687 var hasCustomFields = false; 2688 const standardFields = { 2689 'name': true, 2690 'email': true, 2691 'phone': true, 2692 'message': true, 2693 'interest': true 2694 }; 2695 const busyFormNames = { 2696 'address': true, 2697 'city': true, 2698 'state': true, 2699 'postalCode': true, 2700 'mlsId': true, 2701 'sourceUrl': true 2702 }; 2703 $allElements.each(function () { 2704 var $el = $(this); 2705 var name = this.hasAttribute('data-name') ? $el.attr('data-name') : $el.attr('name'); 2706 if (!name) { 2707 return; 2708 } 2709 if (!standardFields[name]) { 2710 hasCustomFields = true; 2711 } 2712 let newName = /[^a-z\d-_]/.test(name) ? name.trim().toLowerCase().replace(/[^a-z\d-_]/g, '-') : name; 2713 if (!/^[a-z]/.test(newName)) { 2714 newName = 'fld-' + newName; 2715 } 2716 if (busyFormNames[newName]) { 2717 let idx = 1; 2718 while (busyFormNames[`${newName}-${idx}`] && idx < 100) { 2719 idx++; 2720 } 2721 newName = `${newName}-${idx}`; 2722 } 2723 busyFormNames[newName] = $el; 2724 if (name !== newName) { 2725 $el.attr('name', newName); 2726 } 2727 }); 2728 let $customFields = []; 2729 if (putAllInMessage && hasCustomFields) { 2730 $allElements.each(function () { 2731 var name = this.getAttribute('name'); 2732 if (name && (!standardFields[name] || name === 'message' && !$(this).hasClass('js-composed-message'))) { 2733 this.setAttribute('data-name', name); 2734 this.removeAttribute('name'); 2735 } 2736 if (this.hasAttribute('data-name')) { 2737 $customFields.push($(this)); 2738 } 2739 }); 2740 if (!$form[0].elements['message']) { 2741 $('<input type="hidden" name="message" class="js-composed-message" value="">').appendTo($form); 2742 } 2743 } 2744 $selects = $section.find('select.js-select'); 2745 var $checkboxGroups = $section.find('.js-checkboxes-group'); 2746 if ($checkboxGroups.length) { 2747 $checkboxGroups.each(function () { 2748 var $group = $(this); 2749 if (!$group.data('required')) return; 2750 var $checkboxes = $group.find('.js-multi-checkbox'); 2751 function updateValidity() { 2752 var anyChecked = $group.find('.js-multi-checkbox:checked').length > 0; 2753 $checkboxes.each(function () { 2754 this.setCustomValidity(anyChecked ? '' : 'Please select at least one option.'); 2755 }); 2756 }
2757 updateValidity(); 2758 $checkboxes.on('change', updateValidity); 2759 }); 2760 $form.on('submit', function () { 2761 $checkboxGroups.each(function () { 2762 var $group = $(this); 2763 var name = $group.data('name'); 2764 if (!name) return; 2765 var checked = $group.find('.js-multi-checkbox:checked').map(function () { 2766 return this.value; 2767 }).get().join(', '); 2768 $form.find('input[type="hidden"][data-checkbox-group="' + name + '"]').remove(); 2769 $('<input type="hidden">').attr('name', name).val(checked).attr('data-checkbox-group', name).appendTo($form); 2770 var $groupCheckboxes = $group.find('.js-multi-checkbox'); 2771 $groupCheckboxes.prop('disabled', true); 2772 setTimeout(function () { 2773 $groupCheckboxes.prop('disabled', false); 2774 }, 0); 2775 }); 2776 }); 2777 } 2778 let selectsInitialized = false; 2779 function initializeSelects() { 2780 if (selectsInitialized) { 2781 return; 2782 } 2783 selectsInitialized = true; 2784 $selects.each(function () { 2785 if (this.id) { 2786 $label = $section.find('[for="' + this.id + '"]'); 2787 if ($label.length) { 2788 var rect = $label[0].getBoundingClientRect(); 2789 if (rect && rect.width < 30) { 2790 var firstOption = $(this).find('option').first(); 2791 firstOption.attr('label', firstOption.data('label')); 2792 } 2793 } 2794 $gr = $(this).closest('.lp-input-group'); 2795 var b = $gr.css('border-left-width'); 2796 if (b && b !== '0px') { 2797 $gr[0].style.setProperty('--uf-border-left', b); 2798 } 2799 b = $gr.css('border-right-width'); 2800 if (b && b !== '0px') { 2801 $gr[0].style.setProperty('--uf-border-right', b); 2802 } 2803 } 2804 }); 2805 var csPrefix = 'uf-cus-sel'; 2806 function convertSelectToDropdown(selectItem) { 2807 const $selectItem = $(selectItem); 2808 const selectId = $selectItem.attr('id'); 2809 const id = $selectItem.attr('id') + '-custom-select'; 2810 let $dropdown = $selectItem.next(); 2811 let initialized = true; 2812 if ($dropdown.attr('id') !== id) { 2813 $selectItem.addClass("sr-only"); 2814 initialized = false; 2815 let customDropdown = ` 2816 <div class="${csPrefix}" role="presentation"> 2817 <button class="${csPrefix}-toggle" type="button" aria-haspopup="true" aria-expanded="false"></button> 2818 <div class="${csPrefix}-menu"> 2819 <div class="${csPrefix}-content"> 2820 </div> 2821 </div> 2822 </div>`; 2823 $(customDropdown).insertAfter(selectItem); 2824 $dropdown = $selectItem.next(); 2825 $dropdown.attr('id', id); 2826 } 2827 let $dropdownToggle = $dropdown.find('.' + csPrefix + '-toggle'); 2828 let $dropdownMenu = $dropdown.find('.' + csPrefix + '-menu'); 2829 let $dropdownContent = $dropdown.find('.' + csPrefix + '-content'); 2830 if (!initialized) { 2831 $dropdownToggle.addClass($selectItem.attr("class")).removeClass(['dropdown-select', 'js-select', 'js-form-element', 'sr-only']); 2832 $dropdownToggle.attr("id", id + '-toggle'); 2833 $dropdownMenu.attr("aria-labelledby", $dropdownToggle.attr("id")); 2834 appendOptionButtons(selectItem, $dropdownContent); 2835 } 2836 $selectItem.on("focus", function () { 2837 showSelectMenu($dropdownMenu[0]); 2838 $dropdownToggle.focus(); 2839 }); 2840 function setInitialValue() { 2841 $dropdownMenu.find('.' + csPrefix + '-item').removeClass('is-selected'); 2842 var $selectedOption = $selectItem.find(':selected').first(); 2843 if (!$selectedOption.length) { 2844 $selectedOption = $selectItem.children().first(); 2845 } 2846 var defaultText = ' '; 2847 var isPlaceholder = true; 2848 if ($selectedOption.length) { 2849 defaultText = ($selectedOption[0].hasAttribute('label') ? $selectedOption.attr('label') : $selectedOption.text()) || ' '; 2850 isPlaceholder = !!$selectedOption.prop("disabled"); 2851 } 2852 $dropdownToggle.html(defaultText); 2853 if (isPlaceholder) { 2854 $dropdownToggle.addClass('is-placeholder'); 2855 } 2856 } 2857 setInitialValue(); 2858 $dropdown.on("click", '.' + csPrefix + '-item', function (e) { 2859 const $button = $(this); 2860 if ($button.hasClass("is-disabled")) return; 2861 let elementNumber = $button.index(); 2862 let $linkedOption = $selectItem.find("option").eq(elementNumber); 2863 if (!$linkedOption.prop("selected")) { 2864 $linkedOption.prop("selected", true); 2865 $selectItem.change(); 2866 $button.addClass("is-selected").siblings('.' + csPrefix + '-item').removeClass("is-selected"); 2867 $dropdownToggle.removeClass("is-placeholder").html($button.html()); 2868 closeSelectMenu($button.closest('.' + csPrefix + '-menu')); 2869 } 2870 }); 2871 $(selectItem.form).on('reset', function () { 2872 setTimeout(function () { 2873 setInitialValue(); 2874 }); 2875 }); 2876 function convertOptionToButton(option) { 2877 const $option = $(option); 2878 var optionText = $option.text(); 2879 var optionValue = $option.attr("value"); 2880 var optionIsDisabled = $option.prop("disabled"); 2881 var outputButton = `<button value="${optionValue}" class="${csPrefix}-item" type="button" ${optionIsDisabled ? "disabled" : ""}>${optionText}</button>`; 2882 return outputButton; 2883 } 2884 function appendOptionButtons(selectItem, appendTarget) { 2885 const $appendTarget = $(appendTarget); 2886 $(selectItem).find("option").each(function () { 2887 let currentButton = convertOptionToButton(this); 2888 $appendTarget.append(currentButton); 2889 }); 2890 } 2891 function showSelectMenu(selectMenu) { 2892 var $customSelect = $(selectMenu).closest('.' + csPrefix); 2893 $customSelect.addClass("open"); 2894 $(selectMenu).slideDown(); 2895 } 2896 function closeSelectMenu(selectMenu) { 2897 var $customSelect = $(selectMenu).closest('.' + csPrefix); 2898 $customSelect.removeClass("open"); 2899 $(selectMenu).slideUp(); 2900 } 2901 $dropdown.on("click", '.' + csPrefix + '-toggle', function (e) { 2902 var $customSelect = $(this).closest('.' + csPrefix); 2903 var selectMenu = $customSelect.find('.' + csPrefix + '-menu')[0]; 2904 if ($customSelect.hasClass("open")) { 2905 closeSelectMenu(selectMenu); 2906 } else { 2907 showSelectMenu(selectMenu); 2908 } 2909 }); 2910 $(document.body).on("click", function (e) { 2911 var $closestCustomSelect = $(e.target).closest('.lp-input-group').find('.' + csPrefix); 2912 $section.find('.' + csPrefix + '.open').not($closestCustomSelect).each(function () { 2913 closeSelectMenu($(this).find('.' + csPrefix + '-menu')[0]); 2914 }); 2915 }); 2916 } 2917 $selects.each(function () { 2918 convertSelectToDropdown(this); 2919 }); 2920 if (putAllInMessage && hasCustomFields) { 2921 $allElements.on('change', function () { 2922 if (!this.hasAttribute('data-name')) { 2923 return; 2924 } 2925 var message = ''; 2926 var customMessages = []; 2927 $customFields.forEach(function ($el) { 2928 var value = $el.val(); 2929 if (!value) { 2930 return; 2931 } 2932 if ($el.attr('data-name') === 'message') { 2933 message = value; 2934 return; 2935 } 2936 var label = $section.find(`label[for='${$el[0].id}']`).text(); 2937 customMessages.push(label + ': ' + ($el[0].tagName === 'TEXTAREA' ? '\n' : '') + value); 2938 }); 2939 if (customMessages.length) { 2940 if (message) { 2941 customMessages.push('Message: \n' + message); 2942 } 2943 $form[0].elements['message'].value = customMessages.join('\n'); 2944 } else { 2945 $form[0].elements['message'].value = message; 2946 } 2947 }); 2948 } 2949 } 2950 function initModalColors() { 2951 try { 2952 if (!$section.css('--bgColor')) { 2953 var colorStr = $section.css('background-color'); 2954 var bgColor = makeColor(colorStr); 2955 var isDark = (bgColor.rgba.r * 299 + bgColor.rgba.g * 587 + bgColor.rgba.b * 114) / 1000 < 128; 2956 $section[0].style.setProperty('--bgColor', colorStr); 2957 $section[0].style.setProperty('--bgColor_H', bgColor.hsla.h + 'deg'); 2958 $section[0].style.setProperty('--bgColor_S', bgColor.hsla.s + '%'); 2959 $section[0].style.setProperty('--bgColor_L', bgColor.hsla.l + '%'); 2960 $section[0].style.setProperty('--bgColor_A', bgColor.hsla.a); 2961 $section[0].style.setProperty('--bgColor_darkenDir', isDark ? 1 : -1); 2962 $section.addClass('is-background-color-' + (isDark ? 'dark' : 'light')); 2963 } 2964 } catch (e) {} 2965 } 2966 function makeColor(str) { 2967 var color = { 2968 rgba: { 2969 r: 0, 2970 g: 0, 2971 b: 0, 2972 a: 0 2973 } 2974 }; 2975 if (str && str.match) { 2976 var m = str.match(/rgba?\s*\((\d+)\s*,\s*(\d+)\s*,\s*(\d+)(?:\s*,\s*([\.0-9]+))?\)/); 2977 if (m) { 2978 color.rgba.r = parseInt(m[1]); 2979 color.rgba.g = parseInt(m[2]); 2980 color.rgba.b = parseInt(m[3]); 2981 color.rgba.a = parseFloat(m[4]); 2982 if (isNaN(color.rgba.a)) { 2983 color.rgba.a = 1; 2984 } 2985 } 2986 } 2987 color.hsla = makeHSLA(color.rgba); 2988 return color; 2989 } 2990 function makeHSLA(rgba) { 2991 var r = rgba.r / 255, 2992 g = rgba.g / 255, 2993 b = rgba.b / 255, 2994 a = rgba.a; 2995 var min = Math.min(r, g, b), 2996 max = Math.max(r, g, b), 2997 l = (max + min) / 2, 2998 d = max - min, 2999 h, 3000 s; 3001 switch (max) { 3002 case min: 3003 h = 0; 3004 break; 3005 case r: 3006 h = 60 * (g - b) / d; 3007 break; 3008 case g: 3009 h = 60 * (b - r) / d + 120; 3010 break; 3011 case b: 3012 h = 60 * (r - g) / d + 240; 3013 break; 3014 } 3015 if (max == min) { 3016 s = 0; 3017 } else if (l < .5) { 3018 s = d / (2 * l); 3019 } else { 3020 s = d / (2 - 2 * l); 3021 } 3022 s *= 100; 3023 l *= 100; 3024 return { 3025 h: h, 3026 s: s, 3027 l: l, 3028 a: a 3029 }; 3030 } 3031 if ($section.is('.modal')) { 3032 initModalColors(); 3033 $section.on('lpui-show', function () { 3034 window.lpUI.requestScrollLock(sectionDomId); 3035 }); 3036 $section.on('lpui-hide', function () { 3037 window.lpUI.releaseScrollLock(sectionDomId); 3038 }); 3039 } 3040 initializeSelects(); 3041 var $addressInputs = $section.find('.js-address-autocomplete'); 3042 if ($addressInputs.length && window.luxuryPresence && window.luxuryPresence.mapApiLoader) { 3043 window.luxuryPresence.mapApiLoader.load().then(function () { 3044 var autocompleteOptions = { 3045 types: ['geocode'], 3046 fields: ['formatted_address'] 3047 }; 3048 $addressInputs.each(function () { 3049 var input = this; 3050 var autocomplete = new google.maps.places.Autocomplete(input, autocompleteOptions); 3051 autocomplete.addListener('place_changed', function () { 3052 var place = autocomplete.getPlace(); 3053 if (place && place.formatted_address) { 3054 input.value = place.formatted_address; 3055 } 3056 }); 3057 }); 3058 }); 3059 } 3060})('section-b4d4f5c1-8476-43a0-87d1-672e27bc9d8f', 'undefined'); 3061} catch(e) { 3062console.log(e); 3063} 3064 try { 3065(function init(sectionDomId) { 3066 var location = $('#' + sectionDomId).find('.js-container').data('location'); 3067 var mapContainer = $('#' + sectionDomId).find('.js-container')[0]; 3068 var minus = $(`#${sectionDomId}`).find('.js-minus'); 3069 var plus = $(`#${sectionDomId}`).find('.js-plus'); 3070 var bwMap = $('#' + sectionDomId).find('.js-container').data('bw'); 3071 var bwTheme = [{ 3072 "elementType": "geometry", 3073 "stylers": [{ 3074 "color": "#f5f5f5" 3075 }] 3076 }, { 3077 "elementType": "labels.icon", 3078 "stylers": [{ 3079 "visibility": "off" 3080 }] 3081 }, { 3082 "elementType": "labels.text.fill", 3083 "stylers": [{ 3084 "color": "#616161" 3085 }] 3086 }, { 3087 "elementType": "labels.text.stroke", 3088 "stylers": [{ 3089 "color": "#f5f5f5" 3090 }] 3091 }, { 3092 "featureType": "administrative.land_parcel", 3093 "elementType": "labels.text.fill", 3094 "stylers": [{ 3095 "color": "#bdbdbd" 3096 }] 3097 }, { 3098 "featureType": "poi", 3099 "elementType": "geometry", 3100 "stylers": [{ 3101 "color": "#eeeeee" 3102 }] 3103 }, { 3104 "featureType": "poi", 3105 "elementType": "labels.text.fill", 3106 "stylers": [{ 3107 "color": "#757575" 3108 }] 3109 }, { 3110 "featureType": "poi.park", 3111 "elementType": "geometry", 3112 "stylers": [{ 3113 "color": "#e5e5e5" 3114 }] 3115 }, { 3116 "featureType": "poi.park", 3117 "elementType": "labels.text.fill", 3118 "stylers": [{ 3119 "color": "#9e9e9e" 3120 }] 3121 }, { 3122 "featureType": "road", 3123 "elementType": "geometry", 3124 "stylers": [{ 3125 "color": "#ffffff" 3126 }] 3127 }, { 3128 "featureType": "road.arterial", 3129 "elementType": "labels.text.fill", 3130 "stylers": [{ 3131 "color": "#757575" 3132 }] 3133 }, { 3134 "featureType": "road.highway", 3135 "elementType": "geometry", 3136 "stylers": [{ 3137 "color": "#dadada" 3138 }] 3139 }, { 3140 "featureType": "road.highway", 3141 "elementType": "labels.text.fill", 3142 "stylers": [{ 3143 "color": "#616161" 3144 }] 3145 }, { 3146 "featureType": "road.local", 3147 "elementType": "labels.text.fill", 3148 "stylers": [{ 3149 "color": "#9e9e9e" 3150 }] 3151 }, { 3152 "featureType": "transit.line", 3153 "elementType": "geometry", 3154 "stylers": [{ 3155 "color": "#e5e5e5" 3156 }] 3157 }, { 3158 "featureType": "transit.station", 3159 "elementType": "geometry", 3160 "stylers": [{ 3161 "color": "#eeeeee" 3162 }] 3163 }, { 3164 "featureType": "water", 3165 "elementType": "geometry", 3166 "stylers": [{ 3167 "color": "#c9c9c9" 3168 }] 3169 }, { 3170 "featureType": "water", 3171 "elementType": "labels.text.fill", 3172 "stylers": [{ 3173 "color": "#9e9e9e" 3174 }] 3175 }]; 3176 if (mapContainer) { 3177 window.luxuryPresence.mapApiLoader.load().then(() => { 3178 function ZoomControl(controlDiv, map) { 3179 var controlWrapper = document.createElement('div'); 3180 controlWrapper.style.backgroundColor = 'transparent'; 3181 controlWrapper.style.width = '1px'; 3182 controlWrapper.style.height = '1px'; 3183 controlDiv.appendChild(controlWrapper); 3184 var zoomInButton = document.createElement('div'); 3185 zoomInButton.style.width = '1px'; 3186 zoomInButton.style.height = '1px'; 3187 zoomInButton.classList.add("js-zoom-in"); 3188 zoomInButton.style.backgroundColor = 'transparent'; 3189 zoomInButton.style.opacity = '0'; 3190 controlWrapper.appendChild(zoomInButton); 3191 var zoomOutButton = document.createElement('div'); 3192 zoomOutButton.style.width = '1px'; 3193 zoomOutButton.style.height = '1px'; 3194 zoomOutButton.classList.add('js-zoom-out'); 3195 zoomOutButton.style.backgroundColor = 'transparent'; 3196 zoomOutButton.style.opacity = '0'; 3197 controlWrapper.appendChild(zoomOutButton); 3198 google.maps.event.addDomListener(zoomInButton, 'click', function () { 3199 map.setZoom(map.getZoom() + 1); 3200 }); 3201 google.maps.event.addDomListener(zoomOutButton, 'click', function () { 3202 map.setZoom(map.getZoom() - 1); 3203 }); 3204 const handleZoomIn = () => { 3205 const zoomIn = $(`#${sectionDomId}`).find('.js-zoom-in'); 3206 zoomIn.trigger('click'); 3207 }; 3208 const handleZoomOut = () => { 3209 const zoomOut = $(`#${sectionDomId}`).find('.js-zoom-out'); 3210 zoomOut.trigger('click'); 3211 }; 3212 plus.on('click', handleZoomIn); 3213 minus.on('click', handleZoomOut); 3214 } 3215 function initializeMap(latLong) { 3216 var url = 'https://www.google.com/maps/search/?api=1&query=' + latLong.lat + ',' + latLong.lng; 3217 var markerIcon = { 3218 fillColor: '#000000', 3219 fillOpacity: 1, 3220 anchor: new google.maps.Point(1, 1), 3221 strokeWeight: 0, 3222 scale: 1, 3223 path: "M13 0C5.83185 0 0 5.70598 0 12.7194C0 21.5346 13.0128 36.5926 13.0128 36.5926C13.0128 36.5926 26 21.101 26 12.7194C26 5.70598 20.1684 0 13 0ZM16.9224 16.4437C15.8408 17.5016 14.4205 18.0307 13 18.0307C11.5797 18.0307 10.1589 17.5016 9.07786 16.4437C6.915 14.3277 6.915 10.8846 9.07786 8.76846C10.1252 7.74332 11.5183 7.17871 13 7.17871C14.4817 7.17871 15.8746 7.74354 16.9224 8.76846C19.0852 10.8846 19.0852 14.3277 16.9224 16.4437Z" 3224 }; 3225 var map = new google.maps.Map(mapContainer, { 3226 center: latLong, 3227 zoom: location.mapOptions.zoom, 3228 disableDefaultUI: true, 3229 styles: bwMap ? bwTheme : {} 3230 }); 3231 $(`#${sectionDomId}
3231`).find('.custom-controls').addClass('show'); 3232 var mapControlsContainer = document.createElement('div'); 3233 var zoomControl = new ZoomControl(mapControlsContainer, map); 3234 mapControlsContainer.index = 1; 3235 map.controls[google.maps.ControlPosition.TOP_LEFT].push(mapControlsContainer); 3236 var marker = new google.maps.Marker({ 3237 position: latLong, 3238 map: map, 3239 icon: markerIcon 3240 }); 3241 marker.addListener('click', function () { 3242 window.open(url, '_blank'); 3243 }); 3244 } 3245 initializeMap(location.mapOptions.center); 3246 }); 3247 } 3248})('section-50aa3994-7612-44a8-bc55-905d7248abd2', 'undefined'); 3249} catch(e) { 3250console.log(e); 3251} 3252 try { 3253(function init(sectionDomId, options) { 3254 let section = null; 3255 switch (sectionDomId) { 3256 case 'NAVBAR': 3257 section = document.querySelector('body > nav, #global-navbar'); 3258 break; 3259 case 'FOOTER': 3260 section = document.querySelector('body > footer, #global-footer'); 3261 break; 3262 case 'SIDEMENU': 3263 section = document.querySelector('body > div.sidemenu, #global-sidemenu'); 3264 break; 3265 case 'CONTACT': 3266 section = document.querySelector('#modal-global-contact-us'); 3267 break; 3268 case 'MOBILE_CONTACT': 3269 section = document.querySelector('body > div.mobile-contact-wrapper, #global-mobile-contact'); 3270 break; 3271 case 'SUBSCRIBE': 3272 // Subscribe Not Implemented 3273 section = null; 3274 break; 3275 case 'ACCOUNT': 3276 // Account Not Implemented 3277 section = null; 3278 break; 3279 default: 3280 section = document.querySelector('#' + sectionDomId); 3281 } 3282 if (!section) { 3283 return; 3284 } 3285 var url = window.luxuryPresence.defaults.routerUrl; 3286 var companyId = window.luxuryPresence.defaults.companyId; 3287 var limit = options.limit || 8; 3288 if (typeof limit === 'string') { 3289 limit = parseInt(limit, 10) || 8; // this NaN protection also filters out 0 - this is expected 3290 } 3291 var templateSelector = options.templateSelector || '.jsIGTemplate'; 3292 var containerSelector = options.containerSelector || '.jsIGContainer'; 3293 var hasDataClass = options.hasDataClass || 'has-data'; 3294 var hideActivateMessage = options.hasDataClass || false; 3295 var payload = { 3296 companyId: companyId, 3297 limit: limit 3298 }; 3299 if (options.resourceId && typeof options.resourceId === 'string' && !options.resourceId.match(/^{{.*}}$/)) { 3300 payload.resourceId = options.resourceId; 3301 // Federated enum values are uppercase (AGENT/TEAM); element configs carry lowercase 3302 payload.resource = String(options.resource || 'agent').toUpperCase(); 3303 payload.fallbackToNoResource = options.fallbackToNoResource === 'true' || options.fallbackToNoResource === true; 3304 } 3305 var query = 'query InstagramFeed (\n' + ' $companyId: ID!\n' + ' $instagramAuthorizationId: ID\n' + ' $username: String\n' + (payload.resourceId ? '$resource: InstagramContentAuthResourceEnum\n $resourceId: ID\n $fallbackToNoResource: Boolean' : '') + ' $limit: Int\n' + ') {\n' + ' instagramContentFeed (\n' + ' companyId: $companyId\n' + ' instagramAuthorizationId: $instagramAuthorizationId\n' + ' username: $username\n' + (payload.resourceId ? 'resource: $resource\n resourceId: $resourceId\n fallbackToNoResource: $fallbackToNoResource' : '') + ' limit: $limit\n' + ' ) {\n' + ' active\n' + ' feedUrl\n' + ' username\n' + ' items {\n' + ' id\n' + ' caption\n' + ' commentsCount\n' + ' likeCount\n' + ' mediaType\n' + ' mediaUrl\n' + ' permalink\n' + ' shortcode\n' + ' thumbnailUrl\n' + ' timestamp\n' + ' username\n' + ' }\n' + ' }\n' + '}\n'; 3306 var templateHTML = section.querySelector(templateSelector)?.innerHTML || ''; 3307 var template = Handlebars.compile(templateHTML); 3308 var container = section.querySelector(containerSelector); 3309 if (options.variables) { 3310 Object.keys(options.variables).forEach(function (key) { 3311 if (options.variables.hasOwnProperty(key) && (typeof options.variables[key] !== 'string' || !options.variables[key].match(/^{{.*}}$/))) { 3312 payload[key] = options.variables[key]; 3313 } 3314 }); 3315 } 3316 function getData() { 3317 var feed = { 3318 error: true 3319 }; 3320 if (payload.companyId == null || payload.companyId === '') { 3321 // instagramContentFeed requires companyId (ID!) â nothing to fetch without it. 3322 // Checked after the options.variables merge, which may override the default. 3323 // Deferred so element listeners (attached after this template runs) still receive it. 3324 setTimeout(function () { 3325 section.dispatchEvent(new CustomEvent('ig-data', { 3326 detail: feed 3327 })); 3328 }, 0); 3329 return; 3330 } 3331 superagent.post(url + '/graphql').send({ 3332 query: query, 3333 variables: payload 3334 }).then(res => {
3335 try { 3336 if (!res.body.errors) { 3337 feed = res.body.data.instagramContentFeed; 3338 if (!feed.active) { 3339 if (!hideActivateMessage && sectionDomId === 'section-temp' && container) { 3340 if (payload.resourceId) { 3341 container.innerHTML = '<div style="text-align: center">Instagram account is not connected to selected ' + payload.resource + '.<br /> Connect it on the ' + payload.resource + ' page</div>'; 3342 } else { 3343 container.innerHTML = '<div style="text-align: center">Instagram account is not connected.<br /> Connect it on <a href="/profile">Profile page</a></div>'; 3344 } 3345 } 3346 } else { 3347 if (feed.items.length) { 3348 if (hasDataClass) { 3349 section.classList.add(hasDataClass); 3350 } 3351 const feedName = feed.username; 3352 section.querySelectorAll('.jsIGLink').forEach(link => link.setAttribute('href', feed.feedUrl)); 3353 section.querySelectorAll('.jsIGName').forEach(name => { 3354 name.textContent = '@' + feedName; 3355 name.setAttribute('title', '@' + feedName); 3356 }); 3357 if (container && template) { 3358 container.innerHTML = template(feed); 3359 } 3360 } 3361 } 3362 } 3363 } catch (e) {} 3364 section.dispatchEvent(new CustomEvent('ig-data', { 3365 detail: feed 3366 })); 3367 }).catch(e => { 3368 console.log('err', e); 3369 section.dispatchEvent(new CustomEvent('ig-data', { 3370 detail: feed 3371 })); 3372 }); 3373 } 3374 getData(); 3375})('section-962259ca-bbed-43b9-b966-6672a66322ca', JSON.parse("{\"companyId\":\"91fbc08c-fdd4-4694-9b47-af7763429a7a\",\"sectionIndex\":4,\"useRouterApi\":false,\"routerApiAux\":{\"neighborhoods\":false,\"postCategories\":false,\"offices\":false}}")); 3376} catch(e) { 3377console.log(e); 3378} 3379 try { 3380(function init(sectionDomId) { 3381 $("#" + sectionDomId).on("ig-data", function () { 3382 let title = $("#" + sectionDomId + " .js-slider-holder").data("title"); 3383 if (title) { 3384 $("#" + sectionDomId + " .js-h3").text(title); 3385 } 3386 if (window.matchMedia("(max-width: 768px)").matches) { 3387 $("#" + sectionDomId + " .js-slider-holder").before($("#" + sectionDomId + " .js-title-group").clone()); 3388 } 3389 $("#" + sectionDomId + " .js-collection .js-title-group").remove(); 3390 function buildSlick() { 3391 $('#' + sectionDomId + ' .js-collection').slick({ 3392 autoplay: true, 3393 arrows: false, 3394 speed: 0, 3395 autoplaySpeed: 6000, 3396 dots: false, 3397 infinite: true, 3398 slidesToShow: 4, 3399 slidesToScroll: 4, 3400 cssEase: 'linear', 3401 variableWidth: true, 3402 centerMode: false, 3403 swipe: false, 3404 responsive: [{ 3405 breakpoint: 1024, 3406 settings: { 3407 slidesToShow: 2, 3408 slidesToScroll: 2 3409 } 3410 }, { 3411 breakpoint: 768, 3412 settings: { 3413 slidesToShow: 4, 3414 slidesToScroll: 4 3415 } 3416 }] 3417 }); 3418 } 3419 if ($("#" + sectionDomId + " .js-collection").length) { 3420 if ($("#" + sectionDomId + " .js-collection").hasClass('slick-initialized')) { 3421 $("#" + sectionDomId + " .js-collection").slick('unslick'); 3422 buildSlick(); 3423 } else { 3424 buildSlick(); 3425 } 3426 } 3427 }); 3428})('section-962259ca-bbed-43b9-b966-6672a66322ca', 'undefined'); 3429} catch(e) { 3430console.log(e); 3431} 3432 3433 var { body } = document; 3434 var globalNav = body.querySelector(':scope > nav'); 3435 var globalSideMenu = body.querySelector(':scope > div.sidemenu'); 3436 3437 document.querySelectorAll('body > .modal .close').forEach(modalCloseBtn => { 3438 modalCloseBtn.addEventListener('click', function() { 3439 window.lpUI.hideClosestModal(modalCloseBtn); 3440 }); 3441 }); 3442 3443 window.addEventListener('click', function() { 3444 document.querySelectorAll('.share-popup').forEach(sharedPopup => { 3445 sharedPopup.style.display = 'none' ; 3446 }); 3447 }); 3448 3449 /* Misc Partials / Addons */ 3450 function initWOW() { 3451 if (wow) { 3452 wow.init(); 3453 wow.scrollHandler(); 3454 setTimeout(function () { 3455 const wowHideStyle = document.getElementById('wow-hide-elements'); 3456 if(wowHideStyle) { 3457 wowHideStyle.disabled = true; 3458 } 3459 }, 1); 3460 } 3461 } 3462 3463 const wowHideElements = document.getElementById('wow-hide-elements'); 3464 if (wowHideElements) { 3465 wowHideElements.disabled = false;
3466 } 3467 3468 initWOW(); 3469 3470 /* Generic Navbar Handling */ 3471 globalNav?.querySelectorAll('.hamburger-component').forEach(hamburgerComponent => { 3472 hamburgerComponent.addEventListener('click', function() { 3473 window.lpUI.sideMenuToggle(); 3474 }); 3475 }); 3476 globalSideMenu?.querySelectorAll('.toggle').forEach(toggleEl => { 3477 toggleEl.addEventListener('click', function() { 3478 window.lpUI.sideMenuToggle(); 3479 }); 3480 }); 3481 3482 document.querySelectorAll('body > nav .sub-nav-container > a, body > div.sidemenu .sub-nav-container > a').forEach(linkEl => { 3483 linkEl.addEventListener('click', function(e) { 3484 e.preventDefault(); 3485 e.stopPropagation(); 3486 var subNav = linkEl.parentElement.querySelector(':scope > .sub-nav'); 3487 if (subNav && subNav.classList.contains('visible')){ 3488 subNav.classList.remove('visible'); 3489 } else { 3490 globalNav?.querySelectorAll('.sub-nav-container .sub-nav').forEach(globalSubNav => { 3491 globalSubNav.classList.remove('visible'); 3492 }); 3493 globalSideMenu?.querySelectorAll('.sub-nav').forEach(sideMenuSubNav => { 3494 sideMenuSubNav.classList.remove('visible'); 3495 }); 3496 subNav?.classList.add('visible'); 3497 } 3498 }); 3499 }); 3500 window.addEventListener('click', function() { 3501 document.querySelectorAll('nav .sub-nav.visible, .sidemenu .sub-nav.visible').forEach(subNavEl => { 3502 subNavEl.classList.remove('visible'); 3503 }); 3504 }); 3505 3506 } 3507 3508 document.addEventListener('DOMContentLoaded', lpGlobalInit); 3509 3510 </script>
3510 3511 3512
3512<script type="module"> 3513 function selectorExists(selector) { 3514 return document.querySelector(selector) !== null; 3515 } 3516 3517 // Function to initialize the third-party library 3518 function initParoller(selector = '.my-paroller') { 3519 var $parollerElements = $(selector); 3520 if ($parollerElements.length > 0 && typeof $parollerElements.paroller === 'function') { 3521 $parollerElements.paroller(); 3522 } 3523 } 3524 3525 const parollerSelector = '.my-paroller'; 3526 3527 if (selectorExists(parollerSelector)) { 3528 window.luxuryPresence.libs.loadJs(window.luxuryPresence.libs.jsLibsMap.paroller.jsSrc, function() { 3529 initParoller(parollerSelector); 3530 window.luxuryPresence.libs.jsLibsMap.paroller.isLoaded = true; 3531 }); 3532 } 3533 </script>
3533 3534 3535 <!-- Follow Up Boss Page View Tracker--> 3536
3536<script type="text/plain" data-consent-category="analytics"> 3537 window.widgetTracker("send", "pageview"); 3538 </script>
3538 3539 <!-- End Follow Up Boss Page View Tracker --> 3540 <!-- Google Tag Manager (noscript) -->
vendor: 80 bytes, lines 3540-3541
3540 3541 <noscript><iframe src="https://www.googletagmanager.com/ns.html?id=
3541GTM-WQKMKLV
vendor: 107 bytes, lines 3541-3543
3541" 3542 height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript> 3543
3543<!-- End Google Tag Manager --> 3544 <!-- Google Tag Manager (noscript) -->
vendor: 80 bytes, lines 3544-3545
3544 3545 <noscript><iframe src="https://www.googletagmanager.com/ns.html?id=
3545GTM-NRB4D5T
vendor: 107 bytes, lines 3545-3547
3545" 3546 height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript> 3547
3547<!-- End Google Tag Manager --> 3548 <!-- Google Tag Manager (noscript) -->
vendor: 80 bytes, lines 3548-3549
3548 3549 <noscript><iframe src="https://www.googletagmanager.com/ns.html?id=
3549GTM-T9SFQGHZ
vendor: 107 bytes, lines 3549-3551
3549" 3550 height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript> 3551
3551<!-- End Google Tag Manager --> 3552 3553
3553<script 3554 src="https://cdn.luxurypresence.com/scripts/a11y-widget/latest/widget.js" 3555 data-website-id="4f5abd92-f372-41bf-8c80-8070772ada5c" 3556 3557 defer></script>
vendor: 1 bytes, line 3557
3557
3558<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>
vendor: 1 bytes, line 3558
3558
3559<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:'a435afbe49f3127b',t:'MTc5MDc5NzA5MQ=='};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>
3559</body> 3560</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.