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 - Level 5 Real Estate</title> 10 <meta property="og:title" content="Contact Us - Level 5 Real Estate"> 11 <meta name="twitter:title" content="Contact Us - Level 5 Real Estate"> 12 <meta name="description" content="Start your real estate journey with Level 5 Real Estate and discover an experience like no other. Interested? Call (415) 205-5218 for inquiries!"> 13 <meta property="og:description" content="Start your real estate journey with Level 5 Real Estate and discover an experience like no other. Interested? Call (415) 205-5218 for inquiries!"> 14 <meta name="twitter:description" content="Start your real estate journey with Level 5 Real Estate and discover an experience like no other. Interested? Call (415) 205-5218 for inquiries!"> 15 <meta property="og:image" content="https://media-production.lp-cdn.com/media/ee4b2427-bcec-43cf-b65c-718b187e583f"> 16 <meta name="twitter:image" content="https://media-production.lp-cdn.com/media/ee4b2427-bcec-43cf-b65c-718b187e583f"> 17 <meta property="og:url" content="https://level5realestate.com/contact"> 18 <link rel="canonical" href="https://level5realestate.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:36px;--global-h3-font-size:30px;--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:36px;}h3{font-size:30px;}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">#global-footer .footer-navigation__link:hover{color:#7a9ac4;}footer#global-footer .site-footer__disclaimer{opacity:100;}footer .site-footer__col-content{opacity:1!important;}.auto-year-update::after{content:' Level 5 Real Estate, DRE# 02014153';}body>div.mobile-contact-wrapper .mobile-contact.with-search div.buttons-holder{bottom:150px;}@media only screen and (max-width: 768px){iframe[name='widgetCta']{bottom:55px!important;right:10px!important;}}iframe[name="widgetCta"]{bottom:50px!important;right:15px!important;}nav#global-navbar .header.theme-light .header__hamburger circle{fill:#7A9AC4;}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:#FFF;background-color:#000;}nav#global-navbar .header.theme-light ul.navigation li.navigation__item .sub-nav__link:hover{color:#FFF;background-color:#7A9AC4;}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:#7A9AC4;}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:#FFF;background-color:#000;}nav#global-navbar .header ul.navigation li.navigation__item .sub-nav__link:hover{color:#FFF;background-color:#6c6e70;}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:#7A9AC4;}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:#FFF;background-color:#000;}nav#global-navbar.scroll .header ul.navigation li.navigation__item .sub-nav__link:hover{color:#FFF;background-color:#7A9AC4;}nav#global-navbar.scroll .header ul.navigation li.navigation__item .navigation__link:after{background:#7A9A
31C4;}nav#global-navbar.scroll .header .search__btn svg{color:#FFF;}nav#global-navbar.scroll .header a.header__btn-contact{background:transparent;color:#fff!important;border-color:#fff!important;}nav#global-navbar.scroll .header a.header__btn-contact:hover{background:#fff!important;color:#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;}@media only screen and (max-width: 1024px){#modal-global-contact-us .contact-form__form{padding-top:60px;}#modal-global-contact-us .contact-form .contact-form__close{opacity:1;}#modal-global-contact-us .contact-form .contact-form__close:after{background-color:#fff;}#modal-global-contact-us .contact-form .contact-form__close:before{background-color:#fff;}}</style> 32 <style id="wow-hide-elements">.wow{visibility:hidden!important}</style> 33 <style id="page-css"> 34 #section-abad8af8-9b74-44c9-9737-db2314cb5f64{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://res.cloudinary.com/luxuryp/images/w_1280,c_limit,f_auto,q_auto/mcdm9dnn9sgb8qgxjacm/f_contact');background-repeat:no-repeat;-webkit-background-position:center;background-position:center;-webkit-background-size:cover;background-size:cover;}#section-abad8af8-9b74-44c9-9737-db2314cb5f64 .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-abad8af8-9b74-44c9-9737-db2314cb5f64 .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-abad8af8-9b74-44c9-9737-db2314cb5f64 .video-wrapper .full-screen-video-component .video-wrapper.playing video{opacity:1!important;}#section-abad8af8-9b74-44c9-9737-db2314cb5f64 .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-abad8af8-9b74-44c9-9737-db2314cb5f64 .lp-play.visible{opacity:1;cursor:pointer;}@media (max-width: 900px){#section-abad8af8-9b74-44c9-9737-db2314cb5f64 .lp-play.visible{display:none;}}@media (max-width: 900px){#section-abad8af8-9b74-44c9-9737-db2314cb5f64 .lp-play{display:none;}}#section-abad8af8-9b74-44c9-9737-db2314cb5f64.parallax-enabled{z-index:unset;}#section-abad8af8-9b74-44c9-9737-db2314cb5f64.parallax-enabled .lp-container{position:relative;}#section-abad8af8-9b74-44c9-9737-db2314cb5f64.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-abad8af8-9b74-44c9-9737-db2314cb5f64.parallax-enabled>div.video-wrapper{left:0;top:0;width:100%;}}#section-abad8af8-9b74-44c9-9737-db2314cb5f64.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-abad8af8-9b74-44c9-9737-db2314cb5f64.parallax-enabled>div.overlay-component{left:0;top:0;width:100%;}}#section-abad8af8-9b74-44c9-9737-db2314cb5f64.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-abad8af8-9b74-44c9-9737-db2314cb5f64.parallax-enabled .opening-with-search:before{left:0;top:0;width:100%;}}#section-abad8af8-9b74-44c9-9737-db2314cb5f64 .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-abad8af8-9b74-44c9-9737-db2314cb5f64 .opening-with-search:before{display:none;}#section-abad8af8-9b74-44c9-9737-db2314cb5f64 .opening-with-search.height-class-Full{min-height:100vh;}#section-abad8af8-9b74-44c9-9737-db2314cb5f64 .opening-with-search.height-class-Full>div.video-wrapper{height:100vh;}#section-abad8af8-9b74-44c9-9737-db2314cb5f64 .opening-with-search.height-class-Full:before{min-height:100vh;}#section-abad8af8-9b74-44c9-9737-db2314cb5f64 .opening-with-search.height-class-770px{min-height:770px;}#section-abad8af8-9b74-44c9-9737-db2314cb5f64 .opening-with-search.height-class-770px>div.video-wrapper{height:770px;}#section-abad8af8-9b74-44c9-9737-db2314cb5f64 .opening-with-search.height-class-770px:before{min-height:770px;}#section-abad8af8-9b74-44c9-9737-db2314cb5f64 .opening-with-search.height-class-600px{min-height:600px;}#section-abad8af8-9b74-44c9-9737-db2314cb5f64 .opening-with-search.height-class-600px>div.video-wrapper{height:600px;}#section-abad8af8-9b74-44c9-9737-db2314cb5f64 .opening-with-search.height-class-600px:before{min-height:600px;}#section-abad8af8-9b74-44c9-9737-db2314cb5f64 .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-abad8af8-9b74-44c9-9737-db2314cb5f64 .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-abad8af8-9b74-44c9-9737-db2314cb5f64 .opening-with-search .opening-description{letter-spacing:.1em;margin-bottom:15px;max-width:640px;margin-left:auto;margin-right:auto;}#section-abad8af8-9b74-44c9-9737-db2314cb5f64 .opening-with-search .opening-description a,#section-abad8af8-9b74-44c9-9737-db2314cb5f64 .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-abad8af8-9b74-44c9-9737-db2314cb5f64 .opening-with-search .opening-pretitle{margin-bottom:15px;max-width:860px;margin-left:auto;margin-right:auto;white-space:pre-line;}#section-abad8af8-9b74-44c9-9737-db2314cb5f64 .opening-with-search .opening-title{margin-bottom:15px;max-width:860px;margin-left:auto;margin-right:auto;white-space:pre-line;}#section-abad8af8-9b74-44c9-9737-db2314cb5f64 .opening-with-search .opening-button{margin:0 15px;}@media (max-width: 768px){#section-abad8af8-9b74-44c9-9737-db2314cb5f64 .opening-with-search .opening-button{margin:0;}}#section-abad8af8-9b74-44c9-9737-db2314cb5f64 .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-abad8af8-9b74-44c9-9737-db2314cb5f64 .opening-with-search .search-form.with-filters{padding-top:32px;}#section-abad8af8-9b74-44c9-9737-db2314cb5f64 .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-abad8af8-9b74-44c9-9737-db2314cb5f64 .opening-with-search .search-button:hover{background-color:#fff;color:#000;}#section-abad8af8-9b74-44c9-9737-db2314cb5f64 .opening-with-search .search-lease-tabs{position:absolute;left:0;bottom:100%;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;}#section-abad8af8-9b74-44c9-9737-db2314cb5f64 .opening-with-search .search-lease-tab{padding:4px 20px;background-color:#000;color:#fff;cursor:pointer;}#section-abad8af8-9b74-44c9-9737-db2314cb5f64 .opening-with-search .search-lease-tab.active{background-color:#fff;color:#000;}#section-abad8af8-9b74-44c9-9737-db2314cb5f64 .opening-with-search .search-wrapper{margin:5px;letter-spacing:normal;width:100%;max-width:444px;position:relative;}#section-abad8af8-9b74-44c9-9737-db2314cb5f64 .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-abad8af8-9b74-44c9-9737-db2314cb5f64 .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-abad8af8-9b74-44c9-9737-db2314cb5f64 .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-abad8af8-9b74-44c9-9737-db2314cb5f64 .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-abad8af8-9b74-44c9-9737-db2314cb5f64 .opening-with-search .results-container,#section-abad8af8-9b74-44c9-9737-db2314cb5f64 .opening-with-search .predefined-links{padding:10px 0;}#section-abad8af8-9b74-44c9-9737-db2314cb5f64 .opening-with-search .results-container a,#section-abad8af8-9b74-44c9-9737-db2314cb5f64 .opening-with-search .predefined-links a{color:#b6b6b6;-webkit-transition:color 0.3s ease;transition:color 0.3s ease;}#section-abad8af8-9b74-44c9-9737-db2314cb5f64 .opening-with-search .results-container a:hover,#section-abad8af8-9b74-44c9-9737-db2314cb5f64 .opening-with-search .predefined-links a:hover{color:#fff;}#section-abad8af8-9b74-44c9-9737-db2314cb5f64 .opening-with-search .predefined-links{max-height:400px;overflow:auto;}#section-abad8af8-9b74-44c9-9737-db2314cb5f64 .opening-with-search .results-block{margin:15px 0;}#section-abad8af8-9b74-44c9-9737-db2314cb5f64 .opening-with-search .results-block-title{margin:0;padding:0 48px;}#section-abad8af8-9b74-44c9-9737-db2314cb5f64 .opening-with-search .results-block-title .results-title-label{margin:0 20px 10px 0;}#section-abad8af8-9b74-44c9-9737-db2314cb5f64 .opening-with-search .results-block-title .search-near-container{margin-bottom:15px;}#section-abad8af8-9b74-44c9-9737-db2314cb5f64 .opening-with-search .results-block:nth-child(n + 2) .search-near-container{display:none;}#section-abad8af8-9b74-44c9-9737-db2314cb5f64 .opening-with-search .results-link{display:block;padding:4px 48px;width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}#section-abad8af8-9b74-44c9-9737-db2314cb5f64 .opening-with-search .results-link.selected-link{color:#fff;background-color:rgba(255, 255, 255, 0.2);}#section-abad8af8-9b74-44c9-9737-db2314cb5f64 .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-abad8af8-9b74-44c9-9737-db2314cb5f64 .opening-with-search .not-visible{display:none!important;}#section-abad8af8-9b74-44c9-9737-db2314cb5f64 .opening-with-search .nothing-found{width:100%;padding:20px;}@media (max-width: 560px){#section-abad8af8-9b74-44c9-9737-db2314cb5f64 .opening-with-search .search-form{-webkit-box-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;}#section-abad8af8-9b74-44c9-9737-db2314cb5f64 .opening-with-search .search-button{width:100%;max-width:444px;}}#section-abad8af8-9b74-44c9-9737-db2314cb5f64 .opening-with-search .search-near{cursor:pointer;}#section-abad8af8-9b74-44c9-9737-db2314cb5f64 .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-abad8af8-9b74-44c9-9737-db2314cb5f64 .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-abad8af8-9b74-44c9-9737-db2314cb5f64 .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-abad8af8-9b74-44c9-9737-db2314cb5f64 .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-abad8af8-9b74-44c9-9737-db2314cb5f64 .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-abad8af8-9b74-44c9-9737-db2314cb5f64 .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-abad8af8-9b74-44c9-9737-db2314cb5f64 .loc-msg-close:hover{-webkit-transform:scale(1.2);-moz-transform:scale(1.2);-ms-transform:scale(1.2);transform:scale(1.2);}#section-abad8af8-9b74-44c9-9737-db2314cb5f64 .search-near-hidden .search-near-container{display:none;}#section-abad8af8-9b74-44c9-9737-db2314cb5f64 .loc-msg-title{-webkit-flex:0 0 auto;-ms-flex:0 0 auto;flex:0 0 auto;margin-bottom:20px;}#section-abad8af8-9b74-44c9-9737-db2314cb5f64 .loc-msg-container{-webkit-flex:0 1 auto;-ms-flex:0 1 auto;flex:0 1 auto;overflow:auto;}#section-abad8af8-9b74-44c9-9737-db2314cb5f64 .loc-msg-container p{margin:0;}#section-abad8af8-9b74-44c9-9737-db2314cb5f64 .loc-msg-container p+p{margin-top:1em;}#section-abad8af8-9b74-44c9-9737-db2314cb5f64.visible-loc-msg{z-index:1000;}#section-abad8af8-9b74-44c9-9737-db2314cb5f64.visible-loc-msg .loc-msg-backdrop{background-color:rgba(255,255,255,0.4);}#section-abad8af8-9b74-44c9-9737-db2314cb5f64.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-abad8af8-9b74-44c9-9737-db2314cb5f64{background-image:linear-gradient(var(--gradient-color), var(--gradient-color)),url('https://res.cloudinary.com/luxuryp/images/w_1280,c_limit,f_auto,q_auto/mcdm9dnn9sgb8qgxjacm/f_contact');}}@media (min-width: 1280px) and (orientation: landscape){#section-abad8af8-9b74-44c9-9737-db2314cb5f64{background-image:linear-gradient(var(--gradient-color), var(--gradient-color)),url('https://res.cloudinary.com/luxuryp/images/f_auto,q_auto/mcdm9dnn9sgb8qgxjacm/f_contact');}}@media (min-width: 1920px) and (orientation: landscape){#section-abad8af8-9b74-44c9-9737-db2314cb5f64{background-image:linear-gradient(var(--gradient-color), var(--gradient-color)),url('https://res.cloudinary.com/luxuryp/images/f_auto,q_auto/mcdm9dnn9sgb8qgxjacm/f_contact');}}@media (min-width: 2560px) and (orientation: landscape){#section-abad8af8-9b74-44c9-9737-db2314cb5f64{background-image:linear-gradient(var(--gradient-color), var(--gradient-color)),url('https://res.cloudinary.com/luxuryp/images/f_auto,q_auto/mcdm9dnn9sgb8qgxjacm/f_contact');}}@media (orientation: portrait){#section-abad8af8-9b74-44c9-9737-db2314cb5f64{background-image:linear-gradient(var(--gradient-color), var(--gradient-color)),url('https://res.cloudinary.com/luxuryp/images/c_lfill,w_375,ar_9:16,dpr_2,f_auto,q_auto/mcdm9dnn9sgb8qgxjacm/f_contact');}}@media (orientation: portrait) and (min-width: 768px){#section-abad8af8-9b74-44c9-9737-db2314cb5f64{background-image:linear-gradient(var(--gradient-color), var(--gradient-color)),url('https://res.cloudinary.com/luxuryp/images/c_lfill,w_768,ar_3:4,dpr_2,f_auto,q_auto/mcdm9dnn9sgb8qgxjacm/f_contact');}}#section-fd326016-61d7-4c35-b739-5a761eb6d6d2{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-fd326016-61d7-4c35-b739-5a761eb6d6d2 .uf-cus-sel-item:hover{background:#7A9A
34C4!important;color:#fff!important;}@media only screen and (max-width: 365px){#section-fd326016-61d7-4c35-b739-5a761eb6d6d2 div.lp-input-group .lp-input{max-width:320px!important;margin:auto!important;}}@media only screen and (max-width: 345px){#section-fd326016-61d7-4c35-b739-5a761eb6d6d2 div.lp-input-group .lp-input{max-width:264px!important;margin:auto!important;}}#section-fd326016-61d7-4c35-b739-5a761eb6d6d2.modal.is-background-color-light>button.close{padding:5px;}#section-fd326016-61d7-4c35-b739-5a761eb6d6d2.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-fd326016-61d7-4c35-b739-5a761eb6d6d2.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-fd326016-61d7-4c35-b739-5a761eb6d6d2.modal.is-background-color-light>button.close>img,#section-fd326016-61d7-4c35-b739-5a761eb6d6d2.modal.is-background-color-light>button.close .lp-close-icon{display:none;}#section-fd326016-61d7-4c35-b739-5a761eb6d6d2 .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-fd326016-61d7-4c35-b739-5a761eb6d6d2 .elem-row{-webkit-box-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;}}#section-fd326016-61d7-4c35-b739-5a761eb6d6d2 .elem-col{min-height:1px;padding-left:16px;padding-right:16px;}@media (max-width: 767px){#section-fd326016-61d7-4c35-b739-5a761eb6d6d2 .elem-col{-webkit-flex-basis:100%;-ms-flex-preferred-size:100%;flex-basis:100%;max-width:unset;}}#section-fd326016-61d7-4c35-b739-5a761eb6d6d2 .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-fd326016-61d7-4c35-b739-5a761eb6d6d2 .form-col{padding-left:16px;padding-right:16px;-webkit-flex:1 1 400px;-ms-flex:1 1 400px;flex:1 1 400px;}#section-fd326016-61d7-4c35-b739-5a761eb6d6d2 .form-col:last-child .custom-form__group{margin-bottom:20px;}@media (min-width: 768px){#section-fd326016-61d7-4c35-b739-5a761eb6d6d2 .form-col:last-child .custom-form__group{margin-bottom:30px;}}#section-fd326016-61d7-4c35-b739-5a761eb6d6d2 .lp-label{text-transform:none;}#section-fd326016-61d7-4c35-b739-5a761eb6d6d2 .lp-label.field-required:after{content:' *';}#section-fd326016-61d7-4c35-b739-5a761eb6d6d2 .custom-form{padding-top:80px;padding-bottom:80px;}@media (max-width: 767px){#section-fd326016-61d7-4c35-b739-5a761eb6d6d2 .custom-form{padding-top:50px;padding-bottom:50px;}}#section-fd326016-61d7-4c35-b739-5a761eb6d6d2 .custom-form__img-col{margin-bottom:30px;}@media (min-width: 768px){#section-fd326016-61d7-4c35-b739-5a761eb6d6d2 .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-fd326016-61d7-4c35-b739-5a761eb6d6d2 .custom-form__form-col{-webkit-flex:1 1 auto;-ms-flex:1 1 auto;flex:1 1 auto;}}@media (min-width: 992px){#section-fd326016-61d7-4c35-b739-5a761eb6d6d2 .custom-form__form-col{-webkit-flex:1 1 auto;-ms-flex:1 1 auto;flex:1 1 auto;}}#section-fd326016-61d7-4c35-b739-5a761eb6d6d2 .custom-form__header{max-width:600px;margin-left:auto;margin-right:auto;margin-bottom:50px;text-align:center;}@media (max-width: 767px){#section-fd326016-61d7-4c35-b739-5a761eb6d6d2 .custom-form__header{margin-bottom:30px;}}#section-fd326016-61d7-4c35-b739-5a761eb6d6d2 .custom-form__heading{margin-bottom:24px;}@media (max-width: 767px){#section-fd326016-61d7-4c35-b739-5a761eb6d6d2 .custom-form__heading{margin-bottom:13px;}}#section-fd326016-61d7-4c35-b739-5a761eb6d6d2 .custom-form__description{margin-bottom:0;}#section-fd326016-61d7-4c35-b739-5a761eb6d6d2 .custom-form__img-block{width:100%;height:430px;background:currentColor center/cover no-repeat;}#section-fd326016-61d7-4c35-b739-5a761eb6d6d2 .custom-form__img-block img{height:100%;width:100%;object-fit:cover;}#section-fd326016-61d7-4c35-b739-5a761eb6d6d2 .custom-form__download-form{width:100%;margin-bottom:0;}@media (min-width: 992px){#section-fd326016-61d7-4c35-b739-5a761eb6d6d2 .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;
34-webkit-justify-content:flex-start;justify-content:flex-start;}}@media (min-width: 768px){#section-fd326016-61d7-4c35-b739-5a761eb6d6d2 .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-fd326016-61d7-4c35-b739-5a761eb6d6d2 .custom-form__container{max-width:1160px;margin-left:auto;margin-right:auto;}#section-fd326016-61d7-4c35-b739-5a761eb6d6d2 .form-field-descr{opacity:0.5;margin-top:8px;font-size:82%;}#section-fd326016-61d7-4c35-b739-5a761eb6d6d2 .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-fd326016-61d7-4c35-b739-5a761eb6d6d2 .lp-btn-icons:before{content:'';display:inline-block;width:0px;height:1em;vertical-align:middle;}#section-fd326016-61d7-4c35-b739-5a761eb6d6d2 .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-fd326016-61d7-4c35-b739-5a761eb6d6d2 .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-fd326016-61d7-4c35-b739-5a761eb6d6d2 .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-fd326016-61d7-4c35-b739-5a761eb6d6d2 .loading input,#section-fd326016-61d7-4c35-b739-5a761eb6d6d2 .success input,#section-fd326016-61d7-4c35-b739-5a761eb6d6d2 .loading select,#section-fd326016-61d7-4c35-b739-5a761eb6d6d2 .success select,#section-fd326016-61d7-4c35-b739-5a761eb6d6d2 .loading button,#section-fd326016-61d7-4c35-b739-5a761eb6d6d2 .success button{pointer-events:none;}#section-fd326016-61d7-4c35-b739-5a761eb6d6d2 .loading .lp-btn-icons,#section-fd326016-61d7-4c35-b739-5a761eb6d6d2 .success .lp-btn-icons{width:27px;}#section-fd326016-61d7-4c35-b739-5a761eb6d6d2 .loading .lp-btn-icons .lp-btn-icon-loading,#section-fd326016-61d7-4c35-b739-5a761eb6d6d2 .success .lp-btn-icons .lp-btn-icon-loading{width:17px;}#section-fd326016-61d7-4c35-b739-5a761eb6d6d2 .loading .lp-btn-icons .lp-btn-icon-success,#section-fd326016-61d7-4c35-b739-5a761eb6d6d2 .success .lp-btn-icons .lp-btn-icon-success{width:17px;}#section-fd326016-61d7-4c35-b739-5a761eb6d6d2 .loading .lp-btn-icons .lp-btn-icon-loading{opacity:1;}#section-fd326016-61d7-4c35-b739-5a761eb6d6d2 .loading .lp-btn-icons .lp-btn-icon-loading:before{content:'';}#section-fd326016-61d7-4c35-b739-5a761eb6d6d2 .success .lp-btn-icons .lp-btn-icon-success{opacity:1;}#section-fd326016-61d7-4c35-b739-5a761eb6d6d2 .js-backup-email{display:none;}#section-fd326016-61d7-4c35-b739-5a761eb6d6d2 .lp-h-pot{height:0;overflow:hidden;visibility:hidden;position:absolute;}#section-fd326016-61d7-4c35-b739-5a761eb6d6d2 .visually-hidden{position:absolute;overflow:hidden;clip:rect(0 0 0 0);width:1px;height:1px;margin:-1px;padding:0;border:0;}#section-fd326016-61d7-4c35-b739-5a761eb6d6d2 .uf-cus-sel-content{max-height:210px;overflow-y:auto;}#section-fd326016-61d7-4c35-b739-5a761eb6d6d2 .lp-input-group .uf-cus-sel-toggle{width:100%;}#section-fd326016-61d7-4c35-b739-5a761eb6d6d2 .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-fd326016-61d7-4c35-b739-5a761eb6d6d2 .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-fd326016-61d7-4c35-b739-5a761eb6d6d2 .uf-cus-sel-toggle.is-placeholder{color:#999;}#section-fd326016-61d7-4c35-b739-5a761eb6d6d2 .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-fd326016-61d7-4c35-b739-5a761eb6d6d2 .uf-cus-sel-toggle:after{right:25px;}}.uf-cus-sel.open #section-fd326016-61d7-4c35-b739-5a761eb6d6d2 .uf-cus-sel-toggle:after{-webkit-transform:rotate(45deg);-moz-transform:rotate(45deg);-ms-transform:rotate(45deg);transform:rotate(45deg);}#section-fd326016-61d7-4c35-b739-5a761eb6d6d2 .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-fd326016-61d7-4c35-b739-5a761eb6d6d2 .uf-cus-sel-menu{position:relative;top:auto;}}#section-fd326016-61d7-4c35-b739-5a761eb6d6d2 .uf-cus-sel-content{width:100%;background-color:var(--bgColor, #000);border:1px solid #979797;border-top:none;}#section-fd326016-61d7-4c35-b739-5a761eb6d6d2 .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-fd326016-61d7-4c35-b739-5a761eb6d6d2 .uf-cus-sel-item:focus,#section-fd326016-61d7-4c35-b739-5a761eb6d6d2 .uf-cus-sel-item:hover{background-color:var(--optionHoverColor, #262222);}#section-fd326016-61d7-4c35-b739-5a761eb6d6d2 .uf-cus-sel-item.is-selected{font-weight:700;}#section-fd326016-61d7-4c35-b739-5a761eb6d6d2 .uf-cus-sel-item.is-disabled,#section-fd326016-61d7-4c35-b739-5a761eb6d6d2 .uf-cus-sel-item:disabled{display:none;}#section-fd326016-61d7-4c35-b739-5a761eb6d6d2 .lp-text--subtitle{margin-left:auto;margin-right:auto;}#section-fd326016-61d7-4c35-b739-5a761eb6d6d2 .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-fd326016-61d7-4c35-b739-5a761eb6d6d2 .custom-form__checkbox-container .lp-label{opacity:1;}#section-fd326016-61d7-4c35-b739-5a761eb6d6d2 .custom-form__checkboxes-label{font-size:14px;line-height:1.43;font-weight:600;margin-bottom:0;}#section-fd326016-61d7-4c35-b739-5a761eb6d6d2 .custom-form__checkboxes-description{font-size:14px;line-height:1.43;font-weight:400;margin-bottom:0;}#section-fd326016-61d7-4c35-b739-5a761eb6d6d2 .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-fd326016-61d7-4c35-b739-5a761eb6d6d2 .custom-form__checkbox-label{cursor:pointer;font-size:inherit;line-height:1.4;margin:0;}#section-fd326016-61d7-4c35-b739-5a761eb6d6d2 .lp-input::-webkit-input-placeholder{text-transform:none;}#section-fd326016-61d7-4c35-b739-5a761eb6d6d2 .lp-input::-moz-placeholder{text-transform:none;}#section-fd326016-61d7-4c35-b739-5a761eb6d6d2 .lp-input:-ms-input-placeholder{text-transform:none;}#section-fd326016-61d7-4c35-b739-5a761eb6d6d2 .lp-input::placeholder{text-transform:none;}#section-6e2cc917-e8c6-4482-ac60-962f52c0c605{color:#ffffff;--fontColor:#ffffff;--fontColor_H:0;--fontColor_S:0%;--fontColor_L:100%;--fontColor_A:1;--fontColor_darkenDir:-1;--bgColor:rgba(88, 88, 91, 1);--bgColor_H:240;--bgColor_S:2%;--bgColor_L:35%;--bgColor_A:1;--bgColor_darkenDir:1;background-color:rgba(88, 88, 91, 1);}#section-6e2cc917-e8c6-4482-ac60-962f52c0c605 .section{position:relative;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;}@media(max-width: 1024px){#section-6e2cc917-e8c6-4482-ac60-962f52c0c605 .section{-webkit-flex-direction:column-reverse;-ms-flex-direction:column-reverse;flex-direction:column-reverse;}}#section-6e2cc917-e8c6-4482-ac60-962f52c0c605 .section__map{width:50%;height:680px;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;position:relative;}@media(max-width: 1024px){#section-6e2cc917-e8c6-4482-ac60-962f52c0c605 .section__map{width:100%;height:464px;}}@media (max-width: 768px){#section-6e2cc917-e8c6-4482-ac60-962f52c0c605 .section__map{height:412px;}}#section-6e2cc917-e8c6-4482-ac60-962f52c0c605 .section__map img{display:block;width:100%;height:100%;object-fit:cover;}#section-6e2cc917-e8c6-4482-ac60-962f52c0c605 .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-6e2cc917-e8c6-4482-ac60-962f52c0c605 .section__text{width:100%;min-height:464px;}}@media (max-width: 768px){#section-6e2cc917-e8c6-4482-ac60-962f52c0c605 .section__text{min-height:412px;}}#section-6e2cc917-e8c6-4482-ac60-962f52c0c605 .section__text-group{width:100%;}#section-6e2cc917-e8c6-4482-ac60-962f52c0c605 .section__text-group+.section__button{margin-top:50px;}#section-6e2cc917-e8c6-4482-ac60-962f52c0c605 .section__title{margin-bottom:16px;text-align:center;}#section-6e2cc917-e8c6-4482-ac60-962f52c0c605 .section__description{text-align:center;}#section-6e2cc917-e8c6-4482-ac60-962f52c0c605 .map{height:100%;border:none;overflow:hidden;width:100%;}#section-6e2cc917-e8c6-4482-ac60-962f52c0c605 .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-6e2cc917-e8c6-4482-ac60-962f52c0c605 .custom-controls.show{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;}@media (max-width: 1024px){#section-6e2cc917-e8c6-4482-ac60-962f52c0c605 .custom-controls{display:none;}}#section-6e2cc917-e8c6-4482-ac60-962f52c0c605 .custom-controls--mobile{display:none;}@media (max-width: 700px){#section-6e2cc917-e8c6-4482-ac60-962f52c0c605 .custom-controls--mobile{display:block;position:absolute;top:32px;right:32px;}}#section-6e2cc917-e8c6-4482-ac60-962f52c0c605 .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-6e2cc917-e8c6-4482-ac60-962f52c0c605 .control-btn +.control-btn{margin-top:8px;}#section-6e2cc917-e8c6-4482-ac60-962f52c0c605 .control-btn svg{-webkit-transition:-webkit-transform .6s ease;transition:transform .6s ease;}#section-6e2cc917-e8c6-4482-ac60-962f52c0c605 .control-btn svg path{stroke:#000;}@media (max-width: 1024px){#section-6e2cc917-e8c6-4482-ac60-962f52c0c605 .control-btn{width:40px;height:40px;}#section-6e2cc917-e8c6-4482-ac60-962f52c0c605 .control-btn svg{-webkit-transform:scale(.8);-moz-transform:scale(.8);-ms-transform:scale(.8);transform:scale(.8);}}#section-6e2cc917-e8c6-4482-ac60-962f52c0c605 .control-btn.js-is-fullscreen{background-color:var(--bgColor);}#section-26876bca-ce39-4b7d-9dd1-029ee361c88f{color:#000;--fontColor:#000;--fontColor_H:0;--fontColor_S:0%;--fontColor_L:0%;--fontColor_A:1;--fontColor_darkenDir:1;--bgColor:#fff;--bgColor_H:0;--bgColor_S:0%;--bgColor_L:100%;--bgColor_A:1;--bgColor_darkenDir:-1;--section-padding-top:calc(2 / 4 * var(--global-section-padding));--section-padding-bottom:calc(0 / 4 * var(--global-section-padding));background-color:#fff;}#section-26876bca-ce39-4b7d-9dd1-029ee361c88f .boxed-text__description{margin-bottom:50px;text-align:center;}@media (max-width: 768px){#section-26876bca-ce39-4b7d-9dd1-029ee361c88f .boxed-text__description{margin-bottom:30px;}}#section-26876bca-ce39-4b7d-9dd1-029ee361c88f .lp-title-group .lp-h2{margin-top:0;}#section-26876bca-ce39-4b7d-9dd1-029ee361c88f .button-container{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;}@media(max-width: 600px){#section-26876bca-ce39-4b7d-9dd1-029ee361c88f .button-container{-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;}}#section-26876bca-ce39-4b7d-9dd1-029ee361c88f .button-container .lp-btn{margin-right:20px;}#section-26876bca-ce39-4b7d-9dd1-029ee361c88f .button-container .lp-btn:last-of-type{margin-right:0;}@media(max-width: 600px){#section-26876bca-ce39-4b7d-9dd1-029ee361c88f .button-container .lp-btn{margin-right:0px;margin-bottom:20px;width:100%;}#section-26876bca-ce39-4b7d-9dd1-029ee361c88f .button-container .lp-btn:last-of-type{margin-bottom:0;}}#section-26876bca-ce39-4b7d-9dd1-029ee361c88f .lp-text--subtitle{margin-left:auto;margin-right:auto;text-transform:none;}#section-26876bca-ce39-4b7d-9dd1-029ee361c88f .redesign p{margin-bottom:1.666rem;}#section-26876bca-ce39-4b7d-9dd1-029ee361c88f>div:last-child{padding-top:calc(2 / 4 * var(--global-section-padding))!important;padding-bottom:calc(0 / 4 * var(--global-section-padding))!important;}#section-c742bcf4-69b0-4288-ac99-072d40387297{color:#fff;--fontColor:#fff;--fontColor_H:0;--fontColor_S:0%;--fontColor_L:100%;--fontColor_A:1;--fontColor_darkenDir:-1;--bgColor:#58585B;--bgColor_H:240;--bgColor_S:2%;--bgColor_L:35%;--bgColor_A:1;--bgColor_darkenDir:1;background-color:#58585B;}#section-c742bcf4-69b0-4288-ac99-072d40387297 .video-wrapper{z-index:1;}#section-c742bcf4-69b0-4288-ac99-072d40387297 .overlay-component{z-index:2;}#section-c742bcf4-69b0-4288-ac99-072d40387297 .custom-content{z-index:3;position:relative;}#section-c742bcf4-69b0-4288-ac99-072d40387297 h1,#section-c742bcf4-69b0-4288-ac99-072d40387297 h2,#section-c742bcf4-69b0-4288-ac99-072d40387297 h3,#section-c742bcf4-69b0-4288-ac99-072d40387297 h4,#section-c742bcf4-69b0-4288-ac99-072d40387297 h5,#section-c742bcf4-69b0-4288-ac99-072d40387297 h6,#section-c742bcf4-69b0-4288-ac99-072d40387297 p{margin-bottom:1.6666rem;}#section-c742bcf4-69b0-4288-ac99-072d40387297 .lp-container *:last-child{margin-bottom:0;}#section-c5e44f3d-4a3b-4637-b205-c366354cd054{color:#ffffff;--fontColor:#ffffff;--fontColor_H:0;--fontColor_S:0%;--fontColor_L:100%;--fontColor_A:1;--fontColor_darkenDir:-1;--bgColor:rgba(122, 154, 196, 1);--bgColor_H:214;--bgColor_S:39%;--bgColor_L:62%;--bgColor_A:1;--bgColor_darkenDir:-1;background-color:rgba(122, 154, 196, 1);}
34#section-c5e44f3d-4a3b-4637-b205-c366354cd054 .section{display:none;overflow:hidden;}@media(min-width: 993px){#section-c5e44f3d-4a3b-4637-b205-c366354cd054 .lp-container{padding-bottom:200px;}}@media(min-width: 769px){#section-c5e44f3d-4a3b-4637-b205-c366354cd054 .lp-container{padding-bottom:194px;}}#section-c5e44f3d-4a3b-4637-b205-c366354cd054 .title-group{-webkit-flex-basis:100%;-ms-flex-preferred-size:100%;flex-basis:100%;display:block;margin-bottom:48px;}@media(min-width: 769px){#section-c5e44f3d-4a3b-4637-b205-c366354cd054 .title-group{display:none;}}#section-c5e44f3d-4a3b-4637-b205-c366354cd054 .collection{width:100%;min-width:400px;}#section-c5e44f3d-4a3b-4637-b205-c366354cd054 .collection:not(.slick-initialized){display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;}#section-c5e44f3d-4a3b-4637-b205-c366354cd054 .collection:not(.slick-initialized) .item-box:nth-child(n+6){display:none;}@media(max-width: 768px){#section-c5e44f3d-4a3b-4637-b205-c366354cd054 .collection:not(.slick-initialized){-webkit-box-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;}}#section-c5e44f3d-4a3b-4637-b205-c366354cd054 .collection .slick-track{margin-left:0;margin-right:0;}#section-c5e44f3d-4a3b-4637-b205-c366354cd054 .collection .slick-list{overflow:visible;}#section-c5e44f3d-4a3b-4637-b205-c366354cd054 .collection img{max-width:100%;}@media(min-width: 1025px){#section-c5e44f3d-4a3b-4637-b205-c366354cd054 .collection .slick-slide:not(:nth-child(4n-2)){opacity:.3;-webkit-transition:opacity .4s ease-in-out;transition:opacity .4s ease-in-out;}#section-c5e44f3d-4a3b-4637-b205-c366354cd054 .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-c5e44f3d-4a3b-4637-b205-c366354cd054 .collection .slick-slide:nth-child(4n-2) .item__img svg{display:block;}#section-c5e44f3d-4a3b-4637-b205-c366354cd054 .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-c5e44f3d-4a3b-4637-b205-c366354cd054 .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-c5e44f3d-4a3b-4637-b205-c366354cd054 .collection .slick-active:not(:nth-child(4n-2)){opacity:1;-webkit-transition:opacity .4s ease-in-out;transition:opacity .4s ease-in-out;}#section-c5e44f3d-4a3b-4637-b205-c366354cd054 .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-c5e44f3d-4a3b-4637-b205-c366354cd054 .collection .slick-slide:not(:nth-child(even)){opacity:.3;-webkit-transition:opacity .4s ease-in-out;transition:opacity .4s ease-in-out;}#section-c5e44f3d-4a3b-4637-b205-c366354cd054 .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-c5e44f3d-4a3b-4637-b205-c366354cd054 .collection .slick-slide:nth-child(even) .item__img svg{display:block;}#section-c5e44f3d-4a3b-4637-b205-c366354cd054 .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-c5e44f3d-4a3b-4637-b205-c366354cd054 .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-c5e44f3d-4a3b-4637-b205-c366354cd054 .collection .slick-active:not(:nth-child(even)){opacity:1;-webkit-transition:opacity .4s ease-in-out;transition:opacity .4s ease-in-out;}#section-c5e44f3d-4a3b-4637-b205-c366354cd054 .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-c5e44f3d-4a3b-4637-b205-c366354cd054 .collection .slick-slide{opacity:.3;-webkit-transition:opacity .4s ease-in-out;transition:opacity .4s ease-in-out;}#section-c5e44f3d-4a3b-4637-b205-c366354cd054 .collection .slick-active{opacity:1;-webkit-transition:opacity .4s ease-in-out;transition:opacity .4s ease-in-out;}#section-c5e44f3d-4a3b-4637-b205-c366354cd054 .collection .slick-slide:nth-child(4n-1),#section-c5e44f3d-4a3b-4637-b205-c366354cd054 .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-c5e44f3d-4a3b-4637-b205-c366354cd054 .collection{overflow:hidden;height:514px;}}#section-c5e44f3d-4a3b-4637-b205-c366354cd054 .slider-holder{-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;}@media(max-width: 768px){#section-c5e44f3d-4a3b-4637-b205-c366354cd054 .slider-holder{height:calc(100vw - 24px);}}@media(min-width: 1440px){#section-c5e44f3d-4a3b-4637-b205-c366354cd054 .slider-holder{width:1440px;margin-left:auto;margin-right:auto;height:310px;}}
34#section-c5e44f3d-4a3b-4637-b205-c366354cd054 .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-c5e44f3d-4a3b-4637-b205-c366354cd054 .item{width:298px;height:298px;margin-right:44px;}}@media(max-width: 768px){#section-c5e44f3d-4a3b-4637-b205-c366354cd054 .item{margin-right:0;margin-bottom:0;width:calc(50vw - 48px);height:calc(50vw - 48px);}}@media(max-width: 560px){#section-c5e44f3d-4a3b-4637-b205-c366354cd054 .item{margin-right:0;margin-bottom:0;}}#section-c5e44f3d-4a3b-4637-b205-c366354cd054 .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-c5e44f3d-4a3b-4637-b205-c366354cd054 .item__img svg{display:none;}#section-c5e44f3d-4a3b-4637-b205-c366354cd054 .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-c5e44f3d-4a3b-4637-b205-c366354cd054 .item__text{display:none;}}#section-c5e44f3d-4a3b-4637-b205-c366354cd054 .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-c5e44f3d-4a3b-4637-b205-c366354cd054 .item__text .username-group .lp-h5{cursor:pointer;display:inline-block;}#section-c5e44f3d-4a3b-4637-b205-c366354cd054 .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-c5e44f3d-4a3b-4637-b205-c366354cd054 .item__text .username-group .lp-h5:hover span{-webkit-transform:translateX(5px);-moz-transform:translateX(5px);-ms-transform:translateX(5px);transform:translateX(5px);}}#section-c5e44f3d-4a3b-4637-b205-c366354cd054 .item__text .username-group .arrow-icon{display:inline-block;margin-top:9px;width:21px;}@media (max-width: 768px){#section-c5e44f3d-4a3b-4637-b205-c366354cd054 .item-box{padding:13px;}}#section-c5e44f3d-4a3b-4637-b205-c366354cd054 .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-c5e44f3d-4a3b-4637-b205-c366354cd054 .item__info:hover{opacity:1;}}#section-c5e44f3d-4a3b-4637-b205-c366354cd054 .item__caption{text-overflow:ellipsis;-webkit-line-clamp:5;display:-webkit-box;-webkit-box-orient:vertical;overflow:hidden;}#section-c5e44f3d-4a3b-4637-b205-c366354cd054 h5{color:var(--userColor);text-transform:uppercase;}#section-c5e44f3d-4a3b-4637-b205-c366354cd054 h3{color:var(--fontColor);margin-bottom:16px;white-space:pre-line;}@media (max-width: 768px){#section-c5e44f3d-4a3b-4637-b205-c366354cd054 h3{width:calc(100vw - 50px);}}#section-c5e44f3d-4a3b-4637-b205-c366354cd054 a{-webkit-text-decoration:none;text-decoration:none;}#section-c5e44f3d-4a3b-4637-b205-c366354cd054 .media-type-icon{position:absolute;top:10px;right:10px;}#section-c5e44f3d-4a3b-4637-b205-c366354cd054 .has-data .section{dis
34play:block;}#section-c5e44f3d-4a3b-4637-b205-c366354cd054.has-data .section{display:block;}#section-c5e44f3d-4a3b-4637-b205-c366354cd054#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(88, 88, 91, 1);color:#ffffff;--fontColor:#ffffff;--fontColor_H:0;--fontColor_S:0%;--fontColor_L:100%;--fontColor_A:1;--fontColor_darkenDir:-1;--bgColor:rgba(88, 88, 91, 1);--bgColor_H:240;--bgColor_S:2%;--bgColor_L:35%;--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(122, 154, 196, 1)!important;}.pagination-style-1 li a{color:rgba(122, 154, 196, 1)!important;background-color:rgba(255, 255, 255, 0)!important;border-color:rgba(122, 154, 196, 1)!important;}.pagination-style-1 li a:hover{color:rgba(255, 255, 255, 1)!important;background-color:rgba(122, 154, 196, 1)!important;border-color:rgba(122, 154, 196, 1)!important;}.pagination-style-1 li.active a{color:rgba(255, 255, 255, 1)!important;background-color:rgba(122, 154, 196, 1)!important;border-color:rgba(122, 154, 196, 1)!important;}.social_icons-style-1 a{border-color:rgba(122, 154, 196, 1)!important;background-color:rgba(122, 154, 196, 1)!important;color:rgba(255, 255, 255, 1)!important;}.social_icons-style-1 a:hover{border-color:rgba(85, 126, 180, 1)!important;background-color:rgba(85, 126, 180, 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-2{color:rgba(255, 255, 255, 1)!important;background-color:rgba(0, 0, 0, 0)!important;border-color:rgba(255, 255, 255, 1)!important;}.button-style-2:hover{color:rgba(122, 154, 196, 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(221, 221, 221, 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(122, 154, 196, 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(122, 154, 196, 1)!important;background-color:rgba(255, 255, 255, 1)!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(122, 154, 196, 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(122, 154, 196, 1)!important;border-color:rgba(122, 154, 196, 1)!important;}.button-style-3:hover{color:rgba(255, 255, 255, 1)!important;background-color:rgba(85, 126, 180, 1)!important;border-color:rgba(85, 126, 180, 1)!important;}.hyperlink-style-3{color:rgba(0, 0, 0, 1)!important;}.hyperlink-style-3:hover{color:rgba(0, 0, 0, 1)!important;}.button-style-4{color:rgba(122, 154, 196, 1)!important;background-color:rgba(255,255,255,1)!important;border-color:rgba(255, 255, 255, 1)!important;}.button-style-4:hover{color:rgba(255,255,255,1)!important;background-color:rgba(0, 0, 0, 0)!important;border-color:rgba(255, 255, 255, 1)!important;}.hyperlink-style-4{color:rgba(255, 255, 255, 1)!important;}.hyperlink-style-4:hover{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="e14906e9-42f1-4511-aebc-60613abcb5b6"></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-KHPKNPWE"); 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 <meta name="google-site-verification" content="fyQsRAjK4Sbri39Pz3pjizORlY5Dv3OnXxSfix9QaFc" /> 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/https://media-production.lp-cdn.com/media/utkovbnps5ttll9sw6zr" 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/utkovbnps5ttll9sw6zr 320w, https://media-production.lp-cdn.com/cdn-cgi/image/format=auto,quality=85/https://media-production.lp-cdn.com/media/utkovbnps5ttll9sw6zr 800w" sizes="500px" class="logo__img dark" alt=""> 100 <img src="https://media-production.lp-cdn.com/cdn-cgi/image/format=auto,quality=85/https://media-production.lp-cdn.com/media/cdu1mpa9alcmtbmjuz1b" 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/cdu1mpa9alcmtbmjuz1b 320w, https://media-production.lp-cdn.com/cdn-cgi/image/format=auto,quality=85/https://media-production.lp-cdn.com/media/cdu1mpa9alcmtbmjuz1b 800w" 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="/properties" class="navigation__link">Properties</a> 108 </li> 109 <li class="navigation__item"> 110 <a href="/home-search/listings?search_type=envelope&south=37.72924783545916&west=-122.51859640488281&north=37.82775045056549&east=-122.27552389511719&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> 111 </li> 112 <li class="navigation__item"> 113 <a href="/contact" class="navigation__link">Contact Us</a> 114 </li> 115 <li class="navigation__item"> 116 <a href="tel:4152055218" class="navigation__link">(415) 205-5218</a> 117 </li> 118 119 </ul> 120 121 122 123 124 125 <button class="hamburger-component header__hamburger">
126 <svg width="60" height="60" viewBox="0 0 60 60" fill="none" xmlns="http://www.w3.org/2000/svg"> 127 <circle cx="30" cy="30" r="30" /> 128 <rect class="line line--top" x="18" y="26" width="24" height="2" /> 129 <rect class="line line--bottom" x="30" y="32" width="12" height="2" /> 130 </svg> 131 </button> 132 </div> 133 134 </div> 135</div> 136 </nav> 137 <div id="global-sidemenu" class="sidemenu" data-el-id="1575f740-92ae-4292-919d-936adffb0f46"> 138 <div class="sidemenu__container"> 139 140 141 <div class="sidemenu__img" style="background-image: url('https://media-production.lp-cdn.com/media/7daede17-cc88-41de-9bd1-6babd88a462b');"> 142 </div> 143 144 <div class="sidemenu__wrapper"> 145 <div class="sidemenu__header"> 146 <button class="sidemenu__toggle toggle sidemenu__toggle--right">Close Menu</button> 147 </div> 148 149 <div class="sidemenu__nav"> 150 <ul class="navigation"> 151 <li class="navigation__item" > 152 <a href="/" class="navigation__link" >Home</a> 153 </li> 154 <li class="navigation__item" > 155 <a href="/properties" class="navigation__link" >Properties</a> 156 </li> 157 <li class="navigation__item" > 158 <a href="/communities" class="navigation__link" >Communities</a> 159 </li> 160 <li class="navigation__item" > 161 <a href="/buying" class="navigation__link" >Buying</a> 162 </li> 163 <li class="navigation__item" > 164 <a href="/selling" class="navigation__link" >Selling</a> 165 </li> 166 <li class="navigation__item" > 167 <a href="/home-search/listings?search_type=envelope&south=37.72924783545916&west=-122.51859640488281&north=37.82775045056549&east=-122.27552389511719&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> 168 </li> 169 <li class="navigation__item sub-nav-container" data-wow-delay="2.6s"> 170 <a href="#" class="navigation__link"> 171 About Us 172 <svg width="24" height="24" viewBox="0 0 24 24" fill="none" class="arrow" xmlns="http://www.w3.org/2000/svg"> 173 <path d="M7.41 8.58984L12 13.1698L16.59 8.58984L18 9.99984L12 15.9998L6 9.99984L7.41 8.58984Z" fill="currentColor"/> 174 </svg> 175 </a> 176 <ul class="sub-nav"> 177 <li class="sub-nav__item"><a href="/about-us" class="sub-nav__link feature">Meet the Team</a></li> 178 <li class="sub-nav__item"><a href="/testimonials" class="sub-nav__link feature">Testimonials</a></li> 179 <li class="sub-nav__item"><a href="/blog" class="sub-nav__link feature">Blog</a></li> 180 <li class="sub-nav__item"><a href="/past-sales" class="sub-nav__link feature">Recent Sales</a></li> 181 </ul> 182 183 </li> 184 <li class="navigation__item" > 185 <a href="/contact" class="navigation__link" >Contact Us</a> 186 </li> 187 </ul> 188 </div> 189 190 <div class="sidemenu__socials"> 191 <ul class="lp-socials social_icons-style-2 sidemenu-social-links"> 192 193 <li> 194 <a 195 href="https://www.facebook.com/Level5RE/" 196 class="lp-socials__link socials__item" 197 data-wow-delay="0s" 198 target="_blank" 199 aria-label="FACEBOOK" 200 >
201 <span class="lp-i lp-i--facebook" aria-hidden="true"></span> 202 </a> 203 </li> 204 <li> 205 <a 206 href="https://www.linkedin.com/company/level-5-real-estate/" 207 class="lp-socials__link socials__item" 208 data-wow-delay="0.1s" 209 target="_blank" 210 aria-label="LINKEDIN" 211 > 212 <span class="lp-i lp-i--linkedin" aria-hidden="true"></span> 213 </a> 214 </li> 215 <li> 216 <a 217 href="https://www.zillow.com/profile/MaryLevel5RE/" 218 class="lp-socials__link socials__item" 219 data-wow-delay="0.2s" 220 target="_blank" 221 aria-label="ZILLOW" 222 > 223 <span class="lp-i lp-i--zillow" aria-hidden="true"></span> 224 </a> 225 </li> 226 </ul> </div> 227 </div> 228</div> 229 230 </div> 231 <div id="global-mobile-contact" class="mobile-contact-wrapper" data-el-id="befe5af2-a6ca-4119-924a-a85d96d36b51"> 232 <div class="btn-holder" 233style=" 234--backgroundColor: rgba(20, 20, 20, 1); 235--textColor: rgba(255, 255, 255, 1); 236--pillTextColor: rgba(26, 26, 26, 1); 237--pillBackgroundColor: rgba(255, 255, 255, 1);"> 238 239 <button type="button" class="connect-btn lp-ico lp-ico-arrow-top visible">Let's Connect</button> 240</div> 241 242 243<div class="pop-up" style="--backgroundColor: rgba(20, 20, 20, 1); --textColor: rgba(255, 255, 255, 1);"> 244 <div class="lp-container"> 245 <form data-type="contact-form" class="contact-form"> 246 <div class="contact-form__container"> 247 <h3 class="lp-h3">Leave a Message</h3> 248 249 <div class="contact-form__content"> 250 <div class="contact-form__inputs-container"> 251 <div class="contact-form__item"> 252 <input 253 id="__FullName" 254 type="text" name="name" 255 class="lp-input lp-input--light" 256 required 257 placeholder="Full Name"> 258 </div> 259 <div class="contact-form__item"> 260 <input 261 id="__Email" 262 type="email" name="email" 263 class="lp-input js-email-input lp-input--light" 264 required 265 placeholder="Email"> 266 </div> 267 <div class="contact-form__item"> 268 <input 269 class="lp-input lp-input--light" 270 type="tel" 271 placeholder="Phone" 272 id="__Phone" 273 name="phone" 274 required> 275 </div> 276 277 <div class="contact-form__item input-group-select"> 278 <select name="interest" id="-field-interest" placeholder="Interest" 279 class="lp-input dropdown-select js-select js-form-element lp-input--light" required> 280 <option value="" disabled selected data-label="Interest">Interested in...</option> 281 <option value="Selling & Buying">Selling & Buying</option> 282 <option value="Selling">Selling</option> 283 <option value="Buying">Buying</option> 284 <option value="Renting">Renting</option> 285 <option value="Other">Other</option> 286 </select> 287 <label for="-field-interest" class="lp-label sr-only">Interest</label> 288 </div> 289 290 <div class="contact-form__item"> 291 <textarea 292 name="message" 293 rows="4" 294 id="__Message" 295 class="lp-input lp-input--light" 296 placeholder="Message" 297 required></textarea> 298 </div> 299 <div class="lp-disclaimer"> <label style='display: none;' for='-termsAccepted'>Opt In/Disclaimer Consent:</label> 300 <label class='lp-tcr-content'> 301 <span class='lp-tcr-checkbox'> 302 <input 303 type='checkbox' 304 id='-termsAccepted' 305 name='termsAccepted' 306 oninvalid="this.setCustomValidity('Please accept the terms and conditions')"
307 oninput="this.setCustomValidity('')" 308 required 309 /></span> 310 <span class='lp-tcr-message'> 311 312 I agree to be contacted by 313 Level 5 Real Estate- 314 via call, email, and text for real estate services. To opt out, you can reply 'stop' at any time or reply 'help' for assistance. 315 You can also click the unsubscribe link in the emails. Message and data rates may apply. Message frequency may vary. 316 <a href='/terms-and-conditions' target='_blank'>Privacy Policy</a>. 317 </span> 318 </label> 319 320</div> 321 <button type="submit" class="lp-btn lp-btn--filled lp-btn--dark submit contact-form__item">Submit</button> 322 323 <div class="lp-h-pot"> 324 <input id="__newsSignMiddleName" name="middleName" value="" autocomplete="off" tabindex="-1"> 325 </div> 326 327 <input style="display: none;" type="text" name="source" value="CONTACT_INQUIRY" /> 328 <input type="hidden" name="button_text" value="Let's Connect"> 329 </div> 330 </div> 331 </div> 332 333 334 <div class="success-block"> 335 <h3 class="lp-h3 success-message">Thank you for your message. We will be in touch with you shortly.</h3> 336 337 </div> 338 </form> 339 340 <button type="button" class="close-btn lp-ico lp-ico-close"></button> 341 342 343 </div> 344</div> 345 346 347 </div> 348 <section class="image-section is-font-color-light is-background-color-dark" id="section-abad8af8-9b74-44c9-9737-db2314cb5f64" data-el-id="bce33bae-7388-4ccc-abff-e0ce18ec46d2"> 349
350<script> 351 (function(){ 352 const sectionId = 'section-abad8af8-9b74-44c9-9737-db2314cb5f64' 353 const section = document.querySelector(`#${sectionId}`); 354 var sectionBg = window.getComputedStyle(section, null).getPropertyValue('background-image'); 355 356 if('false' === 'true') { 357 section.classList.add('parallax-enabled'); 358 section.style.setProperty('--sectionBackground', sectionBg); 359 section.style.setProperty('background', 'transparent'); 360 } 361 })() 362</script>
362 363 364 365<div class="opening-with-search height-class-770px "> 366 <div class="center-block"> 367 <button class='lp-play video-section__play-button js-play-btn'></button> 368 <div class="container lp-container"> 369 370 <div class="lp-title-group"> 371 372 373 <h1 class="h1 lp-h1 opening-title lp-pre-line" style="color: #ffffff">Contact Us</h1> 374 375 376 </div> 377 378 <div class="buttons"></div> 379 380 </div> 381 </div> 382 <div class="bottom-spacer"></div> 383</div> 384</section> 385<section id="section-fd326016-61d7-4c35-b739-5a761eb6d6d2" class="solid-section is-font-color-dark is-background-color-light" data-el-id="ee03b9c1-ce78-4c15-86a1-10124375dc59"> 386 <div class="custom-form redesign" id="js-contact-form"> 387 <div class="lp-container custom-form__container"> 388 389 <div class="elem-row custom-form__row"> 390 <div class="elem-col custom-form__form-col"> 391 <form class="custom-form__download-form" data-type="contact-form" data-delay="6000"> 392 <div class="form-row custom-form__form-row"> 393 394 <div class="h-pot lp-h-pot"> 395 <label for="section-fd326016-61d7-4c35-b739-5a761eb6d6d2-middleName">Middle Name</label> 396 <input id="section-fd326016-61d7-4c35-b739-5a761eb6d6d2-middleName" name="middleName" value="" autocomplete="off" tabindex="-1"> 397 </div> 398 399 <div class="form-col js-backup-email"> 400 <div class="lp-form-group custom-form__group"> 401 <div class="lp-input-group"> 402 <label for="section-fd326016-61d7-4c35-b739-5a761eb6d6d2-required-email-field" class="lp-label field-required">Email</label> 403 <input type="email" id="section-fd326016-61d7-4c35-b739-5a761eb6d6d2-required-email-field" name="email" class="lp-input lp-input--dark js-form-element js-backup-field" placeholder="Email *" required> 404 </div> 405 </div> 406 </div> 407 408 409 <div class="form-col"> 410 <div class="lp-form-group custom-form__group"> 411 <div class="lp-input-group"> 412 <label for="section-fd326016-61d7-4c35-b739-5a761eb6d6d2-field-0" class="lp-label field-required">First Name</label> 413 <input type="text" id="section-fd326016-61d7-4c35-b739-5a761eb6d6d2-field-0" name="name" class="lp-input lp-input--dark js-form-element" placeholder="First Name *" required> 414 </div> 415 </div> 416 </div> 417 <div class="form-col"> 418 <div class="lp-form-group custom-form__group"> 419 <div class="lp-input-group"> 420 <label for="section-fd326016-61d7-4c35-b739-5a761eb6d6d2-field-1" class="lp-label field-required">Last Name</label> 421 <input type="text" id="section-fd326016-61d7-4c35-b739-5a761eb6d6d2-field-1" name="name" class="lp-input lp-input--dark js-form-element" placeholder="Last Name *" required> 422 </div> 423 </div> 424 </div> 425 <div class="form-col"> 426 <div class="lp-form-group custom-form__group"> 427 <div class="lp-input-group"> 428 <label for="section-fd326016-61d7-4c35-b739-5a761eb6d6d2-field-2" class="lp-label">Phone</label> 429 <input type="tel" id="section-fd326016-61d7-4c35-b739-5a761eb6d6d2-field-2" name="phone" class="lp-input lp-input--dark js-form-element" placeholder="Phone"> 430 </div> 431 </div> 432 </div> 433 <div class="form-col"> 434 <div class="lp-form-group custom-form__group"> 435 <div class="lp-input-group"> 436 <label for="section-fd326016-61d7-4c35-b739-5a761eb6d6d2-field-3" class="lp-label field-required">Email</label> 437 <input type="email" id="section-fd326016-61d7-4c35-b739-5a761eb6d6d2-field-3" name="email" class="lp-input lp-input--dark js-form-element" placeholder="Email *" required> 438 </div> 439 </div> 440 </div> 441 <div class="form-col"> 442 <div class="lp-form-group custom-form__group">
443 <div class="lp-input-group"> 444 <label for="section-fd326016-61d7-4c35-b739-5a761eb6d6d2-field-4" class="lp-label">What are you interested in?</label> 445 <select name="interest" id="section-fd326016-61d7-4c35-b739-5a761eb6d6d2-field-4" class="lp-input lp-input--dark dropdown-select js-select js-form-element" > 446 <option value="" selected disabled hidden data-label="What are you interested in? "></option> 447 <option value="Buying a Home">Buying a Home</option> 448 <option value="Selling a Home">Selling a Home</option> 449 <option value="Investing in a Property">Investing in a Property</option> 450 <option value="General Information">General Information</option> 451 <option value="Other">Other</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-fd326016-61d7-4c35-b739-5a761eb6d6d2-field-5" class="lp-label">How would you like to be contacted?</label> 460 <select name="How would you like to be contacted?" id="section-fd326016-61d7-4c35-b739-5a761eb6d6d2-field-5" placeholder="How would you like to be contacted?" class="lp-input lp-input--dark dropdown-select js-select js-form-element" > 461 <option value="" selected disabled hidden data-label="How would you like to be contacted? "></option> 462 <option value="Email">Email</option> 463 <option value="Phone">Phone</option> 464 </select> 465 </div> 466 </div> 467 </div> 468 <div class="form-col"> 469 <div class="lp-form-group custom-form__group"> 470 <div class="lp-input-group"> 471 <label for="section-fd326016-61d7-4c35-b739-5a761eb6d6d2-field-6" class="lp-label field-required">Message</label> 472 <textarea name="message" rows="4" id="section-fd326016-61d7-4c35-b739-5a761eb6d6d2-field-6" class="lp-input lp-input--dark js-form-element" placeholder="Message *" required></textarea> 473 </div> 474 </div> 475 </div> 476 </div> 477 478 <div class="lp-disclaimer"> <label style='display: none;' for='section-fd326016-61d7-4c35-b739-5a761eb6d6d2-termsAccepted'>Opt In/Disclaimer Consent:</label> 479 <label class='lp-tcr-content'> 480 <span class='lp-tcr-checkbox'> 481 <input 482 type='checkbox' 483 id='section-fd326016-61d7-4c35-b739-5a761eb6d6d2-termsAccepted' 484 name='termsAccepted' 485 oninvalid="this.setCustomValidity('Please accept the terms and conditions')" 486 oninput="this.setCustomValidity('')" 487 required 488 /></span> 489 <span class='lp-tcr-message'> 490 491 I agree to be contacted by 492 Level 5 Real Estate- 493 via call, email, and text for real estate services. To opt out, you can reply 'stop' at any time or reply 'help' for assistance. 494 You can also click the unsubscribe link in the emails. Message and data rates may apply. Message frequency may vary. 495 <a href='/terms-and-conditions' target='_blank'>Privacy Policy</a>. 496 </span> 497 </label> 498 499</div> 500 501 <div class="custom-form__footer"> 502 <button type="submit" class="lp-btn lp-btn--dark lp-btn--filled lp-btn--mob-full-width custom-form__submit-btn button-style-3"> 503 <span class="lp-btn-icons"> 504 <span class="lp-btn-icon-loading"></span> 505 <span class="lp-btn-icon-success"></span> 506 </span> 507 Submit 508 </button> 509 </div> 510 </form> 511 </div> 512 </div> 513 </div> 514 515</div> 516 517 518</section> 519<section id="section-6e2cc917-e8c6-4482-ac60-962f52c0c605" class="solid-section is-font-color-light is-background-color-dark" data-el-id="6c23381a-d4eb-47dd-bfc1-583e3d03ead2"> 520 <div class="section redesign"> 521 <div class="section__map"> 522 <div class="map js-container" data-location="{"fullData":{"types":["street_address"],"geometry":{"location":{"lat":37.7784514,"lng":-122.3971391},"viewport":{"east":-122.3957111697085,"west":-122.3984091302915,"north":37.7798645302915,"south":37.7771665697085},"location_type":"ROOFTOP"},"place_id":"ChIJteDO8tV_j4ARUsbK1pHp6jU","plus_code":{"global_code":"849VQJH3+94","compound_code":"QJH3+94 SoMa, San Francisco, CA"},"formatted_address":"580 4th St, San Francisco, CA 94107, EE. UU.","address_components":[{"types":["street_number"],"long_name":"580","short_name":"580"},{"types":["route"],"long_name":"4th Street","short_name":"4th St"},{"types":["neighborhood","political"],"long_name":"SoMa","short_name":"SoMa"},{"types":["locality","political"],"long_name":"San Francisco","short_name":"SF"},{"types":["administrative_area_level_2","political"],"long_name":"San Francisco County","short_name":"San Francisco County"},{"types":["administrative_area_level_1","political"],"long_name":"California","short_name":"CA"},{"types":["country","political"],"long_name":"Estados Unidos","short_name":"US"},{"types":["postal_code"],"long_name":"94107","short_name":"94107"}]},"mapOptions":{"zoom":14,"center":{"lat":37.7784514,"lng":-122.3971391}},"formattedAddress":"580 4th St, San Francisco, CA 94107, EE. UU."}" data-bw=false></div>
523 <div class="custom-controls"> 524 <button class="control-btn plus js-plus"> 525 <svg width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg"> 526 <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"/> 527 <path d="M10 6.66666V13.3333" stroke="black" stroke-width="1.66667" stroke-linecap="round" stroke-linejoin="round"/> 528 <path d="M6.66667 10H13.3333" stroke="black" stroke-width="1.66667" stroke-linecap="round" stroke-linejoin="round"/> 529 </svg> 530 </button> 531 <button class="control-btn minus js-minus"> 532 <svg width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg"> 533 <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"/> 534 <path d="M6.66667 10H13.3333" stroke="black" stroke-width="1.66667" stroke-linecap="round" stroke-linejoin="round"/> 535 </svg> 536 </button> 537 </div> 538 </div> 539 540 <div class="section__text"> 541 <div class="section__text-group"> 542 <h2 class="lp-h2 section__title">Visit Us</h2> 543 <div class="section__description"><p style="text-align: center;">580 4th Street, San Francisco, CA 94107</p></div> 544 </div> 545 <a 546 href="https://goo.gl/maps/yWMo24zmvDmScnnV6" 547 target="_blank" 548 class="lp-btn lp-btn--outline lp-btn--light section__button button-style-4" 549 550 551 552 553 554 > 555 Get Directions 556 </a> 557 </div> 558</div> 559</section> 560<section id="section-26876bca-ce39-4b7d-9dd1-029ee361c88f" class="solid-section is-font-color-dark is-background-color-light" data-el-id="21c5a117-61cb-4f43-8635-2da86e3ae7dd"> 561 562</section> 563<section id="section-c742bcf4-69b0-4288-ac99-072d40387297" class="solid-section is-font-color-light is-background-color-dark" data-el-id="a261202b-cc2b-4a7e-912a-a4b8ffe6ab1b"> 564<div class="redesign custom-content lp-vertical-paddings"> 565 <div class="lp-container lp-container--l"> 566 <h3 style="text-align: center;">Contact Broker-of-Record</h3> 567<p style="text-align: center;"><br />Hillary Saunders<br />Corporate License No. 02014153<br /><span style="text-decoration: underline; color: #ffffff;"><a style="color: #ffffff; text-decoration: underline;" href="/cdn-cgi/l/email-protection#c7afaeaba6b5be87a4a8a9b3a6a4b38486a5b5a8aca2b5e9a4a8aa" rel="noopener" data-aura-rendered-by="17573:0"><span class="__cf_email__" data-cfemail="7d1514111c0f043d1e1213091c1e093e3c1f0f1216180f531e1210">[email protected]</span></a></span></p> 568 </div> 569</div> 570</section> 571<section id="section-c5e44f3d-4a3b-4637-b205-c366354cd054" class="solid-section is-font-color-light is-background-color-light" data-el-id="3614c9e1-cfd9-4976-8483-8f4b825fd098">
vendor: 111 bytes, lines 571-572
571 572 <script data-cfasync="false" src="/cdn-cgi/scripts/5c5dd728/cloudflare-static/email-decode.min.js"></script>
572<script type="text/x-handlebars-template" class="jsIGTemplate"> 573 <a href="https://www.instagram.com/{{username}}" target="_blank" class="title-group js-title-group"> 574 <h3 class="lp-h3 js-h3"></h3> 575 <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> 576 </a> 577 578 {{#each items}} 579 {{#if mediaUrl}} 580 <div class="item-box"> 581 <a href="https://www.instagram.com/{{../username}}" target="_blank" class="item insta-type-{{mediaType}}"> 582 <div class="item__text"> 583 <h3 class="lp-h3 js-h3"></h3> 584 <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> 585 </div> 586 <div class="item__img" style="background-image: url('{{#ifEquals mediaType 'VIDEO'}}{{thumbnailUrl}}{{else}}{{mediaUrl}}{{/ifEquals}}');"></div> 587 {{#ifEquals mediaType 'VIDEO'}} 588 <div class="media-type-icon"> 589 <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> 590 </div> 591 {{/ifEquals}} 592 {{#if caption}} 593 <div class="item__info"><div class="item__caption">{{caption}}</div></div> 594 {{/if}} 595 </a> 596 </div> 597 {{/if}} 598 {{/each}} 599</script>
599 600 601 602<div class="section"> 603 <div class="lp-container lp-container--l lp-vertical-paddings" style="--userColor: #ccb091;"> 604 <div class="slider-holder js-slider-holder" data-title="Follow Us on Instagram" > 605 <div class="collection js-collection jsIGContainer"></div> 606 </div> 607 </div> 608</div> 609 610 611</section> 612 613 <div id="modals" class="modals"></div> 614 <footer id="global-footer" class="is-font-color-dark is-background-color-light" data-el-id="f3892c1c-f128-483a-b998-cb1ea48c25c1"> 615 <div class="site-footer"> 616 617 <div class="site-footer__bottom"> 618 <div class="lp-container"> 619 620 <div class="site-footer__logo-bar"> 621 <div class="site-footer__logo-container"> 622 <img src="https://media-production.lp-cdn.com/media/efa24e80-f15b-4283-aaf1-fcaa8c93e491" alt=""> 623 </div> 624 <div class="site-footer__logo-container"> 625 626 </div> 627 </div> 628 629 <div class="site-footer__info"> 630 <div class="site-footer__col"> 631 <h5 class="lp-h5 site-footer__col-title">Level 5 Real Estate</h5> 632 633 <div class="site-footer__col-content lp-a"><p><a href="tel:4152055218">(415) 205-5218</a><br /><a href="/cdn-cgi/l/email-protection#82efe3f0fbc2eee7f4e7eeb7f0e7e3eee7f1f6e3f6e7ace1edef"><span class="__cf_email__" data-cfemail="f994988b80b9959c8f9c95cc8b9c98959c8a8d988d9cd79a9694">[email protected]</span></a><br /><br />DRE# 02014153</p></div> 634 </div> 635 636 637 <div class="site-footer__col"> 638 <h5 class="lp-h5 site-footer__col-title">Address</h5> 639 640 <div class="site-footer__col-content lp-a"><p>580 4th Street<br />San Francisco, CA 94107</p></div> 641 </div> 642 643 <div class="site-footer__navigation-wrap"> 644 <ul class="footer-navigation"> 645 <li class="footer-navigation__item"> 646 <a href="/" class="footer-navigation__link">Home</a> 647 </li> 648 <li class="footer-navigation__item"> 649 <a href="/properties" class="footer-navigation__link">Properties</a> 650 </li> 651 <li class="footer-navigation__item"> 652 <a href="/communities" class="footer-navigation__link">Communities</a> 653 </li> 654 <li class="footer-navigation__item"> 655 <a href="/about-us" class="footer-navigation__link">Meet the Team</a> 656 </li> 657 <li class="footer-navigation__item"> 658 <a href="/testimonials" class="footer-navigation__link">Testimonials</a> 659 </li> 660 <li class="footer-navigation__item"> 661 <a href="/contact" class="footer-navigation__link">Contact Us</a> 662 </li> 663 </ul> 664 665 <ul class="lp-socials social_icons-style-1 site-footer__socials socials"> 666 667 <li> 668 <a 669 href="https://www.facebook.com/Level5RE/" 670 class="lp-socials__link socials__item" 671 data-wow-delay="0s" 672 target="_blank" 673 aria-label="FACEBOOK" 674 > 675 <span class="lp-i lp-i--facebook" aria-hidden="true"></span> 676 </a> 677 </li> 678 <li> 679 <a 680 href="https://www.linkedin.com/company/level-5-real-estate/" 681 class="lp-socials__link socials__item" 682 data-wow-delay="0.1s" 683 target="_blank" 684 aria-label="LINKEDIN" 685 > 686 <span class="lp-i lp-i--linkedin" aria-hidden="true"></span> 687 </a> 688 </li> 689 <li> 690 <a 691 href="https://www.zillow.com/profile/MaryLevel5RE/" 692 class="lp-socials__link socials__item" 693 data-wow-delay="0.2s" 694 target="_blank" 695 aria-label="ZILLOW" 696 >
697 <span class="lp-i lp-i--zillow" aria-hidden="true"></span> 698 </a> 699 </li> 700 </ul> 701 702 </div> 703 </div> 704 705 <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="margin-top: 10px;" src="https://media-production.lp-cdn.com/media/d8c3a12f-0fd1-42cb-9a06-8a52827c42ef" width="100px;" height="auto;"> </p></div> 706 707 <div class="site-footer__copy"> 708 <div class="lp-a site-footer__copy-lp"> 709 <span>Powered by</span> 710 <a href="https://www.luxurypresence.com/" class="" target="_blank">Luxury Presence</a> 711 </div> 712 <div>Copyright © <span class="auto-year-update">2026</span> | <a href="/terms-and-conditions">Privacy Policy</a></div> 713 </div> 714 715 </div> 716 </div> 717 718 719 720</div> 721 722 </footer> 723 724 <div id="modal-global-contact-us" class="modal " 725 data-el-id="" 726 style="background-color: ;" 727 > 728 <div class="modal-content"> 729 <div class="contact-form"> 730 <div class="contact-form__close close"></div> 731 <div class="contact-form__container"> 732 733 <form class="contact-form__form" data-type="contact-form" style="color: #FFFFFF; background: rgba(122, 154, 196, 1); fill: #FFFFFF;"> 734 <h5 class="lp-h5 contact-form__title1">Get in Touch</h5> 735 <div class="input-container"> 736 <input id="-cmp-name" name="name" type="text" class="lp-input lp-input--light contact-form__input" placeholder="Name" required> 737 <span class="input-icon"></span> 738 </div> 739 740 <div class="input-container"> 741 <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-]+)+"> 742 <span class="input-icon"></span> 743 </div> 744 745 <div class="input-container"> 746 <input id="-cmp-phone" name="phone" type="tel" class="lp-input lp-input--light contact-form__input" placeholder="Phone" required> 747 <span class="input-icon"></span> 748 </div> 749 750 <div class="input-container"> 751 <textarea id="-cmp-contactMessage" placeholder="Message" name="message" required type="text" class="lp-input lp-input--light contact-form__input"></textarea> 752 <span class="input-icon"></span> 753 </div> 754 755 <div class="h-pot"> 756 <label for="-cmp-middleName">Middle Name</label> 757 <input id="-cmp-middleName" name="middleName" value="" autocomplete="off" tabindex="-1"> 758 </div> 759 760 <div class="lp-disclaimer"> <label style='display: none;' for='-termsAccepted'>Opt In/Disclaimer Consent:</label> 761 <label class='lp-tcr-content'> 762 <span class='lp-tcr-checkbox'> 763 <input 764 type='checkbox' 765 id='-termsAccepted' 766 name='termsAccepted' 767 oninvalid="this.setCustomValidity('Please accept the terms and conditions')" 768 oninput="this.setCustomValidity('')" 769 required 770 /></span> 771 <span class='lp-tcr-message'> 772 773 I agree to be contacted by 774 Level 5 Real Estate- 775 via call, email, and text for real estate services. To opt out, you can reply 'stop' at any time or reply 'help' for assistance. 776 You can also click the unsubscribe link in the emails. Message and data rates may apply. Message frequency may vary. 777 <a href='/terms-and-conditions' target='_blank'>Privacy Policy</a>. 778 </span> 779 </label> 780 781 </div> 782 783 <input type="hidden" name="source" value="CONTACT_INQUIRY"> 784 <button class="contact-form__submit btn lp-btn lp-btn--filled button-style-4" type="submit"> 785
786 <span class="sync-icon lp-i--spin"> 787 <svg width="20" height="15" viewBox="0 0 20 15" fill="currentColor" xmlns="http://www.w3.org/2000/svg"> 788 <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" /> 789 </svg> 790 </span> 791 792 <span class="success-icon"> 793 <svg width="20" height="20" viewBox="0 0 20 20" fill="currentColor" xmlns="http://www.w3.org/2000/svg"> 794 <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" /> 795 </svg> 796 </span> 797 798 Submit<span class="success-text">ted</span> 799 </button> 800 </form> 801 802 <div class="contact-form__details"> 803 <h5 class="lp-h5 contact-form__title2">Contact Details</h5> 804 <div class="company"> 805 <div class="company_contact lp-a"> 806 <p><strong>Level 5 Real Estate</strong></p> 807 <p><a href="tel:4152055218">(415) 205-5218</a></p> 808 <p><a href="/cdn-cgi/l/email-protection#5c313d2e251c30392a3930692e393d30392f283d2839723f3331"><span class="__cf_email__" data-cfemail="315c504348715d5447545d044354505d5442455045541f525e5c">[email protected]</span></a></p> 809 <p><br /><br /></p> 810 <p>580 4th Street<br />San Francisco, CA 94107</p> 811 </div> 812 </div> 813 814 <div class="socials"> 815 <ul class="lp-socials social_icons-style-1 lp-socials socials--theme-1"> 816 817 <li> 818 <a 819 href="https://www.facebook.com/Level5RE/" 820 class="lp-socials__link lp-socials__link" 821 data-wow-delay="0s" 822 target="_blank" 823 aria-label="FACEBOOK" 824 > 825 <span class="lp-i lp-i--facebook" aria-hidden="true"></span> 826 </a> 827 </li> 828 <li> 829 <a 830 href="https://www.linkedin.com/company/level-5-real-estate/" 831 class="lp-socials__link lp-socials__link" 832 data-wow-delay="0.1s" 833 target="_blank" 834 aria-label="LINKEDIN" 835 > 836 <span class="lp-i lp-i--linkedin" aria-hidden="true"></span> 837 </a> 838 </li> 839 <li> 840 <a 841 href="https://www.zillow.com/profile/MaryLevel5RE/" 842 class="lp-socials__link lp-socials__link" 843 data-wow-delay="0.2s" 844 target="_blank" 845 aria-label="ZILLOW" 846 > 847 <span class="lp-i lp-i--zillow" aria-hidden="true"></span> 848 </a> 849 </li> 850 </ul> </div> 851 </div> 852 </div> 853 </div> 854 <!-- version 1 --> 855 </div> 856 <button class="close lp-close" type="button" aria-label="close modal">
857 <span class="lp-close-icon" aria-hidden="true"></span> 858 </button> 859 </div> 860 <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;"> 861 <style> 862 #qualifying-questions-modal .custom-select-toggle { 863 border: 1px solid #848484; 864 border-radius: 8px; 865 padding: 12px 16px; 866 } 867 868 #qualifying-questions-modal .custom-select-toggle.is-placeholder { 869 color: #848484; 870 } 871 872 #qualifying-questions-modal #qualifying-questions-modal-phoneNumber::placeholder { 873 color: #848484; 874 opacity: 1; 875 } 876 877 #qualifying-questions-modal .disclaimer-more { 878 display: none; 879 } 880 881 #qualifying-questions-modal #qualifying-questions-modal-disclaimer-text:not(.collapsed) .disclaimer-more { 882 display: inline; 883 } 884 885 #qualifying-questions-modal #qualifying-questions-modal-disclaimer-text:not(.collapsed) .disclaimer-ellipsis { 886 display: none; 887 } 888 </style>
vendor: 119 bytes, lines 888-889
888 889 <script data-cfasync="false" src="/cdn-cgi/scripts/5c5dd728/cloudflare-static/email-decode.min.js"></script>
889<script> 890 function toggleDisclaimerQualifyingQuestionsModal() { 891 const disclaimerText = document.getElementById('qualifying-questions-modal-disclaimer-text'); 892 const toggleButton = document.getElementById('qualifying-questions-modal-toggle-disclaimer'); 893 894 if (disclaimerText.classList.contains('collapsed')) { 895 disclaimerText.classList.remove('collapsed'); 896 toggleButton.textContent = 'Read less'; 897 toggleButton.setAttribute('aria-expanded', 'true'); 898 } else { 899 disclaimerText.classList.add('collapsed'); 900 toggleButton.textContent = 'Read more'; 901 toggleButton.setAttribute('aria-expanded', 'false'); 902 } 903 } 904 </script>
904 905 <div style="max-width: 400px; width: 95%; margin: 0 auto;"> 906 <div style="background: #fff; border: none; border-radius: 16px; color: black; box-shadow: none; position: relative;"> 907 <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;"> 908 <span aria-hidden="true">×</span> 909 </button> 910 <div style="padding: 40px 30px 32px;"> 911 <div style="text-align: left; margin-bottom: 32px;"> 912 <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;"> 913 Thanks, please provide more information to help serve you 914 </h2> 915 </div> 916 <form id="qualifying-questions-modal-form" data-type="contact-form"> 917 <input type="hidden" name="source" value="PROFILE_UPDATE" /> 918 <input type="hidden" name="email" value="" id="qualifying-questions-modal-email" /> 919 <input type="hidden" name="triggerSource" id="qualifying-questions-modal-triggerSource" value="" /> 920 <label for="qualifying-questions-modal-email" style="display:none;"> 921 Email 922 </label> 923 <label for="qualifying-questions-modal-triggerSource" style="display:none;"> 924 Trigger Source 925 </label> 926 927 <div style="margin-bottom: 20px;"> 928 <label for="qualifying-questions-modal-phoneNumber" style="display:none;"> 929 Phone Number 930 </label> 931 <input 932 type="tel" 933 id="qualifying-questions-modal-phoneNumber" 934 name="phoneNumber" 935 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;" 936 pattern="^\+?1?[-.\s]?\(?[0-9]{3}\)?[-.\s]?[0-9]{3}[-.\s]?[0-9]{4}$" 937 required 938 placeholder="Phone" 939 aria-label="Phone Number" 940 inputmode="tel" 941 autocomplete="tel" 942 onfocus="this.style.borderColor='black';" 943 onblur="this.style.borderColor='#848484';" 944 /> 945 </div> 946 947 <div style="margin-bottom: 20px;"> 948 <label for="qualifying-questions-modal-interest" style="display:none;"> 949 Interest 950 </label> 951 <select 952 id="qualifying-questions-modal-interest" 953 name="interest" 954 required 955 data-label="Interest" 956 aria-label="Interest" 957 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;" 958 onfocus="this.style.borderColor='black'; this.style.color='black';" 959 onblur="this.style.borderColor='#848484'; if(this.value === '') this.style.color='#848484'; else this.style.color='black';" 960 > 961 <option value="" style="background: #fff; color: #848484;" disabled selected>Interested in...</option> 962 <option value="Selling & Buying" style="background: #fff; color: black;">Selling & Buying</option> 963 <option value="Selling" style="background: #fff; color: black;">Selling</option> 964 <option value="Buying" style="background: #fff; color: black;">Buying</option> 965 <option value="Renting" style="background: #fff; color: black;">Renting</option> 966 <option value="Other" style="background: #fff; color: black;">Other</option> 967 </select> 968 </div> 969 970 <div style="margin-bottom: 32px; font-size: 12px; line-height: 1.2;"> 971 <label style='display: none;' for='qualifying-questions-modal-qualifying-questions-termsAccepted'>Opt In/Disclaimer Consent:</label> 972 <label class='lp-tcr-content'>
973 <span class='lp-tcr-checkbox'> 974 <input 975 type='checkbox' 976 id='qualifying-questions-modal-qualifying-questions-termsAccepted' 977 name='termsAccepted' 978 aria-describedby='qualifying-questions-modal-disclaimer-text' 979 oninvalid="this.setCustomValidity('Please accept the terms and conditions')" 980 oninput="this.setCustomValidity('')" 981 required 982 /></span> 983 <span class='lp-tcr-message'> 984 <div id="qualifying-questions-modal-disclaimer-text" class="collapsed" style="color: #848484;"> 985 986 I agree to be contacted by 987 <strong>Level 5 Real Estate-</strong> 988 via call, email, and text <span class="disclaimer-more">for real estate services. 989 To opt out, you can reply 'stop' at any time or reply 'help' for assistance. 990 You can also click the unsubscribe link in the emails. 991 Message and data rates may apply. Message frequency may vary.</span> 992 <span class="disclaimer-ellipsis">...</span> 993 <a href='/terms-and-conditions' target='_blank' rel='noopener noreferrer' style='text-decoration: underline;'>Privacy Policy</a>. 994 </div> 995 <button 996 id="qualifying-questions-modal-toggle-disclaimer" 997 type="button" 998 style="background: none; border: none; color: #848484; font-size: inherit; font-weight: bold; padding: 0; margin-top: 4px; cursor: pointer;" 999 aria-expanded="false" 1000 onclick="toggleDisclaimerQualifyingQuestionsModal()" 1001 > 1002 Read more 1003 </button> 1004 </span> 1005 </label> 1006 </div> 1007 1008 <div> 1009 <button 1010 type="submit" 1011 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;" 1012 onmouseover="this.style.background='transparent'; this.style.color='black';" 1013 onmouseout="this.style.background='black'; this.style.color='white';" 1014 > 1015 Submit 1016 </button> 1017 </div> 1018 </form> 1019 </div> 1020 </div> 1021 </div> 1022 </div> 1023 1024
1024<script> 1025 (function() { 1026 var lazyVideos = [].slice.call(document.querySelectorAll("video.lazy")); 1027 1028 if ("IntersectionObserver" in window && lazyVideos.length > 0) { 1029 var lazyVideoObserver = new IntersectionObserver(function(entries, observer) { 1030 entries.forEach(function(video) { 1031 if (video.isIntersecting) { 1032 for (var source in video.target.children) { 1033 var videoSource = video.target.children[source]; 1034 if (typeof videoSource.tagName === "string" && videoSource.tagName === "SOURCE") { 1035 videoSource.src = videoSource.dataset.src; 1036 } 1037 } 1038 1039 video.target.load(); 1040 video.target.classList.remove("lazy"); 1041 lazyVideoObserver.unobserve(video.target); 1042 } 1043 }); 1044 }); 1045 1046 lazyVideos.forEach(function(lazyVideo) { 1047 lazyVideoObserver.observe(lazyVideo); 1048 }); 1049 } 1050 })(); 1051 </script>
1051 1052 1053 <!-- Global site tag (gtag.js) - Google Analytics --> 1054
1054<script defer src="https://www.googletagmanager.com/gtag/js"></script>
1054 1055 1056 <!-- Google Tag Manager --> 1057
1057<script>(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start': 1058 new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0], 1059 j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.defer=true;j.async=false;j.src= 1060 'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f); 1061 })(window,document,'script','dataLayer','GTM-5FR9W22');</script>
1061 1062 <!-- End Google Tag Manager --> 1063 <!-- Google Tag Manager --> 1064
1064<script>(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start': 1065 new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0], 1066 j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.defer=true;j.async=false;j.src= 1067 'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f); 1068 })(window,document,'script','dataLayer','GTM-NRB4D5T');</script>
1068 1069 <!-- End Google Tag Manager --> 1070 <!-- Google Tag Manager --> 1071
1071<script>(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start': 1072 new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0], 1073 j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.defer=true;j.async=false;j.src= 1074 'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f); 1075 })(window,document,'script','dataLayer','GTM-T9SFQGHZ');</script>
1075 1076 <!-- End Google Tag Manager --> 1077 1078 1079 <!-- LP Tracker (divolte.js) - LP Divolte --> 1080
1080<script>window.divolteLp=window.divolteLp||function(){(divolteLp.q=divolteLp.q||[]).push(arguments)}</script>
1080 1081 <!-- LP Tracker (eventBus) - LP EventBus --> 1082
1082<script>window.eventBusLp=window.eventBusLp||function(){(eventBusLp.q=eventBusLp.q||[]).push(arguments)}</script>
1082 1083 1084
1084<script> 1085 window.dataLayer = window.dataLayer || []; 1086 document.sendGoogleTagManagerEvent = function() { 1087 /* Honor GPC-enabled browsers and prevent GTM event if GPC is enabled. More details: https://global-privacy-control.glitch.me/ */ 1088 if (window.navigator.globalPrivacyControl) { 1089 return; 1090 } 1091 1092 dataLayer.push(arguments); 1093 } 1094 1095 document.sendGoogleTagManagerEvent('js', new Date()); 1096 document.sendGoogleTagManagerEvent('config', 'G-0FLPZGRZCT', { page: location.pathname, location: location.href }); 1097 document.sendGoogleAnalyticsEvent = function(googleEvent) { 1098 document.sendGoogleTagManagerEvent('event', googleEvent.eventAction || googleEvent.hitType, { 1099 event_category: googleEvent.eventCategory, 1100 event_label: googleEvent.eventLabel, 1101 value: googleEvent.eventValue, 1102 page: googleEvent.page, 1103 location: googleEvent.location 1104 }) 1105 }; 1106 1107 document.addEventListener("DOMContentLoaded", function() { 1108 (function() { 1109 //If the page has an element with ID of auto-year-update the element will be populated with the current year. 1110 var date = new Date(); 1111 var elements = document.getElementsByClassName('auto-year-update'); 1112 var i; 1113 for (i = 0; i < elements.length; i++) { 1114 elements[i].innerText = date.getFullYear(); 1115 } 1116 })(); 1117 if (window.divolteLp) { 1118 window.divolteLp('sendLpPageView', {}); 1119 } 1120 if (window.eventBusLp) { 1121 window.eventBusLp('sendLpPageView', {}); 1122 } 1123 }); 1124 </script>
1124 1125 1126 <!-- Facebook Pixel Code --> 1127
1127<script type="text/plain" data-consent-category="advertising">
vendor: 575 bytes, lines 1127-1136
1127 1128 !function(f,b,e,v,n,t,s) 1129 {if(f.fbq)return;n=f.fbq=function(){n.callMethod? 1130 n.callMethod.apply(n,arguments):n.queue.push(arguments)}; 1131 if(!f._fbq)f._fbq=n;n.push=n;n.loaded=!0;n.version='2.0'; 1132 n.queue=[];t=b.createElement(e);t.async=!0; 1133 t.src=v;s=b.getElementsByTagName(e)[0]; 1134 s.parentNode.insertBefore(t,s)}(window, document,'script', 1135 'https://connect.facebook.net/en_US/fbevents.js'); 1136 fbq('init', '
1136603242903478219
vendor: 58 bytes, lines 1136-1138
1136'); 1137 fbq('track', 'PageView'); 1138
1138</script>
1138 1139 <noscript><img height="1" width="1" style="display:none" 1140 src="https://www.facebook.com/tr?id=603242903478219&ev=PageView&noscript=1" 1141 /></noscript> 1142 <!-- End Facebook Pixel Code --> 1143 1144
1144<script> 1145 // Function to dynamically load a script 1146 function loadScript(url, callback) { 1147 var script = document.createElement('script'); 1148 script.type = 'text/javascript'; 1149 script.src = url; 1150 script.defer = true; 1151 script.async = true; 1152 script.onload = callback; 1153 document.head.appendChild(script); 1154 } 1155 1156 // Function to dynamically load CSS file 1157 function loadCSS(url) { 1158 var link = document.createElement("link"); 1159 link.rel = "stylesheet"; 1160 link.href = url; 1161 document.head.appendChild(link); 1162 } 1163 1164 // Global methods / variables that can be accessed by element js 1165 window.luxuryPresence = { 1166 libs: { 1167 loadJs: loadScript, 1168 loadCss: loadCSS, 1169 jsLibsMap: { 1170 paroller: { 1171 jsSrc: 'https://d1e1jt2fj4r8r.cloudfront.net/javascript/jquery.paroller.min.js', 1172 isLoaded: false, 1173 }, 1174 ionRangeSlider: { 1175 jsSrc: 'https://cdnjs.cloudflare.com/ajax/libs/ion-rangeslider/2.3.1/js/ion.rangeSlider.min.js', 1176 cssSrc: 'https://cdnjs.cloudflare.com/ajax/libs/ion-rangeslider/2.3.1/css/ion.rangeSlider.min.css', 1177 isLoaded: false, 1178 requires: ['jquery'], 1179 }, 1180 splide: { 1181 jsSrc: 'https://cdnjs.cloudflare.com/ajax/libs/splidejs/4.1.4/js/splide.min.js', 1182 cssSrc: 'https://cdnjs.cloudflare.com/ajax/libs/splidejs/4.1.4/css/splide-core.min.css', 1183 isLoaded: false, 1184 }, 1185 wow: { 1186 jsSrc: 'https://cdnjs.cloudflare.com/ajax/libs/wow/1.1.2/wow.min.js', 1187 isLoaded: false, 1188 }, 1189 jquery: { 1190 jsSrc: 'https://cdnjs.cloudflare.com/ajax/libs/jquery/3.7.1/jquery.min.js', 1191 isLoaded: false, 1192 }, 1193 slick: { 1194 jsSrc: 'https://cdnjs.cloudflare.com/ajax/libs/slick-carousel/1.8.1/slick.min.js', 1195 isLoaded: false, 1196 requires: ['jquery'], 1197 }, 1198 libphonenumber: { 1199 jsSrc: 'https://cdnjs.cloudflare.com/ajax/libs/libphonenumber-js/1.11.8/libphonenumber-js.min.js', 1200 isLoaded: false, 1201 }, 1202 }, 1203 }, 1204 }; 1205 </script>
1205 1206
1206<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>
1206 1207
1207<script defer src="https://cdnjs.cloudflare.com/ajax/libs/handlebars.js/4.7.8/handlebars.min.js"></script>
1207 1208
1208<script defer src="https://cdn.jsdelivr.net/npm/[email protected]/dist/handlebars-intl.min.js"></script>
1208 1209
1209<script defer src="https://cdnjs.cloudflare.com/ajax/libs/superagent/4.1.0/superagent.min.js"></script>
1209 1210
1210<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>
1210 1211
1211<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>
1211 1212
1212<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>
1212 1213 1214 <!-- GOOGLE TRANSLATE SCRIPT --> 1215
1215<script> 1216 function googleTranslateElementInit() { 1217 // list of languages can be overridden by setting window.customLanguages in the head JS. example `window.customLanguages = 'en,de,fr,ro,sk,pl'` 1218 // Language codes can be taken from here https://cloud.google.com/translate/docs/languages 1219 const DEFAULT_LANGUAGES = 'en,es,zh-CN,zh-TW,tl,vi,ar,ko,ru,de,fr,hi,pt'; 1220 document.querySelectorAll('[data-type="TRANSLATE"]').forEach(function(translate){ 1221 translate.innerText = ''; 1222 new google.translate.TranslateElement({ 1223 pageLanguage: 'en', 1224 layout: google.translate.TranslateElement.InlineLayout.SIMPLE, 1225 includedLanguages: window.customLanguages || DEFAULT_LANGUAGES, 1226 }, translate); 1227 }); 1228 } 1229 </script>
1229 1230
1230<script defer src="//translate.google.com/translate_a/element.js?cb=googleTranslateElementInit"></script>
1230 1231
1231<script defer src="https://accounts.google.com/gsi/intermediate"></script>
1231 1232 1233 <!-- GOOGLE TRANSLATE SCRIPT END--> 1234
1234<script> 1235 1236 // UI helpers 1237 (function () { 1238 1239 function getSideMenu () { 1240 return document.querySelector('body > div.sidemenu'); 1241 } 1242 1243 function sideMenuHide (instant) { 1244 var sideMenu = getSideMenu(); 1245 if (!sideMenu || !sideMenu.classList.contains('visible')) { 1246 return; 1247 } 1248 sideMenu.classList.remove('visible'); 1249 sideMenu.dispatchEvent(new CustomEvent('lpui-hide', { detail: { instant: !!instant } })); 1250 window.dispatchEvent(new CustomEvent('lpui-sidemenu-hide', { detail: {instant: !!instant} })); 1251 } 1252 1253 function sideMenuShow () { 1254 var sideMenu = getSideMenu(); 1255 if (!sideMenu || sideMenu.classList.contains('visible')) { 1256 return; 1257 } 1258 sideMenu.classList.add('visible'); 1259 sideMenu.dispatchEvent(new Event('lpui-show')); 1260 window.dispatchEvent(new Event('lpui-sidemenu-show')); 1261 } 1262 1263 function sideMenuToggle () { 1264 var sideMenu = getSideMenu(); 1265 if (!sideMenu) { 1266 return; 1267 } 1268 var isSideMenuVisible = sideMenu.classList.contains('visible'); 1269 if (isSideMenuVisible) { 1270 sideMenuHide(); 1271 } else { 1272 sideMenuShow(); 1273 } 1274 } 1275 1276 var scrollLockRequests = {}; 1277 window.__debug_scrollLockRequests = scrollLockRequests; 1278 var hideScrollStyles = ''+ 1279 'body {'+ 1280 'overflow: hidden;' + 1281 '}'; 1282 var hideScrollId = 'hide-body-scroll-style'; 1283 1284 function scrollLock () { 1285 var style = document.createElement('style'); 1286 style.id = hideScrollId; 1287 style.textContent = hideScrollStyles; 1288 document.head.appendChild(style); 1289 window.dispatchEvent(new Event('lpui-scroll-locked')); 1290 } 1291 1292 function scrollUnlock () { 1293 document.getElementById(hideScrollId)?.remove(); 1294 window.dispatchEvent(new Event('lpui-scroll-unlocked')); 1295 } 1296 1297 function requestScrollLock (lockId) { 1298 var wasLocked = Object.keys(scrollLockRequests).length > 0; 1299 scrollLockRequests[lockId || '__anonymous_lock'] = true; 1300 if (!wasLocked) { 1301 scrollLock(); 1302 } 1303 } 1304 1305 function releaseScrollLock (lockId) { 1306 if (lockId) { 1307 delete scrollLockRequests[lockId]; 1308 if (!Object.keys(scrollLockRequests).length) { 1309 scrollUnlock(); 1310 } 1311 } else { 1312 scrollLockRequests = {}; 1313 window.__debug_scrollLockRequests = scrollLockRequests; 1314 scrollUnlock(); 1315 } 1316 } 1317 1318 function showModal (modalId, options) { 1319 var modal = document.getElementById(modalId); 1320 if (!modal) { 1321 return; 1322 } 1323 1324 if (!modal.classList.contains('visible')) { 1325 modal.classList.add('visible'); 1326 if (options && options.scrollLock) { 1327 window.lpUI.requestScrollLock(modalId); 1328 } 1329 modal.dispatchEvent(new Event('lpui-show')); 1330 window.dispatchEvent(new CustomEvent('lpui-modal-show', { detail: { id: modalId } })); 1331 } 1332 1333 const visibleModals = document.querySelectorAll('.modal.visible'); 1334 1335 if (visibleModals.length > 1) { 1336 1337 const maxZIndex = Array.from(visibleModals).reduce((maxZIndex, modal) => { 1338 const zIndex = window.getComputedStyle(modal).zIndex; 1339 const parsedZIndex = zIndex !== 'auto' ? parseInt(zIndex) : 0; 1340 return Math.max(maxZIndex, parsedZIndex); 1341 }, 0); 1342 1343 modal.style.zIndex = maxZIndex + 1; 1344 } 1345 1346 } 1347 1348 function _hideModal (modalEl) { 1349 if (!modalEl) { 1350 return; 1351 } 1352 if (!modalEl.classList.contains('visible')) { 1353 return; 1354 } 1355 modalEl.classList.remove('visible'); 1356 modalEl.style.zIndex = '';
1357 modalEl.dispatchEvent(new Event('lpui-hide')); 1358 var modalId = modalEl.getAttribute('id'); 1359 if (modalId) { 1360 window.lpUI.releaseScrollLock(modalId); 1361 window.dispatchEvent(new CustomEvent('lpui-modal-hide', { detail: { id: modalId } })); 1362 } 1363 } 1364 1365 function hideModal (modalId) { 1366 _hideModal(document.getElementById(modalId)); 1367 } 1368 1369 function hideClosestModal (el) { 1370 const modal = el?.closest('.modal'); 1371 if (!modal) { 1372 return; 1373 } 1374 if (modal.classList) { 1375 _hideModal(modal); 1376 return; 1377 } 1378 if (modal.length && modal[0].classList) { 1379 _hideModal(modal[0]); 1380 } 1381 } 1382 1383 window.lpUI = { 1384 sideMenuHide: sideMenuHide, 1385 sideMenuShow: sideMenuShow, 1386 sideMenuToggle: sideMenuToggle, 1387 requestScrollLock: requestScrollLock, 1388 releaseScrollLock: releaseScrollLock, 1389 showModal: showModal, 1390 hideModal: hideModal, 1391 hideClosestModal: hideClosestModal 1392 } 1393 })(); 1394 1395 var stringifyPrimitive = function(v) { 1396 switch (typeof v) { 1397 case 'string': 1398 return v; 1399 1400 case 'boolean': 1401 return v ? 'true' : 'false'; 1402 1403 case 'number': 1404 return isFinite(v) ? v : ''; 1405 1406 default: 1407 return ''; 1408 } 1409 }; 1410 1411 function objectToQuerystring(obj, sep, eq, name) { 1412 // https://github.com/Gozala/querystring/blob/master/encode.js 1413 sep = sep || '&'; 1414 eq = eq || '='; 1415 if (obj === null) { 1416 obj = undefined; 1417 } 1418 1419 if (typeof obj === 'object') { 1420 return Object.keys(obj).map(function(k) { 1421 var ks = encodeURIComponent(stringifyPrimitive(k)) + eq; 1422 if (Array.isArray(obj[k])) { 1423 return obj[k].map(function(v) { 1424 return ks + encodeURIComponent(stringifyPrimitive(v)); 1425 }).join(sep); 1426 } else { 1427 return ks + encodeURIComponent(stringifyPrimitive(obj[k])); 1428 } 1429 }).filter(Boolean).join(sep); 1430 1431 } 1432 1433 if (!name) return ''; 1434 return encodeURIComponent(stringifyPrimitive(name)) + eq + 1435 encodeURIComponent(stringifyPrimitive(obj)); 1436 } 1437 1438 function getPath(url, options) { 1439 var parser = document.createElement('a'); 1440 parser.href = url || ''; 1441 var path = parser.pathname || ''; 1442 if (path[0] !== '/') { 1443 // IE does not return path starting with a slash 1444 path = '/' + path; 1445 } 1446 1447 if (options && options.queryString) { 1448 path += parser.search; 1449 } 1450 1451 return path; 1452 } 1453 1454 function getMLSAutocomplete(keyword) { 1455 var searchURL = window.location.protocol + '//' + window.location.hostname + '/home-search/auto_complete'; 1456 var query = { 1457 kind: 'listings', 1458 query: keyword 1459 }; 1460 1461 return superagent 1462 .get(searchURL) 1463 .query(query) 1464 .then(function(res) { 1465 var data = res.body || []; 1466 /* 1467 Of the format: 1468 [{ 1469 "_index": "listing_auto_completes_production_20190723232720775", 1470 "_type": "listing_auto_complete", 1471 "_id": "235875624", 1472 "_score": 0, 1473 "status_modified_at": 1553250708, 1474 "city": "Jupiter", 1475 "price": 1335743, 1476 "display_address": "10088 Calabrese Trail Unit: 9 Jupiter FL 33478", 1477 "sold_price": null, 1478 "id": 235875624, 1479 "state": "FL", 1480 "photo_urls": [ 1481 "http://cdn.photos.sparkplatform.com/fl/20190322153144208228000000-o.jpg" 1482 ], 1483 "status": "Pending" 1484 }, ...] 1485 */ 1486 1487 return data; 1488 }); 1489 } 1490 1491 function getMLSAutocompleteWithFilters(keyword, filters = {}) { 1492 var searchURL = window.location.protocol + '//' + window.location.hostname + '/home-search/auto_complete'; 1493 1494 return superagent 1495 .get(searchURL) 1496 .query({ kind: 'listings', query: keyword, ...filters }) 1497 .then(function(res) { 1498 /* 1499 Of the format: 1500 [{ 1501 "_index": "listing_auto_completes_production_20190723232720775", 1502 "_type": "listing_auto_complete", 1503 "_id": "235875624", 1504 "_score": 0, 1505 "status_modified_at": 1553250708, 1506 "city": "Jupiter", 1507 "price": 1335743, 1508 "display_address": "10088 Calabrese Trail Unit: 9 Jupiter FL 33478", 1509 "sold_price": null, 1510 "id": 235875624, 1511 "state": "FL", 1512 "photo_urls": [ 1513 "http://cdn.photos.sparkplatform.com/fl/20190322153144208228000000-o.jpg" 1514 ], 1515 "status": "Pending" 1516 }, ...] 1517 */ 1518 return res.body || []; 1519 }); 1520 } 1521 1522 function makeMlsLink(data) { 1523 // Code Dupe from utils/googlePlace 1524 // mapping of google data type to mls data type 1525 var mapping = { 1526 neighborhood: 'neighborhood', 1527 locality: 'place', 1528 administrative_area_level_2: 'county', 1529 administrative_area_level_1: 'state', 1530 postal_code: 'postalcode', 1531 }; 1532 1533 function _filterTypes(types) { 1534 return types.filter(function(type) { return type !== 'political' }); 1535 } 1536 1537 if (!data || !Object.keys(data).length) { 1538 return '/home-search/listings'; 1539 } 1540 1541 var newData = {};
1542 _filterTypes(data.types).forEach(function(type) { 1543 if (mapping[type]) { 1544 newData.search_type = mapping[type]; 1545 } 1546 }); 1547 newData.omnibox = data.formatted_address; 1548 data.address_components.forEach(function(component) { 1549 _filterTypes(component.types).forEach(function(type) { 1550 if (mapping[type]) { 1551 newData[mapping[type]] = component.long_name; 1552 } 1553 }); 1554 }); 1555 var bounds = data.geometry.bounds; 1556 var convertedData = Object.assign(bounds, newData); 1557 1558 return '/home-search/listings?' + objectToQuerystring(convertedData); 1559 } 1560 1561 function debounce(func, wait) { 1562 let timeout; 1563 return function(...args) { 1564 const context = this; 1565 clearTimeout(timeout); 1566 timeout = setTimeout(() => func.apply(context, args), wait) 1567 } 1568 } 1569 1570 // Global methods / variables that can be accessed by element js 1571 window.luxuryPresence = { 1572 ...window.luxuryPresence, 1573 defaults: { 1574 companyId: '18711908-6890-4d24-8472-5a7e2cbdd5d3', 1575 apiGatewayUrl: '/api-gw', 1576 routerUrl: '/api-nv', 1577 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\
1577n }\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-
1577abb7-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
1577onId,\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}"}, 1578 propertyPlaceholderImage: {"id":"5a53bc3d-6c0d-4bc2-be0a-ad693effd4f8","alt":null,"bytes":4787,"width":1920,"format":"png","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/zkbkutkl2ec9gck1c1cj","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/zkbkutkl2ec9gck1c1cj","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/zkbkutkl2ec9gck1c1cj","sourceUrl":null,"xLargeUrl":"https://media-production.lp-cdn.com/cdn-cgi/image/format=auto,quality=85/https://media-production.lp-cdn.com/media/zkbkutkl2ec9gck1c1cj","__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/zkbkutkl2ec9gck1c1cj","description":null,"displayName":"property-logo-3","originalUrl":"https://media-production.lp-cdn.com/cdn-cgi/image/format=auto,quality=85/https://media-production.lp-cdn.com/media/zkbkutkl2ec9gck1c1cj","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/zkbkutkl2ec9gck1c1cj","originalFileName":"Property logo (3)"} 1579 }, 1580 objectToQuerystring: objectToQuerystring, 1581 getPath: getPath, 1582 getMLSAutocomplete: getMLSAutocomplete, 1583 getMLSAutocompleteWithFilters: getMLSAutocompleteWithFilters, 1584 makeMlsLink: makeMlsLink, 1585 debounce: debounce, 1586 }; 1587 1588 var wowOffset = 100; 1589 </script>
1589 1590
1590<script> 1591 (()=>{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()}`}
1591,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())),`
1591<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}
1591return 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
1591ontact 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=([^;
1591]+)/);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}
1591=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=` 1592 <div id="modal-${s.id}" class="modal visible"> 1593 <div class="modal-content"> 1594 <div class="lightbox-video"> 1595 <div class="video-player"> 1596 <div class="embed-container"> 1597 ${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>`} 1598 </div> 1599 </div> 1600 </div> 1601 </div> 1602 <button class="close lp-close" type="button" aria-label="close modal"><span class="lp-close-icon" aria-hidden="true"></span></button> 1603 </div> 1604 `;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=[]}
1604attachValidation(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)}}
1604async _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)=>
1604{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
1604=>{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=` 1605 <button class="lp-lightbox__close" aria-label="close modal"></button> 1606 <div class="lp-lightbox__content"> 1607 <div class="lp-lightbox__carousel splide" role="group" aria-label="Image Gallery"> 1608 <div class="splide__arrows"> 1609 <button class="splide__arrow splide__arrow--prev lp-lightbox-arrow lp-lightbox-arrow--prev"></button> 1610 <button class="splide__arrow splide__arrow--next lp-lightbox-arrow lp-lightbox-arrow--next"></button> 1611 </div> 1612 <div class="splide__track"> 1613 <ul class="splide__list"></ul> 1614 </div> 1615 </div> 1616 </div> 1617 `,"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
1617h(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=` 1618 <button class="lp-lightbox__close" aria-label="close modal"></button> 1619 <div class="lp-lightbox__content"> 1620 <div class="lp-lightbox__carousel"></div> 1621 </div> 1622 `,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"}
1622)),(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"];
1622return 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=` 1623 query { 1624 validSession { 1625 success 1626 } 1627 } 1628 `;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","
1628spaceTypeIds","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})}})(); 1629//# sourceMappingURL=lp-sdk.js.map 1630 1631 </script>
1631 1632 1633
1633<script> 1634 var lpGlobalInitialized = false; 1635 1636 function lpGlobalInit () { 1637 if (lpGlobalInitialized) { 1638 return; 1639 } 1640 lpGlobalInitialized = true; 1641 // Initialize wow animation plugin only according to turbolinks 1642 var wow; 1643 if (window.WOW) { 1644 wow = new WOW({ 1645 animateClass: 'animated', 1646 offset: wowOffset, 1647 live: false, 1648 callback: function(box) {} 1649 }); 1650 } 1651 // Initialize handlebar helpers only once 1652 function handlebarsInit() { 1653 if (!window.Handlebars) { 1654 return; 1655 } 1656 HandlebarsIntl.registerWith(Handlebars); 1657 Handlebars.registerHelper(window.luxuryPresence.handlebarsHelpersFactory(Handlebars)); 1658 } 1659 1660 handlebarsInit(); 1661 1662 var modalContentUrl = "/modals.html"; 1663 const modalsContainer = document.getElementById('modals'); 1664 if (modalsContainer) { 1665 fetch(modalContentUrl).then(function(res) { 1666 if (!res.ok) { 1667 throw new Error(`HTTP error! Status: ${res.status}`); 1668 } 1669 return res.text(); 1670 }).then(function(resultText) { 1671 modalsContainer.innerHTML = resultText; 1672 1673 // now we need to execute all script elements 1674 Array.from(modalsContainer.getElementsByTagName('script')).forEach(function (s) { 1675 const script = document.createElement("script"); 1676 script.text = s.innerHTML; 1677 Array.from(s.attributes).forEach(function (a) { 1678 script.setAttribute(a.name, a.value); 1679 }) 1680 s.parentNode.replaceChild(script, s); 1681 }); 1682 1683 try { 1684 window.luxuryPresence.modals.initialize(window.luxuryPresence._modalIncludes); 1685 window.luxuryPresence.contactForms.initialize({ selector: '#modals' }); 1686 window.luxuryPresence.validation.initialize({ selector: '#modals' }); 1687 window.luxuryPresence.oauth.initialize({ 1688 googleSignOnEnabled: true, 1689 iframe: false }); 1690 } catch (e) { 1691 console.log(e); 1692 } 1693 document.querySelectorAll('.modals > .modal .close').forEach(closeModalBtn => { 1694 closeModalBtn.addEventListener('click', function() { 1695 window.lpUI.hideClosestModal(closeModalBtn); 1696 }); 1697 }); 1698 }).catch((e) => console.log(e)); 1699 } 1700 /* Initialize Luxury Presence SDK */ 1701 try { 1702 window.luxuryPresence.config.setCompany("18711908-6890-4d24-8472-5a7e2cbdd5d3", {}); 1703 window.luxuryPresence.config.setWebsite("e14906e9-42f1-4511-aebc-60613abcb5b6", { 1704 myhomeDashboardEnabled: true, 1705 mlsEnabled: true, 1706 hstValuationRedirectEnabled: true 1707 }); 1708 const url = new URL(window.location.href); 1709 const shareId = url.searchParams.get('shareId'); 1710 window.luxuryPresence.config.setPage("a0179aa3-547a-4af7-8e07-bd312914ffb9", { 1711 sourceResource: "", 1712 pageElementId: "", 1713 pageQueryVariables: {}, 1714 shareId: "", 1715 }); 1716 window.luxuryPresence.config.setWebsiteApiGatewayUrl("https://wgw.luxurypresence.com", {}); 1717 window.luxuryPresence.config.setBuyerSellerServiceUrl("https://bss.luxurypresence.com", {}); 1718 window.luxuryPresence.config.setDivolteServiceUrl("https://t.luxurypresence.com", {}); 1719 window.luxuryPresence.config.setEventBusUrl("https://cdn.luxurypresence.com/scripts/event-bus-js", {}); 1720 window.luxuryPresence.config.setEventBus({ 1721 enabled: true, 1722 apiKey: "phc_PMYT31xlmXBaTCwpIRx1v6RrpLVZIuP47N3mOT6KLnr", 1723 url: "https://p.luxurypresence.com", 1724 }); 1725 window.luxuryPresence.config.setTemplateId("e3960201-1a19-4660-a991-8658653d81e9", {}); 1726 window.luxuryPresence.config.setLeadIngesterUrl("https://leads.luxurypresence.com", {}); 1727 window.luxuryPresence.buttons.initialize({}); 1728 window.luxuryPresence.consent.initialize({ provider: 'lp-consent' }); 1729 window.luxuryPresence.contactForms.initialize({}); 1730 window.luxuryPresence.validation.initialize({}); 1731 window.luxuryPresence.expandSliders.initialize({}); 1732 window.luxuryPresence.oauth.initialize({ googleSignOnEnabled: true, iframe: false }); 1733 window.luxuryPresence.qualifyingQuestionsModal.initialize({ qualifyingQuestionsModalEnabled: true }); 1734 } catch (e) { 1735 console.log(e); 1736 } 1737 1738 /* Inject Section Specific Javascript */ 1739 try { 1740(function init(sectionDomId) { 1741 let address = $('#' + sectionDomId + " .company_address").text().trim(); 1742 $('#' + sectionDomId + " .company_address").text(address); 1743 function setHttp(link) { 1744 if (link.search(/^http[s]?\:\/\/|\//) == -1) { 1745 link = 'http://' + link; 1746 } 1747 return link; 1748 } 1749 $(`#${sectionDomId} .contact-form__form`).on('reset', () => { 1750 const redirectLink = $('#' + sectionDomId + ' .redirect-link'); 1751 if (redirectLink.length) { 1752 const rawHref = redirectLink.attr('href'); 1753 redirectLink.attr('href', setHttp(rawHref)); 1754 redirectLink[0].click(); 1755 } 1756 }); 1757})('modal-global-contact-us'); 1758} catch(e) { 1759console.log(e); 1760} 1761 1762 try { 1763(function init(sectionDomId) { 1764 var resizeMenu = function () { 1765 var widthSoFar = 0; 1766 var availableWidth = $('#' + sectionDomId + ' .navigation').width(); 1767 if ($(window).width() > 1024) { 1768 $('#' + sectionDomId + ' .navigation > li').each(function () { 1769 $(this).hide(); 1770 const currentItemWidth = $(this).outerWidth(); 1771 if (availableWidth - widthSoFar >= currentItemWidth) $(this).css({ 1772 "visibility": "visible", 1773 "display": "list-item", 1774 "height": "auto" 1775 }); 1776 widthSoFar += $(this).outerWidth(); 1777 }); 1778 } 1779 }; 1780 $(window).on('resize.lpui-auto-clean', resizeMenu); 1781 const mediaQuery = window.matchMedia('(hover: hover) and (pointer: fine)'); 1782 var $subNavTrigger = $('body > nav .sub-nav-container a'); 1783 var $subNavContainer = $('body > nav .sub-nav-container'); 1784 if (mediaQuery.matches) { 1785 $subNavTrigger.off('click'); 1786 $subNavContainer.mouseout(function () { 1787 var self = $(this); 1788 self.removeClass('active').find('.sub-nav').removeClass('visible'); 1789 }).mouseover(function () { 1790 $(this).siblings('.sub-nav-container').removeClass('active').find('.sub-nav').removeClass('visible'); 1791 $(this).addClass('active').find('.sub-nav').addClass('visible'); 1792 }).mouseup(function () { 1793 var self = $(this); 1794 self.toggleClass('active'); 1795 }); 1796 } 1797 function isSectionLight(sect) { 1798 if (!sect || !sect.style) { 1799 return true; 1800 } 1801 if (sect.style.backgroundImage) { 1802 return false;
1803 } 1804 if ($(sect).children('.video-wrapper').length) { 1805 return false; 1806 } 1807 return sect.classList.contains('is-background-color-light'); 1808 } 1809 const $header = $(`#${sectionDomId} > .header`); 1810 if ($header.hasClass('theme-auto')) { 1811 if (isSectionLight($('body > section')[0])) { 1812 $header.removeClass('theme-light'); 1813 } else { 1814 $header.addClass('theme-light'); 1815 } 1816 } 1817 var resizeTimeout; 1818 clearTimeout(resizeTimeout); 1819 resizeTimeout = setTimeout(function () { 1820 resizeMenu(); 1821 }, 1000); 1822})('global-navbar'); 1823} catch(e) { 1824console.log(e); 1825} 1826 try { 1827(function init(sectionDomId, options) { 1828 var elementSelector = options.elementSelector || 'nav'; 1829 var element = document.querySelector(elementSelector); 1830 var sections = document.querySelectorAll('body > section'); 1831 var subNavContainers = element.querySelectorAll('.sub-nav'); 1832 var initialBackgroundColor = options.initialBackgroundColor || element.style.backgroundColor; 1833 var backgroundColorScroll = options.backgroundColorScroll || '#191919'; 1834 var fontColor = options.fontColor || '#fff'; 1835 var fontColorScroll = options.fontColorScroll || '#000'; 1836 var didScroll = false; 1837 var lastScrollTop = 0; 1838 var delta = 5; 1839 1840 // eslint-disable-next-line sonarjs/no-collapsible-if 1841 if (wow) { 1842 // Wowjs might not trigger for position fixed elements 1843 if (window.scrollY > 0) { 1844 element.querySelectorAll('.wow').forEach(el => wow.show(el)); 1845 } 1846 } 1847 function adjustNavPinState() { 1848 // Remove 'visible' class from all subNavContainers 1849 for (let i = 0; i < subNavContainers.length; i++) { 1850 subNavContainers[i].classList.remove('visible'); 1851 } 1852 if (window.scrollY > 0) { 1853 element.style.backgroundColor = backgroundColorScroll; 1854 element.style.color = fontColorScroll; 1855 element.classList.add('scroll'); 1856 } else { 1857 element.style.backgroundColor = initialBackgroundColor; 1858 element.style.color = fontColor; 1859 element.classList.remove('scroll'); 1860 } 1861 } 1862 adjustNavPinState(); 1863 function onScroll() { 1864 didScroll = true; 1865 } 1866 window.addEventListener('scroll', onScroll); 1867 1868 // eslint-disable-next-line 1869 var debounceInterval = setInterval(() => { 1870 if (didScroll) { 1871 // eslint-disable-next-line 1872 hasScrolled(); 1873 didScroll = false; 1874 } 1875 }, 250); 1876 function hasScrolled() { 1877 adjustNavPinState(); 1878 // eslint-disable-next-line 1879 var navbarHeight = element.offsetHeight; 1880 // eslint-disable-next-line 1881 var st = window.scrollY; 1882 1883 // Make sure they scroll more than delta 1884 if (Math.abs(lastScrollTop - st) <= delta) { 1885 return; 1886 } 1887 if (st > lastScrollTop && st > navbarHeight) { 1888 // Scroll Down 1889 element.style.transform = `translateY(-${navbarHeight}px) scaleY(0)`; 1890 document.documentElement.style.setProperty('--global-header-height', '0px'); 1891 1892 // Some sections "follow" the navbar with class sticky (i.e. Producer search) 1893 sections.forEach(section => { 1894 if (section.classList.contains('sticky')) { 1895 section.style.top = '0px'; 1896 } 1897 }); 1898 } else { 1899 // Scroll Up 1900 // eslint-disable-next-line 1901 if (st + window.innerHeight < document.documentElement.scrollHeight) { 1902 element.style.transform = `translateY(0) scaleY(1)`; 1903 document.documentElement.style.setProperty('--global-header-height', `${navbarHeight}px`); 1904 sections.forEach(section => { 1905 if (section.classList.contains('sticky')) { 1906 section.style.top = `${navbarHeight}px`; 1907 } 1908 }); 1909 } 1910 } 1911 lastScrollTop = st; 1912 } 1913})('NAVBAR', JSON.parse("{\"fontColor\":\"#211F1F\",\"elementSelector\":\"nav\",\"fontColorScroll\":\"#ffffff\",\"backgroundColorScroll\":\"#2C3426\",\"initialBackgroundColor\":\"transparent\"}")); 1914} catch(e) { 1915console.log(e); 1916} 1917 try { 1918(function init(sectionDomId) { 1919 sectionDomId = "global-sidemenu"; 1920 var $sidemenu = $('#' + sectionDomId); 1921 const subNavItems = $('body > div.sidemenu .sub-nav-container .sub-nav__item'); 1922 const hideSubNavItems = () => { 1923 subNavItems.removeClass('fadeInUp'); 1924 }; 1925 const showSubNavItems = subnav => { 1926 if ($(subnav).find('.arrow').hasClass('active')) { 1927 $(".sidemenu").find('.arrow').removeClass('active'); 1928 } else { 1929 $(".sidemenu").find('.arrow').removeClass('active'); 1930 $(subnav).find('.arrow').addClass('active'); 1931 } 1932 let i = 0; 1933 subnav.find('.sub-nav__item').each((idx, item) => { 1934 i++; 1935 var timeout; 1936 clearTimeout(timeout); 1937 timeout = setTimeout(() => { 1938 $(item).addClass('fadeInUp'); 1939 }, 100 + i * 50); 1940 }); 1941 }; 1942 $(document).on("click", function (e) {
1943 if ($(e.target).closest(".navigation").length < 1) { 1944 hideSubNavItems(); 1945 } 1946 }); 1947 $('body > div.sidemenu .sub-nav-container > a').click(function (e) { 1948 const subnavContainer = $(this).closest('.sub-nav-container'); 1949 hideSubNavItems(); 1950 showSubNavItems(subnavContainer); 1951 }); 1952 const hideSideMenu = () => { 1953 $('body > div.sidemenu').removeClass('visible'); 1954 }; 1955 $('body > div.sidemenu .navigation .navigation__item:not(.sub-nav-container) .navigation__link').on('click', function (e) { 1956 onHide(); 1957 hideSideMenu(); 1958 }); 1959 $('body > div.sidemenu .sub-nav-container .sub-nav__link').on('click', function (e) { 1960 onHide(); 1961 setTimeout(() => { 1962 hideSideMenu(); 1963 }, 1601); 1964 }); 1965 var shown = false; 1966 function onShow() { 1967 if (shown) { 1968 return; 1969 } 1970 shown = true; 1971 window.lpUI.requestScrollLock(sectionDomId); 1972 $('#' + sectionDomId + ' .navigation__link').removeClass('fade-in'); 1973 $('#' + sectionDomId + ' .lp-socials__link').removeClass('fade-in'); 1974 let i = 0; 1975 $('#' + sectionDomId + ' .navigation__link').each(function () { 1976 i++; 1977 setTimeout(() => { 1978 $(this).addClass('fade-in'); 1979 }, 900 + i * 50); 1980 }); 1981 $('#' + sectionDomId + ' .lp-socials__link').each(function () { 1982 i++; 1983 setTimeout(() => { 1984 $(this).addClass('fade-in'); 1985 }, 900 + i * 50); 1986 }); 1987 } 1988 function onHide() { 1989 hideSubNavItems(); 1990 if (!shown) { 1991 return; 1992 } 1993 $('#' + sectionDomId + ' .lp-socials__link').removeClass('fade-in'); 1994 let i = 0; 1995 $($('#' + sectionDomId + ' .navigation__link').get().reverse()).each(function () { 1996 i++; 1997 setTimeout(() => { 1998 $(this).removeClass('fade-in'); 1999 }, i * 50); 2000 }); 2001 shown = false; 2002 setTimeout(() => { 2003 window.lpUI.releaseScrollLock(sectionDomId); 2004 }, 1600); 2005 } 2006 $sidemenu.on('lpui-show', onShow); 2007 $sidemenu.on('lpui-hide', onHide); 2008})('global-sidemenu'); 2009} catch(e) { 2010console.log(e); 2011} 2012 2013 try { 2014(function init(sectionDomId) { 2015 function setHttp(link) { 2016 if (link.search(/^http[s]?\:\/\/|\//) == -1) { 2017 link = 'http://' + link; 2018 } 2019 return link; 2020 } 2021 $(`#${sectionDomId} form`).on("reset", function () { 2022 const redirectLink = $('#' + sectionDomId + ' .redirect-link'); 2023 if (redirectLink.length) { 2024 const rawHref = redirectLink.attr('href'); 2025 redirectLink.attr('href', setHttp(rawHref)); 2026 redirectLink[0].click(); 2027 } 2028 }); 2029})('global-footer'); 2030} catch(e) { 2031console.log(e); 2032} 2033 2034 try { 2035(function init(sectionDomId) { 2036 var _section = $('#' + sectionDomId); 2037 var _footer = document.getElementById('global-footer'); 2038 const redirectLink = _section.find('.js-redirect-link'); 2039 function setHttp(link) { 2040 if (link.search(/^(http[s]?\:\/\/|\/)/) == -1) { 2041 link = 'https://' + link; 2042 } 2043 return link; 2044 } 2045 function redirectPage(link) { 2046 if (link.length) { 2047 window.location.href = setHttp(link.attr('href')); 2048 } 2049 } 2050 const emailInput = _section.find('.js-email-input'); 2051 const emailRegex = /[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~\-]+@[a-zA-Z0-9-]+(?:\.[a-zA-Z0-9-]+)+/; 2052 emailInput.on('input', function () { 2053 if (emailRegex.test(this.value)) { 2054 this.setCustomValidity(''); 2055 } else { 2056 this.setCustomValidity('Please enter a valid email address.'); 2057 } 2058 this.reportValidity(); 2059 }); 2060 _section.find('input[name="name"]').on("keyup", function () { 2061 if (this.value.replaceAll(/\d/g, "").trim().split(" ").length < 2 || this.value.replaceAll(/\d/g, "").trim() === "") { 2062 this.setCustomValidity("Please input your first name and last name."); 2063 } else { 2064 this.setCustomValidity(""); 2065 } 2066 }); 2067 _section.find('form').on("reset", function () { 2068 $(this).addClass("show-success"); 2069 redirectPage(redirectLink); 2070 }); 2071 $(window).scroll(function () { 2072 if ($(this).scrollTop() >= 150) _section.find('.btn-holder').addClass('visible');else _section.find('.btn-holder').removeClass('visible'); 2073 }); 2074 _section.find('.close-btn, .connect-btn').click(function () { 2075 _section.find('.pop-up').toggle(); 2076 _section.find('.btn-holder').toggle(); 2077 }); 2078 if (!_footer) return; 2079 const observer = new IntersectionObserver(entries => {
2080 entries.forEach(entry => { 2081 if (entry.isIntersecting) _section.hide();else _section.show(); 2082 }); 2083 }, { 2084 threshold: 0.1 2085 }); 2086 observer.observe(_footer); 2087 function selectToDropdown(selectItem) { 2088 let customDropdown = ` 2089 <div class="custom-select" role="presentation"> 2090 <button class="custom-select-toggle is-placeholder" type="button" aria-haspopup="true" aria-expanded="false"></button> 2091 <div class="custom-select-menu" style="display: none;max-height: none;"> 2092 <div class="custom-select-content"> 2093 </div> 2094 </div> 2095 </div>`; 2096 $(customDropdown).insertAfter(selectItem); 2097 let $dropdown = $($(selectItem).next()); 2098 let $dropdownToggle = $dropdown.find(".custom-select-toggle"); 2099 let $dropdownMenu = $dropdown.find(".custom-select-menu"); 2100 let $dropdownContent = $dropdown.find(".custom-select-content"); 2101 $dropdownToggle.addClass($(selectItem).attr("class")).removeClass("dropdown-select"); 2102 $dropdownToggle.attr("id", $(selectItem).attr("id") + "custom"); 2103 $dropdownMenu.attr("aria-labelledby", $dropdownToggle.attr("id")); 2104 appendOptionButtons(selectItem, $dropdownContent); 2105 $(selectItem).removeClass().addClass("sr-only"); 2106 var toggleText = $(selectItem).find(":selected").first().text() || $(selectItem).children().first().text(); 2107 $dropdownToggle.html(toggleText); 2108 $dropdown.on("click", ".custom-select-item", function (e) { 2109 if ($(this).hasClass("is-disabled")) return; 2110 let elementNumber = $(this).index(); 2111 let $originalSelect = $(this).closest(".custom-select").siblings("select"); 2112 let $linkedOption = $originalSelect.find("option").eq(elementNumber); 2113 if (!$linkedOption.prop("selected")) { 2114 $linkedOption.prop("selected", true); 2115 $originalSelect.change(); 2116 $(this).addClass("is-selected").siblings(".custom-select-item").removeClass("is-selected"); 2117 $dropdownToggle.html($(this).html()); 2118 closeSelectMenu($(this).closest(".custom-select-menu")); 2119 } 2120 $dropdownToggle.removeClass("is-placeholder"); 2121 }); 2122 function convertOptionToButton(option) { 2123 var optionText = $(option).text(); 2124 var optionValue = $(option).attr("value") || $(option).text(); 2125 var optionIsDisabled = $(option).prop("disabled"); 2126 var outputButton = `<button value="${optionValue}" class="custom-select-item" type="button" ${optionIsDisabled ? "disabled" : ""}>${optionText}</button>`; 2127 return outputButton; 2128 } 2129 function appendOptionButtons(selectItem, appendTarget) { 2130 $(selectItem).find("option").each(function () { 2131 let currentButton = convertOptionToButton(this); 2132 $(appendTarget).append(currentButton); 2133 }); 2134 } 2135 function showSelectMenu(selectMenu) { 2136 var customSelect = $(selectMenu).closest(".custom-select")[0]; 2137 $(customSelect).addClass("open"); 2138 $(selectMenu).slideDown(); 2139 } 2140 function closeSelectMenu(selectMenu) { 2141 var customSelect = $(selectMenu).closest(".custom-select")[0]; 2142 $(customSelect).removeClass("open"); 2143 $(selectMenu).slideUp(); 2144 } 2145 $dropdown.on("click", ".custom-select-toggle", function (e) { 2146 var $customSelect = $(this).closest(".custom-select"); 2147 var selectMenu = $customSelect.find(".custom-select-menu")[0]; 2148 if ($customSelect.hasClass("open")) { 2149 closeSelectMenu(selectMenu); 2150 } else { 2151 showSelectMenu(selectMenu); 2152 } 2153 }); 2154 $(document).on("click", function (e) { 2155 if ($(e.target).closest(".custom-select").length < 1 && $(".custom-select").hasClass("open")) { 2156 $(".custom-select.open").each(function () { 2157 var selectMenu = $(this).find(".custom-select-menu")[0]; 2158 closeSelectMenu(selectMenu); 2159 }); 2160 } 2161 }); 2162 } 2163 $(".pop-up select[name='interest']").each(function () { 2164 selectToDropdown(this); 2165 }); 2166})('global-mobile-contact'); 2167} catch(e) { 2168console.log(e); 2169} 2170 2171 try { 2172(function init(sectionDomId) { 2173 const $section = $('#' + sectionDomId); 2174 const $videoWrap = $section.find('.full-screen-video-component > .video-wrapper'); 2175 const $playButton = $section.find('.js-play-btn'); 2176 if ($videoWrap.length) { 2177 const $video = $videoWrap.find('video'); 2178 $video.each(function () { 2179 var v = this; 2180 if (v.readyState > 0) { 2181 $videoWrap.addClass('playing'); 2182 var promise = v.play(); 2183 if (promise !== undefined) { 2184 promise.catch(error => { 2185 $playButton.addClass('visible'); 2186 }).then(() => {}); 2187 } 2188 } else { 2189 v.addEventListener('canplay', function () { 2190 $videoWrap.addClass('playing'); 2191 }, { 2192 once: true 2193 }); 2194 } 2195 }); 2196 } 2197 $playButton.on('click', function () { 2198 const $video = $videoWrap.find('video'); 2199 this.classList.remove('visible'); 2200 if ($video[0].currentTime === 0) { 2201 $video[0].load(); 2202 $video[0].play(); 2203 } 2204 }); 2205 window.luxuryPresence.mapApiLoader.load().then(() => {
2206 const $searchWrapper = $section.find('.search-wrapper'); 2207 if (!$searchWrapper.length) { 2208 return; 2209 } 2210 const searchMls = $searchWrapper[0].dataset.searchMls === 'true'; 2211 const searchProperties = $searchWrapper[0].dataset.searchProperties === 'true'; 2212 const searchPlaces = searchMls; 2213 const showNeighborhoods = searchMls; 2214 const searchNearEnabled = searchMls; 2215 const $searchInput = $section.find('.search-input'); 2216 const $searchResults = $section.find('.search-results'); 2217 const $resultsContainer = $section.find('.results-container'); 2218 const $loader = $section.find('.search-in-progress'); 2219 const $predefined = $section.find('.predefined-links'); 2220 const $searchBtn = $section.find('.search-button'); 2221 const $leaseFalseButton = $section.find('.jsLeaseFalse'); 2222 const $leaseTrueButton = $section.find('.jsLeaseTrue'); 2223 const $nextSection = $section.next(); 2224 const fixZIndex = $nextSection.length && parseInt($nextSection.css('z-index')) || 1; 2225 const searchDelay = 300; 2226 const maxPlaces = 3; 2227 const maxMls = 5; 2228 const leaseFilter = $leaseFalseButton.length > 0 && $leaseTrueButton.length > 0; 2229 const service = new google.maps.places.AutocompleteService(); 2230 const geocoder = new google.maps.Geocoder(); 2231 var keyword; 2232 var leasePropertyState = false; 2233 var leasePropertySearched; 2234 var searchActive = false; 2235 var isLoading = false; 2236 function showSearchResults() { 2237 searchActive = true; 2238 updateSearchDisplay(); 2239 } 2240 function hideSearchResults() { 2241 searchActive = false; 2242 updateSearchDisplay(); 2243 } 2244 function showLoading() { 2245 isLoading = true; 2246 updateSearchDisplay(); 2247 } 2248 function hideLoading() { 2249 isLoading = false; 2250 updateSearchDisplay(); 2251 } 2252 function updateSearchDisplay() { 2253 if (leaseFilter) { 2254 if (leasePropertyState) { 2255 $leaseTrueButton.addClass('active'); 2256 $leaseFalseButton.removeClass('active'); 2257 } else { 2258 $leaseFalseButton.addClass('active'); 2259 $leaseTrueButton.removeClass('active'); 2260 } 2261 } 2262 if (!searchActive) { 2263 $searchResults.removeClass('show'); 2264 $searchResults.css('height', '0'); 2265 return; 2266 } 2267 var hasResults = !!$resultsContainer.html(); 2268 var hasPredefined = $predefined.find('a:not(.not-processed)').length > 0; 2269 if (hasResults) { 2270 $predefined.addClass('not-visible'); 2271 $loader.addClass('not-visible'); 2272 $resultsContainer.removeClass('not-visible'); 2273 } else if (isLoading) { 2274 $resultsContainer.addClass('not-visible'); 2275 $predefined.addClass('not-visible'); 2276 $loader.removeClass('not-visible'); 2277 } else if (hasPredefined) { 2278 $resultsContainer.addClass('not-visible'); 2279 $loader.addClass('not-visible'); 2280 $predefined.removeClass('not-visible'); 2281 } else { 2282 $resultsContainer.addClass('not-visible'); 2283 $loader.addClass('not-visible'); 2284 $predefined.addClass('not-visible'); 2285 } 2286 var height = 0; 2287 height += $predefined[0].getBoundingClientRect().height; 2288 height += $resultsContainer[0].getBoundingClientRect().height; 2289 height += $loader[0].getBoundingClientRect().height; 2290 if (height > 0) { 2291 $searchResults.addClass('show'); 2292 } else { 2293 $searchResults.removeClass('show'); 2294 } 2295 $searchResults.css('height', height + 'px'); 2296 } 2297 function clearSelection() { 2298 $searchResults.find('.selected-link').removeClass('selected-link'); 2299 } 2300 function moveSelection(up) { 2301 var $cont = $resultsContainer.html() ? $resultsContainer : $predefined; 2302 var $links = $cont.find('.results-link'); 2303 if (!$links.length) { 2304 return; 2305 } 2306 var idx = -1; 2307 $links.each(function (i) { 2308 if (idx === -1 && $(this).is('.selected-link')) { 2309 idx = i; 2310 } 2311 }); 2312 var newIdx; 2313 if (up) { 2314 newIdx = idx - 1; 2315 if (newIdx < 0) { 2316 newIdx = $links.length - 1; 2317 } 2318 } else { 2319 newIdx = idx + 1; 2320 if (newIdx > $links.length - 1) { 2321 newIdx = 0; 2322 } 2323 } 2324 if (newIdx !== idx) { 2325 $searchResults.find('.selected-link').removeClass('selected-link'); 2326 $($links.get(newIdx)).addClass('selected-link'); 2327 } 2328 } 2329 var newSearchTimer; 2330 function inputChanged(ev) { 2331 if (ev.which === 38) { 2332 ev.preventDefault(); 2333 moveSelection(true); 2334 return false;
2335 } 2336 if (ev.which === 40) { 2337 ev.preventDefault(); 2338 moveSelection(); 2339 return false; 2340 } 2341 if (ev.which === 13) { 2342 $lnk = $searchResults.find('.selected-link'); 2343 if ($lnk.length) { 2344 $lnk[0].click(); 2345 hideSearchResults(); 2346 } else { 2347 $searchBtn.click(); 2348 } 2349 } 2350 window.clearTimeout(newSearchTimer); 2351 newSearchTimer = window.setTimeout(startSearch, searchDelay); 2352 } 2353 function startSearch() { 2354 const term = $searchInput.val(); 2355 if (term === keyword && leasePropertySearched === leasePropertyState) { 2356 return; 2357 } 2358 leasePropertySearched = leasePropertyState; 2359 keyword = term; 2360 if (term) { 2361 doSearch(term, leasePropertySearched); 2362 } else { 2363 setResults(null); 2364 } 2365 } 2366 function mlsSearch(term, leaseProperty) { 2367 var query = { 2368 keyword_search: term, 2369 limit: maxMls 2370 }; 2371 if (leaseFilter && leaseProperty) { 2372 query.lease_property = true; 2373 } 2374 return superagent.get(window.location.protocol + '//' + window.location.host + '/home-search/listings.json').query(query).then(function (res) { 2375 if (!Array.isArray(res.body)) { 2376 return []; 2377 } 2378 return res.body.map(function (item) { 2379 return { 2380 id: item.id, 2381 display_address: [item.address_1, item.city, [item.state, item.postal_code].filter(function (i) { 2382 return i; 2383 }).join(' ')].filter(function (i) { 2384 return i; 2385 }).join(', ') 2386 }; 2387 }); 2388 }, function (e) { 2389 console.log(e); 2390 return []; 2391 }); 2392 } 2393 function resolveGeoBounds(placeId, description, terms) { 2394 return new Promise(function (resolve, reject) { 2395 geocoder.geocode({ 2396 'placeId': placeId 2397 }, function (results, status) { 2398 if (status != 'OK') { 2399 return resolve(null); 2400 } 2401 var result = results[0]; 2402 var bounds = new google.maps.LatLngBounds();
2403 bounds.extend(result.geometry.viewport.getSouthWest()); 2404 bounds.extend(result.geometry.viewport.getNorthEast()); 2405 result.geometry.bounds = bounds.toJSON(); 2406 var placeUrl = window.luxuryPresence.makeMlsLink(result); 2407 return resolve({ 2408 placeUrl: placeUrl, 2409 description: description, 2410 cityName: terms[0].value, 2411 stateName: terms[1].value 2412 }); 2413 }); 2414 }); 2415 } 2416 function resolveAutocomplete(term, deeper) { 2417 var request = { 2418 input: term, 2419 componentRestrictions: { 2420 country: 'us' 2421 }, 2422 types: deeper ? ['geocode'] : ['(regions)'], 2423 limit: 1 2424 }; 2425 return new Promise(function (resolve, reject) { 2426 service.getPlacePredictions(request, function (results, status) { 2427 if (status !== google.maps.places.PlacesServiceStatus.OK) { 2428 resolve(null); 2429 return; 2430 } 2431 if (!Array.isArray(results)) { 2432 resolve(null); 2433 return; 2434 } 2435 if (deeper) { 2436 var allowedTypes = { 2437 'neighborhood': true, 2438 'administrative_area_level_3': true, 2439 'administrative_area_level_4': true, 2440 'administrative_area_level_5': true, 2441 'sublocality_level_1': true, 2442 'sublocality_level_2': true, 2443 'sublocality_level_3': true 2444 }; 2445 results = results.filter(function (res) { 2446 return res.types.find(t => allowedTypes[t]); 2447 }); 2448 } 2449 if (!results.length) { 2450 resolve(null); 2451 return; 2452 } 2453 resolve(results); 2454 }); 2455 }); 2456 } 2457 var placesResult = {}; 2458 function placesSearch(term, ignoreInput) { 2459 if (placesResult.term !== term) { 2460 placesResult = { 2461 term: term, 2462 result: resolveAutocomplete(term).then(function (results) { 2463 if (!ignoreInput && term !== keyword) { 2464 return null; 2465 } 2466 if (ignoreInput && !results) { 2467 return resolveAutocomplete(term, true); 2468 } 2469 return results; 2470 }).then(function (results) { 2471 if (!ignoreInput && term !== keyword) { 2472 return []; 2473 } 2474 if (!results) { 2475 return []; 2476 } 2477 var geoResultPromises = results.map(function (result) { 2478 return resolveGeoBounds(result.place_id, result.description, result.terms); 2479 }); 2480 return Promise.all(geoResultPromises).then(function (geoLinks) { 2481 return geoLinks.filter(function (i) { 2482 return i; 2483 }).slice(0, maxPlaces); 2484 }); 2485 }) 2486 }; 2487 } 2488 return placesResult.result; 2489 } 2490 function propertiesSearch(term, leaseProperty) { 2491 var payload = { 2492 companyId: window.luxuryPresence.defaults.companyId, 2493 search: term, 2494 offset: 0, 2495 limit: 6, 2496 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"] 2497 }; 2498 if (leaseFilter) { 2499 payload.leaseProperty = !!leaseProperty; 2500 } 2501 return superagent.post(window.luxuryPresence.defaults.apiGatewayUrl + '/graphql').send({ 2502 query: window.luxuryPresence.defaults.gql.properties, 2503 variables: payload 2504 }).then(function (res) { 2505 return (res.body.data || {}).properties || []; 2506 }, function (err) { 2507 return []; 2508 }); 2509 } 2510 function doSearch(term, leaseProperty) { 2511 showLoading(); 2512 Promise.all([searchMls ? mlsSearch(term, leaseProperty) : [], searchPlaces ? placesSearch(term) : [], searchProperties ? propertiesSearch(term, leaseProperty) : []]).then(function (res) { 2513 if (term !== keyword) { 2514 return; 2515 } 2516 setResults(res[0], res[1], res[2], leaseProperty); 2517 }); 2518 } 2519 function makeResultsBlockHtml(title, links) { 2520 if (!links || !links.length) { 2521 return ''; 2522 } 2523 var html = '<div class="results-block">'; 2524 html += '<div class="results-block-title">'; 2525 if (searchNearEnabled) { 2526 html += '<div class="search-near-container"><a class="search-near lp-link lp-link--light">Search Near Me</a></div>'; 2527 } 2528 html += '<div class="results-title-label">' + title + '</div></div>'; 2529 html += links.join('') + '</div>'; 2530 return html; 2531 } 2532 function setResults(mlsResults, placesResults, propertiesResults, leaseProperty) { 2533 clearSelection(); 2534 hideLoading(); 2535 if (!mlsResults) { 2536 $resultsContainer.html(''); 2537 updateSearchDisplay(); 2538 return; 2539 } 2540 if (!mlsResults.length && !placesResults.length && !propertiesResults.length) { 2541 $resultsContainer.html('<div class="nothing-found">No results found</div>'); 2542 updateSearchDisplay(); 2543 return; 2544 } 2545 var propertiesHtml = makeResultsBlockHtml('Featured Properties', propertiesResults.map(function (result) { 2546 return `<a href="/properties/${result.slug}" class="results-link">${result.privateAddress ? result.name : result.fullAddress}</a>`; 2547 })); 2548 var placesHtml = makeResultsBlockHtml('Locations', placesResults.map(function (result) { 2549 return `<a class="results-link" href="${result.placeUrl}${leaseProperty ? '&lease_property=true' : ''}&cityName=${result.cityName}&stateName=${result.stateName}">${result.description}</a>`; 2550 })); 2551 var mlsHtml = makeResultsBlockHtml('Address', mlsResults.map(function (result) { 2552 return `<a href="/home-search/listings/${result.id}" class="results-link">${result.display_address}</a>`; 2553 }));
2554 $resultsContainer.html(propertiesHtml + placesHtml + mlsHtml); 2555 updateSearchDisplay(); 2556 } 2557 function searchBtnClicked() { 2558 var resultsBlockHref = $("#" + sectionDomId + " .results-block .results-link").attr("href"); 2559 const term = $searchInput.val(); 2560 if (!term) { 2561 return; 2562 } 2563 if (searchMls) { 2564 window.location.href = resultsBlockHref; 2565 return; 2566 } 2567 if (searchProperties) { 2568 window.location.href = "/properties/sale"; 2569 } 2570 } 2571 var neighborhoods = null; 2572 function fetchNeighborhoods() { 2573 var url = window.luxuryPresence.defaults.apiGatewayUrl; 2574 var gqlQuery = 'query ($companyId: String, $offset: Int, $limit: Int) {' + 'neighborhoods (companyId: $companyId, offset: $offset, limit: $limit) {id, name, mlsLink, googlePlaceData}}'; 2575 var payload = {}; 2576 payload.offset = 0; 2577 payload.limit = 100; 2578 payload.companyId = window.luxuryPresence.defaults.companyId; 2579 return superagent.post(url + '/graphql').withCredentials().send({ 2580 query: gqlQuery, 2581 variables: payload 2582 }).then(function (res) { 2583 neighborhoods = res.body.data && res.body.data.neighborhoods; 2584 if (neighborhoods && !neighborhoods.length) { 2585 neighborhoods = null; 2586 } 2587 }); 2588 } 2589 function setPredefinedNeighborhoods() { 2590 return fetchNeighborhoods().then(function () { 2591 if (!neighborhoods) { 2592 return; 2593 } 2594 var leaseProperty = leaseFilter && leasePropertyState; 2595 var placesHtml = makeResultsBlockHtml('Locations', neighborhoods.map(function (item) { 2596 return `<a class="results-link" href="${item.mlsLink}${leaseProperty ? '&lease_property=true' : ''}">${item.googlePlaceData && item.googlePlaceData.formatted_address || item.name}</a>`; 2597 })); 2598 $predefined.html(placesHtml); 2599 updateSearchDisplay(); 2600 }); 2601 } 2602 if (showNeighborhoods) { 2603 setPredefinedNeighborhoods(); 2604 } 2605 $searchInput.on('focus', showSearchResults); 2606 $searchInput.on('keyup focus', inputChanged); 2607 $searchResults.on('mouseenter', '.results-link', function (ev) { 2608 clearSelection(); 2609 }); 2610 $searchBtn.on('click', searchBtnClicked); 2611 $leaseFalseButton.on('click', function () { 2612 if (leasePropertyState) { 2613 leasePropertyState = false; 2614 if (showNeighborhoods) { 2615 setPredefinedNeighborhoods(); 2616 } 2617 updateSearchDisplay(); 2618 setResults(null); 2619 startSearch(); 2620 } 2621 }); 2622 $leaseTrueButton.on('click', function () { 2623 if (!leasePropertyState) { 2624 leasePropertyState = true; 2625 if (showNeighborhoods) { 2626 setPredefinedNeighborhoods(); 2627 } 2628 updateSearchDisplay(); 2629 setResults(null); 2630 startSearch(); 2631 } 2632 }); 2633 function createPolygonUrl(center, radius, n) { 2634 var step = Math.PI * 2 / n; 2635 var angle = 0 - step / 2; 2636 var points = []; 2637 var kx = 1.0 / Math.cos(center[1] * Math.PI / 180); 2638 for (var i = 0; i < n; i++) { 2639 points.push('[' + (center[0] + radius * Math.sin(angle) * kx).toFixed(5) + ',' + (center[1] - radius * Math.cos(angle)).toFixed(5) + ']'); 2640 angle += step; 2641 } 2642 points.push(points[0]); 2643 var str = '[[' + points.join(',') + ']]'; 2644 return '&polygon=' + encodeURIComponent(str); 2645 } 2646 function makeNearMeUrl(center, leaseProperty) { 2647 var url = '/home-search/listings?search_type=envelope'; 2648 if (leaseProperty) { 2649 url += '&lease_property=true'; 2650 } 2651 var distance = 0.11; 2652 var lat = center[1]; 2653 var lng = center[0]; 2654 url += '&south=' + (lat - distance); 2655 url += '&north=' + (lat + distance); 2656 url += '&west=' + (lng - distance); 2657 url += '&east=' + (lng + distance); 2658 url += createPolygonUrl(center, distance, 54); 2659 return url; 2660 } 2661 var $locMsg = null; 2662 $section.on('click', '.search-near', function () { 2663 showLoading(); 2664 navigator.geolocation.getCurrentPosition(function (position) { 2665 hideLoading(); 2666 hideSearchResults(); 2667 if (!position || !position.coords || !position.coords.latitude || !position.coords.longitude) { 2668 showLocationMessage('Unknown Location', '<p>Getting position of your device failed.</p><p>
2668You can type your address manually in the search field</p>'); 2669 return; 2670 } 2671 var url = makeNearMeUrl([position.coords.longitude, position.coords.latitude], leaseFilter && leasePropertyState); 2672 var link = document.createElement('a'); 2673 link.href = url; 2674 link.class = 'lp-visually-hidden'; 2675 $section[0].appendChild(link); 2676 link.click(); 2677 setTimeout(function () { 2678 $section[0].removeChild(link); 2679 }, 100); 2680 }, function (geoError) { 2681 hideLoading(); 2682 hideSearchResults(); 2683 var title = 'Unknown Location'; 2684 var msg; 2685 if (geoError.code === 1) { 2686 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>'; 2687 } else { 2688 msg = '<p>Getting position of your device failed.</p><p>You can type your address manually in the search field</p>'; 2689 } 2690 showLocationMessage(title, msg); 2691 }); 2692 }); 2693 var locHideTimer = null; 2694 function showLocationMessage(title, message) { 2695 clearTimeout(locHideTimer); 2696 if (!$locMsg) { 2697 var html = `<div class="loc-msg-backdrop"> 2698 <div class="loc-msg-wrap"> 2699 <div class="loc-msg-modal"> 2700 <div class="loc-msg-close"></div> 2701 <h4 class="loc-msg-title lp-h4"></h4> 2702 <div class="loc-msg-container"></div> 2703 </div> 2704 </div> 2705 </div> 2706 `; 2707 $locMsg = $(html); 2708 $locMsg.on('click', hideLocationMessage); 2709 $section.append($locMsg); 2710 } 2711 $locMsg.find('.loc-msg-container').html(message); 2712 $locMsg.find('.loc-msg-title').html(title); 2713 setTimeout(function () { 2714 if ($locMsg) { 2715 $section.addClass('visible-loc-msg'); 2716 } 2717 }); 2718 } 2719 function hideLocationMessage() { 2720 $section.removeClass('visible-loc-msg'); 2721 locHideTimer = setTimeout(function () { 2722 $locMsg.remove(); 2723 $locMsg = null; 2724 }, 400); 2725 } 2726 function outsideClickHandler(e) { 2727 if ($searchWrapper.find($(e.target)).length > 0) { 2728 return; 2729 } 2730 hideSearchResults(); 2731 } 2732 $(document).on('click', outsideClickHandler); 2733 if ('geolocation' in navigator) { 2734 $searchWrapper.removeClass('search-near-hidden'); 2735 } 2736 updateSearchDisplay(); 2737 }); 2738})('section-abad8af8-9b74-44c9-9737-db2314cb5f64', 'undefined'); 2739} catch(e) { 2740console.log(e); 2741} 2742 try { 2743(function init(sectionDomId) { 2744 const $section = $('#' + sectionDomId); 2745 const $form = $section.find('.custom-form__download-form'); 2746 const redirectLink = $section.find('.js-redirect-link'); 2747 function redirectPage(link) { 2748 if (link.length) { 2749 const rawHref = link.attr('href'); 2750 link.attr('href', setHttp(rawHref)); 2751 link[0].click(); 2752 } 2753 } 2754 function setHttp(link) { 2755 if (link.search(/^http[s]?\:\/\/|\//) == -1) { 2756 link = 'https://' + link; 2757 } 2758 return link; 2759 } 2760 $form.on('reset', function () { 2761 redirectPage(redirectLink); 2762 }); 2763 var backupEmailField = $section.find('.js-backup-email'); 2764 if (backupEmailField) { 2765 var dynEmailField = $section.find('input.js-form-element[name="email"]:not(.js-backup-field)'); 2766 if (dynEmailField.length === 0) { 2767 backupEmailField.removeClass('js-backup-email'); 2768 } else { 2769 backupEmailField.remove(); 2770 } 2771 } 2772 var $allElements = $section.find('.js-form-element'); 2773 const putAllInMessage = false; 2774 var hasCustomFields = false; 2775 const standardFields = { 2776 'name': true, 2777 'email': true, 2778 'phone': true, 2779 'message': true, 2780 'interest': true 2781 }; 2782 const busyFormNames = { 2783 'address': true, 2784 'city': true, 2785 'state': true, 2786 'postalCode': true, 2787 'mlsId': true, 2788 'sourceUrl': true 2789 }; 2790 $allElements.each(function () { 2791 var $el = $(this); 2792 var name = this.hasAttribute('data-name') ? $el.attr('data-name') : $el.attr('name'); 2793 if (!name) { 2794 return; 2795 } 2796 if (!standardFields[name]) { 2797 hasCustomFields = true; 2798 } 2799 let newName = /[^a-z\d-_]/.test(name) ? name.trim().toLowerCase().replace(/[^a-z\d-_]/g, '-') : name; 2800 if (!/^[a-z]/.test(newName)) { 2801 newName = 'fld-' + newName; 2802 } 2803 if (busyFormNames[newName]) { 2804 let idx = 1; 2805 while (busyFormNames[`${newName}-${idx}`] && idx < 100) { 2806 idx++; 2807 } 2808 newName = `${newName}-${idx}`; 2809 } 2810 busyFormNames[newName] = $el; 2811 if (name !== newName) { 2812 $el.attr('name', newName); 2813 } 2814 }); 2815 let $customFields = []; 2816 if (putAllInMessage && hasCustomFields) { 2817 $allElements.each(function () { 2818 var name = this.getAttribute('name'); 2819 if (name && (!standardFields[name] || name === 'message' && !$(this).hasClass('js-composed-message'))) { 2820 this.setAttribute('data-name', name); 2821 this.removeAttribute('name'); 2822 } 2823 if (this.hasAttribute('data-name')) { 2824 $customFields.push($(this)); 2825 } 2826 }); 2827 if (!$form[0].elements['message']) { 2828 $('<input type="hidden" name="message" class="js-composed-message" value="">').appendTo($form); 2829 } 2830 } 2831 $selects = $section.find('select.js-select'); 2832 var $checkboxGroups = $section.find('.js-checkboxes-group'); 2833 if ($checkboxGroups.length) { 2834 $checkboxGroups.each(function () { 2835 var $group = $(this); 2836 if (!$group.data('required')) return; 2837 var $checkboxes = $group.find('.js-multi-checkbox'); 2838 function updateValidity() { 2839 var anyChecked = $group.find('.js-multi-checkbox:checked').length > 0; 2840 $checkboxes.each(function () { 2841 this.setCustomValidity(anyChecked ? '' : 'Please select at least one option.'); 2842 }); 2843 }
2844 updateValidity(); 2845 $checkboxes.on('change', updateValidity); 2846 }); 2847 $form.on('submit', function () { 2848 $checkboxGroups.each(function () { 2849 var $group = $(this); 2850 var name = $group.data('name'); 2851 if (!name) return; 2852 var checked = $group.find('.js-multi-checkbox:checked').map(function () { 2853 return this.value; 2854 }).get().join(', '); 2855 $form.find('input[type="hidden"][data-checkbox-group="' + name + '"]').remove(); 2856 $('<input type="hidden">').attr('name', name).val(checked).attr('data-checkbox-group', name).appendTo($form); 2857 var $groupCheckboxes = $group.find('.js-multi-checkbox'); 2858 $groupCheckboxes.prop('disabled', true); 2859 setTimeout(function () { 2860 $groupCheckboxes.prop('disabled', false); 2861 }, 0); 2862 }); 2863 }); 2864 } 2865 let selectsInitialized = false; 2866 function initializeSelects() { 2867 if (selectsInitialized) { 2868 return; 2869 } 2870 selectsInitialized = true; 2871 $selects.each(function () { 2872 if (this.id) { 2873 $label = $section.find('[for="' + this.id + '"]'); 2874 if ($label.length) { 2875 var rect = $label[0].getBoundingClientRect(); 2876 if (rect && rect.width < 30) { 2877 var firstOption = $(this).find('option').first(); 2878 firstOption.attr('label', firstOption.data('label')); 2879 } 2880 } 2881 $gr = $(this).closest('.lp-input-group'); 2882 var b = $gr.css('border-left-width'); 2883 if (b && b !== '0px') { 2884 $gr[0].style.setProperty('--uf-border-left', b); 2885 } 2886 b = $gr.css('border-right-width'); 2887 if (b && b !== '0px') { 2888 $gr[0].style.setProperty('--uf-border-right', b); 2889 } 2890 } 2891 }); 2892 var csPrefix = 'uf-cus-sel'; 2893 function convertSelectToDropdown(selectItem) { 2894 const $selectItem = $(selectItem); 2895 const selectId = $selectItem.attr('id'); 2896 const id = $selectItem.attr('id') + '-custom-select'; 2897 let $dropdown = $selectItem.next(); 2898 let initialized = true; 2899 if ($dropdown.attr('id') !== id) { 2900 $selectItem.addClass("sr-only"); 2901 initialized = false; 2902 let customDropdown = ` 2903 <div class="${csPrefix}" role="presentation"> 2904 <button class="${csPrefix}-toggle" type="button" aria-haspopup="true" aria-expanded="false"></button> 2905 <div class="${csPrefix}-menu"> 2906 <div class="${csPrefix}-content"> 2907 </div> 2908 </div> 2909 </div>`; 2910 $(customDropdown).insertAfter(selectItem); 2911 $dropdown = $selectItem.next(); 2912 $dropdown.attr('id', id); 2913 } 2914 let $dropdownToggle = $dropdown.find('.' + csPrefix + '-toggle'); 2915 let $dropdownMenu = $dropdown.find('.' + csPrefix + '-menu'); 2916 let $dropdownContent = $dropdown.find('.' + csPrefix + '-content'); 2917 if (!initialized) { 2918 $dropdownToggle.addClass($selectItem.attr("class")).removeClass(['dropdown-select', 'js-select', 'js-form-element', 'sr-only']); 2919 $dropdownToggle.attr("id", id + '-toggle'); 2920 $dropdownMenu.attr("aria-labelledby", $dropdownToggle.attr("id")); 2921 appendOptionButtons(selectItem, $dropdownContent); 2922 } 2923 $selectItem.on("focus", function () { 2924 showSelectMenu($dropdownMenu[0]); 2925 $dropdownToggle.focus(); 2926 }); 2927 function setInitialValue() { 2928 $dropdownMenu.find('.' + csPrefix + '-item').removeClass('is-selected'); 2929 var $selectedOption = $selectItem.find(':selected').first(); 2930 if (!$selectedOption.length) { 2931 $selectedOption = $selectItem.children().first(); 2932 } 2933 var defaultText = ' '; 2934 var isPlaceholder = true; 2935 if ($selectedOption.length) { 2936 defaultText = ($selectedOption[0].hasAttribute('label') ? $selectedOption.attr('label') : $selectedOption.text()) || ' '; 2937 isPlaceholder = !!$selectedOption.prop("disabled"); 2938 } 2939 $dropdownToggle.html(defaultText); 2940 if (isPlaceholder) { 2941 $dropdownToggle.addClass('is-placeholder'); 2942 } 2943 } 2944 setInitialValue(); 2945 $dropdown.on("click", '.' + csPrefix + '-item', function (e) { 2946 const $button = $(this); 2947 if ($button.hasClass("is-disabled")) return; 2948 let elementNumber = $button.index(); 2949 let $linkedOption = $selectItem.find("option").eq(elementNumber); 2950 if (!$linkedOption.prop("selected")) { 2951 $linkedOption.prop("selected", true); 2952 $selectItem.change(); 2953 $button.addClass("is-selected").siblings('.' + csPrefix + '-item').removeClass("is-selected"); 2954 $dropdownToggle.removeClass("is-placeholder").html($button.html()); 2955 closeSelectMenu($button.closest('.' + csPrefix + '-menu')); 2956 } 2957 }); 2958 $(selectItem.form).on('reset', function () { 2959 setTimeout(function () { 2960 setInitialValue(); 2961 }); 2962 }); 2963 function convertOptionToButton(option) { 2964 const $option = $(option); 2965 var optionText = $option.text(); 2966 var optionValue = $option.attr("value"); 2967 var optionIsDisabled = $option.prop("disabled"); 2968 var outputButton = `<button value="${optionValue}" class="${csPrefix}-item" type="button" ${optionIsDisabled ? "disabled" : ""}>${optionText}</button>`; 2969 return outputButton; 2970 } 2971 function appendOptionButtons(selectItem, appendTarget) { 2972 const $appendTarget = $(appendTarget); 2973 $(selectItem).find("option").each(function () { 2974 let currentButton = convertOptionToButton(this); 2975 $appendTarget.append(currentButton); 2976 }); 2977 } 2978 function showSelectMenu(selectMenu) { 2979 var $customSelect = $(selectMenu).closest('.' + csPrefix); 2980 $customSelect.addClass("open"); 2981 $(selectMenu).slideDown(); 2982 } 2983 function closeSelectMenu(selectMenu) { 2984 var $customSelect = $(selectMenu).closest('.' + csPrefix); 2985 $customSelect.removeClass("open"); 2986 $(selectMenu).slideUp(); 2987 } 2988 $dropdown.on("click", '.' + csPrefix + '-toggle', function (e) { 2989 var $customSelect = $(this).closest('.' + csPrefix); 2990 var selectMenu = $customSelect.find('.' + csPrefix + '-menu')[0]; 2991 if ($customSelect.hasClass("open")) { 2992 closeSelectMenu(selectMenu); 2993 } else { 2994 showSelectMenu(selectMenu); 2995 } 2996 }); 2997 $(document.body).on("click", function (e) { 2998 var $closestCustomSelect = $(e.target).closest('.lp-input-group').find('.' + csPrefix); 2999 $section.find('.' + csPrefix + '.open').not($closestCustomSelect).each(function () { 3000 closeSelectMenu($(this).find('.' + csPrefix + '-menu')[0]); 3001 }); 3002 }); 3003 } 3004 $selects.each(function () { 3005 convertSelectToDropdown(this); 3006 }); 3007 if (putAllInMessage && hasCustomFields) { 3008 $allElements.on('change', function () { 3009 if (!this.hasAttribute('data-name')) { 3010 return; 3011 } 3012 var message = ''; 3013 var customMessages = []; 3014 $customFields.forEach(function ($el) { 3015 var value = $el.val(); 3016 if (!value) { 3017 return; 3018 } 3019 if ($el.attr('data-name') === 'message') { 3020 message = value; 3021 return; 3022 } 3023 var label = $section.find(`label[for='${$el[0].id}']`).text(); 3024 customMessages.push(label + ': ' + ($el[0].tagName === 'TEXTAREA' ? '\n' : '') + value); 3025 }); 3026 if (customMessages.length) { 3027 if (message) { 3028 customMessages.push('Message: \n' + message); 3029 } 3030 $form[0].elements['message'].value = customMessages.join('\n'); 3031 } else { 3032 $form[0].elements['message'].value = message; 3033 } 3034 }); 3035 } 3036 } 3037 function initModalColors() { 3038 try { 3039 if (!$section.css('--bgColor')) { 3040 var colorStr = $section.css('background-color'); 3041 var bgColor = makeColor(colorStr); 3042 var isDark = (bgColor.rgba.r * 299 + bgColor.rgba.g * 587 + bgColor.rgba.b * 114) / 1000 < 128; 3043 $section[0].style.setProperty('--bgColor', colorStr); 3044 $section[0].style.setProperty('--bgColor_H', bgColor.hsla.h + 'deg'); 3045 $section[0].style.setProperty('--bgColor_S', bgColor.hsla.s + '%'); 3046 $section[0].style.setProperty('--bgColor_L', bgColor.hsla.l + '%'); 3047 $section[0].style.setProperty('--bgColor_A', bgColor.hsla.a); 3048 $section[0].style.setProperty('--bgColor_darkenDir', isDark ? 1 : -1); 3049 $section.addClass('is-background-color-' + (isDark ? 'dark' : 'light')); 3050 } 3051 } catch (e) {} 3052 } 3053 function makeColor(str) { 3054 var color = { 3055 rgba: { 3056 r: 0, 3057 g: 0, 3058 b: 0, 3059 a: 0 3060 } 3061 }; 3062 if (str && str.match) { 3063 var m = str.match(/rgba?\s*\((\d+)\s*,\s*(\d+)\s*,\s*(\d+)(?:\s*,\s*([\.0-9]+))?\)/); 3064 if (m) { 3065 color.rgba.r = parseInt(m[1]); 3066 color.rgba.g = parseInt(m[2]); 3067 color.rgba.b = parseInt(m[3]); 3068 color.rgba.a = parseFloat(m[4]); 3069 if (isNaN(color.rgba.a)) { 3070 color.rgba.a = 1; 3071 } 3072 } 3073 } 3074 color.hsla = makeHSLA(color.rgba); 3075 return color; 3076 } 3077 function makeHSLA(rgba) { 3078 var r = rgba.r / 255, 3079 g = rgba.g / 255, 3080 b = rgba.b / 255, 3081 a = rgba.a; 3082 var min = Math.min(r, g, b), 3083 max = Math.max(r, g, b), 3084 l = (max + min) / 2, 3085 d = max - min, 3086 h, 3087 s; 3088 switch (max) { 3089 case min: 3090 h = 0; 3091 break; 3092 case r: 3093 h = 60 * (g - b) / d; 3094 break; 3095 case g: 3096 h = 60 * (b - r) / d + 120; 3097 break; 3098 case b: 3099 h = 60 * (r - g) / d + 240; 3100 break; 3101 } 3102 if (max == min) { 3103 s = 0; 3104 } else if (l < .5) { 3105 s = d / (2 * l); 3106 } else { 3107 s = d / (2 - 2 * l); 3108 } 3109 s *= 100; 3110 l *= 100; 3111 return { 3112 h: h, 3113 s: s, 3114 l: l, 3115 a: a 3116 }; 3117 } 3118 if ($section.is('.modal')) { 3119 initModalColors(); 3120 $section.on('lpui-show', function () { 3121 window.lpUI.requestScrollLock(sectionDomId); 3122 }); 3123 $section.on('lpui-hide', function () { 3124 window.lpUI.releaseScrollLock(sectionDomId); 3125 }); 3126 } 3127 initializeSelects(); 3128 var $addressInputs = $section.find('.js-address-autocomplete'); 3129 if ($addressInputs.length && window.luxuryPresence && window.luxuryPresence.mapApiLoader) { 3130 window.luxuryPresence.mapApiLoader.load().then(function () { 3131 var autocompleteOptions = { 3132 types: ['geocode'], 3133 fields: ['formatted_address'] 3134 }; 3135 $addressInputs.each(function () { 3136 var input = this; 3137 var autocomplete = new google.maps.places.Autocomplete(input, autocompleteOptions); 3138 autocomplete.addListener('place_changed', function () { 3139 var place = autocomplete.getPlace(); 3140 if (place && place.formatted_address) { 3141 input.value = place.formatted_address; 3142 } 3143 }); 3144 }); 3145 }); 3146 } 3147})('section-fd326016-61d7-4c35-b739-5a761eb6d6d2', 'undefined'); 3148} catch(e) { 3149console.log(e); 3150} 3151 try { 3152(function init(sectionDomId) { 3153 var location = $('#' + sectionDomId).find('.js-container').data('location'); 3154 var mapContainer = $('#' + sectionDomId).find('.js-container')[0]; 3155 var minus = $(`#${sectionDomId}`).find('.js-minus'); 3156 var plus = $(`#${sectionDomId}`).find('.js-plus'); 3157 var bwMap = $('#' + sectionDomId).find('.js-container').data('bw'); 3158 var bwTheme = [{ 3159 "elementType": "geometry", 3160 "stylers": [{ 3161 "color": "#f5f5f5" 3162 }] 3163 }, { 3164 "elementType": "labels.icon", 3165 "stylers": [{ 3166 "visibility": "off" 3167 }] 3168 }, { 3169 "elementType": "labels.text.fill", 3170 "stylers": [{ 3171 "color": "#616161" 3172 }] 3173 }, { 3174 "elementType": "labels.text.stroke", 3175 "stylers": [{ 3176 "color": "#f5f5f5" 3177 }] 3178 }, { 3179 "featureType": "administrative.land_parcel", 3180 "elementType": "labels.text.fill", 3181 "stylers": [{ 3182 "color": "#bdbdbd" 3183 }] 3184 }, { 3185 "featureType": "poi", 3186 "elementType": "geometry", 3187 "stylers": [{ 3188 "color": "#eeeeee" 3189 }] 3190 }, { 3191 "featureType": "poi", 3192 "elementType": "labels.text.fill", 3193 "stylers": [{ 3194 "color": "#757575" 3195 }] 3196 }, { 3197 "featureType": "poi.park", 3198 "elementType": "geometry", 3199 "stylers": [{ 3200 "color": "#e5e5e5" 3201 }] 3202 }, { 3203 "featureType": "poi.park", 3204 "elementType": "labels.text.fill", 3205 "stylers": [{ 3206 "color": "#9e9e9e" 3207 }] 3208 }, { 3209 "featureType": "road", 3210 "elementType": "geometry", 3211 "stylers": [{ 3212 "color": "#ffffff" 3213 }] 3214 }, { 3215 "featureType": "road.arterial", 3216 "elementType": "labels.text.fill", 3217 "stylers": [{ 3218 "color": "#757575" 3219 }] 3220 }, { 3221 "featureType": "road.highway", 3222 "elementType": "geometry", 3223 "stylers": [{ 3224 "color": "#dadada" 3225 }] 3226 }, { 3227 "featureType": "road.highway", 3228 "elementType": "labels.text.fill", 3229 "stylers": [{ 3230 "color": "#616161" 3231 }] 3232 }, { 3233 "featureType": "road.local", 3234 "elementType": "labels.text.fill", 3235 "stylers": [{ 3236 "color": "#9e9e9e" 3237 }] 3238 }, { 3239 "featureType": "transit.line", 3240 "elementType": "geometry", 3241 "stylers": [{ 3242 "color": "#e5e5e5" 3243 }] 3244 }, { 3245 "featureType": "transit.station", 3246 "elementType": "geometry", 3247 "stylers": [{ 3248 "color": "#eeeeee" 3249 }] 3250 }, { 3251 "featureType": "water", 3252 "elementType": "geometry", 3253 "stylers": [{ 3254 "color": "#c9c9c9" 3255 }] 3256 }, { 3257 "featureType": "water", 3258 "elementType": "labels.text.fill", 3259 "stylers": [{ 3260 "color": "#9e9e9e" 3261 }] 3262 }]; 3263 if (mapContainer) { 3264 window.luxuryPresence.mapApiLoader.load().then(() => { 3265 function ZoomControl(controlDiv, map) { 3266 var controlWrapper = document.createElement('div'); 3267 controlWrapper.style.backgroundColor = 'transparent'; 3268 controlWrapper.style.width = '1px'; 3269 controlWrapper.style.height = '1px'; 3270 controlDiv.appendChild(controlWrapper); 3271 var zoomInButton = document.createElement('div'); 3272 zoomInButton.style.width = '1px'; 3273 zoomInButton.style.height = '1px'; 3274 zoomInButton.classList.add("js-zoom-in"); 3275 zoomInButton.style.backgroundColor = 'transparent'; 3276 zoomInButton.style.opacity = '0'; 3277 controlWrapper.appendChild(zoomInButton); 3278 var zoomOutButton = document.createElement('div'); 3279 zoomOutButton.style.width = '1px'; 3280 zoomOutButton.style.height = '1px'; 3281 zoomOutButton.classList.add('js-zoom-out'); 3282 zoomOutButton.style.backgroundColor = 'transparent'; 3283 zoomOutButton.style.opacity = '0'; 3284 controlWrapper.appendChild(zoomOutButton); 3285 google.maps.event.addDomListener(zoomInButton, 'click', function () { 3286 map.setZoom(map.getZoom() + 1); 3287 }); 3288 google.maps.event.addDomListener(zoomOutButton, 'click', function () { 3289 map.setZoom(map.getZoom() - 1); 3290 }); 3291 const handleZoomIn = () => { 3292 const zoomIn = $(`#${sectionDomId}`).find('.js-zoom-in'); 3293 zoomIn.trigger('click'); 3294 }; 3295 const handleZoomOut = () => { 3296 const zoomOut = $(`#${sectionDomId}`).find('.js-zoom-out'); 3297 zoomOut.trigger('click'); 3298 }; 3299 plus.on('click', handleZoomIn); 3300 minus.on('click', handleZoomOut); 3301 } 3302 function initializeMap(latLong) { 3303 var url = 'https://www.google.com/maps/search/?api=1&query=' + latLong.lat + ',' + latLong.lng; 3304 var markerIcon = { 3305 fillColor: '#000000', 3306 fillOpacity: 1, 3307 anchor: new google.maps.Point(1, 1), 3308 strokeWeight: 0, 3309 scale: 1, 3310 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" 3311 }; 3312 var map = new google.maps.Map(mapContainer, { 3313 center: latLong, 3314 zoom: location.mapOptions.zoom, 3315 disableDefaultUI: true, 3316 styles: bwMap ? bwTheme : {} 3317 }); 3318 $(`#${sectionDomId}
3318`).find('.custom-controls').addClass('show'); 3319 var mapControlsContainer = document.createElement('div'); 3320 var zoomControl = new ZoomControl(mapControlsContainer, map); 3321 mapControlsContainer.index = 1; 3322 map.controls[google.maps.ControlPosition.TOP_LEFT].push(mapControlsContainer); 3323 var marker = new google.maps.Marker({ 3324 position: latLong, 3325 map: map, 3326 icon: markerIcon 3327 }); 3328 marker.addListener('click', function () { 3329 window.open(url, '_blank'); 3330 }); 3331 } 3332 initializeMap(location.mapOptions.center); 3333 }); 3334 } 3335})('section-6e2cc917-e8c6-4482-ac60-962f52c0c605', 'undefined'); 3336} catch(e) { 3337console.log(e); 3338} 3339 try { 3340(function init(sectionDomId) {})('section-26876bca-ce39-4b7d-9dd1-029ee361c88f', 'undefined'); 3341} catch(e) { 3342console.log(e); 3343} 3344 try { 3345(function init(sectionDomId) {// please write all js here and use sectionDomId in selectors in order of DOM encapsulation 3346})('section-c742bcf4-69b0-4288-ac99-072d40387297', 'undefined'); 3347} catch(e) { 3348console.log(e); 3349} 3350 try { 3351(function init(sectionDomId, options) { 3352 let section = null; 3353 switch (sectionDomId) { 3354 case 'NAVBAR': 3355 section = document.querySelector('body > nav, #global-navbar'); 3356 break; 3357 case 'FOOTER': 3358 section = document.querySelector('body > footer, #global-footer'); 3359 break; 3360 case 'SIDEMENU': 3361 section = document.querySelector('body > div.sidemenu, #global-sidemenu'); 3362 break; 3363 case 'CONTACT': 3364 section = document.querySelector('#modal-global-contact-us'); 3365 break; 3366 case 'MOBILE_CONTACT': 3367 section = document.querySelector('body > div.mobile-contact-wrapper, #global-mobile-contact'); 3368 break; 3369 case 'SUBSCRIBE': 3370 // Subscribe Not Implemented 3371 section = null; 3372 break; 3373 case 'ACCOUNT': 3374 // Account Not Implemented 3375 section = null; 3376 break; 3377 default: 3378 section = document.querySelector('#' + sectionDomId); 3379 } 3380 if (!section) { 3381 return; 3382 } 3383 var url = window.luxuryPresence.defaults.routerUrl; 3384 var companyId = window.luxuryPresence.defaults.companyId; 3385 var limit = options.limit || 8; 3386 if (typeof limit === 'string') { 3387 limit = parseInt(limit, 10) || 8; // this NaN protection also filters out 0 - this is expected 3388 } 3389 var templateSelector = options.templateSelector || '.jsIGTemplate'; 3390 var containerSelector = options.containerSelector || '.jsIGContainer'; 3391 var hasDataClass = options.hasDataClass || 'has-data'; 3392 var hideActivateMessage = options.hasDataClass || false; 3393 var payload = { 3394 companyId: companyId, 3395 limit: limit 3396 }; 3397 if (options.resourceId && typeof options.resourceId === 'string' && !options.resourceId.match(/^{{.*}}$/)) { 3398 payload.resourceId = options.resourceId; 3399 // Federated enum values are uppercase (AGENT/TEAM); element configs carry lowercase 3400 payload.resource = String(options.resource || 'agent').toUpperCase(); 3401 payload.fallbackToNoResource = options.fallbackToNoResource === 'true' || options.fallbackToNoResource === true; 3402 } 3403 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'; 3404 var templateHTML = section.querySelector(templateSelector)?.innerHTML || ''; 3405 var template = Handlebars.compile(templateHTML); 3406 var container = section.querySelector(containerSelector); 3407 if (options.variables) {
3408 Object.keys(options.variables).forEach(function (key) { 3409 if (options.variables.hasOwnProperty(key) && (typeof options.variables[key] !== 'string' || !options.variables[key].match(/^{{.*}}$/))) { 3410 payload[key] = options.variables[key]; 3411 } 3412 }); 3413 } 3414 function getData() { 3415 var feed = { 3416 error: true 3417 }; 3418 if (payload.companyId == null || payload.companyId === '') { 3419 // instagramContentFeed requires companyId (ID!) â nothing to fetch without it. 3420 // Checked after the options.variables merge, which may override the default. 3421 // Deferred so element listeners (attached after this template runs) still receive it. 3422 setTimeout(function () { 3423 section.dispatchEvent(new CustomEvent('ig-data', { 3424 detail: feed 3425 })); 3426 }, 0); 3427 return; 3428 } 3429 superagent.post(url + '/graphql').send({ 3430 query: query, 3431 variables: payload 3432 }).then(res => { 3433 try { 3434 if (!res.body.errors) { 3435 feed = res.body.data.instagramContentFeed; 3436 if (!feed.active) { 3437 if (!hideActivateMessage && sectionDomId === 'section-temp' && container) { 3438 if (payload.resourceId) { 3439 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>'; 3440 } else { 3441 container.innerHTML = '<div style="text-align: center">Instagram account is not connected.<br /> Connect it on <a href="/profile">Profile page</a></div>'; 3442 } 3443 } 3444 } else { 3445 if (feed.items.length) { 3446 if (hasDataClass) { 3447 section.classList.add(hasDataClass); 3448 } 3449 const feedName = feed.username; 3450 section.querySelectorAll('.jsIGLink').forEach(link => link.setAttribute('href', feed.feedUrl)); 3451 section.querySelectorAll('.jsIGName').forEach(name => { 3452 name.textContent = '@' + feedName; 3453 name.setAttribute('title', '@' + feedName); 3454 }); 3455 if (container && template) { 3456 container.innerHTML = template(feed); 3457 } 3458 } 3459 } 3460 } 3461 } catch (e) {} 3462 section.dispatchEvent(new CustomEvent('ig-data', { 3463 detail: feed 3464 })); 3465 }).catch(e => { 3466 console.log('err', e); 3467 section.dispatchEvent(new CustomEvent('ig-data', { 3468 detail: feed 3469 })); 3470 }); 3471 } 3472 getData(); 3473})('section-c5e44f3d-4a3b-4637-b205-c366354cd054', JSON.parse("{\"companyId\":\"18711908-6890-4d24-8472-5a7e2cbdd5d3\",\"sectionIndex\":6,\"useRouterApi\":false,\"routerApiAux\":{\"neighborhoods\":false,\"postCategories\":false,\"offices\":false}}")); 3474} catch(e) { 3475console.log(e); 3476} 3477 try { 3478(function init(sectionDomId) { 3479 $("#" + sectionDomId).on("ig-data", function () { 3480 let title = $("#" + sectionDomId + " .js-slider-holder").data("title"); 3481 if (title) { 3482 $("#" + sectionDomId + " .js-h3").text(title); 3483 } 3484 if (window.matchMedia("(max-width: 768px)").matches) { 3485 $("#" + sectionDomId + " .js-slider-holder").before($("#" + sectionDomId + " .js-title-group").clone()); 3486 } 3487 $("#" + sectionDomId + " .js-collection .js-title-group").remove(); 3488 function buildSlick() { 3489 $('#' + sectionDomId + ' .js-collection').slick({ 3490 autoplay: true, 3491 arrows: false, 3492 speed: 0, 3493 autoplaySpeed: 6000, 3494 dots: false, 3495 infinite: true, 3496 slidesToShow: 4, 3497 slidesToScroll: 4, 3498 cssEase: 'linear', 3499 variableWidth: true, 3500 centerMode: false, 3501 swipe: false, 3502 responsive: [{ 3503 breakpoint: 1024, 3504 settings: { 3505 slidesToShow: 2, 3506 slidesToScroll: 2 3507 } 3508 }, { 3509 breakpoint: 768, 3510 settings: { 3511 slidesToShow: 4, 3512 slidesToScroll: 4 3513 } 3514 }] 3515 }); 3516 } 3517 if ($("#" + sectionDomId + " .js-collection").length) { 3518 if ($("#" + sectionDomId + " .js-collection").hasClass('slick-initialized')) { 3519 $("#" + sectionDomId + " .js-collection").slick('unslick'); 3520 buildSlick(); 3521 } else { 3522 buildSlick(); 3523 } 3524 } 3525 }); 3526})('section-c5e44f3d-4a3b-4637-b205-c366354cd054', 'undefined'); 3527} catch(e) { 3528console.log(e); 3529} 3530 3531 var { body } = document; 3532 var globalNav = body.querySelector(':scope > nav'); 3533 var globalSideMenu = body.querySelector(':scope > div.sidemenu'); 3534 3535 document.querySelectorAll('body > .modal .close').forEach(modalCloseBtn => { 3536 modalCloseBtn.addEventListener('click', function() { 3537 window.lpUI.hideClosestModal(modalCloseBtn); 3538 }); 3539 }); 3540 3541 window.addEventListener('click', function() { 3542 document.querySelectorAll('.share-popup').forEach(sharedPopup => { 3543 sharedPopup.style.display = 'none' ; 3544 }); 3545 }); 3546 3547 /* Misc Partials / Addons */ 3548 function initWOW() { 3549 if (wow) { 3550 wow.init(); 3551 wow.scrollHandler(); 3552 setTimeout(function () { 3553 const wowHideStyle = document.getElementById('wow-hide-elements'); 3554 if(wowHideStyle) { 3555 wowHideStyle.disabled = true; 3556 } 3557 }, 1); 3558 } 3559 } 3560 3561 const wowHideElements = document.getElementById('wow-hide-elements'); 3562 if (wowHideElements) { 3563 wowHideElements.disabled = false;
3564 } 3565 3566 initWOW(); 3567 3568 /* Generic Navbar Handling */ 3569 globalNav?.querySelectorAll('.hamburger-component').forEach(hamburgerComponent => { 3570 hamburgerComponent.addEventListener('click', function() { 3571 window.lpUI.sideMenuToggle(); 3572 }); 3573 }); 3574 globalSideMenu?.querySelectorAll('.toggle').forEach(toggleEl => { 3575 toggleEl.addEventListener('click', function() { 3576 window.lpUI.sideMenuToggle(); 3577 }); 3578 }); 3579 3580 document.querySelectorAll('body > nav .sub-nav-container > a, body > div.sidemenu .sub-nav-container > a').forEach(linkEl => { 3581 linkEl.addEventListener('click', function(e) { 3582 e.preventDefault(); 3583 e.stopPropagation(); 3584 var subNav = linkEl.parentElement.querySelector(':scope > .sub-nav'); 3585 if (subNav && subNav.classList.contains('visible')){ 3586 subNav.classList.remove('visible'); 3587 } else { 3588 globalNav?.querySelectorAll('.sub-nav-container .sub-nav').forEach(globalSubNav => { 3589 globalSubNav.classList.remove('visible'); 3590 }); 3591 globalSideMenu?.querySelectorAll('.sub-nav').forEach(sideMenuSubNav => { 3592 sideMenuSubNav.classList.remove('visible'); 3593 }); 3594 subNav?.classList.add('visible'); 3595 } 3596 }); 3597 }); 3598 window.addEventListener('click', function() { 3599 document.querySelectorAll('nav .sub-nav.visible, .sidemenu .sub-nav.visible').forEach(subNavEl => { 3600 subNavEl.classList.remove('visible'); 3601 }); 3602 }); 3603 3604 } 3605 3606 document.addEventListener('DOMContentLoaded', lpGlobalInit); 3607 3608 </script>
3608 3609 3610
3610<script type="module"> 3611 function selectorExists(selector) { 3612 return document.querySelector(selector) !== null; 3613 } 3614 3615 // Function to initialize the third-party library 3616 function initParoller(selector = '.my-paroller') { 3617 var $parollerElements = $(selector); 3618 if ($parollerElements.length > 0 && typeof $parollerElements.paroller === 'function') { 3619 $parollerElements.paroller(); 3620 } 3621 } 3622 3623 const parollerSelector = '.my-paroller'; 3624 3625 if (selectorExists(parollerSelector)) { 3626 window.luxuryPresence.libs.loadJs(window.luxuryPresence.libs.jsLibsMap.paroller.jsSrc, function() { 3627 initParoller(parollerSelector); 3628 window.luxuryPresence.libs.jsLibsMap.paroller.isLoaded = true; 3629 }); 3630 } 3631 </script>
3631 3632 3633 <!-- Follow Up Boss Page View Tracker--> 3634
3634<script type="text/plain" data-consent-category="analytics"> 3635 window.widgetTracker("send", "pageview"); 3636 </script>
3636 3637 <!-- End Follow Up Boss Page View Tracker --> 3638 <!-- Google Tag Manager (noscript) -->
vendor: 80 bytes, lines 3638-3639
3638 3639 <noscript><iframe src="https://www.googletagmanager.com/ns.html?id=
3639GTM-5FR9W22
vendor: 107 bytes, lines 3639-3641
3639" 3640 height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript> 3641
3641<!-- End Google Tag Manager --> 3642 <!-- Google Tag Manager (noscript) -->
vendor: 80 bytes, lines 3642-3643
3642 3643 <noscript><iframe src="https://www.googletagmanager.com/ns.html?id=
3643GTM-NRB4D5T
vendor: 107 bytes, lines 3643-3645
3643" 3644 height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript> 3645
3645<!-- End Google Tag Manager --> 3646 <!-- Google Tag Manager (noscript) -->
vendor: 80 bytes, lines 3646-3647
3646 3647 <noscript><iframe src="https://www.googletagmanager.com/ns.html?id=
3647GTM-T9SFQGHZ
vendor: 107 bytes, lines 3647-3649
3647" 3648 height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript> 3649
3649<!-- End Google Tag Manager --> 3650 3651
3651<script 3652 src="https://cdn.luxurypresence.com/scripts/a11y-widget/latest/widget.js" 3653 data-website-id="e14906e9-42f1-4511-aebc-60613abcb5b6" 3654 3655 defer></script>
vendor: 1 bytes, line 3655
3655
3656<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:'a4821996b93be802',t:'MTc5MTU5ODM0NA=='};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>
3656<script type="module" src="https://static.cloudflareinsights.com/beacon.min.js/v4bc70e2c01a94c73b74392e4234840661791215815920" integrity="sha512-L0ha0OXavK/8okipN9F8BtP84dg9DUhPERbBXzwI6dgTA55d2+yweo3pn5CSFYs45/r8md2+xvUPtTdvTNRfjA==" data-cf-beacon='{"version":"2024.11.0","token":"d2a8f4b3d65944edb8fcd6ffce49ee5e","spa":2}' crossorigin="anonymous"></script>
3656 3657</body> 3658</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.