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>Dallas, TX Real Estate Tips & More | Make Your Move Group</title> 10 <meta property="og:title" content="Dallas, TX Real Estate Tips & More | Make Your Move Group"> 11 <meta name="twitter:title" content="Dallas, TX Real Estate Tips & More | Make Your Move Group"> 12 <meta name="description" content="Looking to buy or sell in Texas? Make Your Move Group has got you covered! Let us help you navigate the real estate market with ease and expertise."> 13 <meta property="og:description" content="Looking to buy or sell in Texas? Make Your Move Group has got you covered! Let us help you navigate the real estate market with ease and expertise."> 14 <meta name="twitter:description" content="Looking to buy or sell in Texas? Make Your Move Group has got you covered! Let us help you navigate the real estate market with ease and expertise."> 15 <meta property="og:image" content="https://media-production.lp-cdn.com/cdn-cgi/image/format=auto,quality=85,fit=scale-down,width=1920/https://media-production.lp-cdn.com/media/712b314a-b4df-4ce6-95f1-b9edbd286276"> 16 <meta name="twitter:image" content="https://media-production.lp-cdn.com/cdn-cgi/image/format=auto,quality=85,fit=scale-down,width=1920/https://media-production.lp-cdn.com/media/712b314a-b4df-4ce6-95f1-b9edbd286276"> 17 <meta property="og:url" content="https://makeyourmovedallas.com/blog"> 18 <link rel="canonical" href="https://makeyourmovedallas.com/blog"> 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=Cormorant%20Garamond:300,300i,400,400i,500,500i,600,600i,700,700i"><link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Raleway: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:'Cormorant Garamond',serif;--global-primary-font-family-short:Cormorant Garamond;--global-secondary-font-family:Raleway,sans-serif;--global-secondary-font-family-short:Raleway;--global-body-padding:0px;--global-background-color:#fff;--global-body-font-size:16px;--global-h1-font-size:55px;--global-h2-font-size:33px;--global-h3-font-size:27px;--global-h4-font-size:21px;--global-h5-font-size:17px;--global-h6-font-size:16px;--global-section-padding:96px;}@media (max-width: 768px){:root{--global-section-padding:64px;}}body{padding:0px;background-color:#fff;font-family:Raleway,sans-serif;font-size:16px;}@media (min-width: 768px){body{padding:0px 0px 0px 0px;}}h1,h2,h3,h4,h5,h6,button{font-family:'Cormorant Garamond',serif;}h1{font-size:55px;}h2{font-size:33px;}h3{font-size:27px;}h4{font-size:21px;}h5{font-size:17px;}h6{font-size:16px;}</style> 30 <link rel="stylesheet" type="text/css" href="https://styles.luxurypresence.com/producer/index.css" /> 31 <style id="website-css">body>div.mobile-contact-wrapper div.mobile-contact{bottom:150px;}@media only screen and (max-width: 768px){iframe[name='widgetCta']{bottom:55px!important;right:15px!important;}}iframe[name="widgetCta"]{bottom:70px!important;right:15px!important;}body>div.mobile-contact-wrapper{z-index:9999!important;}body>div.mobile-contact-wrapper .mobile-contact{z-index:9999!important;}footer .footer .first_text_footer .img_size{height:auto!important;}.redesign .btn--small{padding:20px 46px!important;}.lp-btn{padding:20px 46px!important;}button.newsletter-signup__form-item{line-height:1;font-weight:700;}#modal-global-contact-us .contact-form .section-message form .submitButton{padding:14px 20px;}div#modal-global-contact-us .contact-form .section-message form{max-width:490px;}@media only screen and (max-width:1080px){div#modal-global-contact-us .contact-form h2{font-size:37px;}}@media only screen and (max-width:925px){div#modal-global-contact-us .contact-form h2{font-size:25px;}}div#modal-global-contact-us .close{top:4vh;}div#modal-global-contact-us .contact-form .pre-line{font-weight:400;}h1,h2,h3,h4,h5,.lp-h1,.lp-h2,.lp-h3,.lp-h4,.lp-h5,.footer-navigation__link{text-transform:uppercase!important;}div#global-sidemenu.sidemenu a,nav#global-navbar a,div#global-sidemenu.sidemenu button,nav#global-navbar button{text-transform:uppercase;}nav#global-navbar.scroll .header div.navbar .logo img.light{display:block!important;}nav#global-navbar.scroll .header div.navbar .logo img.dark{display:none!important;}nav#global-navbar .header .logo .logo__img{max-height:100px;max-width:220px;}nav#global-navbar.scroll .header{background-color:#464646;}nav#global-navbar.scroll .header li.navigation__item a.navigation__link{color:#fff;}nav#global-navbar.scroll .header li.navigation__item a.navigation__link span:after{background-color:#fff;}nav#global-navbar.scroll .header button.hamburger-component.hamburger{color:#fff;}nav#global-navbar .header .sub-nav__link{background:#464646;color:#fff;}nav#global-navbar .header .sub-nav__link span:after{background-color:#fff;}nav#global-navbar .navbar .sub-nav ul{background:unset;}footer#global-footer a.hvr_animation,footer#global-footer .lp-link{position:relative!important;color:#000!important;-webkit-transition:0.4s;transition:0.4s;}footer#global-footer a.hvr_animation:hover,footer#global-footer .lp-link:hover{color:#464646!important;}footer#global-footer a.hvr_animation:before,footer#global-footer .lp-link:before,footer#global-footer a.hvr_animation:after,footer#global-footer .lp-link:after{-webkit-transition:0.4s;transition:0.4s;-webkit-text-decoration:none!important;text-decoration:none!important;line-height:1;content:"""";height:1px;position:absolute!important;bottom:0;left:0;}footer#global-footer a.hvr_animation:before,footer#global-footer .lp-link:before{width:100%!important;background-color:#000!important;}footer#global-footer a.hvr_animation:after,footer#global-footer .lp-link:after{width:0%!important;background-color:#464646!important;}footer#global-footer a.hvr_animation:hover:after,footer#global-footer .lp-link:hover:after{width:100%!important;}@media (max-width: 768px){#global-footer .footer .info-wrap .type_user{margin-bottom:21px;}}@media (min-width: 1201px){#global-footer .footer .info-wrap .type_user{margin-bottom:21px;}}#modal-global-contact-us .contact-form .info-zone .type_user,#modal-global-contact-us .contact-form .info-zone .type_user:nth-of-type(2){margin-bottom:21px!important;}div#modal-global-contact-us a.lp-link{font-weight:normal;color:#fff!important;}div#modal-global-contact-us a.lp-link:before{background-color:#fff;}div#modal-global-contact-us a.lp-link:after{background-color:#464646;}div#modal-global-contact-us a.lp-link:hover{color:#464646!important;}@media only screen and (max-width: 768px){#modal-global-contact-us .contact-form .socials_zone{-webkit-box-pack:center;-ms-flex-pack:center;
31-webkit-justify-content:center;justify-content:center;}}#modal-global-contact-us .contact-form .section-message label{color:#fff!important;text-transform:uppercase;}div#global-mobile-contact div.mobile-contact a{background-color:#fff;border:2px solid #000000;}div#global-mobile-contact div.mobile-contact a i{color:#000000;}div#global-mobile-contact div.mobile-contact a:hover{background-color:#000000;border:2px solid #000000;}div#global-mobile-contact div.mobile-contact a:hover i{color:#fff;}footer#global-footer .container .info-privacy{border-top-color:#464646;}@media (max-width: 768px){footer#global-footer .container .info-privacy .copy_zone{border-color:#464646;}}#global-footer .info-privacy__row a{font-weight:normal;}</style> 32 <style id="wow-hide-elements">.wow{visibility:hidden!important}</style> 33 <style id="page-css"> 34 #section-4694ef73-6ba0-4d31-8dce-f1f1d52c478b{color:#ffffff;--fontColor:#ffffff;--fontColor_H:0;--fontColor_S:0%;--fontColor_L:100%;--fontColor_A:1;--fontColor_darkenDir:-1;--bgColor:#fff;--bgColor_H:0;--bgColor_S:0%;--bgColor_L:100%;--bgColor_A:1;--bgColor_darkenDir:-1;background-color:#fff;--gradient-color:var(--overlay-color, rgba(0, 0, 0, 0.3));background-image:linear-gradient(var(--gradient-color), var(--gradient-color)),url('https://media-production.lp-cdn.com/cdn-cgi/image/format=auto,quality=85,fit=scale-down,width=1280/https://media-production.lp-cdn.com/media/712b314a-b4df-4ce6-95f1-b9edbd286276');background-repeat:no-repeat;-webkit-background-position:center;background-position:center;-webkit-background-size:cover;background-size:cover;}#section-4694ef73-6ba0-4d31-8dce-f1f1d52c478b .lp-title-group .lp-text--subtitle{margin-bottom:0;}#section-4694ef73-6ba0-4d31-8dce-f1f1d52c478b .collection .btn-container{margin-top:0!important;}#section-4694ef73-6ba0-4d31-8dce-f1f1d52c478b .lp-title-group .lp-h1,#section-4694ef73-6ba0-4d31-8dce-f1f1d52c478b .lp-title-group .lp-h2,#section-4694ef73-6ba0-4d31-8dce-f1f1d52c478b .lp-title-group .lp-h3{margin:8px 0 8px;}#section-4694ef73-6ba0-4d31-8dce-f1f1d52c478b .collection .slick-dots button{opacity:0;cursor:default!important;}#section-4694ef73-6ba0-4d31-8dce-f1f1d52c478b .lp-btn{min-width:250px;}#section-4694ef73-6ba0-4d31-8dce-f1f1d52c478b{height:600px;}#section-4694ef73-6ba0-4d31-8dce-f1f1d52c478b div.collection{min-height:500px;}#section-4694ef73-6ba0-4d31-8dce-f1f1d52c478b div.collection .item{min-height:calc(50vh - 240px);}#section-4694ef73-6ba0-4d31-8dce-f1f1d52c478b{background-attachment:fixed;-webkit-background-position:center;background-position:center;background-repeat:no-repeat;-webkit-background-size:cover;background-size:cover;}@media only screen and (max-width: 768px){#section-4694ef73-6ba0-4d31-8dce-f1f1d52c478b{background-attachment:unset;}}#section-4694ef73-6ba0-4d31-8dce-f1f1d52c478b .video-wrapper video,#section-4694ef73-6ba0-4d31-8dce-f1f1d52c478b .video-wrapper div.poster{z-index:0!important;}#section-4694ef73-6ba0-4d31-8dce-f1f1d52c478b>.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-4694ef73-6ba0-4d31-8dce-f1f1d52c478b>.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;}#section-4694ef73-6ba0-4d31-8dce-f1f1d52c478b>.video-wrapper>.full-screen-video-component>.video-wrapper.playing>video{opacity:1;}#section-4694ef73-6ba0-4d31-8dce-f1f1d52c478b .collection{padding:120px 0 0;min-height:100vh;margin:0;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:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center;}@media (max-width: 768px){#section-4694ef73-6ba0-4d31-8dce-f1f1d52c478b .collection.slick-initialized{pointer-events:none;}}#section-4694ef73-6ba0-4d31-8dce-f1f1d52c478b .collection .item{text-align:center;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:center;-ms-flex-pack:center;
34-webkit-justify-content:center;justify-content:center;min-height:calc(100vh - 240px);}#section-4694ef73-6ba0-4d31-8dce-f1f1d52c478b .collection .btn-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;gap:23px;margin-top:32px;}@media(max-width: 560px){#section-4694ef73-6ba0-4d31-8dce-f1f1d52c478b .collection .btn-container{-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;gap:10px;}}@media (max-width: 768px){#section-4694ef73-6ba0-4d31-8dce-f1f1d52c478b .collection .lp-btn{pointer-events:initial;}}#section-4694ef73-6ba0-4d31-8dce-f1f1d52c478b .collection .slick-active .animation{-webkit-transform:translateX(0);-moz-transform:translateX(0);-ms-transform:translateX(0);transform:translateX(0);opacity:1;}#section-4694ef73-6ba0-4d31-8dce-f1f1d52c478b .collection .animation{-webkit-transition:all .6s;transition:all .6s;-webkit-transform:translateX(-100px);-moz-transform:translateX(-100px);-ms-transform:translateX(-100px);transform:translateX(-100px);opacity:0;}#section-4694ef73-6ba0-4d31-8dce-f1f1d52c478b .collection .lp-title-group,#section-4694ef73-6ba0-4d31-8dce-f1f1d52c478b .collection .lp-text--pretitle{max-width:100%;}#section-4694ef73-6ba0-4d31-8dce-f1f1d52c478b .collection .slick-dots{margin:30px auto 85px;padding:0;position:relative;top:0;bottom:0;left:0;right:0;list-style-type:none;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;width:360px;max-width:100%;}#section-4694ef73-6ba0-4d31-8dce-f1f1d52c478b .collection .slick-dots li{margin:0;-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;width:auto;height:auto;position:static;display:block;}#section-4694ef73-6ba0-4d31-8dce-f1f1d52c478b .collection .slick-dots li.slick-active button:after{opacity:1;}#section-4694ef73-6ba0-4d31-8dce-f1f1d52c478b .collection .slick-dots button{display:block;font-size:0;color:inherit;border-radius:0;border:none;width:100%;height:30px;cursor:pointer;position:relative;background-color:transparent;padding:0;}#section-4694ef73-6ba0-4d31-8dce-f1f1d52c478b .collection .slick-dots button:before{display:none;}#section-4694ef73-6ba0-4d31-8dce-f1f1d52c478b .collection .slick-dots button:after{display:block;content:'';width:100%;position:absolute;left:0;top:50%;height:1px;background-color:currentColor;opacity:0.5;}#section-4694ef73-6ba0-4d31-8dce-f1f1d52c478b .collection:not(.slick-initialized) .item{margin-bottom:145px;}#section-4694ef73-6ba0-4d31-8dce-f1f1d52c478b .collection:not(.slick-initialized) .item:nth-child(n + 2){display:none;}@media (min-width: 960px) and (orientation: landscape){#section-4694ef73-6ba0-4d31-8dce-f1f1d52c478b{background-image:linear-gradient(var(--gradient-color), var(--gradient-color)),url('https://media-production.lp-cdn.com/cdn-cgi/image/format=auto,quality=85,fit=scale-down,width=1280/https://media-production.lp-cdn.com/media/712b314a-b4df-4ce6-95f1-b9edbd286276');}}@media (min-width: 1280px) and (orientation: landscape){#section-4694ef73-6ba0-4d31-8dce-f1f1d52c478b{background-image:linear-gradient(var(--gradient-color), var(--gradient-color)),url('https://media-production.lp-cdn.com/cdn-cgi/image/format=auto,quality=85,fit=scale-down,width=1920/https://media-production.lp-cdn.com/media/712b314a-b4df-4ce6-95f1-b9edbd286276');}}@media (min-width: 1920px) and (orientation: landscape){#section-4694ef73-6ba0-4d31-8dce-f1f1d52c478b{background-image:linear-gradient(var(--gradient-color), var(--gradient-color)),url('https://media-production.lp-cdn.com/cdn-cgi/image/format=auto,quality=85/https://media-production.lp-cdn.com/media/712b314a-b4df-4ce6-95f1-b9edbd286276');}}@media (min-width: 2560px) and (orientation: landscape){#section-4694ef73-6ba0-4d31-8dce-f1f1d52c478b{background-image:linear-gradient(var(--gradient-color), var(--gradient-color)),url('https://media-production.lp-cdn.com/cdn-cgi/image/format=auto,quality=85/https://media-production.lp-cdn.com/media/712b314a-b4df-4ce6-95f1-b9edbd286276');}}#section-65cbf1db-f9ee-4a1f-ae72-115648af7c76{color:#000000;--fontColor:#000000;--fontColor_H:0;--fontColor_S:0%;--fontColor_L:0%;--fontColor_A:1;--fontColor_darkenDir:1;--bgColor:rgba(255, 255, 255, 1);--bgColor_H:0;--bgColor_S:0%;--bgColor_L:100%;--bgColor_A:1;--bgColor_darkenDir:-1;--section-padding-top:calc(4 / 4 * var(--global-section-padding));--section-padding-bottom:calc(2 / 4 * var(--global-section-padding));background-color:rgba(255, 255, 255, 1);}#section-65cbf1db-f9ee-4a1f-ae72-115648af7c76 .blog-list{padding:120px 0;position:relative;z-index:1;}#section-65cbf1db-f9ee-4a1f-ae72-115648af7c76 .blog-list .center-items{-webkit-box-pack:center;-ms-flex-pack:center;
34-webkit-justify-content:center;justify-content:center;}#section-65cbf1db-f9ee-4a1f-ae72-115648af7c76 .blog-list__container{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-box-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;-webkit-align-items:stretch;-webkit-box-align:stretch;-ms-flex-align:stretch;align-items:stretch;max-width:1282px;}@media(max-width: 768px){#section-65cbf1db-f9ee-4a1f-ae72-115648af7c76 .blog-list__container{padding:0;}}#section-65cbf1db-f9ee-4a1f-ae72-115648af7c76 .blog-list__container.hide-date .blog-list__item-date{display:none;}#section-65cbf1db-f9ee-4a1f-ae72-115648af7c76 .blog-list__container.hide-author .blog-list__item-author{display:none;}#section-65cbf1db-f9ee-4a1f-ae72-115648af7c76 .blog-list__container.hide-author .blog-list__item-date{margin-left:0;padding-left:0;border-left:none;}#section-65cbf1db-f9ee-4a1f-ae72-115648af7c76 .blog-list__container .blog-list__item{background-color:#fff;}#section-65cbf1db-f9ee-4a1f-ae72-115648af7c76 .blog-list__section-title,#section-65cbf1db-f9ee-4a1f-ae72-115648af7c76 .blog-list .description{text-align:center;margin-bottom:50px;max-width:75%;margin-left:auto;margin-right:auto;}@media(max-width: 768px){#section-65cbf1db-f9ee-4a1f-ae72-115648af7c76 .blog-list__section-title,#section-65cbf1db-f9ee-4a1f-ae72-115648af7c76 .blog-list .description{max-width:100%;}}#section-65cbf1db-f9ee-4a1f-ae72-115648af7c76 .blog-list__item{width:calc(50% - 18px);margin-bottom:34px;}@media(max-width: 768px){#section-65cbf1db-f9ee-4a1f-ae72-115648af7c76 .blog-list__item{width:100%;margin-bottom:32px;}}#section-65cbf1db-f9ee-4a1f-ae72-115648af7c76 .blog-list__item:nth-child(2n) .blog-list__item-content h4:after{right:-116px;left:60%;}@media(max-width: 768px){#section-65cbf1db-f9ee-4a1f-ae72-115648af7c76 .blog-list__item:nth-child(2n) .blog-list__item-content h4:after{right:-25px;left:40%;}}#section-65cbf1db-f9ee-4a1f-ae72-115648af7c76 .blog-list__item-image{padding-top:70.16%;position:relative;background-color:#808080;}#section-65cbf1db-f9ee-4a1f-ae72-115648af7c76 .blog-list__item-image img{position:absolute;object-fit:cover;height:100%;width:100%;top:0;z-index:0;}#section-65cbf1db-f9ee-4a1f-ae72-115648af7c76 .blog-list__item-content{padding:46px 36px;}@media(max-width: 768px){#section-65cbf1db-f9ee-4a1f-ae72-115648af7c76 .blog-list__item-content{padding:40px 25px;}}#section-65cbf1db-f9ee-4a1f-ae72-115648af7c76 .blog-list__item-content h4{margin:0 0 36px;position:relative;}@media(max-width: 768px){#section-65cbf1db-f9ee-4a1f-ae72-115648af7c76 .blog-list__item-content h4{margin:0 0 38px;}}#section-65cbf1db-f9ee-4a1f-ae72-115648af7c76 .blog-list__item-content h4:after{content:'';position:absolute;bottom:-17px;left:-116px;right:60%;height:1px;background-color:#c0c0c0;}@media(max-width: 768px){#section-65cbf1db-f9ee-4a1f-ae72-115648af7c76 .blog-list__item-content h4:after{right:40%;left:-25px;bottom:-21px;}}#section-65cbf1db-f9ee-4a1f-ae72-115648af7c76 .blog-list__item-content .link{display:inline-block;margin-top:36px;text-transform:uppercase;font-size:14px;}#section-65cbf1db-f9ee-4a1f-ae72-115648af7c76 .blog-list__item-details{list-style-type:none;display:block;margin:0 0 9px;}#section-65cbf1db-f9ee-4a1f-ae72-115648af7c76 .blog-list__item-details >li{display:inline-block;position:relative;font-size:14px;font-weight:700;line-height:1.4;text-transform:uppercase;}#section-65cbf1db-f9ee-4a1f-ae72-115648af7c76 .blog-list__item-details >li+li{margin-left:3px;padding-left:5px;border-left:2px solid;}#section-65cbf1db-f9ee-4a1f-ae72-115648af7c76 .search-container{margin-bottom:48px;}@media (max-width: 768px){#section-65cbf1db-f9ee-4a1f-ae72-115648af7c76 .search-container{margin-bottom:32px;}}#section-65cbf1db-f9ee-4a1f-ae72-115648af7c76 .search-container__row{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:flex-end;-webkit-box-align:flex-end;-ms-flex-align:flex-end;align-items:flex-end;
34gap:12px;}#section-65cbf1db-f9ee-4a1f-ae72-115648af7c76 .search-container__row:has(.lp-btn.lp-i--chevron-down){-webkit-box-pack:justify;-webkit-justify-content:space-between;justify-content:space-between;}@media (max-width: 768px){#section-65cbf1db-f9ee-4a1f-ae72-115648af7c76 .search-container__row{-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;}}#section-65cbf1db-f9ee-4a1f-ae72-115648af7c76 .input-container{width:100%;max-width:485px;position:relative;}@media (max-width: 1024px){#section-65cbf1db-f9ee-4a1f-ae72-115648af7c76 .input-container{max-width:350px;}}@media (max-width: 768px){#section-65cbf1db-f9ee-4a1f-ae72-115648af7c76 .input-container{max-width:100%;}}#section-65cbf1db-f9ee-4a1f-ae72-115648af7c76 .input-container .lp-input{height:50px;width:100%;}#section-65cbf1db-f9ee-4a1f-ae72-115648af7c76 .input-container .search-icon{position:absolute;top:50%;right:0;-webkit-transform:translateY(-50%);-moz-transform:translateY(-50%);-ms-transform:translateY(-50%);transform:translateY(-50%);}#section-65cbf1db-f9ee-4a1f-ae72-115648af7c76 .empty-results{text-align:center;display:none;}#section-65cbf1db-f9ee-4a1f-ae72-115648af7c76 .empty-results.visible{display:block;}#section-65cbf1db-f9ee-4a1f-ae72-115648af7c76 .filter-container{padding-top:16px;display:none;}#section-65cbf1db-f9ee-4a1f-ae72-115648af7c76 .category-cell{margin:0 8px 8px 0;border-width:2px;padding:10px 15px;opacity:.3;position:relative;cursor:pointer;}#section-65cbf1db-f9ee-4a1f-ae72-115648af7c76 .category-cell.active{opacity:1;}@media(hover: hover) and (pointer: fine){#section-65cbf1db-f9ee-4a1f-ae72-115648af7c76 .category-cell:hover{opacity:1;}}#section-65cbf1db-f9ee-4a1f-ae72-115648af7c76 .lp-btn.lp-i--chevron-down{display:none;gap:10px;-webkit-flex-direction:row-reverse;-ms-flex-direction:row-reverse;flex-direction:row-reverse;-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;}@media (max-width: 768px){#section-65cbf1db-f9ee-4a1f-ae72-115648af7c76 .lp-btn.lp-i--chevron-down{width:100%;}}#section-65cbf1db-f9ee-4a1f-ae72-115648af7c76 .lp-btn.lp-i--chevron-down:before{-webkit-transition:-webkit-transform .3s;transition:transform .3s;}#section-65cbf1db-f9ee-4a1f-ae72-115648af7c76 .lp-btn.lp-i--chevron-down.active:before{-webkit-transform:scaleY(-1);-moz-transform:scaleY(-1);-ms-transform:scaleY(-1);transform:scaleY(-1);}#section-65cbf1db-f9ee-4a1f-ae72-115648af7c76 .category{position:absolute;top:0;left:0;background-color:#fff;color:#000;padding:8px 34px;font-size:14px;font-weight:700;line-height:24px;letter-spacing:1.5px;text-transform:uppercase;z-index:2;}#section-65cbf1db-f9ee-4a1f-ae72-115648af7c76>div:last-child{padding-top:calc(4 / 4 * var(--global-section-padding))!important;padding-bottom:calc(2 / 4 * var(--global-section-padding))!important;}#section-56f9b725-4e99-4d1c-9768-651be618ee2a{color:#fff;--fontColor:#fff;--fontColor_H:0;--fontColor_S:0%;--fontColor_L:100%;--fontColor_A:1;--fontColor_darkenDir:-1;--bgColor:#464646;--bgColor_H:0;--bgColor_S:0%;--bgColor_L:27%;--bgColor_A:1;--bgColor_darkenDir:1;background-color:#464646;}#section-56f9b725-4e99-4d1c-9768-651be618ee2a .newsletter-signup{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;}@media (max-width: 768px){#section-56f9b725-4e99-4d1c-9768-651be618ee2a .newsletter-signup{min-height:80vh;}#section-56f9b725-4e99-4d1c-9768-651be618ee2a .newsletter-signup .lp-container-custom{padding:0 25px;}}#section-56f9b725-4e99-4d1c-9768-651be618ee2a .newsletter-signup__form{margin:0;}#section-56f9b725-4e99-4d1c-9768-651be618ee2a .newsletter-signup__form.success .newsletter-signup__form-container{display:none;}#section-56f9b725-4e99-4d1c-9768-651be618ee2a .newsletter-signup__form.success .success-block{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;}#section-56f9b725-4e99-4d1c-9768-651be618ee2a .newsletter-signup__inputs-container{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-ms-flex-pack:center;
34-webkit-justify-content:center;justify-content:center;}@media (max-width: 768px){#section-56f9b725-4e99-4d1c-9768-651be618ee2a .newsletter-signup__inputs-container{-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;}}#section-56f9b725-4e99-4d1c-9768-651be618ee2a .newsletter-signup__form-container{position:relative;z-index:1;}@media (max-width: 768px){#section-56f9b725-4e99-4d1c-9768-651be618ee2a .newsletter-signup__form-container .lp-h2{margin-bottom:32px;}}@media (max-width: 768px){#section-56f9b725-4e99-4d1c-9768-651be618ee2a .newsletter-signup__form-container .lp-text--subtitle{margin-bottom:32px;}}#section-56f9b725-4e99-4d1c-9768-651be618ee2a .newsletter-signup__form-item +.newsletter-signup__form-item{margin-left:16px;}@media (max-width: 768px){#section-56f9b725-4e99-4d1c-9768-651be618ee2a .newsletter-signup__form-item +.newsletter-signup__form-item{margin-left:0px;margin-top:32px;}}@media (min-width: 769px){#section-56f9b725-4e99-4d1c-9768-651be618ee2a .newsletter-signup__form-item.lp-input{padding-top:0;padding-bottom:0;width:250px;}}#section-56f9b725-4e99-4d1c-9768-651be618ee2a .newsletter-signup__form-item.lp-btn{text-transform:uppercase;font-weight:700;}@media (min-width: 769px){#section-56f9b725-4e99-4d1c-9768-651be618ee2a .newsletter-signup__form-item.lp-btn{width:200px;}}#section-56f9b725-4e99-4d1c-9768-651be618ee2a .newsletter-signup .success-block{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:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center;visibility:visible;opacity:1;z-index:2;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;display:none;text-align:center;}#section-56f9b725-4e99-4d1c-9768-651be618ee2a .newsletter-signup .success-block.hide{display:none;}#section-56f9b725-4e99-4d1c-9768-651be618ee2a .lp-text--subtitle{margin-left:auto;margin-right:auto;text-transform:none;}#section-56f9b725-4e99-4d1c-9768-651be618ee2a .lp-h-pot{max-width:1px;}#section-56f9b725-4e99-4d1c-9768-651be618ee2a .lp-title-group{max-width:unset;padding:0 20px;}#section-56f9b725-4e99-4d1c-9768-651be618ee2a input:-webkit-autofill,#section-56f9b725-4e99-4d1c-9768-651be618ee2a input:-webkit-autofill:hover,#section-56f9b725-4e99-4d1c-9768-651be618ee2a input:-webkit-autofill:focus,#section-56f9b725-4e99-4d1c-9768-651be618ee2a input:-webkit-autofill:active{-webkit-text-fill-color:var(--fontColor);-webkit-box-shadow:0 0 0px 1000px var(--bgColor) inset;-webkit-transition:background-color 5000s ease-in-out 0s;transition:background-color 5000s ease-in-out 0s;}#section-56f9b725-4e99-4d1c-9768-651be618ee2a .lp-disclaimer{max-width:730px;margin:20px auto 0 auto;}#section-1af8d6b4-8fcf-4a16-9cd4-e703b0e44663{color:#ffffff;--fontColor:#ffffff;--fontColor_H:0;--fontColor_S:0%;--fontColor_L:100%;--fontColor_A:1;--fontColor_darkenDir:-1;--bgColor:#fff;--bgColor_H:0;--bgColor_S:0%;--bgColor_L:100%;--bgColor_A:1;--bgColor_darkenDir:-1;background-color:#fff;--gradient-color:var(--overlay-color, rgba(0, 0, 0, 0.4));background-image:linear-gradient(var(--gradient-color), var(--gradient-color)),url('https://media-production.lp-cdn.com/cdn-cgi/image/format=auto,quality=85,fit=scale-down,width=1280/https://media-production.lp-cdn.com/media/08aa43f2-d887-4ceb-b4ba-127bb5c8c652');background-repeat:no-repeat;-webkit-background-position:center;background-position:center;-webkit-background-size:cover;background-size:cover;}#section-1af8d6b4-8fcf-4a16-9cd4-e703b0e44663.parallax-enabled{-webkit-clip-path:polygon(0px 0px, 100% 0%, 100% 100%, 0% 100%);clip-path:polygon(0px 0px, 100% 0%, 100% 100%, 0% 100%);}#section-1af8d6b4-8fcf-4a16-9cd4-e703b0e44663.parallax-enabled>div.video-wrapper{position:fixed;left:0;top:0;width:100vw;height:100vh;z-index:-9999;}#section-1af8d6b4-8fcf-4a16-9cd4-e703b0e44663.parallax-enabled .work-with-us:before{display:block;content:'';left:0;top:0;width:100%;background:var(--sectionBackground) center no-repeat;-webkit-background-size:cover;background-size:cover;position:fixed;z-index:-1;height:100%;}#section-1af8d6b4-8fcf-4a16-9cd4-e703b0e44663 .redesign.work-with-us{position:relative;color:var(--fontColor, #ffffff);}#section-1af8d6b4-8fcf-4a16-9cd4-e703b0e44663 .redesign.work-with-us .container{text-align:center;max-width:750px;min-height:689px;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:center;-ms-flex-pack:center;
34-webkit-justify-content:center;justify-content:center;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;padding-top:50px;padding-bottom:50px;position:relative;z-index:1;}@media (max-width: 768px){#section-1af8d6b4-8fcf-4a16-9cd4-e703b0e44663 .redesign.work-with-us .container{min-height:auto;padding-top:100px;padding-bottom:100px;}}#section-1af8d6b4-8fcf-4a16-9cd4-e703b0e44663 .redesign.work-with-us h2{position:relative;padding-bottom:28px;margin:0 0 30px;}@media(max-width: 768px){#section-1af8d6b4-8fcf-4a16-9cd4-e703b0e44663 .redesign.work-with-us h2{padding-bottom:40px;}}#section-1af8d6b4-8fcf-4a16-9cd4-e703b0e44663 .redesign.work-with-us h2:after{content:'';position:absolute;bottom:0;left:50%;margin-left:-55px;width:110px;height:1px;background-color:var(--fontColor, #ffffff);}#section-1af8d6b4-8fcf-4a16-9cd4-e703b0e44663 .redesign.work-with-us .description{margin:0 0 30px;}@media(max-width: 768px){#section-1af8d6b4-8fcf-4a16-9cd4-e703b0e44663 .redesign.work-with-us .description{margin-bottom:40px;}}#section-1af8d6b4-8fcf-4a16-9cd4-e703b0e44663 .redesign.work-with-us .btn-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;gap:23px;margin-top:32px;}@media(max-width: 560px){#section-1af8d6b4-8fcf-4a16-9cd4-e703b0e44663 .redesign.work-with-us .btn-container{-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;gap:10px;}}@media (min-width: 960px) and (orientation: landscape){#section-1af8d6b4-8fcf-4a16-9cd4-e703b0e44663{background-image:linear-gradient(var(--gradient-color), var(--gradient-color)),url('https://media-production.lp-cdn.com/cdn-cgi/image/format=auto,quality=85,fit=scale-down,width=1280/https://media-production.lp-cdn.com/media/08aa43f2-d887-4ceb-b4ba-127bb5c8c652');}}@media (min-width: 1280px) and (orientation: landscape){#section-1af8d6b4-8fcf-4a16-9cd4-e703b0e44663{background-image:linear-gradient(var(--gradient-color), var(--gradient-color)),url('https://media-production.lp-cdn.com/cdn-cgi/image/format=auto,quality=85,fit=scale-down,width=1920/https://media-production.lp-cdn.com/media/08aa43f2-d887-4ceb-b4ba-127bb5c8c652');}}@media (min-width: 1920px) and (orientation: landscape){#section-1af8d6b4-8fcf-4a16-9cd4-e703b0e44663{background-image:linear-gradient(var(--gradient-color), var(--gradient-color)),url('https://media-production.lp-cdn.com/cdn-cgi/image/format=auto,quality=85/https://media-production.lp-cdn.com/media/08aa43f2-d887-4ceb-b4ba-127bb5c8c652');}}@media (min-width: 2560px) and (orientation: landscape){#section-1af8d6b4-8fcf-4a16-9cd4-e703b0e44663{background-image:linear-gradient(var(--gradient-color), var(--gradient-color)),url('https://media-production.lp-cdn.com/cdn-cgi/image/format=auto,quality=85/https://media-production.lp-cdn.com/media/08aa43f2-d887-4ceb-b4ba-127bb5c8c652');}}#section-91399073-5f3c-4d74-8653-9093fa5f815d{color:rgba(0, 0, 0, 1);--fontColor:rgba(0, 0, 0, 1);--fontColor_H:0;--fontColor_S:0%;--fontColor_L:0%;--fontColor_A:1;--fontColor_darkenDir:1;--bgColor:rgba(255, 255, 255, 1);--bgColor_H:0;--bgColor_S:0%;--bgColor_L:100%;--bgColor_A:1;--bgColor_darkenDir:-1;background-color:rgba(255, 255, 255, 1);}#section-91399073-5f3c-4d74-8653-9093fa5f815d .ig-feed{padding:80px 0;}#section-91399073-5f3c-4d74-8653-9093fa5f815d .title{margin:0 20px 0 0;}#section-91399073-5f3c-4d74-8653-9093fa5f815d .instagram-link{display:block;margin:0 20px 0 0;color:var(--global-primary-font-color);}#section-91399073-5f3c-4d74-8653-9093fa5f815d .instagram-link .instagram-name{display:inline;margin:0;}#section-91399073-5f3c-4d74-8653-9093fa5f815d .title+.instagram-link{margin-top:5px;}#section-91399073-5f3c-4d74-8653-9093fa5f815d .top-wrapper{margin-bottom:20px;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-end;-webkit-box-align:flex-end;-ms-flex-align:flex-end;align-items:flex-end;}#section-91399073-5f3c-4d74-8653-9093fa5f815d .top-right{margin-left:auto;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:stretch;-webkit-box-align:stretch;-ms-flex-align:stretch;align-items:stretch;}#section-91399073-5f3c-4d74-8653-9093fa5f815d .follow-button{margin:20px 0 0 0;display:block;}#section-91399073-5f3c-4d74-8653-9093fa5f815d .nav-button{margin-top:20px;-webkit-flex:0 0 auto;-ms-flex:0 0 auto;flex:0 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;
34-webkit-justify-content:center;justify-content:center;width:42px;color:#1a1a1a;border:1px solid currentColor;cursor:pointer;transition-property:color,background-color,border-color;transition-duration:.3s;transition-timing-function:ease;}#section-91399073-5f3c-4d74-8653-9093fa5f815d .nav-button.slick-disabled{opacity:0.6;pointer-events:none;cursor:default;}#section-91399073-5f3c-4d74-8653-9093fa5f815d .nav-button:not(.slick-disabled):hover{background-color:#1a1a1a;border-color:#1a1a1a;color:#fff;}#section-91399073-5f3c-4d74-8653-9093fa5f815d .top-nav-prev{margin-left:30px;}#section-91399073-5f3c-4d74-8653-9093fa5f815d .top-nav-next{margin-left:10px;}#section-91399073-5f3c-4d74-8653-9093fa5f815d .hidden-control{display:none;}#section-91399073-5f3c-4d74-8653-9093fa5f815d .slide-single,#section-91399073-5f3c-4d74-8653-9093fa5f815d .slide-multi{position:relative;-webkit-flex:0 0 auto;-ms-flex:0 0 auto;flex:0 0 auto;width:calc(100% / 3);padding:10px;}#section-91399073-5f3c-4d74-8653-9093fa5f815d .slide-single:first-child,#section-91399073-5f3c-4d74-8653-9093fa5f815d .slide-multi:first-child{margin-left:auto;}#section-91399073-5f3c-4d74-8653-9093fa5f815d .slide-single:last-child,#section-91399073-5f3c-4d74-8653-9093fa5f815d .slide-multi:last-child{margin-right:auto;}#section-91399073-5f3c-4d74-8653-9093fa5f815d .slide-single.type2,#section-91399073-5f3c-4d74-8653-9093fa5f815d .slide-multi.type2{width:calc(100% / 5 * 2);}#section-91399073-5f3c-4d74-8653-9093fa5f815d .slide-single.type3,#section-91399073-5f3c-4d74-8653-9093fa5f815d .slide-multi.type3{width:calc(100% / 2);}#section-91399073-5f3c-4d74-8653-9093fa5f815d .slide-single.type4,#section-91399073-5f3c-4d74-8653-9093fa5f815d .slide-multi.type4{width:calc(100% / 2);}#section-91399073-5f3c-4d74-8653-9093fa5f815d .slide-single.type5,#section-91399073-5f3c-4d74-8653-9093fa5f815d .slide-multi.type5{width:100%;}@media (max-width: 440px){#section-91399073-5f3c-4d74-8653-9093fa5f815d .ig-feed-container{padding:0;width:100%;}}#section-91399073-5f3c-4d74-8653-9093fa5f815d .ig-feed-feed{width:calc(100% + 20px);position:relative;left:-10px;overflow:hidden;}#section-91399073-5f3c-4d74-8653-9093fa5f815d .ig-feed-slider{width:100%;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;}#section-91399073-5f3c-4d74-8653-9093fa5f815d .ig-feed-item__img{position:absolute;left:-1px;top:-1px;bottom:-1px;right:-1px;background:center/cover no-repeat;}#section-91399073-5f3c-4d74-8653-9093fa5f815d .ig-feed-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.8);opacity:0;-webkit-transition:opacity .3s ease;transition:opacity .3s ease;}#section-91399073-5f3c-4d74-8653-9093fa5f815d .ig-feed-item:hover .ig-feed-item__info{opacity:1;}#section-91399073-5f3c-4d74-8653-9093fa5f815d .ig-feed-item__caption{text-overflow:ellipsis;-webkit-line-clamp:4;display:-webkit-box;-webkit-box-orient:vertical;overflow:hidden;}#section-91399073-5f3c-4d74-8653-9093fa5f815d .video-icon{position:absolute;width:50px;height:50px;background-color:#fff;left:50%;top:50%;-webkit-transform:translate(-50%, -50%);-moz-transform:translate(-50%, -50%);-ms-transform:translate(-50%, -50%);transform:translate(-50%, -50%);border-radius:50%;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-transition:opacity .2s ease;transition:opacity .2s ease;opacity:1;}#section-91399073-5f3c-4d74-8653-9093fa5f815d .video-icon::before{content:'';display:block;width:0px;height:0px;border-style:solid;position:relative;left:1px;border-width:7.5px 0px 7.5px 11px;border-color:transparent transparent transparent #292826;}#section-91399073-5f3c-4d74-8653-9093fa5f815d .ig-feed-item:hover .video-icon{opacity:0;}#section-91399073-5f3c-4d74-8653-9093fa5f815d .slide-single .ig-feed-item__info{padding:15%;}#section-91399073-5f3c-4d74-8653-9093fa5f815d .slide-single .ig-feed-item__caption{-webkit-line-clamp:7;}#section-91399073-5f3c-4d74-8653-9093fa5f815d .ig-feed-item{background-color:var(--tileColor, #000);display:block;width:100%;padding-bottom:125%;overflow:hidden;position:relative;}#section-91399073-5f3c-4d74-8653-9093fa5f815d .slide-multi::before{content:'';display:block;width:100%;padding-bottom:125%;}#section-91399073-5f3c-4d74-8653-9093fa5f815d .slide-multi-content{padding:10px;position:absolute;width:100%;height:100%;left:0;top:0;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;-webkit-box-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;-webkit-box-pack:justify;
34-webkit-justify-content:space-between;justify-content:space-between;-webkit-align-items:flex-start;-webkit-box-align:flex-start;-ms-flex-align:flex-start;align-items:flex-start;overflow:hidden;}#section-91399073-5f3c-4d74-8653-9093fa5f815d .slide-multi-content .ig-feed-item{width:calc(50% - 10px);padding-bottom:calc(62.5% - 12.5px);}#section-91399073-5f3c-4d74-8653-9093fa5f815d .slide-multi-content .ig-feed-item:nth-child(n + 3){-webkit-align-self:flex-end;-ms-flex-item-align:end;align-self:flex-end;}#section-91399073-5f3c-4d74-8653-9093fa5f815d .bottom-controls{width:100%;display:none;-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center;}#section-91399073-5f3c-4d74-8653-9093fa5f815d .bottom-nav-button{-webkit-flex:0 0 auto;-ms-flex:0 0 auto;flex:0 0 auto;margin:20px 10px 0;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;-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center;width:48px;height:48px;color:#1a1a1a;border:1px solid currentColor;cursor:pointer;}#section-91399073-5f3c-4d74-8653-9093fa5f815d .bottom-nav-button.slick-disabled{opacity:0.6;pointer-events:none;cursor:default;}@media (max-width: 767px){#section-91399073-5f3c-4d74-8653-9093fa5f815d .top-right,#section-91399073-5f3c-4d74-8653-9093fa5f815d .top-left{width:100%;-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center;}#section-91399073-5f3c-4d74-8653-9093fa5f815d .title,#section-91399073-5f3c-4d74-8653-9093fa5f815d .instagram-link{margin-right:0;text-align:center;}#section-91399073-5f3c-4d74-8653-9093fa5f815d .top-nav-prev,#section-91399073-5f3c-4d74-8653-9093fa5f815d .top-nav-next{display:none;}#section-91399073-5f3c-4d74-8653-9093fa5f815d .bottom-controls{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;}}#section-91399073-5f3c-4d74-8653-9093fa5f815d .ig-feed{display:none;}#section-91399073-5f3c-4d74-8653-9093fa5f815d .has-data .ig-feed{display:block;}#section-91399073-5f3c-4d74-8653-9093fa5f815d.has-data .ig-feed,#section-91399073-5f3c-4d74-8653-9093fa5f815d#section-temp .ig-feed{display:block;}#modal-global-contact-us .close{z-index:11;}#modal-global-contact-us .description{margin-bottom:15px;}#modal-global-contact-us .close:focus{outline:0;}#modal-global-contact-us .contact-form{padding:70px 0;width:100%;min-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;position:relative;color:var(--colorTxt, #ffffff);-webkit-background-size:cover;background-size:cover;}#modal-global-contact-us .contact-form:after{content:'';position:absolute;display:block;background-color:rgba(2, 5, 7, 0.85);height:100%;width:100%;z-index:0;}#modal-global-contact-us .contact-form.loading textarea,#modal-global-contact-us .contact-form.loading input,#modal-global-contact-us .contact-form.loading label,#modal-global-contact-us .contact-form.loading button{pointer-events:none;opacity:.5;}#modal-global-contact-us .contact-form.loading .submit-icon{display:inline-block;}#modal-global-contact-us .contact-form .submit-icon{display:none;}#modal-global-contact-us .contact-form .contact-form-close{width:40px;height:50px;display:block;padding:0;border:none;background-color:transparent;cursor:pointer;position:absolute;right:50px;top:50px;z-index:110;}@media (max-width: 560px){#modal-global-contact-us .contact-form .contact-form-close{right:20px;top:20px;width:30px;height:40px;}}#modal-global-contact-us .contact-form .contact-form-close:before,#modal-global-contact-us .contact-form .contact-form-close:after{content:'';display:block;width:40px;height:1px;background-color:#fff;position:absolute;left:50%;top:50%;}@media (max-width: 560px){#modal-global-contact-us .contact-form .contact-form-close:before,#modal-global-contact-us .contact-form .contact-form-close:after{width:30px;}}#modal-global-contact-us .contact-form .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 .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 .container{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;max-width:1440px;width:100%;padding:0 160px;margin:0 auto;z-index:10;}@media (max-width: 1320px){#modal-global-contact-us .contact-form .container{padding:0 80px;}}@media (max-width: 1200px){#modal-global-contact-us .contact-form .container{padding:0 30px;}}@media (max-width: 900px){#modal-global-contact-us .contact-form .container{-webkit-box-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;}}
34@media (max-width: 560px){#modal-global-contact-us .contact-form .container{padding:0 20px;}}#modal-global-contact-us .contact-form h2{margin:0 0 18px 0;padding:0;}@media (max-width: 560px){#modal-global-contact-us .contact-form h2{margin:0 0 24px 0;}}#modal-global-contact-us .contact-form .section-details{width:50%;}@media (max-width: 1200px){#modal-global-contact-us .contact-form .section-details{padding-right:30px;}}@media (max-width: 900px){#modal-global-contact-us .contact-form .section-details{width:100%;padding-right:0;max-width:700px;margin-bottom:38px;}}#modal-global-contact-us .contact-form .section-message{width:50%;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;position:relative;}@media (max-width: 1200px){#modal-global-contact-us .contact-form .section-message{padding-left:30px;}}@media (max-width: 900px){#modal-global-contact-us .contact-form .section-message{width:100%;padding-left:0;-webkit-box-pack:start;-ms-flex-pack:start;-webkit-justify-content:flex-start;justify-content:flex-start;}}#modal-global-contact-us .contact-form .section-message:after{content:'';position:absolute;display:block;width:1px;background:#999999;height:calc(100% + 50px);left:0;top:-20px;}@media (max-width: 900px){#modal-global-contact-us .contact-form .section-message:after{display:none;}}#modal-global-contact-us .contact-form .section-message form{max-width:435px;width:100%;}#modal-global-contact-us .contact-form .section-message form .submitButton{width:auto;}@media (max-width: 560px){#modal-global-contact-us .contact-form .section-message form .submitButton{width:100%;}}@media (max-width: 900px){#modal-global-contact-us .contact-form .section-message form{max-width:700px;}}#modal-global-contact-us .contact-form .section-message form.loading textarea,#modal-global-contact-us .contact-form .section-message form.loading input,#modal-global-contact-us .contact-form .section-message form.loading label,#modal-global-contact-us .contact-form .section-message form.loading button{pointer-events:none;opacity:.5;}#modal-global-contact-us .contact-form .section-message form.loading .label-loading{display:inline;}#modal-global-contact-us .contact-form .section-message form.loading .label-success,#modal-global-contact-us .contact-form .section-message form.loading .label-initial{display:none;}#modal-global-contact-us .contact-form .section-message form.loading .submit-icon{display:inline-block;}#modal-global-contact-us .contact-form .section-message form.success .label-loading,#modal-global-contact-us .contact-form .section-message form.success .label-initial{display:none;}#modal-global-contact-us .contact-form .section-message form.success .label-success{display:inline;}#modal-global-contact-us .contact-form .section-message .label-loading,#modal-global-contact-us .contact-form .section-message .label-success{display:none;}#modal-global-contact-us .contact-form .section-message .submit-icon{display:none;}#modal-global-contact-us .contact-form .section-message h2{margin-bottom:28px;}#modal-global-contact-us .contact-form .section-message .form-group_modal{-webkit-box-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;margin-bottom:39px;}#modal-global-contact-us .contact-form .section-message .form-group_modal input{border:none;border-bottom:1px solid #c0c0c0;display:block;width:100%;background:transparent;color:#ffffff;height:22px;font-size:16px;}@media (max-width: 560px){#modal-global-contact-us .contact-form .section-message .form-group_modal input{height:25px;}}#modal-global-contact-us .contact-form .section-message .form-group-textarea{margin-bottom:30px;}@media (max-width: 560px){#modal-global-contact-us .contact-form .section-message .form-group-textarea{margin-bottom:23px;}}#modal-global-contact-us .contact-form .section-message label{display:block;width:100%;line-height:1.63;letter-spacing:1px;color:#c0c0c0;font-weight:bold;text-transform:uppercase;}#modal-global-contact-us .contact-form .section-message textarea{resize:none;height:105px;width:100%;background:transparent;border:solid 1px #ffffff;margin:23px 0 0 0;color:#ffffff;padding:10px;font-size:16px;}@media (max-width: 560px){#modal-global-contact-us .contact-form .section-message textarea{margin:10px 0 0 0;height:89px;}}#modal-global-contact-us .contact-form .info-zone h4{margin:0 0 16px 0;}@media (max-width: 560px){#modal-global-contact-us .contact-form .info-zone h4{margin:0 0 13px 0;}}#modal-global-contact-us .contact-form .info-zone .type_user:nth-of-type(2){margin-bottom:30px;}@media (max-width: 560px){#modal-global-contact-us .contact-form .info-zone .type_user{margin-bottom:58px;}}#modal-global-contact-us .contact-form .info-zone_contact{margin-bottom:23px;}#modal-global-contact-us .contact-form .info-zone_contact:nth-last-child(2){margin-bottom:30px;}#modal-global-contact-us .contact-form .info-zone_contact_cell{position:relative;padding-left:45px;margin-bottom:22px;font-weight:bold;font-size:14px;max-width:90%;letter-spacing:1.5px;text-transform:uppercase;}@media (max-width: 560px){#modal-global-contact-us .contact-form .info-zone_contact_cell{padding-left:0;}}#modal-global-contact-us .contact-form .info-zone_contact_cell:last-of-type{margin-bottom:0;}#modal-global-contact-us .contact-form .info-zone_contact_cell i{position:absolute;
34left:0;top:0;display:block;}@media (max-width: 560px){#modal-global-contact-us .contact-form .info-zone_contact_cell i{position:relative;margin-bottom:7px;}}#modal-global-contact-us .contact-form .info-zone_contact_cell i svg path{fill:var(--colorTxt);}#modal-global-contact-us .contact-form .info-zone_contact_cell div{padding:0;}#modal-global-contact-us .contact-form .info-zone_contact_cell .contact_title{line-height:1;margin-bottom:5px;}#modal-global-contact-us .contact-form .info-zone_contact_link{color:var(--colorTxt);}@media (max-width: 560px){#modal-global-contact-us .contact-form .info-zone .type_user:nth-of-type(2){margin-bottom:58px;}}@media (max-width: 560px){#modal-global-contact-us .contact-form .hours_box{margin-bottom:52px;}}#modal-global-contact-us .contact-form .socials_zone{padding-left:45px;}@media (max-width: 560px){#modal-global-contact-us .contact-form .socials_zone{padding-left:0;}}#modal-global-contact-us .contact-form .socials_zone li{margin-bottom:10px;}#modal-global-contact-us .contact-form .socials_zone li:not(:last-child){padding-right:34px;}@media (max-width: 560px){#modal-global-contact-us .contact-form .socials_zone li:not(:last-child){padding-right:12px;}}#modal-global-contact-us .contact-form .success-message.success{margin-top:15px;color:var(--colorTxt);position:absolute;}#modal-global-contact-us .contact-form .success-message.hide{opacity:0;}#modal-global-contact-us .contact-form.one_contact .info-zone .type_user{margin-bottom:73px;}@media (max-width: 768px){#modal-global-contact-us .contact-form.one_contact .info-zone .type_user{margin-bottom:51px;}}@media (max-width: 560px){#modal-global-contact-us .contact-form.one_contact .info-zone .type_user{margin-bottom:40px;}}#modal-global-contact-us .contact-form.one_contact .hours_box{margin-bottom:38px;}#modal-global-contact-us .contact-form.no_icon .info-zone_contact_cell{padding-left:0;}#modal-global-contact-us .contact-form.no_icon .info-zone_contact_cell i{display:none;}#modal-global-contact-us .contact-form.no_icon .socials_zone{padding-left:0;}#modal-global-contact-us .contact-form .pre-line{white-space:pre-line;}#modal-global-contact-us .lp-input-group{margin-bottom:40px;}#modal-global-contact-us .lp-input-group.m16{margin-bottom:16px;}#modal-global-contact-us .lp-disclaimer{margin-top:0;}#modal-global-contact-us .lp-input{border-color:#ffffff;}#modal-global-contact-us .lp-input:focus,#modal-global-contact-us .lp-input:active{border-color:#5e5e5e;}nav{color:#fff;-webkit-transition:0.2s -webkit-transform ease;transition:0.2s transform ease;z-index:102;}nav.scroll .logo .logo__img.light{display:block;}nav.scroll .logo .logo__img.dark{display:none;}nav .header{height:100px;-webkit-transform:translateY(24px);-moz-transform:translateY(24px);-ms-transform:translateY(24px);transform:translateY(24px);}@media (max-width: 768px){nav .header{-webkit-transform:translateY(0);-moz-transform:translateY(0);-ms-transform:translateY(0);transform:translateY(0);}}nav .header .container{max-width:1440px;padding:0 15px;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;height:100%;}@media (max-width: 1024px){nav .header .container{padding:0 15px;}}nav .header .navbar{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;min-height:70px;padding:8px 0 7px;width:100%;}nav .header .logo{z-index:911;position:relative;margin-right:10px;overflow:hidden;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;max-width:300px;}nav .header .logo a{overflow:hidden;display:inline-block;}nav .header .logo img{max-width:100%;max-height:52px;vertical-align:top;object-fit:contain;}@media (max-width: 1024px){nav .header .logo img{max-height:50px;}}nav .header .logo img.dark{display:none;}@media(max-width: 1024px){nav .header .logo img.dark{display:none!important;}}nav .header .logo img.light{display:block;}@media(max-width: 1024px){nav .header .logo img.light{display:inline-block!important;}}
34nav .header .logo__link{-webkit-animation-duration:1s;animation-duration:1s;overflow:hidden;}nav .header .logo__img.light{display:block;}nav .header .logo__img.dark{display:none;}nav .header .navigation{margin-left:auto;color:inherit;}@media (max-width: 1024px){nav .header .navigation{display:none;}}nav .header .navigation ul{position:relative;list-style-type:none;padding-left:0;margin-bottom:0;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;}nav .header .navigation ul li a span,nav .header .navigation ul li button span{position:relative;white-space:nowrap;}nav .header .navigation ul li a span:after,nav .header .navigation ul li button span:after{content:'';position:absolute;display:block;height:1px;background-color:#c6c6c6;width:0;bottom:0;left:0;-webkit-transition:all .2s ease;transition:all .2s ease;}nav .header .navigation ul li a:hover span:after,nav .header .navigation ul li button:hover span:after{width:100%;-webkit-transition:all .2s ease;transition:all .2s ease;}nav .header .navigation__item{padding:0;margin:0;}nav .header .navigation__link{display:block;padding:12px 13px;color:inherit;position:relative;font-size:13px;line-height:1.08;font-weight:700;letter-spacing:1.5px;background-color:transparent;border:none;cursor:pointer;text-align:left;text-transform:uppercase;}@media (max-width: 1280px){nav .header .navigation__link{padding:19px 10px;font-size:11.5px;}}nav .header .navigation__link .sub-nav-container .navigation__link:hover{background:#000000;}nav .header .navigation .sub-nav{position:absolute;bottom:0;padding:0;opacity:0;visibility:hidden;-webkit-transition:all .2s ease;transition:all .2s ease;-webkit-transform:translate(0, calc(100% + -10px));-moz-transform:translate(0, calc(100% + -10px));-ms-transform:translate(0, calc(100% + -10px));transform:translate(0, calc(100% + -10px));}nav .header .navigation .sub-nav ul{margin:0;padding:12px 0;display:block;background-color:rgba(26, 26, 26, .75);max-width:300px;}nav .header .navigation .sub-nav__item{position:relative;display:block;margin:0;text-align:left;}nav .header .navigation .sub-nav__item:last-child{border-bottom-color:transparent;}nav .header .navigation .sub-nav__link{display:block;max-width:300px;color:#ffffff;margin:0;line-height:1;letter-spacing:1.5px;padding:19px 13px;-webkit-transition:all .2s ease;transition:all .2s ease;}nav .header .navigation .sub-nav.visible{opacity:1;visibility:visible;-webkit-transform:translate(0, 100%);-moz-transform:translate(0, 100%);-ms-transform:translate(0, 100%);transform:translate(0, 100%);}nav .header .navigation .sub-nav.visible+.navigation__link{background:#000000;}nav .header .hamburger{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;border:none;padding:28px 13px;background-color:transparent;color:inherit;vertical-align:middle;cursor:pointer;outline:none;z-index:915;opacity:1;}nav .header .hamburger__bars{position:relative;display:block;width:26px;height:2px;background-color:currentColor;-webkit-transition:0.2s -webkit-transform ease;transition:0.2s transform ease;}nav .header .hamburger__bars:before,nav .header .hamburger__bars:after{content:'';display:block;width:26px;height:2px;background-color:currentColor;position:absolute;left:0;top:0;-webkit-transform:translate3d(0,0,0);-moz-transform:translate3d(0,0,0);-ms-transform:translate3d(0,0,0);transform:translate3d(0,0,0);-webkit-transition:0.2s -webkit-transform ease;transition:0.2s transform ease;}nav .header .hamburger__bars:before{-webkit-transform:translateY(-9px);-moz-transform:translateY(-9px);-ms-transform:translateY(-9px);transform:translateY(-9px);}nav .header .hamburger__bars:after{-webkit-transform:translateY(9px);-moz-transform:translateY(9px);-ms-transform:translateY(9px);transform:translateY(9px);}nav .header .hamburger:hover{text-shadow:.5px 0 0,-.5px 0 0;}nav .header .hamburger:hover .hamburger__bars:before{-webkit-transform:translateY(-7px);-moz-transform:translateY(-7px);-ms-transform:translateY(-7px);transform:translateY(-7px);}nav .header .hamburger:hover .hamburger__bars:after{-webkit-transform:translateY(7px);-moz-transform:translateY(7px);-ms-transform:translateY(7px);transform:translateY(7px);}nav .header .hamburger.active .hamburger__bars{-webkit-transform:rotate(135deg);-moz-transform:rotate(135deg);-ms-transform:rotate(135deg);transform:rotate(135deg);opacity:0;}nav .header .hamburger.active .hamburger__bars:before{display:none;}nav .header .hamburger.active .hamburger__bars:after{-webkit-transform:rotate(270deg);-moz-transform:rotate(270deg);-ms-transform:rotate(270deg);transform:rotate(270deg);}nav .content-container{-webkit-transition:0.2s all ease;transition:0.2s all ease;}nav.scroll .content-container,nav .scroll .content-container{-webkit-transform:translateY(0);-moz-transform:translateY(0);-ms-transform:translateY(0);transform:translateY(0);}nav.scroll .content-container .navigation__link,nav .scroll .content-container .navigation__link{visibility:visible!important;}nav.scroll .content-container .navigation .sub-nav,nav .scroll .content-container .navigation .sub-nav{-webkit-transform:translate(0, calc(100% + -10px));-moz-transform:translate(0, calc(100% + -10px));-ms-transform:translate(0, calc(100% + -10px));transform:translate(0, calc(100% + -10px));}nav.scroll .content-container .navigation .sub-nav ul,nav .scroll .content-container .navigation .sub-nav ul{padding:0;}nav.scroll .content-container .navigation .sub-nav.visible,nav .scroll .content-container .navigation .sub-nav.visible{opacity:1;visibility:visible;-webkit-transform:translate(0, calc(100% + 23px));-moz-transform:translate(0, calc(100% + 23px));-ms-transform:translate(0, calc(100% + 23px));transform:translate(0, calc(100% + 23px));}nav .dark-opening{background-color:rgb(26, 26, 26)!important;}nav nav.dark-opening .header{margin-top:0;}nav #ctaShowButton,nav #ctaMessage{display:none!important;}nav #ctaShowButton{display:none;opacity:0;pointer-events:none;}nav .search{cursor:pointer;}nav .search svg{display:block;}nav .buttons-wrapper{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:end;-ms-flex-pack:end;
34-webkit-justify-content:flex-end;justify-content:flex-end;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;}body>div.sidemenu{background-color:#fff;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;}body>div.sidemenu{width:auto!important;left:auto!important;right:-100%;top:0;background-color:transparent;-webkit-transition:right .3s;transition:right .3s;display:block;}body>div.sidemenu:not(.visible){pointer-events:none;visibility:hidden;}body>div.sidemenu.visible{right:0;}body>div.sidemenu .sidebar{position:relative;width:400px;height:100vh;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;padding-top:40px;padding-bottom:100px;background-color:var(--bgColor, #fff);color:var(--fontColor, #000);font-family:var(--global-primary-font-family);font-size:21px;line-height:1.333333;letter-spacing:.5px;-webkit-transition:all .3s ease-in;transition:all .3s ease-in;}@media (max-width: 767px){body>div.sidemenu .sidebar{width:270px;font-size:18px;}}body>div.sidemenu .sidebar__content{position:relative;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;height:100%;width:100%;padding-left:40px;padding-right:40px;text-align:center;overflow-y:auto;}@media (max-width: 767px){body>div.sidemenu .sidebar__content{-webkit-box-pack:start;-ms-flex-pack:start;-webkit-justify-content:flex-start;justify-content:flex-start;padding-left:20px;padding-right:20px;}}body>div.sidemenu .sidebar__close{position:absolute;right:30px;top:30px;display:inline-block;width:38px;height:38px;padding:10px;border:none;border-radius:0;background:transparent;color:inherit;z-index:1;cursor:pointer;}body>div.sidemenu .sidebar__close:before,body>div.sidemenu .sidebar__close:after{content:'';display:block;width:22px;height:2px;background-color:currentColor;position:absolute;left:50%;top:50%;}body>div.sidemenu .sidebar__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);}body>div.sidemenu .sidebar__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);}@media (max-width: 767px){body>div.sidemenu .sidebar__close{right:10px;top:10px;}}body>div.sidemenu .sidebar__close:focus{outline:none;}body>div.sidemenu .sidebar__nav{list-style:none;padding:0;margin:auto 0;}body>div.sidemenu .sidebar__nav-item{margin:0;padding-top:4px;padding-bottom:4px;border-bottom:1px solid hsla( 35 var(--bgColor_H, 0), 36 var(--bgColor_S, 0%), 37 calc(50% + (var(--bgColor_L, 100%) - 50%) * 0.9), 38 var(--bgColor_A, 1) 39 );}body>div.sidemenu .sidebar__nav-link{display:inline-block;padding:10px;border:none;border-radius:0;background:transparent;text-transform:none;-webkit-transition:all .25s;transition:all .25s;cursor:pointer;color:inherit;}body>div.sidemenu .sidebar__nav-link:focus{outline:none;}body>div.sidemenu .sidebar__subnav{list-style:none;padding:4px 0 10px;margin:0;font-size:17px;}@media (max-width: 767px){body>div.sidemenu .sidebar__subnav{font-size:14px;letter-spacing:.3px;}}body>div.sidemenu .sidebar__subnav-item{margin-bottom:10px;}body>div.sidemenu .sidebar__subnav-item:last-child{margin-bottom:0;}body>div.sidemenu .sidebar__subnav-link{display:inline-block;padding:0;border:none;border-radius:0;background:transparent;text-transform:none;opacity:.7;-webkit-transition:all .25s;transition:all .25s;cursor:pointer;color:inherit;}body>div.sidemenu .sidebar__subnav-link:focus{outline:none;}body>div.sidemenu .sub-nav{visibility:hidden;opacity:0;max-height:0;-webkit-transition:all .3s;transition:all .3s;}body>div.sidemenu .sub-nav.visible{display:block;visibility:visible;opacity:1;max-height:100vh;}body>div.sidemenu .sub-nav.visible+.main-nav{color:#7a7a7a;}body>div.sidemenu .sub-nav.visible+.main-nav:after{margin-left:40px;border-bottom:2px solid var(--fontColor, #7a7a7a);border-right:2px solid var(--fontColor, #7a7a7a);}body>div.sidemenu .sub-nav-container{position:relative;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;}body>div.sidemenu .sub-nav-container:hover .main-nav:after{border-bottom:2px solid var(--fontColor, #7a7a7a);border-right:2px solid var(--fontColor, #7a7a7a);}body>div.sidemenu .sub-nav-container .main-nav{position:relative;display:inline-block;}body>div.sidemenu .sub-nav-container .main-nav:after{content:'';display:inline-block;position:relative;width:8px;height:8px;margin-left:25px;-webkit-transform:rotate(45deg) translateX(-100%);-moz-transform:rotate(45deg) translateX(-100%);-ms-transform:rotate(45deg) translateX(-100%);transform:rotate(45deg) translateX(-100%);border-bottom:2px solid var(--fontColor, #000000);border-right:2px solid var(--fontColor, #000000);top:0;bottom:auto;left:auto;-webkit-transition:0.5s all ease;transition:0.5s all ease;background-color:transparent;}body>div.sidemenu #main-section .sidebar{-webkit-transform:translateX(0);-moz-transform:translateX(0);-ms-transform:translateX(0);transform:translateX(0);}footer{background-color:#fff;color:#000000;--fontColor:#000000;--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;--greyColor:hsla( 40var(--fontColor_H), 41var(--fontColor_S), 42calc(var(--fontColor_L) + (50% - var(--fontColor_L)) * 0.445), 43var(--fontColor_A));}footer .redesign .inp--dark-bg input{color:var(--fontColor);border-color:hsla( 44 var(--fontColor_H), 45 var(--fontColor_S), 46 calc(var(--fontColor_L) + (50% - var(--fontColor_L)) * 0.445), 47 var(--fontColor_A));}footer .redesign .inp--dark-bg input:hover{border-color:var(--fontColor);}footer .redesign .inp+.inp{margin-top:24px;}footer .redesign .btn--primary-light{border-color:var(--fontColor);color:var(--fontColor);}footer .redesign .btn--primary-light:hover{background-color:var(--fontColor);color:var(--bgColor);}footer.is-background-color-light .redesign .btn--primary-light{border-width:1px;}footer .redesign .socials--grey{-webkit-box-pack:end;-ms-flex-pack:end;
47-webkit-justify-content:flex-end;justify-content:flex-end;}footer .redesign .socials--grey .socials__link{background-color:hsla( 48 var(--bgColor_H), 49 var(--bgColor_S), 50 calc(var(--bgColor_L) + (50% - var(--bgColor_L)) * 0.15), 51 var(--bgColor_A));color:var(--greyColor);}footer .redesign .socials--grey .socials__link svg{fill:var(--greyColor);}footer .redesign .socials--grey .socials__link:hover{background-color:hsla( 52 var(--bgColor_H), 53 var(--bgColor_S), 54 calc(var(--bgColor_L) + (50% - var(--bgColor_L)) * 0.4), 55 var(--bgColor_A));color:var(--fontColor);}footer .redesign .socials--grey .socials__link:hover svg{fill:var(--fontColor);}footer .redesign.footer .grey-text{color:var(--fontColor);}footer .footer{position:relative;padding-top:60px;padding-bottom:30px;}@media (max-width: 560px){footer .footer{padding-top:10px;}}@media (max-width: 500px){footer .footer{padding-bottom:70px;}}footer .footer .text_content_wrap p{margin-bottom:15px;}footer .footer .text_content_wrap p:last-of-type{margin-bottom:0;}footer .footer .container{max-width:1440px;}@media (max-width: 768px){footer .footer .container{padding-left:25px;padding-right:25px;}}@media (max-width: 560px){footer .footer .container{padding-left:20px;padding-right:20px;}}footer .footer h3{margin:0 0 15px 0;}footer .footer h5{text-transform:capitalize;}footer .footer .info-wrap{margin-bottom:40px;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;}footer .footer .info-wrap .agent_box{width:70%;}@media (max-width: 1280px){footer .footer .info-wrap .agent_box{width:50%;}}@media (max-width: 768px){footer .footer .info-wrap .agent_box{width:100%;}}footer .footer .info-wrap .newsletter_box{width:30%;}@media (max-width: 1280px){footer .footer .info-wrap .newsletter_box{width:50%;}}@media (max-width: 768px){footer .footer .info-wrap .newsletter_box{width:100%;}}footer .footer .info-wrap .newsletter_box--padding{padding-top:44px;}@media (max-width: 768px){footer .footer .info-wrap .newsletter_box--padding{padding-top:0;}}footer .footer .info-wrap .newsletter_box .contact_title{margin-bottom:13px;line-height:1.6;}@media (max-width: 768px){footer .footer .info-wrap .newsletter_box .info-wrap-contact_cell{margin-bottom:0;padding-left:0;}}@media (max-width: 768px){footer .footer .info-wrap .newsletter_box .icon_text{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;margin-bottom:22px;position:relative;}footer .footer .info-wrap .newsletter_box .icon_text i{position:relative;width:30px;margin-right:20px;}footer .footer .info-wrap .newsletter_box .icon_text .contact_title{margin-bottom:0;}}@media (max-width: 768px){footer .footer .info-wrap .newsletter_box .info-wrap-contact_zone{margin-bottom:0;}}footer .footer .info-wrap-contact{position:relative;}footer .footer .info-wrap-contact_zone{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-box-pack:justify;-webkit-justify-content:space-between;justify-content:space-between;margin-bottom:39px;}@media (max-width: 768px){footer .footer .info-wrap-contact_zone{margin-bottom:21px;}footer .footer .info-wrap-contact_zone:last-child{margin-bottom:51px;}}footer .footer .info-wrap-contact_zone i{position:absolute;left:0;display:block;}footer .footer .info-wrap-contact_zone i svg path{fill:currentColor;}footer .footer .info-wrap-contact_zone h4{margin:0 0 13px 0;width:100%;}footer .footer .info-wrap-contact_cell{position:relative;padding-left:50px;width:400px;font-size:14px;text-transform:uppercase;font-weight:bold;letter-spacing:1.5px;}@media (max-width: 1280px){footer .footer .info-wrap-contact_cell:first-of-type{margin-bottom:21px;}}footer .footer .info-wrap-contact_cell .contact_title{line-height:1;margin-bottom:5px;}footer .footer .info-wrap-contact_link{color:var(--greyColor);position:relative;}@media (max-width: 560px){footer .footer .info-wrap-contact_link{letter-spacing:0;}}footer .footer .hvr_animation{position:relative;-webkit-text-decoration:none!important;text-decoration:none!important;}footer .footer .hvr_animation:after{content:'';position:absolute;
55left:0;bottom:0;width:0%;height:1px;background:var(--greyColor);-webkit-transition:.3s linear;transition:.3s linear;}footer .footer .hvr_animation:hover:after{width:100%;}footer .footer .hvr_animation.underlined:after{width:100%;}footer .footer .hvr_animation.underlined:hover:after{width:0%;}footer .footer .form-content{padding:0!important;}footer .footer .form-content label{color:var(--fontColor);text-transform:none;letter-spacing:1;}footer .footer .form-content input{padding:2px 24px 2px 0;}footer .footer .form-content .subscribe_btn{margin-top:20px;position:relative;}footer .footer .form-content .subscribe_btn i{font-size:18px;position:absolute;top:50%;left:50%;-webkit-transform:translate(-50%, -50%);-moz-transform:translate(-50%, -50%);-ms-transform:translate(-50%, -50%);transform:translate(-50%, -50%);opacity:0;}footer .footer .form-content.success i{opacity:1;}footer .footer .form-content.success .subscribe_btn span{opacity:0;}footer .footer .form-content.success .hide{opacity:0;}footer .footer .form-content.success .hide +span{opacity:1;}footer .footer .text_footer{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;width:100%;margin-bottom:39px;}@media (max-width: 1280px){footer .footer .text_footer{-webkit-box-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;}}@media (max-width: 560px){footer .footer .text_footer{text-align:center;}}footer .footer .text_footer p{white-space:normal;}footer .footer .text_footer .images_box{max-width:186px;width:100%;margin-right:43px;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:justify;-webkit-justify-content:space-between;justify-content:space-between;}@media (max-width: 560px){footer .footer .text_footer .images_box{margin:0 auto 20px auto;}}@media (max-width: 1280px){footer .footer .text_footer .img_size{margin-bottom:20px;}}@media (max-width: 560px){footer .footer .text_footer .img_size{margin-bottom:0;}}footer .footer .text_footer .img_size img{width:100%;height:100%;object-fit:contain;}footer .footer .first_text_footer .img_size{width:100%;height:63px;}footer .footer .first_text_footer .img_size img{width:100%;height:100%;object-fit:contain;}@media (max-width: 768px){footer .footer .first_text_footer{margin-bottom:51px;}}footer .footer .second_text_footer .first_img_size{width:45px;height:45px;margin-right:15px;}footer .footer .second_text_footer .second_img_size{width:100px;height:45px;}@media (max-width: 560px){footer .footer .second_text_footer{margin-bottom:21px;}}footer .footer .info-privacy{padding-top:45px;padding-bottom:30px;border-top:1px solid hsla( 56 var(--bgColor_H), 57 var(--bgColor_S), 58 calc(var(--bgColor_L) + (50% - var(--bgColor_L)) * 0.55), 59 var(--bgColor_A));}@media (max-width: 768px){footer .footer .info-privacy{padding-top:0;border-top:none;}}footer .footer .info-privacy__row{-webkit-box-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;}footer .footer .info-privacy .copy_zone{font-size:18px;}@media (min-width: 1350px){footer .footer .info-privacy .copy_zone{text-align:center;}}@media (min-width: 1281px){footer .footer .info-privacy .copy_zone{padding-top:8px;padding-bottom:8px;}}@media (max-width: 768px){footer .footer .info-privacy .copy_zone{text-align:center;margin-bottom:10px;padding-top:45px;border-top:1px solid hsla( 60 var(--bgColor_H), 61 var(--bgColor_S), 62 calc(var(--bgColor_L) + (50% - var(--bgColor_L)) * 0.55), 63 var(--bgColor_A));}}footer .footer .info-privacy .copy_zone a{color:var(--greyColor);}footer .footer .info-privacy .powered_zone{font-size:18px;}@media (min-width: 1281px){footer .footer .info-privacy .powered_zone{padding-top:8px;padding-bottom:8px;}}@media (max-width: 1280px){footer .footer .info-privacy .powered_zone{text-align:center;}}@media (max-width: 768px){footer .footer .info-privacy .powered_zone{text-align:center;margin-bottom:24px;}}footer .footer .info-privacy .powered_zone a{color:var(--greyColor);}@media (min-width: 1281px){footer .footer .info-privacy .socials_zone{-webkit-box-flex-wrap:nowrap;-webkit-flex-wrap:nowrap;-ms-flex-wrap:nowrap;flex-wrap:nowrap;}}@media (max-width: 1280px){footer .footer .info-privacy .socials_zone{width:100%;margin-top:20px;-webkit-box-pack:start;-ms-flex-pack:start;
63-webkit-justify-content:flex-start;justify-content:flex-start;}}@media (max-width: 768px){footer .footer .info-privacy .socials_zone{-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center;margin-top:0;margin-bottom:20px;}footer .footer .info-privacy .socials_zone li{padding:0 7px 10px 7px;}}footer .footer.one_contact .type_user{margin-bottom:73px;}@media (max-width: 768px){footer .footer.one_contact .type_user{margin-bottom:51px;}}footer .footer.no_newsletter h3{margin-bottom:46px;}footer .footer.no_newsletter .newsletter_box{display:none;}footer .footer.no_newsletter .info-wrap-contact{width:calc(70% + 230px);width:100%;padding-left:230px;}@media (max-width: 1200px){footer .footer.no_newsletter .info-wrap-contact{padding-left:0;}}@media (max-width: 768px){footer .footer.no_newsletter .info-wrap-contact{width:100%;}}@media (max-width: 1200px){footer .footer.no_newsletter .info-wrap-contact_cell{width:50%;}}@media (max-width: 768px){footer .footer.no_newsletter .info-wrap-contact_cell{width:100%;}}footer .footer.no_newsletter .info-wrap-contact h4{position:absolute;margin-top:-8px;left:0;max-width:200px;}@media (max-width: 1200px){footer .footer.no_newsletter .info-wrap-contact h4{position:relative;left:auto;max-width:100%;width:100%;margin-bottom:20px;margin-top:0;}}@media (max-width: 768px){footer .footer.no_newsletter .info-wrap-contact h4{position:relative;left:auto;max-width:100%;}}footer .footer.no_newsletter .info-wrap-contact_zone:first-of-type{margin-bottom:71px;}@media (max-width: 1200px){footer .footer.no_newsletter .info-wrap-contact_zone:first-of-type{margin-bottom:39px;}}@media (max-width: 768px){footer .footer.no_newsletter .info-wrap-contact_zone:first-of-type{margin-bottom:51px;}}footer .footer.no_newsletter .info-wrap-contact_zone:last-child{margin-bottom:0;}footer .footer.no_icon .info-wrap-contact_cell{padding-left:0;}footer .footer.no_icon .info-wrap-contact_cell i{display:none;}footer .footer.no-names .info-wrap-contact{padding-left:0;}footer .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: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;margin-left:-15px;margin-right:-15px;}@media (min-width: 1281px){footer .form-row{-webkit-box-flex-wrap:nowrap;-webkit-flex-wrap:nowrap;-ms-flex-wrap:nowrap;flex-wrap:nowrap;}}@media (max-width: 900px){footer .form-row{-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;}}footer .form-col{-webkit-flex-basis:100%;-ms-flex-preferred-size:100%;flex-basis:100%;padding-left:15px;padding-right:15px;}@media (min-width: 768px){footer .form-col{-webkit-flex:1 1 0;-ms-flex:1 1 0;flex:1 1 0;}}@media (min-width: 768px){footer .form-col--socials{-webkit-flex-basis:100%;-ms-flex-preferred-size:100%;flex-basis:100%;}}@media (min-width: 1281px){footer .form-col--socials{-webkit-flex-basis:0;-ms-flex-preferred-size:0;flex-basis:0;}}@media (max-width: 768px){footer .form-col--socials{-webkit-order:-1;-ms-flex-order:-1;order:-1;}}@media (min-width: 1281px){footer .form-col--xl-auto{-webkit-flex:0 0 auto;-ms-flex:0 0 auto;flex:0 0 auto;}}footer .additional-links-separator{display:block;width:100%;height:0;overflow:hidden;}@media (min-width: 768px){footer .additional-links-separator{display:inline;width:auto;height:auto;}footer .additional-links-separator:before{content:"|";}}footer .h-pot{height:0;width:0;overflow:hidden;visibility:hidden;}footer .img-wrap{max-width:100px;width:100%;display:block;margin-right:20px;}@media (max-width: 900px){footer .img-wrap{margin-right:0;margin-bottom:10px;}}footer .img-wrap img{width:100%;object-fit:cover;}footer .powered-box{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-flex:1 0 auto;-ms-flex:1 0 auto;flex:1 0 auto;}@media (max-width: 900px){footer .powered-box{-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;}}footer .form-col--copyright{-webkit-flex:1 0 auto;-ms-flex:1 0 auto;flex:1 0 auto;margin:10px 0;}footer .luxury-link{white-space:nowrap;}footer .footer__disclaimers{padding-top:24px;padding-bottom:24px;}@media (max-width: 900px){footer .footer__disclaimers{text-align:center;}}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
63ox='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
63699 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
6371 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;
63-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;
63height: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);}} 64 </style> 65 <style id="custom-style-css">.pagination-style-1 li a{color:rgba(0, 0, 0, 1)!important;background-color:rgba(0, 0, 0, 0)!important;border-color:rgba(0, 0, 0, 0)!important;}.pagination-style-1 li a:hover{color:rgba(255, 255, 255, 1)!important;background-color:rgba(0, 0, 0, 1)!important;border-color:rgba(0, 0, 0, 1)!important;}.pagination-style-1 li.active a{color:rgba(255, 255, 255, 1)!important;background-color:rgba(0, 0, 0, 1)!important;border-color:rgba(0, 0, 0, 1)!important;}.button-style-1{color:rgba(0,0,0,1)!important;background-color:rgba(0, 0, 0, 0)!important;border-color:rgba(0,0,0,1)!important;}.button-style-1:hover{color:rgba(255,255,255,1)!important;background-color:rgba(0,0,0,1)!important;border-color:rgba(0, 0, 0, 1)!important;}.social_icons-style-1 a{border-color:rgba(0, 0, 0, 1)!important;background-color:rgba(0, 0, 0, 0)!important;color:rgba(0, 0, 0, 1)!important;}.social_icons-style-1 a:hover{border-color:rgba(0, 0, 0, 1)!important;background-color:rgba(0, 0, 0, 1)!important;color:rgba(255,255,255,1)!important;}.social_icons-style-1 a i{color:inherit!important;}
65.social_icons-style-1 a svg,.social_icons-style-1 a svg path{fill:currentColor!important;}.hyperlink-style-1{color:rgba(0, 0, 0, 1)!important;}.hyperlink-style-1:hover{color:rgba(26, 26, 26, 1)!important;}.hyperlink-style-2{color:rgba(255, 255, 255, 1)!important;}.hyperlink-style-2:hover{color:rgba(255, 255, 255, 0.7)!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(0, 0, 0, 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(0, 0, 0, 0)!important;color:rgba(255, 255, 255, 1)!important;}.social_icons-style-2 a:hover{border-color:rgba(255, 255, 255, 1)!important;background-color:rgba(255, 255, 255, 1)!important;color:rgba(0, 0, 0, 1)!important;}.social_icons-style-2 a i{color:inherit!important;}.social_icons-style-2 a svg,.social_icons-style-2 a svg path{f
65ill:currentColor!important;}.pagination-style-2 li a{color:rgba(255, 255, 255, 1)!important;background-color:rgba(0, 0, 0, 0)!important;border-color:rgba(0, 0, 0, 0)!important;}.pagination-style-2 li a:hover{color:rgba(0, 0, 0, 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(0, 0, 0, 1)!important;background-color:rgba(255, 255, 255, 1)!important;border-color:rgba(255,255,255,1)!important;}.button-style-5{color:rgba(255, 255, 255, 1)!important;background-color:rgba(0, 0, 0, 1)!important;border-color:rgba(0, 0, 0, 1)!important;}.button-style-5:hover{color:rgba(0, 0, 0, 1)!important;background-color:rgba(0, 0, 0, 0.01)!important;border-color:rgba(0, 0, 0, 1)!important;}.button-style-6{color:#000000!important;background-color:#FFFFFF!important;border-color:rgba(255, 255, 255, 1)!important;}.button-style-6:hover{color:#FFFFFF!important;background-color:rgba(0, 0, 0, 0)!important;border-color:#FFFFFF!important;}</style> 66 <!-- LP Consent bootstrap: blocking; resolves consent state, pushes Consent Mode 67 defaults, and dynamically loads the locale + main (and banner if needed). --> 68
68<script src="https://cdn.luxurypresence.com/scripts/lp-consent/latest/lp-consent-boot.js" data-website-id="a9dd2c66-346b-49bc-b2f9-24ad75fa20c9"></script>
68 69 70 71
71<script> 72 (function utmParse() { 73 const url = new URL(window.location.href); 74 if (url.search) { 75 const utm = url.search.split(/\?|&/g).reduce((acc, current) => { 76 const matched = current.match(/utm_(content|campaign|medium|source|term|id)|gclid/g); 77 if (matched) { 78 acc[matched[0]] = current.replace(`${matched[0]}=`, ''); 79 } 80 return acc; 81 }, {}); 82 if (Object.keys(utm).length) { 83 window.localStorage.setItem('utm_vars', JSON.stringify(utm)); 84 } else { 85 // Remove old utm vars 86 window.localStorage.removeItem('utm_vars'); 87 } 88 } 89 // Set referrer in local storage 90 // This is meant to be stored once to avoid self-referrals and to have the first referrer only. 91 if (!window.localStorage.getItem('referrer')) { 92 // Capture the Referrer URL 93 const referrer = document.referrer; 94 if (referrer) { 95 // Only store the referrer if it comes from outside the current domain (to avoid self-referrals) 96 const currentDomain = window.location.hostname; 97 const referrerDomain = new URL(referrer).hostname; 98 99 if (referrerDomain !== currentDomain) { 100 // Store it in localStorage 101 localStorage.setItem('referrer', referrer); 102 } 103 } 104 } 105 })(); 106 </script>
106 107 <!-- Bing Webmaster Tools Verification -->
108<script> 109 // Check if on the homepage before the body loads 110 if (window.location.pathname === '/' || window.location.pathname === '/index.html') { 111 document.write('<meta name="msvalidate.01" content="9444E455BC3D007F3F70BCA3F6F54DD2" />'); 112 } 113</script>
113 114 115<!-- Google tag (gtag.js) -->
vendor: 66 bytes, lines 115-116
115 116<script async src="https://www.googletagmanager.com/gtag/js?id=
116AW-17492562119
vendor: 14 bytes, line 116
116"></script>
117<script>
vendor: 127 bytes, line 117
117window.dataLayer = window.dataLayer || []; function gtag(){dataLayer.push(arguments);} gtag('js', new Date()); gtag('config', '
117AW-17492562119
vendor: 4 bytes, line 117
117');
117</script>
117 118 119<meta name="google-site-verification" content="6k2UsdoPI0POivhIfgcRLvLH7SQj07QN4_U5PzaQV6E" /> 120<!-- Google tag (gtag.js) -->
vendor: 65 bytes, lines 120-121
120 121<script async src="https://www.googletagmanager.com/gtag/js?id=
121G-4GHCHK7P61
vendor: 13 bytes, line 121
121"></script>
122<script> 123
vendor: 138 bytes, lines 123-127
123window.dataLayer = window.dataLayer || []; 124 function gtag(){dataLayer.push(arguments);} 125 gtag('js', new Date()); 126 127 gtag('config', '
127G-4GHCHK7P61
vendor: 5 bytes, line 127
127');
128</script>
128 129<meta name="google-site-verification" content="eGZDw-YVAPjnQaz_QQ5Dv3-CtytiMTEbSEr1HtEIBrE" /> 130<img src="https://tracker.metricool.com/c3po.jpg?hash=7d52136703cd2ebef705b0dd7cc77c32"/> 131<!-- Google tag (gtag.js) -->
vendor: 65 bytes, lines 131-132
131 132<script async src="https://www.googletagmanager.com/gtag/js?id=
132G-JHMPXWNR6G
vendor: 13 bytes, line 132
132"></script>
133<script> 134
vendor: 138 bytes, lines 134-138
134window.dataLayer = window.dataLayer || []; 135 function gtag(){dataLayer.push(arguments);} 136 gtag('js', new Date()); 137 138 gtag('config', '
138G-JHMPXWNR6G
vendor: 5 bytes, line 138
138');
139</script>
139 140 <!-- GOOGLE TRANSLATE STYLES are moved to external CSS --> 141</head> 142<body> 143 <div id="google_translate_element" style="display: none"></div> 144 145 <nav id="global-navbar" data-el-id="43e7a874-fb1e-4cdd-91fe-eb6bf5b9179b"> 146 <div class="redesign"> 147 <div class="content-container header"> 148 <div class="container header__container"> 149 <div class="navbar"> 150 <div class="logo"> 151 <a href="/" class="logo__link"> 152 <img src="https://media-production.lp-cdn.com/cdn-cgi/image/format=auto,quality=85,fit=scale-down,width=1280/https://media-production.lp-cdn.com/media/251fd061-3c6d-490e-a87c-13a3634bea3a" 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/251fd061-3c6d-490e-a87c-13a3634bea3a 320w, https://media-production.lp-cdn.com/cdn-cgi/image/format=auto,quality=85,fit=scale-down,width=960/https://media-production.lp-cdn.com/media/251fd061-3c6d-490e-a87c-13a3634bea3a 960w, https://media-production.lp-cdn.com/cdn-cgi/image/format=auto,quality=85,fit=scale-down,width=1280/https://media-production.lp-cdn.com/media/251fd061-3c6d-490e-a87c-13a3634bea3a 1280w, https://media-production.lp-cdn.com/cdn-cgi/image/format=auto,quality=85,fit=scale-down,width=1920/https://media-production.lp-cdn.com/media/251fd061-3c6d-490e-a87c-13a3634bea3a 1920w, https://media-production.lp-cdn.com/cdn-cgi/image/format=auto,quality=85,fit=scale-down,width=2560/https://media-production.lp-cdn.com/media/251fd061-3c6d-490e-a87c-13a3634bea3a 2560w, https://media-production.lp-cdn.com/cdn-cgi/image/format=auto,quality=85,fit=scale-down,width=3456/https://media-production.lp-cdn.com/media/251fd061-3c6d-490e-a87c-13a3634bea3a 3456w" class="logo__img light" alt=""> 153 <img src="https://media-production.lp-cdn.com/cdn-cgi/image/format=auto,quality=85,fit=scale-down,width=1280/https://media-production.lp-cdn.com/media/d35525cb-5987-40c7-9bfa-66f07ab24899" 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/d35525cb-5987-40c7-9bfa-66f07ab24899 320w, https://media-production.lp-cdn.com/cdn-cgi/image/format=auto,quality=85,fit=scale-down,width=960/https://media-production.lp-cdn.com/media/d35525cb-5987-40c7-9bfa-66f07ab24899 960w, https://media-production.lp-cdn.com/cdn-cgi/image/format=auto,quality=85,fit=scale-down,width=1280/https://media-production.lp-cdn.com/media/d35525cb-5987-40c7-9bfa-66f07ab24899 1280w, https://media-production.lp-cdn.com/cdn-cgi/image/format=auto,quality=85,fit=scale-down,width=1920/https://media-production.lp-cdn.com/media/d35525cb-5987-40c7-9bfa-66f07ab24899 1920w, https://media-production.lp-cdn.com/cdn-cgi/image/format=auto,quality=85,fit=scale-down,width=2560/https://media-production.lp-cdn.com/media/d35525cb-5987-40c7-9bfa-66f07ab24899 2560w, https://media-production.lp-cdn.com/cdn-cgi/image/format=auto,quality=85,fit=scale-down,width=3456/https://media-production.lp-cdn.com/media/d35525cb-5987-40c7-9bfa-66f07ab24899 3456w" class="logo__img dark" alt=""> 154 </a> 155 </div> 156 <div class="navigation"> 157 <ul> 158 <li class="navigation__item"> 159 <a href="/properties" class="navigation__link wow fadeInUp" data-wow-delay="2.0"><span>Browse Properties - Buy</span></a> 160 </li> 161 <li class="navigation__item"> 162 <a href="/neighborhoods" class="navigation__link wow fadeInUp" data-wow-delay="2.1"><span>Neighborhoods</span></a> 163 </li> 164 <li class="navigation__item"> 165 <a href="/home-valuation" class="navigation__link wow fadeInUp" data-wow-delay="2.2"><span>Home Valuation - Sell</span></a> 166 </li> 167 <li class="navigation__item"> 168 <a href="/mortgage-calculator" class="navigation__link wow fadeInUp" data-wow-delay="2.3"><span>Apply Here</span></a> 169 </li> 170 <li class="navigation__item"> 171 <a href="/home-search/listings" class="navigation__link wow fadeInUp" data-wow-delay="2.4"><span>Home Search</span></a> 172 </li> 173 <li class="navigation__item"> 174 <a data-type="CONTACT_US" class="navigation__link wow fadeInUp"><span>Contact Us</span></a> 175 </li> 176 </ul> 177 </div> 178 <div class="buttons-wrapper"> 179 <button type="button" class="hamburger-component hamburger">
180 <span class="hamburger__bars"></span> 181 </button> 182 </div> 183 </div> 184 </div> 185 </div> 186</div> 187 188 </nav> 189 <div id="global-sidemenu" class="sidemenu" data-el-id="11fa925d-d2dd-4213-a0fa-d46f769e2c18"> 190 <div class="sidebar"> 191 192 <button class="toggle sidebar__close close"></button> 193 <div class="sidebar__content"> 194 195 <ul class="sidebar__nav"> 196 <li class="sidebar__nav-item"> 197 <a href="/" class="sidebar__nav-link">Home</a> 198 </li> 199 <li class="sidebar__nav-item"> 200 <a href="/team" class="sidebar__nav-link">Meet the Team</a> 201 </li> 202 <li class="sidebar__nav-item"> 203 <a href="/properties" class="sidebar__nav-link">Portfolio</a> 204 </li> 205 <li class="sidebar__nav-item"> 206 <a href="/home-search/listings" class="sidebar__nav-link">Home Search</a> 207 </li> 208 <li class="sidebar__nav-item"> 209 <a href="/home-valuation" class="sidebar__nav-link">Home Valuation</a> 210 </li> 211 <li class="sidebar__nav-item"> 212 <a href="/neighborhoods" class="sidebar__nav-link">Neighborhoods</a> 213 </li> 214 <li class="sidebar__nav-item"> 215 <a href="/testimonials" class="sidebar__nav-link">Testimonials</a> 216 </li> 217 <li class="sidebar__nav-item sub-nav-container"> 218 <div class="sub-nav"> 219 <ul class="sidebar__subnav"> 220 <li class="sidebar__subnav-item"><a href="/buyers-guide" class="sidebar__subnav-link">Buyers</a></li> 221 <li class="sidebar__subnav-item"><a href="/sellers-guide" class="sidebar__subnav-link">Sellers</a></li> 222 </ul> 223 </div> 224 <a href="#" class="sidebar__nav-link link main-nav">Services</a> 225 </li> 226 <li class="sidebar__nav-item"> 227 <a href="/blog" class="sidebar__nav-link">Blog</a> 228 </li> 229 <li class="sidebar__nav-item"> 230 <a href="/mortgage-calculator" class="sidebar__nav-link">Apply Here</a> 231 </li> 232 <li class="sidebar__nav-item"> 233 <a href="/contact-us" class="sidebar__nav-link">Contact Us</a> 234 </li> 235 <li class="sidebar__nav-item"> 236 <a href="/home-search/account" class="sidebar__nav-link">My Search Portal</a> 237 </li> 238 </ul> 239 </div> 240</div> 241 </div> 242 <div id="global-mobile-contact" class="mobile-contact-wrapper" data-el-id="befe5af2-a6ca-4119-924a-a85d96d36b51"> 243 <div class="btn-holder" 244style=" 245--backgroundColor: rgba(70, 70, 70, 1); 246--textColor: rgba(255, 255, 255, 1); 247--pillTextColor: rgba(255, 255, 255, 1); 248--pillBackgroundColor: rgba(0, 0, 0, 1);"> 249 250 <button type="button" class="connect-btn lp-ico lp-ico-arrow-top visible">Contact Us</button> 251</div> 252 253 254<div class="pop-up" style="--backgroundColor: rgba(70, 70, 70, 1); --textColor: rgba(255, 255, 255, 1);"> 255 <div class="lp-container"> 256 <form data-type="contact-form" class="contact-form"> 257 <div class="contact-form__container"> 258 <h3 class="lp-h3">Leave a Message</h3> 259 260 <div class="contact-form__content"> 261 <div class="contact-form__inputs-container"> 262 <div class="contact-form__item"> 263 <input 264 id="__FullName" 265 type="text" name="name" 266 class="lp-input lp-input--light" 267 required 268 placeholder="Full Name"> 269 </div> 270 <div class="contact-form__item"> 271 <input 272 id="__Email" 273 type="email" name="email" 274 class="lp-input js-email-input lp-input--light" 275 required 276 placeholder="Email"> 277 </div> 278 <div class="contact-form__item"> 279 <input 280 class="lp-input lp-input--light" 281 type="tel" 282 placeholder="Phone" 283 id="__Phone" 284 name="phone" 285 required> 286 </div> 287 288 <div class="contact-form__item input-group-select"> 289 <select name="interest" id="-field-interest" placeholder="Interest"
290 class="lp-input dropdown-select js-select js-form-element lp-input--light" required> 291 <option value="" disabled selected data-label="Interest">Interested in...</option> 292 <option value="Selling & Buying">Selling & Buying</option> 293 <option value="Selling">Selling</option> 294 <option value="Buying">Buying</option> 295 <option value="Renting">Renting</option> 296 <option value="Other">Other</option> 297 </select> 298 <label for="-field-interest" class="lp-label sr-only">Interest</label> 299 </div> 300 301 <div class="contact-form__item"> 302 <textarea 303 name="message" 304 rows="4" 305 id="__Message" 306 class="lp-input lp-input--light" 307 placeholder="Message" 308 required></textarea> 309 </div> 310 <div class="lp-disclaimer"> <label style='display: none;' for='-termsAccepted'>Opt In/Disclaimer Consent:</label> 311 <label class='lp-tcr-content'> 312 <span class='lp-tcr-checkbox'> 313 <input 314 type='checkbox' 315 id='-termsAccepted' 316 name='termsAccepted' 317 oninvalid="this.setCustomValidity('Please accept the terms and conditions')" 318 oninput="this.setCustomValidity('')" 319 required 320 /></span> 321 <span class='lp-tcr-message'> 322 323 I agree to be contacted by 324 Make Your Move Group LLC dba Makeyourmovedallas.com 325 via call, email, and text for real estate services. To opt out, you can reply 'stop' at any time or reply 'help' for assistance. 326 You can also click the unsubscribe link in the emails. Message and data rates may apply. Message frequency may vary. 327 <a href='/terms-and-conditions' target='_blank'>Privacy Policy</a>. 328 </span> 329 </label> 330 331</div> 332 <button type="submit" class="lp-btn lp-btn--filled lp-btn--dark submit button-style-2 contact-form__item">Submit</button> 333 334 <div class="lp-h-pot"> 335 <input id="__newsSignMiddleName" name="middleName" value="" autocomplete="off" tabindex="-1"> 336 </div> 337 338 <input style="display: none;" type="text" name="source" value="CONTACT_INQUIRY" /> 339 <input type="hidden" name="button_text" value="Contact Us"> 340 </div> 341 </div> 342 </div> 343 344 345 <div class="success-block"> 346 <h3 class="lp-h3 success-message">Thank you for your message. We will be in touch with you shortly.</h3> 347 348 </div> 349 </form> 350 351 <button type="button" class="close-btn lp-ico lp-ico-close"></button> 352 353 354 </div> 355</div> 356 357 358 </div> 359 <section class="image-section is-font-color-light is-background-color-light" id="section-4694ef73-6ba0-4d31-8dce-f1f1d52c478b" data-el-id="8ec37bf8-cdc6-4e6c-bec9-381ff2117972"> 360<div class="redesign"> 361 <div class="lp-container lp-container--l"> 362 <div class="collection"> 363 <div class="item"> 364 <div class="lp-title-group"> 365 <p class="lp-text--pretitle lp-pre-line animation"> </p> 366 <h1 class="lp-h1 animation"><p>Blog</p></h1> 367 368 </div> 369 <div class="btn-container"> 370 <a 371 role="button" 372 data-type="CONTACT_US" 373 class="lp-btn lp-btn--dark lp-btn--filled lp-btn--mob-full-width button-style-2" 374 375 376 377 378 379 > 380 Call Us Now 381 </a> 382 <a 383 href="https://calendly.com/makeyourmovedallas/30min?month=2025-06" 384 target="_blank" 385 class="lp-btn lp-btn--light lp-btn--filled lp-btn--mob-full-width button-style-2" 386 387 388 389 390 391 > 392 Schedule A Showing 393 </a> 394 </div> 395 </div> 396 397 </div> 398 </div> 399</div> 400</section> 401<section id="section-65cbf1db-f9ee-4a1f-ae72-115648af7c76" class="solid-section is-font-color-dark is-background-color-light" data-el-id="1e77e4a0-6624-43db-b736-bd434565fece">
402<script type="text/x-handlebars-template" class="gridItem pagination-script"><a href="/blog/{{slug}}" class="blog-list__item"> 403 <div class="blog-list__item-image"> 404 405 406 407 {{#if media.length}} 408 {{{mediaImage media.[0] alt=title}}} 409 {{/if}} 410 </div> 411 412 <div class="blog-list__item-content"> 413 <h4 class="serif">{{title}}</h4> 414 <ul class="blog-list__item-details"> 415 416 {{#isEmpty customAuthor}} 417 {{#if (or createdBy.firstName createdBy.lastName)}}<li class="blog-list__item-author">{{createdBy.firstName}} {{createdBy.lastName}}</li>{{/if}} 418 {{else}} 419 <li class="blog-list__item-author">{{customAuthor}}</li> 420 {{/isEmpty}} 421 422 <li class="blog-list__item-date">{{hbFormatDate publishedAt 'MM/DD/YY'}}</li> 423 </ul> 424 425 {{#if subtitle}} 426 <p>{{truncate (striptags subtitle) 130 "..."}}</p> 427 {{/if}} 428 <span class="link hyperlink-style-1">Read MORE</span> 429 </div> 430</a> 431</script>
431 432 433 434 435 436 437 438<div class="redesign blog-list"> 439 440 441 <div class="container blog-list__container data-container hide-date hide-author"> 442 <a href="/blog/50-walls-25-foundation-25-roof-the-formula-that-decides-if-your-university-park-renovation-becomes-a-teardown" class="blog-list__item"> 443 <div class="blog-list__item-image"> 444 445 446 447 <img src="https://media-production.lp-cdn.com/cdn-cgi/image/format=auto,quality=85,fit=scale-down,width=1280/https://media-production.lp-cdn.com/media/2a505229-2ed8-4300-99cf-d95741c8f373" srcset="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/2a505229-2ed8-4300-99cf-d95741c8f373 960w, https://media-production.lp-cdn.com/cdn-cgi/image/format=auto,quality=85,fit=scale-down,width=1280/https://media-production.lp-cdn.com/media/2a505229-2ed8-4300-99cf-d95741c8f373 1280w, https://media-production.lp-cdn.com/cdn-cgi/image/format=auto,quality=85/https://media-production.lp-cdn.com/media/2a505229-2ed8-4300-99cf-d95741c8f373 1536w" alt="50% Walls, 25% Foundation, 25% Roof: The Formula That Decides If Your University Park Renovation Becomes a Teardown" loading="lazy"> 448 </div> 449 450 <div class="blog-list__item-content"> 451 <h4 class="serif">50% Walls, 25% Foundation, 25% Roof: The Formula That Decides If Your University Park Renovation Becomes a Teardown</h4> 452 <ul class="blog-list__item-details"> 453 454 455 456 <li class="blog-list__item-date">10/1/26</li> 457 </ul> 458 459 <span class="link hyperlink-style-1">Read MORE</span> 460 </div> 461 </a> 462 <a href="/blog/two-new-restaurants-opened-on-lee-street-this-year-neither-one-started-with-an-empty-lot" class="blog-list__item"> 463 <div class="blog-list__item-image"> 464 465 466 467 <img src="https://media-production.lp-cdn.com/cdn-cgi/image/format=auto,quality=85,fit=scale-down,width=1280/https://media-production.lp-cdn.com/media/7ab97bcb-acf9-454c-9fe3-6eee2cf6ca94" srcset="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/7ab97bcb-acf9-454c-9fe3-6eee2cf6ca94 960w, https://media-production.lp-cdn.com/cdn-cgi/image/format=auto,quality=85,fit=scale-down,width=1280/https://media-production.lp-cdn.com/media/7ab97bcb-acf9-454c-9fe3-6eee2cf6ca94 1280w, https://media-production.lp-cdn.com/cdn-cgi/image/format=auto,quality=85/https://media-production.lp-cdn.com/media/7ab97bcb-acf9-454c-9fe3-6eee2cf6ca94 1408w" alt="Two New Restaurants Opened On Lee Street This Year. Neither One Started With An Empty Lot." loading="lazy"> 468 </div> 469 470 <div class="blog-list__item-content"> 471 <h4 class="serif">Two New Restaurants Opened On Lee Street This Year. Neither One Started With An Empty Lot.</h4> 472 <ul class="blog-list__item-details"> 473 474 475 476 <li class="blog-list__item-date">09/24/26</li> 477 </ul> 478 479 <span class="link hyperlink-style-1">Read MORE</span> 480 </div> 481 </a> 482 <a href="/blog/heaths-new-town-center-park-opened-on-the-fourth-of-july-the-well-that-waters-it-wont-be-done-until-next-summer" class="blog-list__item"> 483 <div class="blog-list__item-image"> 484 485 486 487 <img src="https://media-production.lp-cdn.com/cdn-cgi/image/format=auto,quality=85,fit=scale-down,width=1280/https://media-production.lp-cdn.com/media/2c440d63-d13b-4cc7-8084-ce022c401603" srcset="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/2c440d63-d13b-4cc7-8084-ce022c401603 960w, https://media-production.lp-cdn.com/cdn-cgi/image/format=auto,quality=85,fit=scale-down,width=1280/https://media-production.lp-cdn.com/media/2c440d63-d13b-4cc7-8084-ce022c401603 1280w, https://media-production.lp-cdn.com/cdn-cgi/image/format=auto,quality=85/https://media-production.lp-cdn.com/media/2c440d63-d13b-4cc7-8084-ce022c401603 1408w" alt="Heath's New Town Center Park Opened On The Fourth Of July. The Well That Waters It Won't Be Done Until Next Summer." loading="lazy"> 488 </div> 489 490 <div class="blog-list__item-content"> 491 <h4 class="serif">Heath's New Town Center Park Opened On The Fourth Of July. The Well That Waters It Won't Be Done Until Next Summer.</h4> 492 <ul class="blog-list__item-details"> 493 494 495 496 <li class="blog-list__item-date">09/17/26</li> 497 </ul> 498
499 <span class="link hyperlink-style-1">Read MORE</span> 500 </div> 501 </a> 502 <a href="/blog/atandt-stadium-hosted-more-world-cup-games-than-any-venue-in-america-the-homes-around-it-got-cheaper-anyway" class="blog-list__item"> 503 <div class="blog-list__item-image"> 504 505 506 507 <img src="https://media-production.lp-cdn.com/cdn-cgi/image/format=auto,quality=85,fit=scale-down,width=1280/https://media-production.lp-cdn.com/media/9143e18f-aeda-4135-bfbb-296bbbf215de" srcset="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/9143e18f-aeda-4135-bfbb-296bbbf215de 960w, https://media-production.lp-cdn.com/cdn-cgi/image/format=auto,quality=85,fit=scale-down,width=1280/https://media-production.lp-cdn.com/media/9143e18f-aeda-4135-bfbb-296bbbf215de 1280w, https://media-production.lp-cdn.com/cdn-cgi/image/format=auto,quality=85/https://media-production.lp-cdn.com/media/9143e18f-aeda-4135-bfbb-296bbbf215de 1408w" alt="AT&T Stadium Hosted More World Cup Games Than Any Venue in America. The Homes Around It Got Cheaper Anyway." loading="lazy"> 508 </div> 509 510 <div class="blog-list__item-content"> 511 <h4 class="serif">AT&T Stadium Hosted More World Cup Games Than Any Venue in America. The Homes Around It Got Cheaper Anyway.</h4> 512 <ul class="blog-list__item-details"> 513 514 515 516 <li class="blog-list__item-date">09/10/26</li> 517 </ul> 518 519 <span class="link hyperlink-style-1">Read MORE</span> 520 </div> 521 </a> 522 <a href="/blog/two-cities-got-their-highway-bypass-oak-ridge-got-two-school-districts-instead" class="blog-list__item"> 523 <div class="blog-list__item-image"> 524 525 526 527 <img src="https://media-production.lp-cdn.com/cdn-cgi/image/format=auto,quality=85,fit=scale-down,width=1280/https://media-production.lp-cdn.com/media/1333d7e3-314b-4eae-999b-1943fd4b7903" srcset="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/1333d7e3-314b-4eae-999b-1943fd4b7903 960w, https://media-production.lp-cdn.com/cdn-cgi/image/format=auto,quality=85,fit=scale-down,width=1280/https://media-production.lp-cdn.com/media/1333d7e3-314b-4eae-999b-1943fd4b7903 1280w, https://media-production.lp-cdn.com/cdn-cgi/image/format=auto,quality=85/https://media-production.lp-cdn.com/media/1333d7e3-314b-4eae-999b-1943fd4b7903 1408w" alt="Two Cities Got Their Highway Bypass. Oak Ridge Got Two School Districts Instead." loading="lazy"> 528 </div> 529 530 <div class="blog-list__item-content"> 531 <h4 class="serif">Two Cities Got Their Highway Bypass. Oak Ridge Got Two School Districts Instead.</h4> 532 <ul class="blog-list__item-details"> 533 534 535 536 <li class="blog-list__item-date">09/3/26</li> 537 </ul> 538 539 <span class="link hyperlink-style-1">Read MORE</span> 540 </div> 541 </a> 542 <a href="/blog/caddo-mills-home-prices-the-average-is-rising-the-median-isnt-and-that-gap-is-the-story" class="blog-list__item"> 543 <div class="blog-list__item-image"> 544 545 546 547 <img src="https://media-production.lp-cdn.com/cdn-cgi/image/format=auto,quality=85,fit=scale-down,width=1280/https://media-production.lp-cdn.com/media/9543cb8a-3611-45a5-8477-40e1bccf2f25" srcset="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/9543cb8a-3611-45a5-8477-40e1bccf2f25 960w, https://media-production.lp-cdn.com/cdn-cgi/image/format=auto,quality=85,fit=scale-down,width=1280/https://media-production.lp-cdn.com/media/9543cb8a-3611-45a5-8477-40e1bccf2f25 1280w, https://media-production.lp-cdn.com/cdn-cgi/image/format=auto,quality=85/https://media-production.lp-cdn.com/media/9543cb8a-3611-45a5-8477-40e1bccf2f25 1408w" alt="Caddo Mills Home Prices: The Average Is Rising, the Median Isn't, and That Gap Is the Story" loading="lazy"> 548 </div> 549 550 <div class="blog-list__item-content"> 551 <h4 class="serif">Caddo Mills Home Prices: The Average Is Rising, the Median Isn't, and That Gap Is the Story</h4> 552 <ul class="blog-list__item-details"> 553 554 555 556 <li class="blog-list__item-date">08/27/26</li> 557 </ul> 558
559 <span class="link hyperlink-style-1">Read MORE</span> 560 </div> 561 </a> 562 </div> 563 <div class="empty-results">Sorry, we couldn't find any results that match that search. Try another search.</div> 564 <div class="pagination-container pagination-container--dark pagination-style-1"></div> 565</div> 566</section> 567<section id="section-56f9b725-4e99-4d1c-9768-651be618ee2a" class="solid-section is-font-color-light is-background-color-dark" data-el-id="19e4a145-7cee-4338-8873-657ce2636b4c"> 568 569<div class="newsletter-signup lp-vertical-paddings redesign"> 570 <div class="lp-container-custom"> 571 <form data-type="contact-form" class="newsletter-signup__form"> 572 <div class="newsletter-signup__form-container"> 573 <div class="lp-title-group"> 574 <h2 class="lp-h2"> Stay Ahead in Dallas Real Estate</h2> 575 <div class="lp-text--subtitle"><p>Be the first to know about new listings, real estate trends, and expert tips to make your next move a success. <br>Sign up for our newsletter and stay informed about the Dallas market!</p></div> 576 </div> 577 <div class="newsletter-signup-form"> 578 <div class="newsletter-signup__inputs-container"> 579 <input id="section-56f9b725-4e99-4d1c-9768-651be618ee2a__newsSignFirstName" type="text" name="name" class="lp-input lp-input--light newsletter-signup__form-item" required placeholder="Name"> 580 581 <input id="section-56f9b725-4e99-4d1c-9768-651be618ee2a__newsSignEmail" type="email" name="email" class="lp-input lp-input--light newsletter-signup__form-item" required placeholder="Email" pattern="[a-zA-Z0-9.!#$%&’*+/=?^_`{|}~-]+@[a-zA-Z0-9-]+(?:\.[a-zA-Z0-9-]+)+"> 582 583 <button type="submit" class="lp-btn lp-btn--filled lp-btn--light submit button-style-2 newsletter-signup__form-item lp-btn--mob-full-width">Submit</button> 584 585 <div class="lp-h-pot"> 586 <input id="section-56f9b725-4e99-4d1c-9768-651be618ee2a__newsSignMiddleName" name="middleName" value="" autocomplete="off" tabindex="-1"> 587 </div> 588 589 <input style="display: none;" type="text" name="source" value="NEWSLETTER_SIGNUP" /> 590 </div> 591 </div> 592 <div class="lp-disclaimer"> <label style='display: none;' for='section-56f9b725-4e99-4d1c-9768-651be618ee2a-termsAccepted'>Opt In/Disclaimer Consent:</label> 593 <label class='lp-tcr-content'> 594 <span class='lp-tcr-checkbox'> 595 <input 596 type='checkbox' 597 id='section-56f9b725-4e99-4d1c-9768-651be618ee2a-termsAccepted' 598 name='termsAccepted' 599 oninvalid="this.setCustomValidity('Please accept the terms and conditions')" 600 oninput="this.setCustomValidity('')" 601 required 602 /></span> 603 <span class='lp-tcr-message'> 604 605 I agree to be contacted by 606 Make Your Move Group LLC dba Makeyourmovedallas.com 607 via call, email, and text for real estate services. To opt out, you can reply 'stop' at any time or reply 'help' for assistance. 608 You can also click the unsubscribe link in the emails. Message and data rates may apply. Message frequency may vary. 609 <a href='/terms-and-conditions' target='_blank'>Privacy Policy</a>. 610 </span> 611 </label> 612 613</div> 614 </div> 615 <div class="success-block"> 616 <div class="lp-title-group"> 617 <h2 class="lp-h2">Thank You</h2> 618 <div class="lp-text--subtitle">You have successfully been added to my Newsletter. Stay tuned for the latest updates sent straight to your inbox!</div> 619 </div> 620 </div> 621 </form> 622 623 </div> 624</div> 625</section> 626<section class="image-section is-font-color-light is-background-color-light" id="section-1af8d6b4-8fcf-4a16-9cd4-e703b0e44663" data-el-id="e6b1ae9f-5b8d-4ac5-a23f-bfb55ef91c3c"> 627
627<script> 628 (function(){ 629 const sectionId = 'section-1af8d6b4-8fcf-4a16-9cd4-e703b0e44663' 630 const section = document.querySelector(`#${sectionId}`); 631 var sectionBg = window.getComputedStyle(section, null).getPropertyValue('background-image'); 632 633 if('true' === 'true') { 634 section.classList.add('parallax-enabled'); 635 section.style.setProperty('--sectionBackground', sectionBg); 636 section.style.setProperty('background', 'none'); 637 } 638 })() 639</script>
639 640<div class="redesign work-with-us parallax"> 641 <div class="container"> 642 <h2 class="serif">make your move to dallas</h2> 643 <div class="description">Whether you're a first-time buyer, seller, or investor, we provide the expertise and dedication needed to make your move a success.</div> 644 <div class="btn-container"> 645 <a 646 role="button" 647 data-type="CONTACT_US" 648 class="btn btn--primary-light button-style-2" 649 650 651 652 653 654 > 655 Contact Us 656 </a> 657 </div> 658 </div> 659</div> 660</section> 661<section id="section-91399073-5f3c-4d74-8653-9093fa5f815d" class="solid-section is-font-color-dark is-background-color-light" data-el-id="5db65d6a-01e9-4ee3-babf-2748e074a284"> 662
662<script type="text/x-handlebars-template" class="jsIGItem"> 663 <a href="{{permalink}}" target="_blank" class="ig-feed-item insta-type-{{mediaType}}"> 664 <div class="ig-feed-item__img" style="background-image: url('{{#ifEquals mediaType 'VIDEO'}}{{thumbnailUrl}}{{^}}{{mediaUrl}}{{/ifEquals}}');"></div> 665 <div class="ig-feed-item__info"><div class="ig-feed-item__caption">{{caption}}</div></div> 666 {{#ifEquals mediaType 'VIDEO'}}<div class="video-icon"></div>{{/ifEquals}} 667 </a> 668</script>
668 669<div class="ig-feed redesign"> 670 <div class="ig-feed-top lp-container"> 671 <div class="top-wrapper"> 672 <div class="top-left"> 673 <h3 class="lp-h3 title">Follow Me on Instagram</h3> 674 <a href="#" target="_blank" class="instagram-link jsIGLink"><h4 class="lp-h4 instagram-name jsIGName"></h4></a> 675 </div> 676 <div class="top-right"> 677 <a href="#" target="_blank" class="lp-btn lp-btn--dark lp-btn--outline lp-btn--mob-full-width follow-button jsIGLink button-style-1">Follow Me</a> 678 <a class="nav-button top-nav-prev hidden-control button-style-1"> 679 <svg width="9" height="15" viewBox="0 0 9 15" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M7.099 13.25l-5.25-5.775L7.099 1.7" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/></svg> 680 </a> 681 <a class="nav-button top-nav-next hidden-control button-style-1"> 682 <svg width="9" height="15" viewBox="0 0 9 15" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M1.90137 1.75L7.15137 7.525L1.90137 13.3" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/></svg> 683 </a> 684 </div> 685 </div> 686 </div> 687 <div class="lp-container ig-feed-container "> 688 <div class="ig-feed-feed" data-limit="33"> 689 </div> 690 </div> 691 <div class="bottom-controls"> 692 <a class="bottom-nav-button bottom-nav-prev button-style-1"> 693 <svg width="9" height="15" viewBox="0 0 9 15" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M7.099 13.25l-5.25-5.775L7.099 1.7" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/></svg> 694 </a> 695 <a class="bottom-nav-button bottom-nav-next button-style-1"> 696 <svg width="9" height="15" viewBox="0 0 9 15" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M1.90137 1.75L7.15137 7.525L1.90137 13.3" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/></svg> 697 </a> 698 </div> 699</div> 700 701</section> 702 703 <div id="modals" class="modals"></div> 704 <footer id="global-footer" class="is-font-color-dark is-background-color-light" data-el-id="874a9373-949d-4275-b72f-04c2a6ec373b"> 705 <div class="footer redesign no_newsletter "> 706 <div class="container"> 707 <h3>Make Your Move Group</h3> 708 <div class="info-wrap"> 709 <div class="info-wrap-contact agent_box"> 710 <div class="info-wrap-contact_zone type_user"> 711 <h4 class="serif">Contact Us</h4> 712 <div class="info-wrap-contact_cell"> 713 <i> 714 <svg width="30" height="19" viewBox="0 0 30 19" fill="none" xmlns="http://www.w3.org/2000/svg"> 715 <path d="M2 0C0.903517 0 0 0.903517 0 2V16.6667C0 17.7631 0.903517 18.6667 2 18.6667H28C29.0965 18.6667 30 17.7631 30 16.6667V2C30 0.903517 29.0965 0 28 0H2ZM2.4375 1.33333H27.5625L15.6458 11.4896C15.3389 11.7512 14.6612 11.7512 14.3542 11.4896L2.4375 1.33333ZM1.33333 2.13542L10.1979 9.6979L1.33333 16.5729V2.13542ZM28.6667 2.13542V16.5729L19.8021 9.6979L28.6667 2.13542ZM11.2396 10.5833L13.4896 12.5C14.3543 13.2369 15.6457 13.2369 16.5104 12.5L18.7604 10.5833L27.4687 17.3333H2.53125L11.2396 10.5833Z" fill="#1A1A1A" /> 716 </svg> 717 </i> 718 <p class="contact_title">Email</p> 719 <a href="/cdn-cgi/l/email-protection#7e331f151b07110b0c1311081b1a1f12121f0d3e110b0a12111115501d1113" class="lp-link info-wrap-contact_link grey-text hyperlink-style-1"><span class="__cf_email__" data-cfemail="6429050f011d0b1116090b1201000508080517240b1110080b0b0f4a070b09">[email protected]</span></a> 720 </div> 721 <div class="info-wrap-contact_cell"> 722 <i><svg width="30" height="25" viewBox="0 0 30 25" fill="none" xmlns="http://www.w3.org/2000/svg"> 723 <path fill-rule="evenodd" clip-rule="evenodd" d="M10.7964 8.1207H19.2036V8.7279C19.2036 10.8195 20.9082 12.5259 23.001 12.5259H24.741L25.2852 20.7051C25.3776 22.1235 24.2868 23.2719 22.8822 23.2719H7.0032C5.5944 23.2719 4.5084 22.1085 4.6002 20.7039C4.782 17.9895 4.9152 15.23
72313 5.154 12.5265H6.9996C9.0918 12.5265 10.797 10.8207 10.797 8.7285V8.1207H10.7964ZM11.46 16.5807C11.46 14.6565 13.0188 13.0977 14.943 13.0977C16.8666 13.0977 18.4254 14.6571 18.4254 16.5807C18.4254 18.5055 16.8678 20.0631 14.943 20.0631C13.02 20.0637 11.46 18.5043 11.46 16.5807ZM14.943 12.0381C12.4344 12.0381 10.4004 14.0721 10.4004 16.5807C10.4004 19.0887 12.435 21.1233 14.943 21.1233C17.4486 21.1233 19.485 19.0869 19.485 16.5807C19.485 14.0727 17.451 12.0381 14.943 12.0381ZM9.0846 4.8363C8.22 4.8363 7.512 5.5443 7.512 6.4089V8.7285C7.512 9.0093 7.2804 9.2415 6.999 9.2415H1.5726C1.2906 9.2415 1.0596 9.0111 1.0596 8.7285V6.9285C1.0596 6.4797 1.1628 6.0945 1.3902 5.7069C1.896 4.8465 2.7294 4.1013 3.795 3.4749C9.279 0.2517 20.7192 0.2523 26.2044 3.4749C27.2706 4.1013 28.104 4.8465 28.6098 5.7069C28.8354 6.0921 28.9398 6.4815 28.9398 6.9285V8.7285C28.9398 9.0111 28.71 9.2415 28.4268 9.2415H23.0004C22.719 9.2415 22.4874 9.0093 22.4874 8.7285V6.4089C22.4874 5.5425 21.7806 4.8363 20.9148 4.8363H9.0846ZM8.571 6.4089C8.571 6.1263 8.8026 5.8965 9.0846 5.8965H20.9154C21.1968 5.8965 21.429 6.1275 21.429 6.4089V8.7285C21.429 9.5943 22.1352 10.3017 23.001 10.3017H28.4274C29.292 10.3017 30 9.5931 30 8.7285V6.9285C30 6.2835 29.8464 5.7291 29.5206 5.1729C28.9188 4.1493 27.9564 3.2799 26.7384 2.5641C20.9214 -0.8547 9.0798 -0.8547 3.2622 2.5641C2.0436 3.2799 1.0812 4.1487 0.48 5.1729C0.153 5.7291 0 6.2835 0 6.9279V8.7279C0 9.5925 0.7092 10.3011 1.5726 10.3011H6.999C7.8648 10.3011 8.571 9.5937 8.571 8.7279V6.4089ZM9.7368 7.5915V8.7285C9.7368 10.2387 8.5092 11.4669 6.999 11.4669H4.6686C4.3914 11.4669 4.164 11.6799 4.1412 11.9511C3.8892 14.8347 3.7386 17.7435 3.5448 20.6331C3.4116 22.6425 4.989 24.3315 7.0032 24.3315H22.8822C24.882 24.3315 26.475 22.6575 26.3406 20.6343L25.7622 11.9607C25.7436 11.6811 25.5102 11.4675 25.2342 11.4675L23.001 11.4663C21.4902 11.4663 20.2632 10.2375 20.2632 8.7279V7.5909C20.2632 7.2981 20.0262 7.0611 19.7334 7.0611H10.2666C9.9738 7.0611 9.7368 7.2987 9.7368 7.5915Z" fill="#1A1A1A" /> 724 </svg></i> 725 <p class="contact_title">Phone Number</p> 726 <a href="tel:9724273411" class="lp-link info-wrap-contact_link grey-text hyperlink-style-1">972-427-3411</a> 727 </div> 728 </div> 729 <div class="info-wrap-contact_zone"> 730 <div class="info-wrap-contact_cell"> 731 <i> 732 <svg width="31" height="30" viewBox="0 0 31 30" fill="none" xmlns="http://www.w3.org/2000/svg"> 733 <path d="M29.9821 6.49489C29.7931 6.35756 29.679 6.32046 29.4572 6.39228L20.298 9.41368L16.1952 8.03558L15.8172 9.41525L19.7644 10.7038V28.1462L9.89831 25.7069V22.1034H8.71438V25.7515L1.21616 28.2532V15.3945H0.0322266V29.2729C0.0322266 29.5077 0.130098 29.7279 0.321106 29.8645C0.445418 29.9541 0.585911 29.9999 0.735086 29.9999C0.814804 29.9999 0.890971 29.9868 0.967926 29.96L9.48433 27.029L20.1792 29.7887C20.3224 29.8254 20.4751 29.8171 20.6152 29.7654L29.8104 26.2235C30.0942 26.1177 30.0251 25.8466 30.0251 25.5431V7.08291C30.0251 6.85086 30.17 6.63144 29.9821 6.49489ZM28.8412 25.0388L20.9483 28.0361V10.7065L28.8412 8.08649V25.0388Z" fill="#1A1A1A" /> 734 <path d="M6.57515 19.1142C6.6671 19.422 6.95006 19.6323 7.2713 19.6323C7.59215 19.6323 7.87511 19.422 7.96746 19.1142C8.67742 16.7514 10.0393 15.2447 11.3559 13.788C12.9944 11.9747 14.5422 10.2615 14.5422 7.2717C14.5422 3.39788 11.1451 0 7.2713 0C3.39827 0 0 3.39748 0 7.2717C0 10.2615 1.54819 11.9747 3.18674 13.788C4.50328 15.2447 5.86479 16.7514 6.57515 19.1142ZM7.2713 1.45426C10.316 1.45426 13.0883 4.22663 13.0883 7.2717C13.0883 9.70191 11.7852 11.1435 10.2769 12.8121C9.2461 13.9534 8.10992 15.2096 7.2713 16.9199C6.43229 15.2096 5.29651 13.953 4.2657 12.8121C2.75698 11.1432 1.45426 9.70191 1.45426 7.2717C1.45426 4.22663 4.22663 1.45426 7.2713 1.45426Z" fill="#1A1A1A" /> 735 <path d="M7.26193 10.1616C8.8705 10.1616 10.1795 8.86084 10.1795 7.26175C10.1795 5.66305 8.87089 4.3623 7.26193 4.3623C5.65297 4.3623 4.34473 5.66305 4.34473 7.26175C4.34512 8.86084 5.65336 10.1616 7.26193 10.1616ZM7.26193 5.81657C8.06898 5.81657 8.72527 6.46536 8.72527 7.26175C8.72527 8.05932 8.06898 8.70733 7.26193 8.70733C6.45528 8.70733 5.79899 8.05893 5.79899 7.26175C5.79899 6.46536 6.45528 5.81657 7.26193 5.81657Z" fill="#1A1A1A" /> 736 </svg> 737 </i> 738 <p class="info-wrap-contact_title">Address</p> 739 <p class="info-wrap-contact_link grey-text"><p>6301 Gaston Ave Ste 440<br>Dallas TX 75215</p></p> 740 </div> 741 </div> 742 </div> 743 </div> 744 <div class="text_footer first_text_footer"> 745 <div class="images_box"> 746 <div class="img_size"> 747 <img src="https://media-production.lp-cdn.com/cdn-cgi/image/format=auto,quality=85/https://media-production.lp-cdn.com/media/9df14bb5-cad4-4aad-b864-ee2c5f619273" 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/9df14bb5-cad4-4aad-b864-ee2c5f619273 320w, https://media-production.lp-cdn.com/cdn-cgi/image/format=auto,quality=85,fit=scale-down,width=960/https://media-production.lp-cdn.com/media/9df14bb5-cad4-4aad-b864-ee2c5f619273 960w, https://media-production.lp-cdn.com/cdn-cgi/image/format=auto,quality=85/https://media-production.lp-cdn.com/media/9df14bb5-cad4-4aad-b864-ee2c5f619273 974w" alt="Footer Image" sizes="200px"> 748 </div> 749 </div> 750 <div class="luxury-text"> 751 <p>Coldwell Banker Realty | O: <span style="text-decoration: underline;"><a href="tel:(214) 453-1850">(214) 453-1850</a></span></p> 752<p style="font-size: 14px;"><ins><br><a href="https://d1e1jt2fj4r8r.cloudfront.net/6515d56c-8ad9-4917-b4ff-adeb74b3bb37/D6K83Ck9V/CN%201-2.pdf" target="_blank" rel="noopener" data-cke-saved-href="https://d1e1jt2fj4r8r.cloudfront.net/6515d56c-8ad9-4917-b4ff-adeb74b3bb37/D6K83Ck9V/CN%201-2.pdf">Texas Real Estate Commission Consumer Protection Notice</a><br><ins><ins><a href="https://d1e1jt2fj4r8r.cloudfront.net/2aaf8e5a-1524-403d-bb59-9fffdf8ad2f5/01eabee1-73b3-46ea-a06b-a1dab6f7aafd/broker-services-8704
75267435.pdf" target="_blank" rel="noopener" data-cke-saved-href="https://d1e1jt2fj4r8r.cloudfront.net/6515d56c-8ad9-4917-b4ff-adeb74b3bb37/D6K83Ck9V/CN%201-2.pdf">Texas Real Estate Commission Information About Brokerage Services</a></ins><br><ins><a href="https://www.trec.texas.gov/sites/default/files/pdf-forms/CN%201-3.pdf" target="_blank" rel="noopener" data-cke-saved-href="https://d1e1jt2fj4r8r.cloudfront.net/6515d56c-8ad9-4917-b4ff-adeb74b3bb37/D6K83Ck9V/CN%201-2.pdf">TREC Disclaimer</a><br><br></ins></ins></ins></p> 753<p style="font-size: 12px;">The property information herein is derived from various sources that may include, but not be limited to, county records and the Multiple Listing Service, and it may include approximations. Although the information is believed to be accurate, it is not warranted and you should not rely upon it without personal verification. Affiliated real estate agents are independent contractor sales associates, not employees. ©<span class="auto-year-update">#</span> Coldwell Banker. All Rights Reserved. Coldwell Banker and the Coldwell Banker logo are trademarks of Coldwell Banker Real Estate LLC. The Coldwell Banker® System is comprised of company owned offices which are owned by a subsidiary of Anywhere Advisors LLC and franchised offices which are independently owned and operated. The Coldwell Banker System fully supports the principles of the Fair Housing Act and the Equal Opportunity Act. <img src="https://res.cloudinary.com/luxuryp/images/f_auto,q_auto/g5qzbyky8ifp5w0ex0ik/realtor-eho-logo-07232021-update-dark" width="28px;"></p> 754 </div> 755 </div> 756 <div class="text_footer second_text_footer"> 757 <div class="text_content_wrap"> 758 <div> 759 <div> </div> 760<style>* { box-sizing: border-box; } body {margin: 0;}ul{list-style:inherit;}</style> 761 </div> 762 </div> 763 </div> 764 <div class="info-privacy"> 765 <div class="form-row info-privacy__row"> 766 767 <div class="form-col form-col--powered powered-box"> 768 <div class="img-wrap"> 769 <img src="https://media-production.lp-cdn.com/media/b517d231-d9f5-4e15-870d-852a977c9204" alt=""> 770 </div> 771 <div class="powered_zone"> 772 Real Estate Website Design by <a href="https://www.luxurypresence.com/real-estate-website-design/" target="_blank" class="lp-link grey-text luxury-link underlined hyperlink-style-1">Luxury Presence</a> 773 </div> 774 </div> 775 776 <div class="form-col form-col--copyright"> 777 <div class="copy_zone"> 778 <span class="copy_words">Copyright ©</span> <span class="auto-year-update">2026</span> 779 | <a href="/terms-and-conditions" class="lp-link grey-text hyperlink-style-1">Privacy Policy</a> 780 781 </div> 782 </div> 783 784 <div class="form-col form-col--socials"> 785 <ul class="lp-socials social_icons-style-1 socials socials--grey socials_zone"> 786 787 <li> 788 <a 789 href="https://www.facebook.com/profile.php?id=61564534952365" 790 class="lp-socials__link socials__item socials__link wow fadeInUp" 791 data-wow-delay="0s" 792 target="_blank" 793 aria-label="FACEBOOK" 794 > 795 <span class="lp-i lp-i--facebook" aria-hidden="true"></span> 796 </a> 797 </li> 798 <li> 799 <a 800 href="https://www.instagram.com/laura_the_lister_realestate/" 801 class="lp-socials__link socials__item socials__link wow fadeInUp" 802 data-wow-delay="0.1s" 803 target="_blank" 804 aria-label="INSTAGRAM" 805 >
806 <span class="lp-i lp-i--instagram" aria-hidden="true"></span> 807 </a> 808 </li> 809 <li> 810 <a 811 href="https://www.linkedin.com/in/laura-suarez-%C2%AE%EF%B8%8F-0b823b202/" 812 class="lp-socials__link socials__item socials__link wow fadeInUp" 813 data-wow-delay="0.2s" 814 target="_blank" 815 aria-label="LINKEDIN" 816 > 817 <span class="lp-i lp-i--linkedin" aria-hidden="true"></span> 818 </a> 819 </li> 820 <li> 821 <a 822 href="https://www.tiktok.com/@laura_the_lister" 823 class="lp-socials__link socials__item socials__link wow fadeInUp" 824 data-wow-delay="0.3s" 825 target="_blank" 826 aria-label="TIKTOK" 827 > 828 <span class="lp-i lp-i--tiktok" aria-hidden="true"></span> 829 </a> 830 </li> 831 <li> 832 <a 833 href="https://www.yelp.com/biz/laura-suarez-mesquite" 834 class="lp-socials__link socials__item socials__link wow fadeInUp" 835 data-wow-delay="0.4s" 836 target="_blank" 837 aria-label="YELP" 838 > 839 <span class="lp-i lp-i--yelp" aria-hidden="true"></span> 840 </a> 841 </li> 842 <li> 843 <a 844 href="https://www.youtube.com/@laurathelister8219/featured" 845 class="lp-socials__link socials__item socials__link wow fadeInUp" 846 data-wow-delay="0.5s" 847 target="_blank" 848 aria-label="YOUTUBE" 849 > 850 <span class="lp-i lp-i--youtube" aria-hidden="true"></span> 851 </a> 852 </li> 853 <li> 854 <a 855 href="https://www.google.com/search?q=laura+suarez+realtor&sca_esv=3987c9a258f1273d&biw=1920&bih=919&ei=th7nZ6CQOMGy4-EPx6ipoQw&gs_ssp=eJzj4tVP1zc0LCwsKLIoTzIzYLRSNaiwMDNJtUxLNbOwTLSwSDFIsTKoSEpOM001Nk0xSrI0NTZLNvQSyUksLUpUKC5NLEqtUihKTcwpyS8CAFwIF7U&oq=Laura+Suarez+realtor&gs_lp=Egxnd3Mtd2l6LXNlcnAiFExhdXJhIFN1YXJleiByZWFsdG9yKgIIBTILEC4YgAQYxwEYrwEyBRAAGO8FMgUQABjvBTIIEAAYogQYiQUyCBAAGIAEGKIEMhoQLhiABBjHARivARiXBRjcBBjeBBjgBNgBAUjqJVCdA1i6GHADeACQAQCYAaYBoAGvD6oBBDAuMTW4AQHIAQD4AQGYAhGgAogPwgIIEAAYsAMY7wXCAgsQABiABBiwAxiiBMICBRAhGKABwgIEECEYFcICBhAAGBYYHsICCBAAGBYYChgewgILEAAYgAQYkQIYigXCAgUQABiABJgDAOIDBBgBIE6IBgGQBgW6BgYIARABGBSSBwQzLjE0oAeyVbIHBDAuMTS4B_4O&sclient=gws-wiz-serp#lrd=0x864e9fe689a88d0d:0xbcf5e35d2b9536c1,1,,,," 856 class="lp-socials__link socials__item socials__link wow fadeInUp" 857 data-wow-delay="0.6s" 858 target="_blank" 859 aria-label="GOOGLE" 860 > 861 <span class="lp-i lp-i--google" aria-hidden="true"></span> 862 </a> 863 </li> 864 <li> 865 <a 866 href="https://www.zillow.com/profile/LauratheLister" 867 class="lp-socials__link socials__item socials__link wow fadeInUp" 868 data-wow-delay="0.7s" 869 target="_blank" 870 aria-label="ZILLOW" 871 >
872 <span class="lp-i lp-i--zillow" aria-hidden="true"></span> 873 </a> 874 </li> 875 </ul> </div> 876 </div> 877 </div> 878 </div> 879</div> 880 881 </footer> 882 883 <div id="modal-global-contact-us" class="modal " 884 data-el-id="" 885 style="background-color: ;" 886 > 887 <div class="modal-content"> 888 <div class="contact-form redesign " style="background-image: url('https://media-production.lp-cdn.com/cdn-cgi/image/format=auto,quality=85,fit=scale-down,width=1920/https://media-production.lp-cdn.com/media/c9aefc3c-2cde-4283-a4cf-3985128a6ac3')"> 889 <div class="container"> 890 <div class="section-details" style="--colorTxt: #ffffff"> 891 <h2>Contact Details</h2> 892 893 <div class="info-zone"> 894 895 <div class="info-zone_contact type_user"> 896 <h4 class="serif">Make Your Move Group</h4> 897 <div class="info-zone_contact_cell"> 898 <i> 899 <svg width="30" height="25" viewBox="0 0 30 25" fill="none" xmlns="http://www.w3.org/2000/svg"> 900 <path fill-rule="evenodd" clip-rule="evenodd" d="M10.7964 8.1207H19.2036V8.7279C19.2036 10.8195 20.9082 12.5259 23.001 12.5259H24.741L25.2852 20.7051C25.3776 22.1235 24.2868 23.2719 22.8822 23.2719H7.0032C5.5944 23.2719 4.5084 22.1085 4.6002 20.7039C4.782 17.9895 4.9152 15.2313 5.154 12.5265H6.9996C9.0918 12.5265 10.797 10.8207 10.797 8.7285V8.1207H10.7964ZM11.46 16.5807C11.46 14.6565 13.0188 13.0977 14.943 13.0977C16.8666 13.0977 18.4254 14.6571 18.4254 16.5807C18.4254 18.5055 16.8678 20.0631 14.943 20.0631C13.02 20.0637 11.46 18.5043 11.46 16.5807ZM14.943 12.0381C12.4344 12.0381 10.4004 14.0721 10.4004 16.5807C10.4004 19.0887 12.435 21.1233 14.943 21.1233C17.4486 21.1233 19.485 19.0869 19.485 16.5807C19.485 14.0727 17.451 12.0381 14.943 12.0381ZM9.0846 4.8363C8.22 4.8363 7.512 5.5443 7.512 6.4089V8.7285C7.512 9.0093 7.2804 9.2415 6.999 9.2415H1.5726C1.2906 9.2415 1.0596 9.0111 1.0596 8.7285V6.9285C1.0596 6.4797 1.1628 6.0945 1.3902 5.7069C1.896 4.8465 2.7294 4.1013 3.795 3.4749C9.279 0.2517 20.7192 0.2523 26.2044 3.4749C27.2706 4.1013 28.104 4.8465 28.6098 5.7069C28.8354 6.0921 28.9398 6.4815 28.9398 6.9285V8.7285C28.9398 9.0111 28.71 9.2415 28.4268 9.2415H23.0004C22.719 9.2415 22.4874 9.0093 22.4874 8.7285V6.4089C22.4874 5.5425 21.7806 4.8363 20.9148 4.8363H9.0846ZM8.571 6.4089C8.571 6.1263 8.8026 5.8965 9.0846 5.8965H20.9154C21.1968 5.8965 21.429 6.1275 21.429 6.4089V8.7285C21.429 9.5943 22.1352 10.3017 23.001 10.3017H28.4274C29.292 10.3017 30 9.5931 30 8.7285V6.9285C30 6.2835 29.8464 5.7291 29.5206 5.1729C28.9188 4.1493 27.9564 3.2799 26.7384 2.5641C20.9214 -0.8547 9.0798 -0.8547 3.2622 2.5641C2.0436 3.2799 1.0812 4.1487 0.48 5.1729C0.153 5.7291 0 6.2835 0 6.9279V8.7279C0 9.5925 0.7092 10.3011 1.5726 10.3011H6.999C7.8648 10.3011 8.571 9.5937 8.571 8.7279V6.4089ZM9.7368 7.5915V8.7285C9.7368 10.2387 8.5092 11.4669 6.999 11.4669H4.6686C4.3914 11.4669 4.164 11.6799 4.1412 11.9511C3.8892 14.8347 3.7386 17.7435 3.5448 20.6331C3.4116 22.6425 4.989 24.3315 7.0032 24.3315H22.8822C24.882 24.3315 26.475 22.6575 26.3406 20.6343L25.7622 11.9607C25.7436 11.6811 25.5102 11.4675 25.2342 11.4675L23.001 11.4663C21.4902 11.4663 20.2632 10.2375 20.2632 8.7279V7.5909C20.2632 7.2981 20.0262 7.0611 19.7334 7.0611H10.2666C9.9738 7.0611 9.7368 7.2987 9.7368 7.5915Z" fill="#1A1A1A"/> 901 </svg> 902 </i> 903 <p class="contact_title">Phone</p> 904 <a href="tel:972-427-3411" class="lp-link info-zone_contact_link link hyperlink-style-2">972-427-3411</a> 905 </div> 906 <div class="info-zone_contact_cell"> 907 <i> 908 <svg width="30" height="19" viewBox="0 0 30 19" fill="none" xmlns="http://www.w3.org/2000/svg"> 909 <path d="M2 0C0.903517 0 0 0.903517 0 2V16.6667C0 17.7631 0.903517 18.6667 2 18.6667H28C29.0965 18.6667 30 17.7631 30 16.6667V2C30 0.903517 29.0965 0 28 0H2ZM2.4375 1.33333H27.5625L15.6458 11.4896C15.3389 11.7512 14.6612 11.7512 14.3542 11.4896L2.4375 1.33333ZM1.33333 2.13542L10.1979 9.6979L1.33333 16.5729V2.13542ZM28.6667 2.13542V16.5729L19.8021 9.6979L28.6667 2.13542ZM11.2396 10.5833L13.4896 12.5C14.3543 13.2369 15.6457 13.2369 16.5104 12.5L18.7604 10.5833L27.4687 17.3333H2.53125L11.2396 10.5833Z" fill="#1A1A1A"/> 910 </svg> 911 </i> 912 <p class="contact_title">Email</p> 913 <a href="/cdn-cgi/l/email-protection#d09db1bbb5a9bfa5a2bdbfa6b5b4b1bcbcb1a390bfa5a4bcbfbfbbfeb3bfbd" class="lp-link info-zone_contact_link link hyperlink-style-2"><span class="__cf_email__" data-cfemail="692408020c10061c1b04061f0c0d080505081a29061c1d05060602470a0604">[email protected]</span></a> 914 </div> 915 </div> 916 <div class="info-zone_contact"> 917 <div class="info-zone_contact_cell"> 918 <i> 919 <svg width="31" height="30" viewBox="0 0 31 30" fill="none" xmlns="http://www.w3.org/2000/svg"> 920 <path d="M29.9821 6.49489C29.7931 6.35756 29.679 6.32046 29.4572 6.39228L20.298 9.41368L16.1952 8.03558L15.8172 9.41525L19.7644 10.7038V28.1462L9.89831 25.7069V22.1034H8.71438V25.7515L1.21616 28.2532V15.3945H0.0322266V29.2729C0.0322266 29.5077 0.130098 29.7279 0.321106 29.8645C0.445418 29.9541 0.585911 29.9999 0.735086 29.9999C0.814804 29.9999 0.890971 29.9868 0.967926 29.96L9.48433 27.029L20.1792 29.7887C20.3224 29.8254 20.4751 29.8171 20.6152 29.7654L29.8104 26.2235C30.0942 26.1177 3
9200.0251 25.8466 30.0251 25.5431V7.08291C30.0251 6.85086 30.17 6.63144 29.9821 6.49489ZM28.8412 25.0388L20.9483 28.0361V10.7065L28.8412 8.08649V25.0388Z" fill="#1A1A1A"/> 921 <path d="M6.57515 19.1142C6.6671 19.422 6.95006 19.6323 7.2713 19.6323C7.59215 19.6323 7.87511 19.422 7.96746 19.1142C8.67742 16.7514 10.0393 15.2447 11.3559 13.788C12.9944 11.9747 14.5422 10.2615 14.5422 7.2717C14.5422 3.39788 11.1451 0 7.2713 0C3.39827 0 0 3.39748 0 7.2717C0 10.2615 1.54819 11.9747 3.18674 13.788C4.50328 15.2447 5.86479 16.7514 6.57515 19.1142ZM7.2713 1.45426C10.316 1.45426 13.0883 4.22663 13.0883 7.2717C13.0883 9.70191 11.7852 11.1435 10.2769 12.8121C9.2461 13.9534 8.10992 15.2096 7.2713 16.9199C6.43229 15.2096 5.29651 13.953 4.2657 12.8121C2.75698 11.1432 1.45426 9.70191 1.45426 7.2717C1.45426 4.22663 4.22663 1.45426 7.2713 1.45426Z" fill="#1A1A1A"/> 922 <path d="M7.26193 10.1616C8.8705 10.1616 10.1795 8.86084 10.1795 7.26175C10.1795 5.66305 8.87089 4.3623 7.26193 4.3623C5.65297 4.3623 4.34473 5.66305 4.34473 7.26175C4.34512 8.86084 5.65336 10.1616 7.26193 10.1616ZM7.26193 5.81657C8.06898 5.81657 8.72527 6.46536 8.72527 7.26175C8.72527 8.05932 8.06898 8.70733 7.26193 8.70733C6.45528 8.70733 5.79899 8.05893 5.79899 7.26175C5.79899 6.46536 6.45528 5.81657 7.26193 5.81657Z" fill="#1A1A1A"/> 923 </svg> 924 </i> 925 <p class="info-wrap-contact_title">Address</p> 926 <p class="info-zone_contact_link pre-line">6301 Gaston Ave Suite 440 927 Dallas TX 75215</p> 928 </div> 929 </div> 930 <div class="info-zone_contact"> 931 <div class="info-zone_contact_cell"> 932 <p class="pre-line"><div></div><style>* { box-sizing: border-box; } body {margin: 0;}ul{list-style:inherit;}</style></p> 933 </div> 934 </div> 935 <ul class="lp-socials social_icons-style-2 socials socials--grey socials_zone footer__contact-column"> 936 937 <li> 938 <a 939 href="https://www.facebook.com/profile.php?id=61564534952365" 940 class="lp-socials__link socials__item wow fadeInUp socials__link" 941 data-wow-delay="0s" 942 target="_blank" 943 aria-label="FACEBOOK" 944 > 945 <span class="lp-i lp-i--facebook" aria-hidden="true"></span> 946 </a> 947 </li> 948 <li> 949 <a 950 href="https://www.instagram.com/laura_the_lister_realestate/" 951 class="lp-socials__link socials__item wow fadeInUp socials__link" 952 data-wow-delay="0.1s" 953 target="_blank" 954 aria-label="INSTAGRAM" 955 > 956 <span class="lp-i lp-i--instagram" aria-hidden="true"></span> 957 </a> 958 </li> 959 <li> 960 <a 961 href="https://www.linkedin.com/in/laura-suarez-%C2%AE%EF%B8%8F-0b823b202/" 962 class="lp-socials__link socials__item wow fadeInUp socials__link" 963 data-wow-delay="0.2s" 964 target="_blank" 965 aria-label="LINKEDIN" 966 >
967 <span class="lp-i lp-i--linkedin" aria-hidden="true"></span> 968 </a> 969 </li> 970 <li> 971 <a 972 href="https://www.tiktok.com/@laura_the_lister" 973 class="lp-socials__link socials__item wow fadeInUp socials__link" 974 data-wow-delay="0.3s" 975 target="_blank" 976 aria-label="TIKTOK" 977 > 978 <span class="lp-i lp-i--tiktok" aria-hidden="true"></span> 979 </a> 980 </li> 981 <li> 982 <a 983 href="https://www.yelp.com/biz/laura-suarez-mesquite" 984 class="lp-socials__link socials__item wow fadeInUp socials__link" 985 data-wow-delay="0.4s" 986 target="_blank" 987 aria-label="YELP" 988 > 989 <span class="lp-i lp-i--yelp" aria-hidden="true"></span> 990 </a> 991 </li> 992 <li> 993 <a 994 href="https://www.youtube.com/@laurathelister8219/featured" 995 class="lp-socials__link socials__item wow fadeInUp socials__link" 996 data-wow-delay="0.5s" 997 target="_blank" 998 aria-label="YOUTUBE" 999 > 1000 <span class="lp-i lp-i--youtube" aria-hidden="true"></span> 1001 </a> 1002 </li> 1003 <li> 1004 <a 1005 href="https://www.google.com/search?q=laura+suarez+realtor&sca_esv=3987c9a258f1273d&biw=1920&bih=919&ei=th7nZ6CQOMGy4-EPx6ipoQw&gs_ssp=eJzj4tVP1zc0LCwsKLIoTzIzYLRSNaiwMDNJtUxLNbOwTLSwSDFIsTKoSEpOM001Nk0xSrI0NTZLNvQSyUksLUpUKC5NLEqtUihKTcwpyS8CAFwIF7U&oq=Laura+Suarez+realtor&gs_lp=Egxnd3Mtd2l6LXNlcnAiFExhdXJhIFN1YXJleiByZWFsdG9yKgIIBTILEC4YgAQYxwEYrwEyBRAAGO8FMgUQABjvBTIIEAAYogQYiQUyCBAAGIAEGKIEMhoQLhiABBjHARivARiXBRjcBBjeBBjgBNgBAUjqJVCdA1i6GHADeACQAQCYAaYBoAGvD6oBBDAuMTW4AQHIAQD4AQGYAhGgAogPwgIIEAAYsAMY7wXCAgsQABiABBiwAxiiBMICBRAhGKABwgIEECEYFcICBhAAGBYYHsICCBAAGBYYChgewgILEAAYgAQYkQIYigXCAgUQABiABJgDAOIDBBgBIE6IBgGQBgW6BgYIARABGBSSBwQzLjE0oAeyVbIHBDAuMTS4B_4O&sclient=gws-wiz-serp#lrd=0x864e9fe689a88d0d:0xbcf5e35d2b9536c1,1,,,," 1006 class="lp-socials__link socials__item wow fadeInUp socials__link" 1007 data-wow-delay="0.6s" 1008 target="_blank" 1009 aria-label="GOOGLE" 1010 > 1011 <span class="lp-i lp-i--google" aria-hidden="true"></span> 1012 </a> 1013 </li> 1014 <li> 1015 <a 1016 href="https://www.zillow.com/profile/LauratheLister" 1017 class="lp-socials__link socials__item wow fadeInUp socials__link" 1018 data-wow-delay="0.7s" 1019 target="_blank" 1020 aria-label="ZILLOW" 1021 > 1022 <span class="lp-i lp-i--zillow" aria-hidden="true"></span> 1023 </a> 1024 </li> 1025 </ul> </div> 1026 </div> 1027 <div class="section-message"> 1028 <form data-type="contact-form"> 1029 <h2>Submit a Message</h2> 1030 <div class="h-pot"> 1031 <label for="-middleName">Middle Name</label> 1032 <input id="-middleName" name="middleName" value="" autocomplete="off" tabindex="-1"> 1033 </div> 1034 1035
1036 <div class="lp-input-group"> 1037 <label for="prod-name" class="lp-label">Name</label> 1038 <input id="prod-name" name="name" value="" required="" class="lp-input lp-input--light"> 1039 </div> 1040 <div class="lp-input-group"> 1041 <label for="prod-email" class="lp-label">Email</label> 1042 <input id="prod-email" type="email" name="email" value="" required="" class="lp-input lp-input--light"> 1043 </div> 1044 <div class="lp-input-group"> 1045 <label for="prod-phone" class="lp-label">Phone</label> 1046 <input id="prod-phone" type="tel" name="phoneNumber" value="" required="" class="lp-input lp-input--light"> 1047 </div> 1048 <div class="lp-input-group m16"> 1049 <label for="prod-message" class="lp-label">Message</label> 1050 <textarea id="prod-message" name="message" value="" required="" class="lp-input"></textarea> 1051 </div> 1052 1053 <div class="lp-disclaimer"> <label style='display: none;' for='-termsAccepted'>Opt In/Disclaimer Consent:</label> 1054 <label class='lp-tcr-content'> 1055 <span class='lp-tcr-checkbox'> 1056 <input 1057 type='checkbox' 1058 id='-termsAccepted' 1059 name='termsAccepted' 1060 oninvalid="this.setCustomValidity('Please accept the terms and conditions')" 1061 oninput="this.setCustomValidity('')" 1062 required 1063 /></span> 1064 <span class='lp-tcr-message'> 1065 1066 I agree to be contacted by 1067 Make Your Move Group LLC dba Makeyourmovedallas.com 1068 via call, email, and text for real estate services. To opt out, you can reply 'stop' at any time or reply 'help' for assistance. 1069 You can also click the unsubscribe link in the emails. Message and data rates may apply. Message frequency may vary. 1070 <a href='/terms-and-conditions' target='_blank'>Privacy Policy</a>. 1071 </span> 1072 </label> 1073 1074 </div> 1075 1076 <input style="display: none;" type="text" name="source" value="CONTACT_INQUIRY" /> 1077 1078 1079 <button type="submit" class="submitButton lp-btn button-style-2"> 1080 <span class="label-initial">Submit</span> 1081 <span class="label-loading">Submitting</span> 1082 <span class="label-success">Submitted</span> 1083 <span class="submit-icon lp-i lp-i--circle-notch lp-i--spin"></span> 1084 </button> 1085 <p class="success-message success hide"> 1086 Message sent successfully! 1087 </p> 1088 </form> 1089 1090 1091 </div> 1092 </div> 1093 </div> 1094 1095 </div> 1096 <button class="close lp-close" type="button" aria-label="close modal"> 1097 <span class="lp-close-icon" aria-hidden="true"></span> 1098 </button> 1099 </div> 1100 <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;"> 1101 <style> 1102 #qualifying-questions-modal .custom-select-toggle { 1103 border: 1px solid #848484; 1104 border-radius: 8px; 1105 padding: 12px 16px; 1106 } 1107 1108 #qualifying-questions-modal .custom-select-toggle.is-placeholder { 1109 color: #848484; 1110 } 1111 1112 #qualifying-questions-modal #qualifying-questions-modal-phoneNumber::placeholder { 1113 color: #848484; 1114 opacity: 1; 1115 } 1116 1117 #qualifying-questions-modal .disclaimer-more { 1118 display: none; 1119 } 1120 1121 #qualifying-questions-modal #qualifying-questions-modal-disclaimer-text:not(.collapsed) .disclaimer-more { 1122 display: inline; 1123 } 1124 1125 #qualifying-questions-modal #qualifying-questions-modal-disclaimer-text:not(.collapsed) .disclaimer-ellipsis { 1126 display: none; 1127 } 1128 </style>
vendor: 119 bytes, lines 1128-1129
1128 1129 <script data-cfasync="false" src="/cdn-cgi/scripts/5c5dd728/cloudflare-static/email-decode.min.js"></script>
1129<script> 1130 function toggleDisclaimerQualifyingQuestionsModal() { 1131 const disclaimerText = document.getElementById('qualifying-questions-modal-disclaimer-text'); 1132 const toggleButton = document.getElementById('qualifying-questions-modal-toggle-disclaimer'); 1133 1134 if (disclaimerText.classList.contains('collapsed')) { 1135 disclaimerText.classList.remove('collapsed'); 1136 toggleButton.textContent = 'Read less'; 1137 toggleButton.setAttribute('aria-expanded', 'true'); 1138 } else { 1139 disclaimerText.classList.add('collapsed'); 1140 toggleButton.textContent = 'Read more'; 1141 toggleButton.setAttribute('aria-expanded', 'false'); 1142 } 1143 } 1144 </script>
1144 1145 <div style="max-width: 400px; width: 95%; margin: 0 auto;"> 1146 <div style="background: #fff; border: none; border-radius: 16px; color: black; box-shadow: none; position: relative;"> 1147 <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;"> 1148 <span aria-hidden="true">×</span> 1149 </button> 1150 <div style="padding: 40px 30px 32px;"> 1151 <div style="text-align: left; margin-bottom: 32px;"> 1152 <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;"> 1153 Thanks, please provide more information to help serve you 1154 </h2> 1155 </div> 1156 <form id="qualifying-questions-modal-form" data-type="contact-form"> 1157 <input type="hidden" name="source" value="PROFILE_UPDATE" /> 1158 <input type="hidden" name="email" value="" id="qualifying-questions-modal-email" /> 1159 <input type="hidden" name="triggerSource" id="qualifying-questions-modal-triggerSource" value="" /> 1160 <label for="qualifying-questions-modal-email" style="display:none;"> 1161 Email 1162 </label> 1163 <label for="qualifying-questions-modal-triggerSource" style="display:none;"> 1164 Trigger Source 1165 </label> 1166 1167 <div style="margin-bottom: 20px;"> 1168 <label for="qualifying-questions-modal-phoneNumber" style="display:none;"> 1169 Phone Number 1170 </label> 1171 <input 1172 type="tel" 1173 id="qualifying-questions-modal-phoneNumber" 1174 name="phoneNumber" 1175 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;" 1176 pattern="^\+?1?[-.\s]?\(?[0-9]{3}\)?[-.\s]?[0-9]{3}[-.\s]?[0-9]{4}$" 1177 required 1178 placeholder="Phone" 1179 aria-label="Phone Number" 1180 inputmode="tel" 1181 autocomplete="tel" 1182 onfocus="this.style.borderColor='black';" 1183 onblur="this.style.borderColor='#848484';" 1184 /> 1185 </div> 1186 1187 <div style="margin-bottom: 20px;"> 1188 <label for="qualifying-questions-modal-interest" style="display:none;"> 1189 Interest 1190 </label> 1191 <select 1192 id="qualifying-questions-modal-interest" 1193 name="interest" 1194 required 1195 data-label="Interest" 1196 aria-label="Interest" 1197 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;" 1198 onfocus="this.style.borderColor='black'; this.style.color='black';" 1199 onblur="this.style.borderColor='#848484'; if(this.value === '') this.style.color='#848484'; else this.style.color='black';" 1200 > 1201 <option value="" style="background: #fff; color: #848484;" disabled selected>Interested in...</option> 1202 <option value="Selling & Buying" style="background: #fff; color: black;">Selling & Buying</option> 1203 <option value="Selling" style="background: #fff; color: black;">Selling</option> 1204 <option value="Buying" style="background: #fff; color: black;">Buying</option> 1205 <option value="Renting" style="background: #fff; color: black;">Renting</option> 1206 <option value="Other" style="background: #fff; color: black;">Other</option> 1207 </select> 1208 </div> 1209 1210 <div style="margin-bottom: 32px; font-size: 12px; line-height: 1.2;"> 1211 <label style='display: none;' for='qualifying-questions-modal-qualifying-questions-termsAccepted'>Opt In/Disclaimer Consent:</label> 1212 <label class='lp-tcr-content'>
1213 <span class='lp-tcr-checkbox'> 1214 <input 1215 type='checkbox' 1216 id='qualifying-questions-modal-qualifying-questions-termsAccepted' 1217 name='termsAccepted' 1218 aria-describedby='qualifying-questions-modal-disclaimer-text' 1219 oninvalid="this.setCustomValidity('Please accept the terms and conditions')" 1220 oninput="this.setCustomValidity('')" 1221 required 1222 /></span> 1223 <span class='lp-tcr-message'> 1224 <div id="qualifying-questions-modal-disclaimer-text" class="collapsed" style="color: #848484;"> 1225 1226 I agree to be contacted by 1227 <strong>Make Your Move Group LLC dba Makeyourmovedallas.com</strong> 1228 via call, email, and text <span class="disclaimer-more">for real estate services. 1229 To opt out, you can reply 'stop' at any time or reply 'help' for assistance. 1230 You can also click the unsubscribe link in the emails. 1231 Message and data rates may apply. Message frequency may vary.</span> 1232 <span class="disclaimer-ellipsis">...</span> 1233 <a href='/terms-and-conditions' target='_blank' rel='noopener noreferrer' style='text-decoration: underline;'>Privacy Policy</a>. 1234 </div> 1235 <button 1236 id="qualifying-questions-modal-toggle-disclaimer" 1237 type="button" 1238 style="background: none; border: none; color: #848484; font-size: inherit; font-weight: bold; padding: 0; margin-top: 4px; cursor: pointer;" 1239 aria-expanded="false" 1240 onclick="toggleDisclaimerQualifyingQuestionsModal()" 1241 > 1242 Read more 1243 </button> 1244 </span> 1245 </label> 1246 </div> 1247 1248 <div> 1249 <button 1250 type="submit" 1251 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;" 1252 onmouseover="this.style.background='transparent'; this.style.color='black';" 1253 onmouseout="this.style.background='black'; this.style.color='white';" 1254 > 1255 Submit 1256 </button> 1257 </div> 1258 </form> 1259 </div> 1260 </div> 1261 </div> 1262 </div> 1263 1264
1264<script> 1265 (function() { 1266 var lazyVideos = [].slice.call(document.querySelectorAll("video.lazy")); 1267 1268 if ("IntersectionObserver" in window && lazyVideos.length > 0) { 1269 var lazyVideoObserver = new IntersectionObserver(function(entries, observer) { 1270 entries.forEach(function(video) { 1271 if (video.isIntersecting) { 1272 for (var source in video.target.children) { 1273 var videoSource = video.target.children[source]; 1274 if (typeof videoSource.tagName === "string" && videoSource.tagName === "SOURCE") { 1275 videoSource.src = videoSource.dataset.src; 1276 } 1277 } 1278 1279 video.target.load(); 1280 video.target.classList.remove("lazy"); 1281 lazyVideoObserver.unobserve(video.target); 1282 } 1283 }); 1284 }); 1285 1286 lazyVideos.forEach(function(lazyVideo) { 1287 lazyVideoObserver.observe(lazyVideo); 1288 }); 1289 } 1290 })(); 1291 </script>
1291 1292 1293 <!-- Global site tag (gtag.js) - Google Analytics --> 1294
1294<script defer src="https://www.googletagmanager.com/gtag/js"></script>
1294 1295 1296 <!-- Google Tag Manager --> 1297
1297<script>(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start': 1298 new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0], 1299 j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.defer=true;j.async=false;j.src= 1300 'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f); 1301 })(window,document,'script','dataLayer','GTM-T9SFQGHZ');</script>
1301 1302 <!-- End Google Tag Manager --> 1303 1304 1305 <!-- LP Tracker (divolte.js) - LP Divolte --> 1306
1306<script>window.divolteLp=window.divolteLp||function(){(divolteLp.q=divolteLp.q||[]).push(arguments)}</script>
1306 1307 <!-- LP Tracker (eventBus) - LP EventBus --> 1308
1308<script>window.eventBusLp=window.eventBusLp||function(){(eventBusLp.q=eventBusLp.q||[]).push(arguments)}</script>
1308 1309 1310
1310<script> 1311 window.dataLayer = window.dataLayer || []; 1312 document.sendGoogleTagManagerEvent = function() { 1313 /* Honor GPC-enabled browsers and prevent GTM event if GPC is enabled. More details: https://global-privacy-control.glitch.me/ */ 1314 if (window.navigator.globalPrivacyControl) { 1315 return; 1316 } 1317 1318 dataLayer.push(arguments); 1319 } 1320 1321 document.sendGoogleTagManagerEvent('js', new Date()); 1322 document.sendGoogleTagManagerEvent('config', 'G-PJMJKTCBH4', { page: location.pathname, location: location.href }); 1323 document.sendGoogleAnalyticsEvent = function(googleEvent) { 1324 document.sendGoogleTagManagerEvent('event', googleEvent.eventAction || googleEvent.hitType, { 1325 event_category: googleEvent.eventCategory, 1326 event_label: googleEvent.eventLabel, 1327 value: googleEvent.eventValue, 1328 page: googleEvent.page, 1329 location: googleEvent.location 1330 }) 1331 }; 1332 1333 document.addEventListener("DOMContentLoaded", function() { 1334 (function() { 1335 //If the page has an element with ID of auto-year-update the element will be populated with the current year. 1336 var date = new Date(); 1337 var elements = document.getElementsByClassName('auto-year-update'); 1338 var i; 1339 for (i = 0; i < elements.length; i++) { 1340 elements[i].innerText = date.getFullYear(); 1341 } 1342 })(); 1343 if (window.divolteLp) { 1344 window.divolteLp('sendLpPageView', {}); 1345 } 1346 if (window.eventBusLp) { 1347 window.eventBusLp('sendLpPageView', {}); 1348 } 1349 }); 1350 </script>
1350 1351 1352 1353
1353<script> 1354 // Function to dynamically load a script 1355 function loadScript(url, callback) { 1356 var script = document.createElement('script'); 1357 script.type = 'text/javascript'; 1358 script.src = url; 1359 script.defer = true; 1360 script.async = true; 1361 script.onload = callback; 1362 document.head.appendChild(script); 1363 } 1364 1365 // Function to dynamically load CSS file 1366 function loadCSS(url) { 1367 var link = document.createElement("link"); 1368 link.rel = "stylesheet"; 1369 link.href = url; 1370 document.head.appendChild(link); 1371 } 1372 1373 // Global methods / variables that can be accessed by element js 1374 window.luxuryPresence = { 1375 libs: { 1376 loadJs: loadScript, 1377 loadCss: loadCSS, 1378 jsLibsMap: { 1379 paroller: { 1380 jsSrc: 'https://d1e1jt2fj4r8r.cloudfront.net/javascript/jquery.paroller.min.js', 1381 isLoaded: false, 1382 }, 1383 ionRangeSlider: { 1384 jsSrc: 'https://cdnjs.cloudflare.com/ajax/libs/ion-rangeslider/2.3.1/js/ion.rangeSlider.min.js', 1385 cssSrc: 'https://cdnjs.cloudflare.com/ajax/libs/ion-rangeslider/2.3.1/css/ion.rangeSlider.min.css', 1386 isLoaded: false, 1387 requires: ['jquery'], 1388 }, 1389 splide: { 1390 jsSrc: 'https://cdnjs.cloudflare.com/ajax/libs/splidejs/4.1.4/js/splide.min.js', 1391 cssSrc: 'https://cdnjs.cloudflare.com/ajax/libs/splidejs/4.1.4/css/splide-core.min.css', 1392 isLoaded: false, 1393 }, 1394 wow: { 1395 jsSrc: 'https://cdnjs.cloudflare.com/ajax/libs/wow/1.1.2/wow.min.js', 1396 isLoaded: false, 1397 }, 1398 jquery: { 1399 jsSrc: 'https://cdnjs.cloudflare.com/ajax/libs/jquery/3.7.1/jquery.min.js', 1400 isLoaded: false, 1401 }, 1402 slick: { 1403 jsSrc: 'https://cdnjs.cloudflare.com/ajax/libs/slick-carousel/1.8.1/slick.min.js', 1404 isLoaded: false, 1405 requires: ['jquery'], 1406 }, 1407 libphonenumber: { 1408 jsSrc: 'https://cdnjs.cloudflare.com/ajax/libs/libphonenumber-js/1.11.8/libphonenumber-js.min.js', 1409 isLoaded: false, 1410 }, 1411 }, 1412 }, 1413 }; 1414 </script>
1414 1415
1415<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>
1415 1416
1416<script defer src="https://cdnjs.cloudflare.com/ajax/libs/handlebars.js/4.7.8/handlebars.min.js"></script>
1416 1417
1417<script defer src="https://cdn.jsdelivr.net/npm/[email protected]/dist/handlebars-intl.min.js"></script>
1417 1418
1418<script defer src="https://cdnjs.cloudflare.com/ajax/libs/superagent/4.1.0/superagent.min.js"></script>
1418 1419
1419<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>
1419 1420
1420<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>
1420 1421
1421<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>
1421 1422 1423 <!-- GOOGLE TRANSLATE SCRIPT --> 1424
1424<script> 1425 function googleTranslateElementInit() { 1426 // list of languages can be overridden by setting window.customLanguages in the head JS. example `window.customLanguages = 'en,de,fr,ro,sk,pl'` 1427 // Language codes can be taken from here https://cloud.google.com/translate/docs/languages 1428 const DEFAULT_LANGUAGES = 'en,es,zh-CN,zh-TW,tl,vi,ar,ko,ru,de,fr,hi,pt'; 1429 document.querySelectorAll('[data-type="TRANSLATE"]').forEach(function(translate){ 1430 translate.innerText = ''; 1431 new google.translate.TranslateElement({ 1432 pageLanguage: 'en', 1433 layout: google.translate.TranslateElement.InlineLayout.SIMPLE, 1434 includedLanguages: window.customLanguages || DEFAULT_LANGUAGES, 1435 }, translate); 1436 }); 1437 } 1438 </script>
1438 1439
1439<script defer src="//translate.google.com/translate_a/element.js?cb=googleTranslateElementInit"></script>
1439 1440 1441 <!-- GOOGLE TRANSLATE SCRIPT END--> 1442
1442<script> 1443 1444 // UI helpers 1445 (function () { 1446 1447 function getSideMenu () { 1448 return document.querySelector('body > div.sidemenu'); 1449 } 1450 1451 function sideMenuHide (instant) { 1452 var sideMenu = getSideMenu(); 1453 if (!sideMenu || !sideMenu.classList.contains('visible')) { 1454 return; 1455 } 1456 sideMenu.classList.remove('visible'); 1457 sideMenu.dispatchEvent(new CustomEvent('lpui-hide', { detail: { instant: !!instant } })); 1458 window.dispatchEvent(new CustomEvent('lpui-sidemenu-hide', { detail: {instant: !!instant} })); 1459 } 1460 1461 function sideMenuShow () { 1462 var sideMenu = getSideMenu(); 1463 if (!sideMenu || sideMenu.classList.contains('visible')) { 1464 return; 1465 } 1466 sideMenu.classList.add('visible'); 1467 sideMenu.dispatchEvent(new Event('lpui-show')); 1468 window.dispatchEvent(new Event('lpui-sidemenu-show')); 1469 } 1470 1471 function sideMenuToggle () { 1472 var sideMenu = getSideMenu(); 1473 if (!sideMenu) { 1474 return; 1475 } 1476 var isSideMenuVisible = sideMenu.classList.contains('visible'); 1477 if (isSideMenuVisible) { 1478 sideMenuHide(); 1479 } else { 1480 sideMenuShow(); 1481 } 1482 } 1483 1484 var scrollLockRequests = {}; 1485 window.__debug_scrollLockRequests = scrollLockRequests; 1486 var hideScrollStyles = ''+ 1487 'body {'+ 1488 'overflow: hidden;' + 1489 '}'; 1490 var hideScrollId = 'hide-body-scroll-style'; 1491 1492 function scrollLock () { 1493 var style = document.createElement('style'); 1494 style.id = hideScrollId; 1495 style.textContent = hideScrollStyles; 1496 document.head.appendChild(style); 1497 window.dispatchEvent(new Event('lpui-scroll-locked')); 1498 } 1499 1500 function scrollUnlock () { 1501 document.getElementById(hideScrollId)?.remove(); 1502 window.dispatchEvent(new Event('lpui-scroll-unlocked')); 1503 } 1504 1505 function requestScrollLock (lockId) { 1506 var wasLocked = Object.keys(scrollLockRequests).length > 0; 1507 scrollLockRequests[lockId || '__anonymous_lock'] = true; 1508 if (!wasLocked) { 1509 scrollLock(); 1510 } 1511 } 1512 1513 function releaseScrollLock (lockId) { 1514 if (lockId) { 1515 delete scrollLockRequests[lockId]; 1516 if (!Object.keys(scrollLockRequests).length) { 1517 scrollUnlock(); 1518 } 1519 } else { 1520 scrollLockRequests = {}; 1521 window.__debug_scrollLockRequests = scrollLockRequests; 1522 scrollUnlock(); 1523 } 1524 } 1525 1526 function showModal (modalId, options) { 1527 var modal = document.getElementById(modalId); 1528 if (!modal) { 1529 return; 1530 } 1531 1532 if (!modal.classList.contains('visible')) { 1533 modal.classList.add('visible'); 1534 if (options && options.scrollLock) { 1535 window.lpUI.requestScrollLock(modalId); 1536 } 1537 modal.dispatchEvent(new Event('lpui-show')); 1538 window.dispatchEvent(new CustomEvent('lpui-modal-show', { detail: { id: modalId } })); 1539 } 1540 1541 const visibleModals = document.querySelectorAll('.modal.visible'); 1542 1543 if (visibleModals.length > 1) { 1544 1545 const maxZIndex = Array.from(visibleModals).reduce((maxZIndex, modal) => { 1546 const zIndex = window.getComputedStyle(modal).zIndex; 1547 const parsedZIndex = zIndex !== 'auto' ? parseInt(zIndex) : 0; 1548 return Math.max(maxZIndex, parsedZIndex); 1549 }, 0); 1550 1551 modal.style.zIndex = maxZIndex + 1; 1552 } 1553 1554 } 1555 1556 function _hideModal (modalEl) { 1557 if (!modalEl) { 1558 return; 1559 } 1560 if (!modalEl.classList.contains('visible')) { 1561 return; 1562 } 1563 modalEl.classList.remove('visible'); 1564 modalEl.style.zIndex = '';
1565 modalEl.dispatchEvent(new Event('lpui-hide')); 1566 var modalId = modalEl.getAttribute('id'); 1567 if (modalId) { 1568 window.lpUI.releaseScrollLock(modalId); 1569 window.dispatchEvent(new CustomEvent('lpui-modal-hide', { detail: { id: modalId } })); 1570 } 1571 } 1572 1573 function hideModal (modalId) { 1574 _hideModal(document.getElementById(modalId)); 1575 } 1576 1577 function hideClosestModal (el) { 1578 const modal = el?.closest('.modal'); 1579 if (!modal) { 1580 return; 1581 } 1582 if (modal.classList) { 1583 _hideModal(modal); 1584 return; 1585 } 1586 if (modal.length && modal[0].classList) { 1587 _hideModal(modal[0]); 1588 } 1589 } 1590 1591 window.lpUI = { 1592 sideMenuHide: sideMenuHide, 1593 sideMenuShow: sideMenuShow, 1594 sideMenuToggle: sideMenuToggle, 1595 requestScrollLock: requestScrollLock, 1596 releaseScrollLock: releaseScrollLock, 1597 showModal: showModal, 1598 hideModal: hideModal, 1599 hideClosestModal: hideClosestModal 1600 } 1601 })(); 1602 1603 var stringifyPrimitive = function(v) { 1604 switch (typeof v) { 1605 case 'string': 1606 return v; 1607 1608 case 'boolean': 1609 return v ? 'true' : 'false'; 1610 1611 case 'number': 1612 return isFinite(v) ? v : ''; 1613 1614 default: 1615 return ''; 1616 } 1617 }; 1618 1619 function objectToQuerystring(obj, sep, eq, name) { 1620 // https://github.com/Gozala/querystring/blob/master/encode.js 1621 sep = sep || '&'; 1622 eq = eq || '='; 1623 if (obj === null) { 1624 obj = undefined; 1625 } 1626 1627 if (typeof obj === 'object') { 1628 return Object.keys(obj).map(function(k) { 1629 var ks = encodeURIComponent(stringifyPrimitive(k)) + eq; 1630 if (Array.isArray(obj[k])) { 1631 return obj[k].map(function(v) { 1632 return ks + encodeURIComponent(stringifyPrimitive(v)); 1633 }).join(sep); 1634 } else { 1635 return ks + encodeURIComponent(stringifyPrimitive(obj[k])); 1636 } 1637 }).filter(Boolean).join(sep); 1638 1639 } 1640 1641 if (!name) return ''; 1642 return encodeURIComponent(stringifyPrimitive(name)) + eq + 1643 encodeURIComponent(stringifyPrimitive(obj)); 1644 } 1645 1646 function getPath(url, options) { 1647 var parser = document.createElement('a'); 1648 parser.href = url || ''; 1649 var path = parser.pathname || ''; 1650 if (path[0] !== '/') { 1651 // IE does not return path starting with a slash 1652 path = '/' + path; 1653 } 1654 1655 if (options && options.queryString) { 1656 path += parser.search; 1657 } 1658 1659 return path; 1660 } 1661 1662 function getMLSAutocomplete(keyword) { 1663 var searchURL = window.location.protocol + '//' + window.location.hostname + '/home-search/auto_complete'; 1664 var query = { 1665 kind: 'listings', 1666 query: keyword 1667 }; 1668 1669 return superagent 1670 .get(searchURL) 1671 .query(query) 1672 .then(function(res) { 1673 var data = res.body || []; 1674 // Array of listing_auto_complete documents: id, display_address, city, state, 1675 // price, sold_price, status, status_modified_at, photo_urls (array of URLs). 1676 1677 return data; 1678 }); 1679 } 1680 1681 function getMLSAutocompleteWithFilters(keyword, filters = {}) { 1682 var searchURL = window.location.protocol + '//' + window.location.hostname + '/home-search/auto_complete'; 1683 1684 return superagent 1685 .get(searchURL) 1686 .query({ kind: 'listings', query: keyword, ...filters }) 1687 .then(function(res) { 1688 // Same response shape as getMLSAutocomplete. 1689 return res.body || []; 1690 }); 1691 } 1692 1693 function makeMlsLink(data) { 1694 // Code Dupe from utils/googlePlace 1695 // mapping of google data type to mls data type 1696 var mapping = { 1697 neighborhood: 'neighborhood', 1698 locality: 'place', 1699 administrative_area_level_2: 'county', 1700 administrative_area_level_1: 'state', 1701 postal_code: 'postalcode', 1702 }; 1703 1704 function _filterTypes(types) { 1705 return types.filter(function(type) { return type !== 'political' }); 1706 } 1707 1708 if (!data || !Object.keys(data).length) { 1709 return '/home-search/listings'; 1710 } 1711 1712 var newData = {};
1713 _filterTypes(data.types).forEach(function(type) { 1714 if (mapping[type]) { 1715 newData.search_type = mapping[type]; 1716 } 1717 }); 1718 newData.omnibox = data.formatted_address; 1719 data.address_components.forEach(function(component) { 1720 _filterTypes(component.types).forEach(function(type) { 1721 if (mapping[type]) { 1722 newData[mapping[type]] = component.long_name; 1723 } 1724 }); 1725 }); 1726 var bounds = data.geometry.bounds; 1727 var convertedData = Object.assign(bounds, newData); 1728 1729 return '/home-search/listings?' + objectToQuerystring(convertedData); 1730 } 1731 1732 function debounce(func, wait) { 1733 let timeout; 1734 return function(...args) { 1735 const context = this; 1736 clearTimeout(timeout); 1737 timeout = setTimeout(() => func.apply(context, args), wait) 1738 } 1739 } 1740 1741 // Global methods / variables that can be accessed by element js 1742 window.luxuryPresence = { 1743 ...window.luxuryPresence, 1744 defaults: { 1745 companyId: '2aaf8e5a-1524-403d-bb59-9fffdf8ad2f5', 1746 apiGatewayUrl: '/api-gw', 1747 routerUrl: '/api-nv', 1748 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\
1748n }\n propertiesCount(\n \n agentIds: $agentIds\n teamIds: $teamIds\n propertyId: $propertyId\n propertyIds: $propertyIds\n prioritizeIds: $prioritizeIds\n companyId: $companyId\n network: $network\n networkId: $networkId\n statusId: $statusId\n statusIds: $statusIds\n excludeStatusId: $excludeStatusId\n neighborhoodId: $neighborhoodId\n neighborhoodIds: $neighborhoodIds\n officeIds: $officeIds\n addressState: $addressState\n addressCity: $addressCity\n developmentId: $developmentId\n featuredListing: $featuredListing\n leaseProperty: $leaseProperty\n search: $search\n searchTermMode: $searchTermMode\n salesPriceGTE: $salesPriceGTE\n salesPriceLTE: $salesPriceLTE\n leasePriceGTE: $leasePriceGTE\n leasePriceLTE: $leasePriceLTE\n livingSpaceSizeGTE: $livingSpaceSizeGTE\n livingSpaceSizeLTE: $livingSpaceSizeLTE\n bathCountGTE: $bathCountGTE\n bathCountLTE: $bathCountLTE\n bedroomCountGTE: $bedroomCountGTE\n bedroomCountLTE: $bedroomCountLTE\n architectureStyle: $architectureStyle\n lifestyle: $lifestyle\n propertyTypeId: $propertyTypeId\n propertyTypeIds: $propertyTypeIds\n spaceTypeIds: $spaceTypeIds\n tag: $tag\n archived: $archived\n globalProperty: $globalProperty\n withGeo: $withGeo\n openHouse: $openHouse\n displayMLSListings: $displayMLSListings\n advancedFilters: $advancedFilters\n seasonalPriceId: $seasonalPriceId\n\n ) {\n count\n }\n }\n","pressReleases":"\n query PressReleases (\n $companyId: ID\n $pressReleaseIds: [ID!]\n $offset: Int\n $limit: Int\n $sort: String\n $sortDir: String\n $search: String\n $categories: [String!]\n $propertyId: [ID!]\n $developmentId: [ID!]\n $agentId: [ID!]\n $teamId: [ID!]\n $year: [Int!]\n ) {\n pressReleases (\n companyId: $companyId\n pressReleaseIds: $pressReleaseIds\n offset: $offset\n limit: $limit\n sort: $sort\n sortDir: $sortDir\n search: $search\n categories: $categories\n propertyId: $propertyId\n developmentId: $developmentId\n agentId: $agentId\n teamId: $teamId\n year: $year\n ) {\n items {\n id\n title\n description\n author\n externalUrl\n media {\n smallUrl\n mediumUrl\n largeUrl\n xLargeUrl\n xxLargeUrl\n height\n width\n altTagText\n }\n publishedAt\n categories\n }\n total\n }\n }\n","posts":"\n query Posts (\n $companyId: String\n $postId: [ID!]\n $slug: String\n $offset: Int\n $limit: Int\n $sort: String\n $sortDir: String\n $search: String\n $featured: Boolean\n $categoryId: [String!]\n $neighborhoodId: [String!]\n ) {\n posts (\n companyId: $companyId\n postId: $postId\n slug: $slug\n offset: $offset\n limit: $limit\n sort: $sort\n sortDir: $sortDir\n search: $search\n featured: $featured\n postStatusId: \"5f528253-abb7-484e-95c3-330269ac1102\"\n categoryId: $categoryId\n neighborhoodId: $neighborhoodId\n ) {\n items {\n id\n postId\n title\n subtitle\n description\n status: postStatus\n featured\n slug\n categories {\n id\n name\n }\n createdAt\n publishedAt\n scheduledAt\n createdBy {\n ... on Agent {\n firstName\n lastName\n }\n }\n customAuthor\n media {\n smallUrl\n mediumUrl\n largeUrl\n xLargeUrl\n xxLargeUrl\n height\n width\n altTagText\n }\n seoTitle\n seoDescription\n }\n total\n }\n }\n","testimonials":"\n query Testimonials (\n $companyId: String\n $agentId: ID\n $teamId: ID\n $testimonialIds: [ID!]\n $offset: Int\n $limit: Int\n $sort: String\n $sortDir: String\n $search: String\n ) {\n testimonials (\n companyId: $companyId\n agentId: $agentId\n teamId: $teamId\n testimonialIds: $testimonialIds\n offset: $offset\n limit: $limit\n sort: $sort\n sortDir: $sortDir\n search: $search\n ) {\n items {\n id\n testimonialId\n body\n author\n position\n media {\n smallUrl\n mediumUrl\n largeUrl\n xLargeUrl\n xxLargeUrl\n height\n width\n altTagText\n }\n seoTitle\n seoDescription\n agents {\n slug\n email\n firstName\n lastName\n avatar {\n smallUrl\n height\n width\n }\n }\n }\n total\n }\n }\n","neighborhoods":"\n query Neighborhoods (\n $neighborhoodId: ID\n $companyId: String\n $search: String\n $tag: String\n $offset: Int\n $limit: Int\n $sort: String\n $sortDir: SortDirectionEnum\n ) {\n neighborhoods (\n neighborhoodId: $neighborhoodId\n companyId: $companyId\n search: $search\n tag: $tag\n offset: $offset\n limit: $limit\n sort: $sort\n sortDir: $sortDir\n ) {\n id\n name\n description\n descriptionShort\n slug\n tags\n googlePlaceData\n mlsLink\n createdAt\n media {\n smallUrl\n mediumUrl\n largeUrl\n xLargeUrl\n xxLargeUrl\n height\n width\n }\n seoTitle\n seoDescription\n }\n neighborhoodsCount(\n companyId: $companyId\n search: $search\n tag: $tag\n ) {\n count\n }\n }\n","developments":"\n query Developments (\n $developmentId: ID\n $companyId: String\n $offset: Int\n $limit: Int\n $sort: String\n $sortDir: SortDirectionEnum\n $search: String\n $tag: [String!]\n $agentId: [ID!]\n $neighborhoodId: ID\n $neighborhoodIds: [ID!]\n ) {\n developments (\n developmentId: $developmentId\n companyId: $companyId\n offset: $offset\n limit: $limit\n sort: $sort\n sortDir: $sortDir\n search: $search\n tag: $tag\n agentId: $agentId\n neighborhoodId: $neighborhoodId\n neighborhoodIds: $neighborhoodIds\n ) {\n id\n name\n description\n descriptionShort\n slug\n createdAt\n media {\n smallUrl\n mediumUrl\n largeUrl\n xLargeUrl\n xxLargeUrl\n height\n width\n }\n googlePlaceData\n seoTitle\n seoDescription\n tags\n }\n developmentsCount(\n companyId: $companyId\n search: $search\n tag: $tag\n agentId: $agentId\n neighborhoodId: $neighborhoodId\n neighborhoodIds: $neighborhoodIds\n ) {\n count\n }\n }\n","pois":"\n query PointsOfInterest (\n $regionId: UUID!\n $radiu
1748s: Int\n $offset: Int\n $limit: Int\n $categories: [AreasOfInterestCategories!]\n $sortBy: AreasOfInterestSorting\n ) {\n pois: areasOfInterest (\n input: {\n regionId: $regionId\n radius: $radius\n offset: $offset\n limit: $limit\n categories: $categories\n sortBy: $sortBy\n }\n ) {\n items {\n name\n imageUrl\n url\n reviewCount\n rating\n price\n displayPhone\n distance\n category\n location {\n address1\n address2\n address3\n city\n zipCode\n country\n state\n }\n }\n total\n }\n }\n","offices":"\n query Offices (\n $companyId: ID!\n $officeIds: [ID!]\n $officeMlsIds: [String!]\n $externalIds: [String!]\n $externalSource: String\n $agentId: ID\n $archived: Boolean\n $tags: [String!]\n $slug: String\n $search: String\n $sort: String\n $sortDir: SortDirection\n $offset: Int\n $limit: Int\n ) {\n offices (\n companyId: $companyId\n officeIds: $officeIds\n officeMlsIds: $officeMlsIds\n externalIds: $externalIds\n externalSource: $externalSource\n agentId: $agentId\n archived: $archived\n tags: $tags\n slug: $slug\n search: $search\n sort: $sort\n sortDir: $sortDir\n offset: $offset\n limit: $limit\n ) {\n items {\n id\n companyId\n name\n slug\n officeMlsId\n shortDescription\n fullDescription\n addressLine1\n addressLine2\n addressCity\n addressState\n addressPostalCode\n addressCountry\n phone\n email\n officeHours\n coordinates\n googlePlaceData\n seoTitle\n seoDescription\n fullAddress\n tags\n media {\n id\n originalUrl\n thumbnailUrl\n smallUrl\n mediumUrl\n largeUrl\n xLargeUrl\n xxLargeUrl\n }\n }\n total\n }\n }\n","teams":"\n query Teams (\n $companyId: ID\n $teamIds: [ID!]\n $agentId: ID\n $externalIds: [String!]\n $externalSource: String\n $slug: String\n $search: String\n $sort: String\n $sortDir: String\n $offset: Int\n $limit: Int\n ) {\n teams (\n companyId: $companyId\n teamIds: $teamIds\n agentId: $agentId\n externalIds: $externalIds\n externalSource: $externalSource\n slug: $slug\n search: $search\n sort: $sort\n sortDir: $sortDir\n offset: $offset\n limit: $limit\n ) {\n items {\n id\n companyId\n name\n email\n shortBio\n addressLine1\n addressLine2\n addressCity\n addressState\n addressCountry\n phoneNumber1\n phoneNumber2\n postalCode\n avatar {\n id\n thumbnailUrl\n smallUrl\n mediumUrl\n largeUrl\n }\n urlWebsite\n socialLinks\n socialLinksArray\n tags\n seoTitle\n seoDesc\n slug\n displayOrder\n }\n total\n }\n }\n"}, 1749 propertyPlaceholderImage: {"id":"8e141f61-b26d-4af9-b30a-11981975980c","alt":null,"bytes":36707,"width":1920,"format":"png","height":1200,"pngUrl":"","shared":true,"curated":false,"duration":null,"largeUrl":"https://media-production.lp-cdn.com/cdn-cgi/image/format=auto,quality=85/https://media-production.lp-cdn.com/media/72382fc2-e372-4b1d-b8ec-0e8d86ee110a","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/72382fc2-e372-4b1d-b8ec-0e8d86ee110a","authorUrl":null,"createdAt":"2025-03-29T01:09:38.946Z","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/72382fc2-e372-4b1d-b8ec-0e8d86ee110a","sourceUrl":null,"updatedAt":"2025-03-29T01:09:38.946Z","xLargeUrl":"https://media-production.lp-cdn.com/cdn-cgi/image/format=auto,quality=85/https://media-production.lp-cdn.com/media/72382fc2-e372-4b1d-b8ec-0e8d86ee110a","__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/72382fc2-e372-4b1d-b8ec-0e8d86ee110a","description":null,"displayName":"property-logo-cb","originalUrl":"https://media-production.lp-cdn.com/cdn-cgi/image/format=auto,quality=85/https://media-production.lp-cdn.com/media/72382fc2-e372-4b1d-b8ec-0e8d86ee110a","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/72382fc2-e372-4b1d-b8ec-0e8d86ee110a","originalFileName":"Property logo CB","cloudinaryPublicId":"72382fc2-e372-4b1d-b8ec-0e8d86ee110a"} 1750 }, 1751 objectToQuerystring: objectToQuerystring, 1752 getPath: getPath, 1753 getMLSAutocomplete: getMLSAutocomplete, 1754 getMLSAutocompleteWithFilters: getMLSAutocompleteWithFilters, 1755 makeMlsLink: makeMlsLink, 1756 debounce: debounce, 1757 }; 1758 1759 var wowOffset = 100; 1760 </script>
1760 1761
1761<script> 1762 (()=>{function e(e){return e&&e.__esModule?e.default:e}var t={},i={};i={getVideoFirstFrame(e){let t="https://res.cloudinary.com/";if(!e||!e.startsWith(t))return null;let i=e.replace(t,"").replace("f_auto:video","f_auto").split("/");if(-1===i[1].toLowerCase().indexOf("video"))return null;let s=i[i.length-1];s.lastIndexOf(".")>-1?s=`${s.slice(0,s.lastIndexOf("."))}.jpg`:s+=".jpg",i[i.length-1]=s;let r=3;"videos"===i[1].toLowerCase()&&""!==i[2]&&(r=2);let a=/^(?:[a-z]{1,3}|\$\w+)_\S+$/;for(;r<i.length-1&&a.test(i[r]);)r++;return i.splice(r,0,"so_0,eo_0"),t+i.join("/")}},t=function(e,{isEqual:t}){let s=[{field:"thumbnailUrl",w:320},{field:"smallUrl",w:960},{field:"mediumUrl",w:1280},{field:"largeUrl",w:1920},{field:"xLargeUrl",w:2560},{field:"xxLargeUrl",w:3456}],r=function(e,t,i){let s="en-US";if(!e)return"";if("string"==typeof e){let t=e.trim();if(/[^+\-0-9.]/.test(t))return e;if(!(e=parseFloat(t)))return""}let r="number"==typeof i?i:0,a=Number.isInteger(e)?0:r,o={minimumFractionDigits:a,maximumFractionDigits:a};return"USD"===t?`$${e.toLocaleString(s,o)}`:"CAD"===t?`$${e.toLocaleString(s,o)} CAD`:"EUR"===t?`\u{20AC}${e.toLocaleString(s,o)}`:"GBP"===t?`\xa3${e.toLocaleString(s,o)}`:"PERCENT"===t?`${e}%`:"number"==typeof i&&i>-1?e.toLocaleString(s,{maximumFractionDigits:i}):e.toLocaleString(s)},a=function(e){switch(e){case"DAY":return"daily";case"MONTH":return"monthly";case"WEEK":return"weekly";case"YEAR":return"yearly";case"QUARTER":return"quarterly";case"HALF_YEAR":return"semi-annually";case"NIGHTLY":return"nightly";case"SEASONAL":return"seasonally";default:return""}},o=function(e){switch(e){case"DAY":return"day";case"WEEK":return"wk";case"MONTH":return"mo";case"YEAR":return"yr";case"QUARTER":return"3 mos";case"HALF_YEAR":return"6 mos";case"NIGHTLY":return"night";case"SEASONAL":return"season";default:return""}},n=function(e){switch(e){case"DAY":return"day";case"WEEK":return"week";case"MONTH":return"month";case"YEAR":return"year";case"QUARTER":return"quarter";case"HALF_YEAR":return"6 months";case"NIGHTLY":return"night";case"SEASONAL":return"season";default:return""}},l=function(e,t){let i,s,r=t||{};switch(r.mode){case"short":i=o(e),s=r.frequencySeparator||"/";break;case"standard":case"std":i=n(e),s=r.frequencySeparator||"/";break;default:i=a(e),s=r.frequencySeparator||" "}return i?r.frequencyTag||r.frequencyClass?`${s}<${r.frequencyTag||"span"}${r.frequencyClass?` class="${r.frequencyClass}"`:""}>${i}</${r.frequencyTag||"span"}>`:s+i:""};return{isEmpty(e,t){let i=!e||"string"==typeof e&&!e.trim()||!Object.keys(e).length;return t.fn?i?t.fn(this):t.inverse(this):i},ifEquals(e,i,s){return t(e,i)?s.fn(this):s.inverse(this)},"raw-helper":function(e){return e.fn()},striptags:e=>e?(e=(e=(e=e.replace(/<\!--(.|[\r\n])*?-\->/g,"")).replace(/<(xml|style|svg)("[^"]*"|'[^']*'|[^>])*>(.|[\r\n])*?<\/\1>/gi,"")).replace(/ /g," ")).replace(/<\/?("[^"]*"|'[^']*'|[^>])*(>|$)/g,""):"",striptagsLineBreaks:e=>e?(e=(e=(e=(e=e.replace(/<\!--(.|[\r\n])*?-\->/g,"")).replace(/<(xml|style|svg)("[^"]*"|'[^']*'|[^>])*>(.|[\r\n])*?<\/\1>/gi,"")).replace(/(<br\s*\/?>)|(<\/p\s*>)(?=.*(<\/p\s*>|<br\s*\/?>))/g," ")).replace(/ /g," ")).replace(/<\/?("[^"]*"|'[^']*'|[^>])*(>|$)/g,""):"",truncate:(e,t,i)=>e?e.length>t?"string"==typeof i?e.slice(0,t-i.length)+i:e.slice(0,t):e:"",setSubArray(e=[],t,i,s,r){r.data.root[s]=e.slice(t,i)},formatAreaUnit(e){switch(e){case"ACRE":return"Acres";case"SQUARE_METER":return"Sq.M.";case"SQUARE_YARD":return"Sq.Yd.";default:return"Sq.Ft."}},formatFrequency:a,formatFrequencyShort:o,lpFormatFrequency:(e,t)=>l(e,t&&t.hash),subArray(e,t,i,s){return e>=t&&e<i?s.fn(this):s.inverse(this)},formatPropertyStatus(e,t,i){let s="";switch(e){case"SOLD":s="Sold";break;case"FOR_SALE":s="For Sale";break;case"COMING_SOON":s="Coming Soon";break;case"INACTIVE":s="Inactive";break;case"POCKET_LISTING":s="Pocket Listing";break;case"PENDING":s="Pending";break;case"UNDER_CONTRACT":s="Under Contract";break;case"ACTIVE_UNDER_CONTRACT":s="Active Under Contract";break;default:s=e}return("Sold"===s||"Leased"===s)&&t&&"string"==typeof i&&i&&(s+=` on ${i}`),s},formatGrade(e){switch(e){case"UNDERGRADUATE_COURSES":return"Undergrad";case"PRE_KINDERGARTEN":return"PreK";case"KINDERGARTEN":return"K";case"FIRST_GRADE":return"1st";case"SECOND_GRADE":return"2nd";case"THIRD_GRADE":return"3rd";case"FOURTH_GRADE":return"4th";case"FIFTH_GRADE":return"5th";case"SIXTH_GRADE":return"6th";case"SEVENTH_GRADE":return"7th";case"EIGHTH_GRADE":return"8th";case"NINTH_GRADE":return"9th";case"TENTH_GRADE":return"10th";case"ELEVENTH_GRADE":return"11th";case"TWELFTH_GRADE":return"12th";default:return""}},encodeURI:e=>encodeURI(e),encodeURIComponent:e=>encodeURIComponent(e),hbFormatDate(e,t){if(!e)return"";let i="current"===e?new Date:new Date(e);if(Number.isNaN(i.getTime()))return"";if("YYYY"===t||"year"===t)return`${i.getFullYear()}`;if("MM/DD/YY"===t){let e=i.getMonth()+1;return e<10&&(e=`0${e.toString()}`),`${e}/${i.getDate()}/${i.getFullYear().toString().substr(-2)}`}return`${["January","February","March","April","May","June","July","August","September","October","November","December"][i.getMonth()]} ${i.getDate()}, ${i.getFullYear()}`},openHousesFormat(e,t,i){if(!e||!t)return"";let s=e=>{let t=e.getHours();t>12&&(t-=12);let i=`${t}:${e.getMinutes()>9?e.getMinutes():"0"+e.getMinutes()}`;return e.getHours()>11?i+="PM":i+="AM",i},r="",a=e,o=t;
1762i&&(a=new Date(e).toLocaleString("en-US",{timeZone:i}),o=new Date(t).toLocaleString("en-US",{timeZone:i}),[,,,r]=new Date(t).toLocaleString("en-US",{timeZone:i,timeZoneName:"short"}).split(" "));let n=new Date(a),l=n.toLocaleDateString("en-US"),d=s(n),c=s(new Date(o));return`${l} ${d} - ${c} ${r}`},math:(e,t,i)=>(e=parseFloat(e),({"+":e+(i=parseFloat(i)),"-":e-i,"*":e*i,"/":e/i,"%":e%i})[t]),findByKey(e,t,i,s){let r=(e||[]).find(e=>e[t]===i);return s.fn(r)},capitalize(e,t,i){let s;return"string"==typeof e&&e.length&&(s=e.toLowerCase().split(t).map(e=>e.charAt(0).toUpperCase()+e.slice(1)).join(" ").toString()),s},and:(...e)=>Array.prototype.slice.call(e).every(Boolean),or:(...e)=>Array.prototype.slice.call(e,0,-1).some(Boolean),not:e=>!e,orderByIds(t,i,s){let r="",a=null;s.data&&(a=e.createFrame(s.data));let o=(i||[]).filter(Boolean);if(o&&o.length){let e=0;r=o.reduce((i,r,o)=>{let n=(t||[]).find(e=>e.id===r);return n?(a&&(a.index=o-e),i+s.fn(n,{data:a})):(e+=1,i)},"")}else for(let e=0,i=(t||[]).length;e<i;e++)a&&(a.index=e),r+=s.fn(t[e],{data:a});return r},ifIn(e,t,i){return t&&t.indexOf(e)>-1?i.fn(this):i.inverse(this)},partial:(t,i)=>(e.registerPartial(t,e.compile(i.fn())),`
1762<script type="text/x-handlebars-template" class="${t} pagination-script">${i.fn()}<\/script>`),numCompare(e,t,i,s){return({"==":function(e,t){return e==t},"===":function(e,t){return e===t},"!=":function(e,t){return e!=t},"<":function(e,t){return e<t},">":function(e,t){return e>t},"<=":function(e,t){return e<=t},">=":function(e,t){return e>=t}})[i](e,t)?!s.fn||s.fn(this):!!s.fn&&s.inverse(this)},lpFormatNumber:r,arrayToHtmlList:(e,t)=>e.reduce((e,t)=>{try{if("object"==typeof t||null===t)return e;return e+=`<li>${t}</li>`}catch(e){}},""),join:(e,t,i)=>e&&e.join?e.join("string"==typeof t?t:", "):"",dedupe(t,i,s){let r=null,a=0,o=new Set;return s.data&&(r=e.createFrame(s.data)),(t||[]).reduce((e,t,n)=>{let l=i?t[i]:t;return!o.has(l)||i&&void 0===l?(o.add(l),r&&(r.index=n-a),e+s.fn(t,{data:r})):(a+=1,e)},"")},JSONstringify:(e,t)=>JSON.stringify(e),formatPropertyPrice(...t){let i=t[t.length-1].hash,s=t.length>1?t[0]:i.property,a=i.precision||0;t.length>2&&(i.mode=t[1]),i.mode||(i.mode="short");let o=t.length>3?t[2]:i.separator;if("string"!=typeof o&&(o=" | "),s.isPasswordProtected)return"Exclusive Listing";let n=t.length>4?t[3]:i.priceUponRequestText;if("string"!=typeof n&&(n="Price Upon Request"),s.priceUponRequest)return n;let d=s.salesPrice,c=null;"SOLD"!==s.status&&"Leased"!==s.status&&s.reducedPrice&&(i.reducedClass?c=s.reducedPrice:d=s.reducedPrice);let u="";c&&(u+=`<${i.reducedTag||"span"} class="${i.reducedClass}">${r(c,s.currency,a)}</${i.reducedTag||"span"}>`),d&&(d=r(d,s.currency,a),i.priceTag||i.priceClass?u+=`<${i.priceTag||"span"}${i.priceClass?` class="${i.priceClass}"`:""}>${d}</${i.priceTag||"span"}>`:u+=d);let h=s.leasePrice&&r(s.leasePrice,s.currency,a);if(h){u&&(u+=o);let e=`${h}${l(s.leasePeriod,i)}`;i.leaseTag||i.leaseClass?u+=`<${i.leaseTag||"span"}${i.leaseClass?` class="${i.leaseClass}"`:""}>${e}</${i.leaseTag||"span"}>`:u+=e}
1762return new e.SafeString(u)},mediaImage(t,i={}){if(!t)return;let{lazy:r,...a}=i.hash,o="",n="";if("string"==typeof t)o=t;else{let e={},{height:r,width:l,altTagText:d}=t;s.forEach(i=>{t[i.field]&&!e[t[i.field]]&&(e[t[i.field]]=i.w)});let c=Object.keys(e);if(!c.length)return;if(d&&(a.alt=d),r&&l&&(r>=l&&(a.class?a.class+=" portrait":a.class="portrait"),"setDims"in i.hash&&(a.width=l,a.height=r)),c.length>1&&l&&l<e[c[c.length-1]]){let t=c.findIndex(t=>e[t]>=l);c.splice(t+1),e[c[c.length-1]]=l}c.length>1&&(n=c.map(t=>`${t} ${e[t]}w`).join(", "),c.sort((t,i)=>Math.abs(e[t]-1280)-Math.abs(e[i]-1280))),o=c[0]}delete a.setDims,n||delete a.sizes,"alt"in a||(a.alt=""),!("loading"in a)&&(i?.data?.root?.sectionIndex>1||r)&&(a.loading="lazy");let l=Object.keys(a).map(t=>`${e.escapeExpression(t)}="${e.escapeExpression(a[t])}"`).join(" ");return new e.SafeString(`<img src="${o}"${n?` srcset="${n}"`:""}${l?` ${l}`:""}>`)},bgImage:e=>e?"string"==typeof e?e:e.largeUrl||e.url||"":"",concat(...e){let t="";for(let i in e)null!==e[i]&&void 0!==e[i]&&"object"!=typeof e[i]&&(t+=e[i]);return t},setVideoExtension(e,t){if(!e||!t)return"";let i=new URL(e);if("res.cloudinary.com"!==i.host)return i.pathname.endsWith(`.${t}`)?e:"";let s=i.pathname.lastIndexOf("."),r=i.pathname;return -1!==s&&(r=i.pathname.substr(0,s)),i.pathname=`${r}.${t}`,i.toString()},addVideoSources(e){if(!e)return"";if(!e.includes("res.cloudinary.com"))return`<source data-src="${e}">`;let t=e.replace(/\.(?:3gp|mpeg|mp4|m4v|m4p|ogv|ogg|mov|webm)$/,"");return[{format:"webm",codec:"vp9",htmlCodecs:";codecs=vp9"},{format:"mp4",codec:"h265",htmlCodecs:";codecs=hvc1"},{format:"mp4",codec:"h264",htmlCodecs:""}].map(e=>{let i=`${t.replace(/f_auto(?::video)?(?:,q_auto(?::\w+)?)?/,`f_${e.format},vc_${e.codec},q_auto:best,w_1920,c_limit`)}.${e.format}`;return`<source data-src="${i}" type="video/${e.format}${e.htmlCodecs}">`}).join("\n")},cloudinaryVideoFirstFrame:i.getVideoFirstFrame,initials(e,t){if(!e)return"";t?.hash?.endChar&&(e=e.split(t.hash.endChar)[0]);let i=+t?.hash?.maxChars||2,s=e.match(/\b\w/g)?.slice(0,i);return s?(t?.hash?.addText&&(s=s.map(e=>e+t.hash.addText)),s.join(t?.hash?.joinWith||"").toUpperCase()):""},normalizePhone(e){if(!e)return"";let t=String(e).trim();return(t.startsWith("+")?"+":"")+t.replace(/\D/g,"")}}};class s{constructor(e,t,i){if(this.config=e,this.window=t,this.document=i,!this.destroy)throw Error("Controllers must implement a deconstructor")}}let r="lp_lead_form_conversion_fired";function a(e,t){if(e&&t&&"function"==typeof t.sendGoogleTagManagerEvent&&!function(e){try{return"true"===e.sessionStorage.getItem(r)}catch{return!1}}(e))try{t.sendGoogleTagManagerEvent("event","generate_lead");try{e.sessionStorage.setItem(r,"true")}catch{}}catch{}}function o(e){return!!e&&(!!e.expired||Date.now()>=e.expiresAt)}let n="/api/v1/home-valuation";class l 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 i=t.indexOf(", call time frame:");return -1!==i&&(t=t.substring(0,i).trim()),t}_transformAddressComponents(e){let t=t=>(e.find(e=>e.componentType===t)||{}).componentName?.text,i={},s=t("street_number"),r=t("route"),a=t("administrative_area_level_1"),o=t("postal_code"),n=t("subpremise"),l=t("locality")||t("sublocality_level_1")||t("neighborhood");return s&&(i.streetNumber=s),r&&(i.streetName=r),l&&(i.city=l),a&&(i.state=a),o&&(i.zipcode=o),n&&(i.addressLine2=n),i}_extractAddressAndCoordinates(e){let t=null,i=null;if(e?.result){let{result:s}=e;s.address?.addressComponents&&(t=this._transformAddressComponents(s.address.addressComponents)),s.geocode?.location&&(i={latitude:s.geocode.location.latitude,longitude:s.geocode.location.longitude})}return{structuredAddress:t,coordinates:i}}_filterEmptyStrings(e){let t={};for(let[i,s]of Object.entries(e))""!==s&&null!=s&&(t[i]=s);return t}_getRawAddress(e){let t=e.activity.content||{},i=e.activity.comments_attributes?.[0]?.text;return[t.address,t["property-address"],t.property_address,t.Property_Address,i,t.message,t.homeValuationAddress,t.propertyAddress].map(e=>e&&this._cleanAddressString(e)).find(Boolean)||""}_logLeadEvent(e,t,i=null){let s={event:e,companyId:this.config.companyId,websiteId:this.config.websiteId,timestamp:new Date().toISOString(),hasEmail:!!t.activity?.author_email,hasAddress:!!this._getRawAddress(t)};if(i&&(s.errorMessage=i.userMessage||(i.status?`Request failed with status ${i.status}`:"An error occurred"),s.errorName=i.name,s.errorStatus=i.status),console.error(`[HomeValuation] ${e}`,JSON.stringify(s)),this.window.posthog)try{this.window.posthog.capture(e,s)}catch(e){console.error("[HomeValuation] PostHog capture failed:",e)}}_getUserFriendlyErrorMessage(e){return"AbortError"===e.name||e.message?.includes("timeout")?"Connection timed out. Please try again.":"TypeError"===e.name&&e.message?.includes("fetch")?"Unable to connect. Please check your internet connection and try again.":503===e.status||502===e.status||504===e.status?"Service temporarily unavailable. Please try again in a moment.":400===e.status?"Please check your information and try again.":"Something went wrong. Please try again or c
1762ontact us directly."}_formatStructuredAddress(e){if(!e||0===Object.keys(e).length)return"";let t=[];return t.push([e.streetNumber,e.streetName,e.addressLine2].filter(Boolean).join(" ")),t.push([[e.city,e.state].filter(Boolean).join(", "),e.zipcode].filter(Boolean).join(" ")),t.filter(Boolean).join(", ")}_buildHomeValuationData(e,t,i,s){let r=this._formatStructuredAddress(i)||this._getRawAddress(e);if(!r)throw Error("Unable to extract home valuation address from form data");let a={companyId:e.companyId,homeValuationAddress:r,homeValuationEstimate:t?new Intl.NumberFormat("en-US",{style:"currency",currency:"USD",maximumFractionDigits:0,minimumFractionDigits:0}).format(t):null,websiteId:e.page.websiteId,sourceUrl:e.activity.source_url},o={leadEmailAddress:e.activity.author_email,leadFullName:e.activity.author_name,leadFirstName:e.activity.firstName,leadLastName:e.activity.lastName,leadPhoneNumber:e.activity.author_phone,parcelId:e.activity.content?.parcelId,resourceId:e.page.pageMeta?.resourceId,pageId:e.page.pageId,sourceResource:e.page.pageMeta?.s
1762ourceResource,pageElementId:e.page.pageMeta?.pageElementId,formId:e.page.pageMeta?.formId,utmSource:e.activity.content?.utm_source,utmMedium:e.activity.content?.utm_medium,utmCampaign:e.activity.content?.utm_campaign,utmTerm:e.activity.content?.utm_term,utmContent:e.activity.content?.utm_content,utmId:e.activity.content?.utm_id,timeToSell:e.activity.content?.timeToSell,lookingToBuy:e.activity.content?.lookingToBuy,consented:!!e.activity.content?.termsAccepted,referrer:e.referrer,content:e.activity.content||{},fields:e.fields||{}},n=this._filterEmptyStrings(o);return{...a,...n,...i&&{address:i},...s&&{coordinates:s}}}async _validateAddressSafely(e){if(!e)return console.error("Home valuation: No address found in form data"),null;try{return await this._validateAddressWithGoogleMaps(e)}catch(e){throw console.error("Error validating address with Google Maps:",e),e.userMessage=this._getUserFriendlyErrorMessage(e),e}}async _getHomeValuationEstimateSafely(e){try{return await this._getHomeValuationEstimate(e)}catch(e){throw console.error("Error getting home valuation estimate:",e),e.userMessage=this._getUserFriendlyErrorMessage(e),e}}_isSafeRedirectUrl(e){try{let{protocol:t}=new URL(e,this.window.location.href);return"https:"===t||"http:"===t}catch{return!1}}_parseResponsePayload(e){try{return e?JSON.parse(e):{}}catch{return{raw:e}}}_createResponseError(e,t){let i=Error(e&&"object"==typeof e&&Object.keys(e).length?e.message||JSON.stringify(e):"Request failed");return e&&"object"==typeof e&&Object.keys(e).length&&Object.assign(i,e),i.status=t,i}_resolveValuationApiBase(){let{config:e}=this;if(void 0!==e.valuationApiBase&&null!==e.valuationApiBase&&(""!==e.valuationApiBase||!e.isBuilder))return e.valuationApiBase;if(e.websiteApiGatewayUrl)return e.websiteApiGatewayUrl;throw Error("websiteApiGatewayUrl/valuationApiBase not configured for home valuation")}async _submitLead(e,t,i){let s=new AbortController,r=setTimeout(()=>s.abort(),1e4);try{let a=await fetch(e,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(t),signal:s.signal});clearTimeout(r);let n=await a.text(),l=this._parseResponsePayload(n);if(!a.ok)throw this._createResponseError(l,a.status);if(l&&"success"===l.status&&l.redirectUrl){if(o(i))return l;if(!this._isSafeRedirectUrl(l.redirectUrl))return console.error("Home valuation: refusing redirect to unsupported protocol"),l;return this.window.location.href=l.redirectUrl,{redirected:!0,url:l.redirectUrl}}return l}catch(e){throw clearTimeout(r),e}}async _submitHomeValuationRequest(e){let t=this._resolveValuationApiBase();this._logLeadEvent("home_valuation_submission_started",e);try{let i=this._getRawAddress(e),s=null;try{s=await this._validateAddressSafely(i)}catch(t){throw this._logLeadEvent("home_valuation_address_validation_failed",e,t),t}let r=null;try{r=await this._getHomeValuationEstimateSafely(s)}catch(t){this._logLeadEvent("home_valuation_estimate_failed",e,t),r=null}let{structuredAddress:a,coordinates:o}=this._extractAddressAndCoordinates(s),l=`${t}${n}`,d=this._buildHomeValuationData(e,r,a,o),c=await this._submitLead(l,d,e.deadline);return this._logLeadEvent("home_valuation_submission_success",e),c}catch(t){throw t.userMessage||(t.userMessage=this._getUserFriendlyErrorMessage(t)),this._logLeadEvent("home_valuation_submission_failed",e,t),t}}async _validateAddressWithGoogleMaps(e){let{config:t,window:i}=this,s=t.googleMapsAPIKey;if(!s&&i.luxuryPresence?.mapApiLoader&&(s=await i.luxuryPresence.mapApiLoader.getMapApiKey()),!s)throw Error("Google Maps API key not configured");let r=new AbortController,a=setTimeout(()=>r.abort(),1e4);try{let t=await fetch(`https://addressvalidation.googleapis.com/v1:validateAddress?key=${s}`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({address:{addressLines:[e]},enableUspsCass:!1}),signal:r.signal});if(clearTimeout(a),!t.ok){let e=Error(`Address validation failed: ${t.status}`);throw e.status=t.status,e}return t.json()}catch(e){throw clearTimeout(a),e}}_hasMandatoryAddressFields(e){return!!(e.streetNumber&&e.streetName&&e.city&&e.state&&e.zipcode)}_logMissingAddressFields(e){let t=[];e.streetNumber||t.push("streetNumber"),e.streetName||t.push("streetName"),e.city||t.push("city"),e.state||t.push("state"),e.zipcode||t.push("zipcode"),console.log("Home valuation estimate skipped - missing required fields:",t.join(", "),"Available fields:",Object.keys(e).join(", "))}_buildAddressQueryString(e){return Object.entries(e).map(([e,t])=>`${encodeURIComponent(e)}=${encodeURIComponent(t)}`).join("&")}async _getHomeValuationEstimate(e=null){let t=`${this._resolveValuationApiBase()}${n}`;if(!e?.result?.address?.addressComponents)return null;let i=this._transformAddressComponents(e.result.address.addressComponents);if(!this._hasMandatoryAddressFields(i))return this._logMissingAddressFields(i),null;let s=this._buildAddressQueryString(i),r=`${t}?${s}`,a=new AbortController,o=setTimeout(()=>a.abort(),1e4);try{let e=await fetch(r,{headers:{Accept:"application/json"},signal:a.signal});if(clearTimeout(o),!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(o),e}}}let d="middleName",c="redirect-pending",u=["name","firstName","lastName",d,"email","phone","phoneNumber","source","message","mlsId","sourceUrl"],h="lp_map_key_failed",p="oauthSuccess",m={cookieyes:{eventName:"cookieyes_consent_update",hasAnalyticsConsent:e=>(function(e){let t=e.cookie.match(/cookieyes-consent=([^;
1762]+)/);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 g(e){return"object"==typeof e&&null!==e&&!Array.isArray(e)}function y(e,t){t.forEach(t=>{let i=e[t];Array.isArray(i)&&0===i.length&&delete e[t]})}function f(e,t,i,s){let r=t.map(t=>(function e(t){return Array.isArray(t)?t.flatMap(t=>e(t)):"string"==typeof t?t.split(/\s+/).filter(Boolean):null==t?[]:[t]})(e[t])),a=s?.merge?r.flat():r.find(e=>e.length>0)??[];t.forEach(t=>{delete e[t]}),a.length>0&&(e[i]=[...new Set(a)])}function v(e){let t={...e};if(t.urlWebsite||(t.urlWebsite=null),t.urlYoutube=null,t.urlFacebook=null,t.urlInstagram=null,t.urlLinkedin=null,t.urlPodcast=null,t.urlTwitter=null,Array.isArray(e.socialLinks)){let i=[...e.socialLinks].sort((e,t)=>{let i=e.type?.toLowerCase()||"",s=t.type?.toLowerCase()||"";return i.localeCompare(s)});t.socialLinks=i;let s={youtube:"urlYoutube",facebook:"urlFacebook",instagram:"urlInstagram",linkedin:"urlLinkedin",podcast:"urlPodcast",twitter:"urlTwitter"};i.forEach(e=>{let i=s[e.type?.toLowerCase()??""];i&&(t[i]=e.link)})}return t}function w(e){return e&&Array.isArray(e)?e.map(e=>v(e)):e}function b(e){let{region:t}=e;if(!g(t))return e;let{schools:i,pois:s,...r}=t,a={...r,schools:g(i)?i.data??[]:[],...Array.isArray(s)?{pois:s.map(e=>({...e,category:"string"==typeof e.category?e.category.toUpperCase():e.category}))}:{}};return{...e,region:a}}function S(e){return e&&Array.isArray(e)?e.map(e=>b(e)):e}function _(e){let t=e.featuresAndAmenities;if(!Array.isArray(t))return e;let i=t.map(e=>({featureIds:e.featureIds??[],features:e.features??[],description:e.description}));return{...e,featuresAndAmenities:i}}function E(e){return e&&Array.isArray(e)?e.map(e=>_(e)):e}function I(e,t){return g(e)?t(e):e}function A(e,t){return Array.isArray(e)?t(e):e}var L={};L=` 1763 query PropertyDisclaimers($input: PropertyDisclaimersInput!) { 1764 propertyDisclaimers(input: $input) { 1765 feedId 1766 listingId 1767 resolvedFromListing 1768 listingCardAttribution 1769 listingDetailCourtesy 1770 listingDetailFooter 1771 logo 1772 } 1773 } 1774`;let $={mlsAttribution:"listingCardAttribution",mlsLogo:"logo",listingDetailCourtesy:"listingDetailCourtesy",listingDetailFooter:"listingDetailFooter"},x=new class{constructor(e){this.isBuilder=!1,this.companyId=null,this.websiteId=null,this.pageId=null,this.shareId=null,this.pageMeta=null,this.websiteApiGatewayUrl=null,this.buyerSellerServiceUrl=null,this.leadIngesterUrl=null,this.divolteServiceUrl=null,this.eventBus=null,this.templateId=null,this.myhomeDashboardEnabled=!1,this.mlsEnabled=!1,this.hstValuationRedirectEnabled=!1,this.hvStepTwoCaptureEnabled=!1,this.googleMapsAPIKey=null}get valuationApiBase(){return this.isBuilder?this.websiteApiGatewayUrl:""}destroy(){}setPage(e,t={}){this.pageId=e,this.shareId=t.shareId||null,this.pageMeta={sourceResource:t.sourceResource,pageElementId:t.pageElementId,pageQueryVariables:t.pageQueryVariables||{}}}setIsBuilder(e){this.isBuilder=e}setCompany(e,t={}){this.companyId=e}setWebsite(e,t={}){this.websiteId=e,t.myhomeDashboardEnabled&&(this.myhomeDashboardEnabled=t.myhomeDashboardEnabled),t.mlsEnabled&&(this.mlsEnabled=t.mlsEnabled),t.hstValuationRedirectEnabled&&(this.hstValuationRedirectEnabled=t.hstValuationRedirectEnabled),t.hvStepTwoCaptureEnabled&&(this.hvStepTwoCaptureEnabled=t.hvStepTwoCaptureEnabled)}setWebsiteApiGatewayUrl(e,t={}){this.websiteApiGatewayUrl=e}setBuyerSellerServiceUrl(e,t={}){this.buyerSellerServiceUrl=e}setDivolteServiceUrl(e,t={}){this.divolteServiceUrl=e}setEventBusUrl(e,t={}){this.eventBusUrl=e}setTemplateId(e,t={}){this.templateId=e}setLeadIngesterUrl(e,t={}){this.leadIngesterUrl=e}setGoogleMapsAPIKey(e,t={}){this.googleMapsAPIKey=e}setEventBus({enabled:e,apiKey:t,url:i}){this.eventBus={enabled:e,apiKey:t,url:i}}}({}),T=new class extends s{constructor(e,t,i){super(e,t,i),this.setLoginState=this.setLoginState.bind(this),this.pageId=null,this.modals=[],this.exitModalTriggered={},this.exitModalEventListeners=[]}initialize(e){try{let{config:t,document:i}=this;this.pageId=t.pageId,this.modals=i.querySelectorAll("body > #modals >
1774 .modal"),e.modals.forEach(e=>{this._attachModalHandler(e)})}catch(e){console.log(e)}}destroy(){let{document:e}=this;this.exitModalEventListeners.forEach(t=>{e.removeEventListener("mouseout",t)}),this.modals=[],this.exitModalTriggered={},this.exitModalEventListeners=[]}setModalWithExpiry(e){let{window:t}=this,i=new Date().getTime()+864e5,s=`modal-controller-${e}`;try{t.localStorage.setItem(s,JSON.stringify(i))}catch(e){}}setLoginState(){let{window:e}=this;try{e.localStorage.setItem("isSignedUp","true")}catch(e){}}getModalWithExpiry(e){let{window:t}=this,i=t.localStorage,s=i.getItem(`modal-controller-${e}`);if(!s)return!1;let r=JSON.parse(s);return!(new Date().getTime()>r)||(i.removeItem(`modal-controller-${e}`),!1)}show(e,t={}){let{window:i}=this,s=this.getModalWithExpiry(e);(e&&!s||!0===t.forced)&&(i.lpUI.showModal(`modal-${e}`,t),this.setModalWithExpiry(e))}_attachModalHandler(e){let{pageId:t}=this,{trigger:i,pageSpecific:s}=e;(!s||e.pages.map(e=>e.pageId).includes(t))&&("EXIT"===i?this._exitModalHandler(e):"TIMER"===i?this._timerModalHandler(e):"FORCED"===i&&this._forcedModalHandler(e))}_exitModalHandler(e){let t=this,{document:i,exitModalTriggered:s}=this,{modalId:r}=e;function a(e){!s[r]&&(e.toElement||e.relatedTarget||(t.show(r),s[r]=!0))}i.addEventListener("mouseout",a),this.exitModalEventListeners.push(a)}_timerModalHandler(e){let{modalId:t,timerDelay:i}=e;setTimeout(()=>{this.show(t)},i)}_forcedModalHandler(e){let{modalId:t}=e,{window:i,document:s}=this;if("true"!==i.localStorage.getItem("isSignedUp")){let e=s.querySelector(`#modal-${t}`),r=e?.querySelector("form"),a=r?.dataset.delay||2e3;r.addEventListener("formsubmitted",()=>{this.setLoginState()}),i.addEventListener("oauthSuccess",()=>{this.setLoginState(),r.classList.add("success"),setTimeout(()=>{i.lpUI.hideModal(`modal-${t}`),r.reset(),r.classList.remove("success")},a)}),this.show(t,{forced:!0})}}}(x,window,document),C=new class extends s{constructor(e,t,i){super(e,t,i),this._boundClickHandler=this._buttonClickHandler.bind(this)}initialize(e={}){try{let{document:e}=this;e.body.removeEventListener("click",this._boundClickHandler),e.body.addEventListener("click",this._boundClickHandler)}catch(e){console.error(e)}}destroy(){let{document:e}=this;e.body.removeEventListener("click",this._boundClickHandler)}_buttonClickHandler(e){this._handleButtonClick(e).catch(e=>console.error(e))}async _handleButtonClick(e){let{window:t,document:i}=this,s=e.target.closest("button, a");if(!s)return;let r=s.dataset.type||"",a=s.href||s.dataset.href||"",o=s.target||"",{submit:n}=s.dataset;if(n){try{await this._handleSubmit(s)}catch(e){console.error(e)}((e,t=!1)=>{if(e){if(t)return window.open(e);window.location.assign(e)}})(a,"_blank"===o)}if(this._trackConversion(s),"VIDEO"===r)return void this._handleVideoButton(s);if("CONTACT_US"===r)return void this._handleContactUsButton(s);if("SUBSCRIBE"===r)return void t.lpUI.showModal("modal-global-subscribe");if("MY_ACCOUNT"===r)return void t.lpUI.showModal("modal-global-my-account");if("SHARE_POPUP"===r){let t=s.querySelector(".share-popup");t&&(t.style.display="flex"),e.stopPropagation();return}if("MODAL_"===r.substring(0,6)){let e=r.substring(6);t.lpUI.showModal(`modal-${e}`);return}if(a?.startsWith("mailto:")){let e=a.substring(7);i.sendGoogleAnalyticsEvent({hitType:"event",eventCategory:"button",eventAction:"click",eventLabel:"Email",eventValue:e})}else if(a?.startsWith("tel:")){let e=a.substring(4);i.sendGoogleAnalyticsEvent({hitType:"event",eventCategory:"button",eventAction:"click",eventLabel:"Phone",eventValue:e})}}async _handleSubmit(e){let t=e.closest("form"),{window:i}=this;return t?await i.luxuryPresence.contactForms.submitForm(t):null}_getVimeoSrc(e){if(!e||!e.includes("vimeo.com")||e.length>2e3)return null;let t=e.match(/(?:(?:www\.)?vimeo\.com\/(?:showcase\/\d+(?:\/video\/|\?video[=/])|channels\/(?:\w+\/)?|groups\/(?:[^/]*)\/videos\/|)|player\.vimeo\.com\/video\/)(\d+)(?:(?:\?.*&*h=|\/)+([\d,a-f]+))?/);if(!t)return null;let[,i,s]=t,r=`https://player.vimeo.com/video/${i}?`;return s&&(r+=`h=${s}&`),r+="autoplay=1"}_handleVideoButton(e){let{document:t}=this,i=e.closest("section"),{src:s}=e.dataset,r="";if(s&&(s.includes("youtube.com")||s.includes("youtu.be"))&&!s.includes("youtube.com/embed")){let e=s.match(/(?:youtube\.com\/\S*(?:(?:\/e(?:mbed))?\/|watch\?(?:\S*?&?v=)
1774)|youtu.be\/)([a-zA-Z0-9_-]{6,11})/);e&&(r=e[1])}let a=this._getVimeoSrc(s);if(r?s=`https://youtube.com/embed/${r}?autoplay=1&controls=0`:a&&(s=a),!s||!i)return;let o=s.endsWith(".mp4")||s.endsWith(".webm")||s.includes("cloudinary.com"),n=` 1775 <div id="modal-${i.id}" class="modal visible"> 1776 <div class="modal-content"> 1777 <div class="lightbox-video"> 1778 <div class="video-player"> 1779 <div class="embed-container"> 1780 ${o?`<video controls autoplay src="${s}"></video>`:`<iframe frameborder="0" allowfullscreen="1" allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture" title="YouTube video player" width="100%" height="100%" src="${s}"></iframe>`} 1781 </div> 1782 </div> 1783 </div> 1784 </div> 1785 <button class="close lp-close" type="button" aria-label="close modal"><span class="lp-close-icon" aria-hidden="true"></span></button> 1786 </div> 1787 `;t.body.insertAdjacentHTML("beforeend",n);let l=t.getElementById(`modal-${i.id}`);l.querySelector(".close").addEventListener("click",()=>{l.remove()})}_handleContactUsButton(e){let{window:t,document:i}=this;i.sendGoogleAnalyticsEvent({hitType:"event",eventCategory:"button",eventAction:"click",eventLabel:"contact"}),t.lpUI.showModal("modal-global-contact-us",{scrollLock:!0})}_trackConversion(e){let{window:t,document:i}=this,{gtagConversionId:s,gtagConversionLabel:r,fbEventName:a}=e.dataset;if(s&&r){t.dataLayer&&t.dataLayer.length&&(t.dataLayer.some(e=>e.length&&"config"===e[0]&&e[1]===s)||i.sendGoogleTagManagerEvent("config",s));let e=`${s}/${r}`;i.sendGoogleTagManagerEvent("event","conversion",{send_to:e})}t.fbq&&a&&t.fbq("track",a,{})}}(x,window,document),k=new class extends s{constructor(e,t,i){super(e,t,i),this.validatedForms=[]}initialize(e={}){try{let{window:t,document:i}=this,{selector:s}=e,r=[];if(r=s?i.querySelectorAll(`${s} form[data-type="contact-form"]`):i.querySelectorAll('form[data-type="contact-form"]'),i.querySelectorAll('input[type="tel"]').length&&!t.libphonenumber&&t?.luxuryPresence?.libs){let{loadJs:e,jsLibsMap:i}=t.luxuryPresence.libs,{libphonenumber:s}=i;e(s.jsSrc,this.attachValidation.bind(this,r))}else this.attachValidation(r);this.validatedForms=this.validatedForms.concat(r)}catch(e){console.log(e)}}destroy(){this.validatedForms=[]}attachValidation(e){e.forEach(e=>{e.querySelectorAll("input, select, textarea").forEach(e=>{this.applyFieldValidation(e)})})}applyFieldValidation(e){"tel"===e.getAttribute("type")&&this._applyPhoneValidation(e)}_applyPhoneValidation(e){let{window:t}=this;if(t.libphonenumber){let i=t.libphonenumber.isValidPhoneNumber;e.addEventListener("keyup",function(){if(this.hasAttribute("required")||this.value.replace(/\s/g,"").length)try{let e=this.value;i(e,"US")?this.setCustomValidity(""):this.setCustomValidity("Please enter a valid phone number.")}catch(e){this.setCustomValidity("Please enter a valid phone number.")}else this.setCustomValidity("")})}}}(x,window,document),M=new class extends s{constructor(e,t,i){super(e,t,i),this.forms=[],this.homeValuationService=new l(e,t,i)}initialize(e={}){try{let{document:t}=this,{selector:i}=e,s=[];(s=i?t.querySelectorAll(`${i} form[data-type="contact-form"]`):t.querySelectorAll('form[data-type="contact-form"]')).forEach(e=>{this._attachSubmitHandler(e)}),this.forms=this.forms.concat(s)}catch(e){console.log(e)}}destroy(){this.forms=[]}submitForm(e){this._handleSubmit(null,e).catch(e=>console.error(e))}_attachValidation(e){let{window:t}=this;e.querySelectorAll("input, select, textarea").forEach(e=>{t.luxuryPresence.validation.applyFieldValidation(e)})}_attachSubmitHandler(e){e.addEventListener("submit",t=>this._handleSubmit(t,e))}_extractFormValues(e){let t=new FormData(e),i={},s=[],r=/^name(?:-\d+)?$/;return t.forEach((e,t)=>{if("string"==typeof e){let a=e.trim();r.test(t)&&a&&s.push(a);let o=i[t];i[t]=o?`${o} ${a}`:a}else i[t]=e}),s.length?i.name=s.join(" ").trim():!i.name&&i.firstName&&(i.name=i.firstName,i.lastName&&(i.name+=` ${i.lastName}`)),this._deriveNameParts(i)}_deriveNameParts(e){if(e.firstName||!e.name)return e;let t=e.name.indexOf(" ");return -1===t?{...e,firstName:e.name}:{...e,firstName:e.name.slice(0,t),lastName:e.lastName||e.name.slice(t+1).trim()}}_buildSubmissionData(e,t,i){let{window:s,config:r}=this,a=Object.keys(e).filter(e=>!u.includes(e)).reduce((t,i)=>(t[i]=e[i],t),{}),{pageId:o,companyId:n,websiteId:l,pageMeta:d}=r,c=s.localStorage.getItem("utm_vars")||"{}",h=s.localStorage.getItem("referrer")||"",p=this._getFormId(i);return{activity:{author_email:e.email,author_name:e.name,firstName:e.firstName||void 0,lastName:e.lastName||void 0,author_phone:e.phone||e.phoneNumber,activity_source:e.source||"CONTACT_INQUIRY",comments_attributes:[{text:e.message||void 0}],source_url:s.location.href,content:{...a,...JSON.parse(c)}},page:{pageId:o,companyId:n,websiteId:l,pageMeta:{...d,formId:p}},companyId:n,referrer:h,fields:t}}_handleSubmissionSuccess(e){let{window:t}=this,i=e.dataset.delay||2e3;e.classList.remove("loading"),e.classList.remove("error"),e.classList.add("success"),e.querySelectorAll(".success").forEach(e
1787=>e.classList.remove("hide")),e.dispatchEvent(new Event("formsubmitted")),setTimeout(()=>{t.lpUI.hideClosestModal(e),e.reset(),t.lpUI.sideMenuHide(),e.querySelectorAll(".success").forEach(e=>e.classList.add("hide")),e.classList.remove("success")},i)}async _handleSubmit(e,t){if(e&&e.preventDefault(),!t.classList.contains("loading")){this._hideSubmissionError(t),t.classList.remove("error"),t.classList.add("loading");try{let e=this._extractFormValues(t);if(e.middleName)return void t.classList.remove("loading");let i=this._getFields(t),s=this._buildSubmissionData(e,i,t);a(this.window,this.document);let r=await this._waitForLeadSubmit(e=>this._submitLeadRequest(s,e));if(this._sendGAEvent(s),r?.redirected)return void this._showRedirectPending(t);this._handleSubmissionSuccess(t)}catch(e){console.error("Form submission failed:",e),t.dispatchEvent(new Event("formsubmiterror")),t.classList.remove("loading"),t.classList.add("error"),e.userMessage?this._showSubmissionError(t,e.userMessage):this._showSubmissionError(t,"Something went wrong. Please try again.")}}}async _waitForLeadSubmit(e){let t,i={expired:!1,expiresAt:Date.now()+6e3},s=new Promise(e=>{t=setTimeout(()=>{i.expired=!0,e(null)},6e3)}),r=e(i).catch(e=>{if(o(i))return null;throw e});try{return await Promise.race([r,s])}finally{clearTimeout(t)}}_showRedirectPending(e){if(e.classList.add(c),e.querySelector(`.${c}__indicator`))return;let t=this.document.createElement("div");t.className=`${c}__indicator`,t.setAttribute("role","status"),t.setAttribute("aria-label","Loading"),t.innerHTML='<span class="lp-i lp-i--spinner lp-i--pulse" aria-hidden="true"></span>',e.appendChild(t)}_aliasUserWithEventBus(e){try{if(!this.window.eventBusProvider?.alias||!this.window.eventBusProvider?.isIdentified||!this.window.eventBusProvider?.getDistinctId||!this.window.LuxuryPresenceEventBus?.generateUUIDv5FromCompanyEmail)return;if(this.window.eventBusProvider.isIdentified())return void console.log("[EventBus] User already identified, skipping alias");let t=e.activity?.author_email,{companyId:i}=this.config;if(!t||!i)return void console.warn("[EventBus] Missing required data for user alias");let s=this.window.eventBusProvider.getDistinctId();if(!s)return void console.warn("[EventBus] No anonymous ID available for alias");let r=this.window.LuxuryPresenceEventBus.generateUUIDv5FromCompanyEmail(i,t);this.window.eventBusProvider.alias({anonId:s,canonicalId:r}),console.log("[EventBus] User aliased with canonical ID")}catch(e){console.error("[EventBus] User alias failed:",e)}}async _submitLeadRequest(e,t){let{config:i}=this;return(this._aliasUserWithEventBus(e),i.myhomeDashboardEnabled&&(e.activity?.activity_source==="HOME_VALUATION"||e.activity?.activity_source==="HOME_VALUE"))?this.homeValuationService._submitHomeValuationRequest({...e,deadline:t}):fetch(`${i.leadIngesterUrl}/api/v1/leads`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(e)}).then(e=>e.ok?e.json():e.json().then(e=>{throw e}))}_sendGAEvent(e){let{document:t}=this,i={hitType:"event",eventCategory:"button",eventAction:"click"};switch(e.activity.activity_source){case"NEWSLETTER_SIGNUP":i.eventLabel="Newsletter",t.sendGoogleTagManagerEvent("event","newsletter_signup");break;case"HOME_SEARCH":i.eventLabel="HomeSearch",t.sendGoogleTagManagerEvent("event","home_search");break;case"HOME_VALUE":case"HOME_VALUATION":i.eventLabel="HomeValue",t.sendGoogleTagManagerEvent("event","home_valuation");break;case"EBOOK":i.eventLabel="Ebook",t.sendGoogleTagManagerEvent("event","ebook_download");break;default:i={hitType:"pageview",page:"/thank-you"},t.sendGoogleTagManagerEvent("event","contact_inquiry")}t.sendGoogleAnalyticsEvent(i)}_getFields(e){let t=e.querySelectorAll("input, select, textarea"),i={};return t.forEach(t=>{let{id:s,name:r,type:a}=t;if(r===d)return!0;let o="";if(s){let i=e.querySelector(`label[for='${s}']`);i?o=i.textContent.trim():t.placeholder&&(o=t.placeholder.trim())}i[r]={label:o,type:t.tagName,inputType:"INPUT"===t.tagName?a:"text"}}),i}_getFormId(e){let t=e.closest("section[id^='section-'], footer[id], .modal[id^='modal-']");return t?.id?this._cleanFormId(t.id):""}_cleanFormId(e){for(let t of["section-","modal-"])if(e.startsWith(t))return e.substring(t.length);return e}_showSubmissionError(e,t){let i=e.querySelector(".submission-error-message");i||((i=this.document.createElement("div")).className="submission-error-message",i.setAttribute("role","alert"),e.appendChild(i)),i.textContent=t||"Something went wrong. Please try again.",i.style.display="block"}_hideSubmissionError(e){let t=e.querySelector(".submission-error-message");t&&(t.style.display="none")}}(x,window,document),P=new class extends s{constructor(e,t,i){super(e,t,i),this.retries=3,this.callbacks=[],this.id=`__googleMapsScriptId${Date.now()}`,this._apiKey="",this.reset()}set apiKey(e){this._apiKey=e,this.config.setGoogleMapsAPIKey(e)}get apiKey(){return this._apiKey}reset(){this.deleteScript(),this.done=!1,this.loading=!1,this.failed=!1,this.errors=[],this.onerrorEvent=null}destroy(){this.reset()}async getMapApiKey(){if(this.apiKey)return this.apiKey;let e=this._hadPreviousFailure(),t=!1;for(let i=1;i<=3;i+=1){let s=e&&!t;try{let e=await fetch(this._getMapKeyUrl(i,s));if(t=t||s,this._setFailureFlag(!1),!e.ok)throw Error(`Failed to fetch API key: ${e.status}`);let r=await e.text();if(!r)return"";return this.apiKey=r,this.apiKey}catch(e){console.error(e),i<3&&await this._delay(300*2**(i-1))}}return this._setFailureFlag(!0),""}_getMapKeyUrl(e,t){let i=[];e>1&&i.push(`attempt=${e}`),t&&i.push("recovered_after_failure=1");let s=i.length?`?${i.join("&")}`:"";return`${this._getBaseUrl()}/api/v1/map${s}`}_hadPreviousFailure(){try{return"1"===this.window.sessionStorage.getItem(h)}catch(e){return!1}}_setFailureFlag(e){try{e?this.window.sessionStorage.setItem(h,"1"):this.window.sessionStorage.removeItem(h)}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");
1787let t="https://maps.googleapis.com/maps/api/js";return t+`?callback=__googleMapsCallback&key=${e}&libraries=places`}async setScript(){let e;if(this.document.getElementById(this.id))return void this.callback();try{e=await this.createUrl()}catch(e){console.error(e),this.failed=!0,this.loading=!1,this.onerrorEvent=e,this.callback();return}let t=this.document.createElement("script");t.id=this.id,t.type="text/javascript",t.src=e,t.onerror=this.loadErrorCallback.bind(this),t.defer=!0,t.async=!0,this.document.head.appendChild(t)}loadErrorCallback(e){if(this.errors.push(e),this.errors.length<=this.retries){let e=this.errors.length*2**this.errors.length;console.log(`Failed to load Google Maps script, retrying in ${e} ms.`),setTimeout(()=>{this.deleteScript(),this.setScript().catch(e=>console.error(e))},e)}else this.failed=!0,this.onerrorEvent=e,this.callback()}deleteScript(){let e=this.document.getElementById(this.id);e&&e.remove()}load(){return this.loadPromise()}loadPromise(){return new Promise((e,t)=>{this.loadCallback(i=>{i?t(i):e()})})}loadCallback(e){this.callbacks.push(e),this.execute()}setCallback(){this.window.__googleMapsCallback=this.callback.bind(this)}resetIfRetryingFailed(){this.failed&&this.reset()}callback(){this.done=!0,this.loading=!1,this.callbacks.forEach(e=>{e(this.onerrorEvent)}),this.callbacks=[]}execute(){this.window.google&&this.window.google.maps&&this.window.google.maps.version&&this.callback(),this.resetIfRetryingFailed(),this.done?this.callback():this.loading||(this.loading=!0,this.setCallback(),this.setScript().catch(e=>console.error(e)))}_getBaseUrl(){let{isBuilder:e,websiteApiGatewayUrl:t}=this.config;return e?t:""}resizeStaticMapDimensions(e,t){if(e<=1024&&t<=1024)return{width:e,height:t};let i=Math.min(1024/e,1024/t);return{width:parseInt(e*i),height:parseInt(t*i)}}convertThemeToStaticApiUrl(e){return e.map(e=>{let t=e.stylers.reduce((e,t)=>{let i=t.visibility?`visibility:${t.visibility}`:"",s=t.color?`color:${t.color.replace("#","0x")}`:"",r=t.lightness?`lightness:${t.lightness}`:"";return`${e}|${i}${s}${r}`},""),i=e.elementType?`|element:${e.elementType}`:"";return`feature:${e.featureType}${i}${t}`})}async getMapApiSignedUrl(e){try{let t=await fetch(`${this._getBaseUrl()}/api/v1/map/signature?${e}`);if(!t.ok)throw Error("Failed to fetch signed URL");let{url:i}=await t.json();return i}catch(e){return console.error(e),""}}generateStaticMapUrl(e,t,i,s,r,a){let{width:o,height:n}=this.resizeStaticMapDimensions(r,a),l={center:`${e},${t}`,zoom:i,scale:2,size:`${o}x${n}`,key:this.apiKey};s&&(l.style=this.convertThemeToStaticApiUrl(s));let d=new URLSearchParams;return Object.entries(l).forEach(([e,t])=>{Array.isArray(t)?t.forEach(t=>d.append(e,t.toString())):d.append(e,t.toString())}),`https://maps.googleapis.com/maps/api/staticmap?${d.toString()}`}async generateDigitallySignedStaticMapUrl({srcWidth:e,srcHeight:t,theme:i,...s}){let{width:r,height:a}=this.resizeStaticMapDimensions(e,t),o={...s,size:`${r}x${a}`};i&&(o.style=this.convertThemeToStaticApiUrl(i));let n=new URLSearchParams;Object.entries(o).forEach(([e,t])=>{Array.isArray(t)?t.forEach(t=>n.append(e,t.toString())):n.append(e,t.toString())});let l=n.toString();try{return await this.getMapApiSignedUrl(l)}catch(e){return console.error(e),""}}}(x,window,document),U=new class extends s{destroy(){}updateQueryString(e,t,i){i||(i=this.window.location.href);let s=RegExp(`([?&])${e}=.*?(&|#|$)`,"i"),r="";null!=t&&(Array.isArray(t)?t.length&&(r=this.serializeArray(e,t)):"object"==typeof t?(s=RegExp(`([?&])${e}\\[[^=]*\\]=.*?(&|#|$)`,"i"),r=this.serializeObj(t,"",e)):r=`${e}=${encodeURIComponent(t)}`);let a=i.split("#"),o=a[0];if(s.test(i)){let e=o;for(r=r?`$1${r}$2`:"$1";s.test(e);)o=e.replace(s,r),e=e.replace(s,"$1");o=o.replace(/(&|\?)$/,"")}else if(r){let e=-1!==o.indexOf("?")?"&":"?";o+=`${e}${r}`}return void 0!==a[1]&&null!==a[1]&&(o+=`#${a[1]}`),o}getParameterByName(e,t){t||(t=this.window.location.href),e=e.replace(/[[\]]/g,"\\$&");let i=RegExp(`[?&]${e}(=([^&#]*)|&|#|$)`),s=Array.from(RegExp.prototype[Symbol.matchAll].call(i,t)).flat();if(!s.length){let i=RegExp(`[?&]${e}(\\[.*?\\])=(.*?)(?=&|#|$)`,"g");return s=Array.from(RegExp.prototype[Symbol.matchAll].call(i,t)).flat(),this._parseParamToObject(s,"advancedFilters"===e)}return s.length>3?s.reduce((e,t,i)=>((i+1)%3==0&&e.push(decodeURIComponent(t.replace(/\+/g," "))),e),[]):s[2]?decode
1787URIComponent(s[2].replace(/\+/g," ")):""}makePageKey(e){return e.replace("section-","").replace(/-/g,"")}makeParamKey(e,t){return e.global?e.urlKey:`${t}-${e.urlKey}`}deserializeParams(e,t){let i={},s=this.makePageKey(t),r=this.getParameterByName(s);return r&&(i.page=parseInt(r)),Array.isArray(e)&&e.forEach(e=>{let t=this.makeParamKey(e,s),r=this.getParameterByName(t);if("int"===e.type)isFinite(r=parseInt(r))||(r=null);else if("bool"===e.type||"boolean"===e.type)r="true"===r||"false"!==r&&null;else if("json"===e.type)try{r=JSON.parse(r)}catch(e){}i[e.formKey||e.param]=r}),i}serializeParams(e,t,i){let s=this.window.location.href,r=this.makePageKey(t);return s=this.updateQueryString(r,i.page,s),Array.isArray(e)&&e.forEach(e=>{let t=this.makeParamKey(e,r),a=i[e.formKey||e.param];"json"===e.type&&null!=a&&(a=JSON.stringify(a)),s=this.updateQueryString(t,a,s)}),s}formatSliderAtom(e,t=""){return t+(Number.isInteger(e)?e:e.toFixed(2))}formatSliderValue(e,t="",i=""){return e<1e3?this.formatSliderAtom(e,t):e<1e6?`${this.formatSliderAtom(e/1e3,t)}${i}K`:`${this.formatSliderAtom(e/1e6,t)}${i}M`}formatSliderPriceRange(e,t,i,s){return t.min===e&&0!==e?`${s.lowPrefix}${this.formatSliderValue(e,i," ")}`:t.max===e?`${this.formatSliderValue(e,i," ")}${s.highSuffix}`:`${this.formatSliderValue(e,i," ")}`}formatSliderAreaRange(e,t,i,s){return t.min===e&&0!==e?`${s.lowPrefix}${this.formatSliderValue(e)} ${i}`:t.max===e?`${this.formatSliderValue(e)}${s.highSuffix} ${i}`:`${this.formatSliderValue(e)} ${i}`}getSearchFormValues(e){let{queryElement:t,priceSliderElement:i,areaSliderElement:s,neighborhoodSelect:r}=e,a={};if(t&&(a.search=t.value||null),i){let e=i.value.split(";"),t=parseInt(i.dataset.min),s=parseInt(i.dataset.max),r=parseInt(e[0]),o=parseInt(e[1]);a.priceMin=r!==t?r:null,a.priceMax=o!==s?o:null}if(s){let e=s.value.split(";"),t=parseInt(s.dataset.min),i=parseInt(s.dataset.max),r=parseInt(e[0]),o=parseInt(e[1]);a.areaMin=r!==t?r:null,a.areaMax=o!==i?o:null}return r&&(a.neighborhoodId=r.value||null),a}serializeObj(e,t="",i=""){let s=[];for(let r in e)if(e.hasOwnProperty(r)){let a,o=e[r];if(i){let e=t?`[${t}][${r}]`:`[${r}]`;a=`${i}${e}`}else a=t?`${t}[${r}]`:r;null!==o&&Array.isArray(o)?o.length&&s.push(this.serializeArray(a,o)):null!==o&&"object"==typeof o?s.push(this.serializeObj(o,a)):s.push(`${a}=${encodeURIComponent(o)}`)}return s.join("&")}serializeArray(e,t,i=""){let s=[];return t.forEach(t=>{let r=i?`${i}${e}`:e;s.push(`${r}=${encodeURIComponent(t)}`)}),s.join("&")}_parseParamToObject(e,t=!1){if(!e.length)return null;let i={};for(let s=0;s<e.length;s++)if((s+1)%3==0){let r=decodeURIComponent(e[s].replace(/\+/g," ")),a=e[s-1];Object.assign(i,this._setObjectPath(a,r,i,t))}return i}_setObjectPath(e,t,i,s=!1){let r=e.split(/[\[\]]/).filter(Boolean),a=["in","nin","btw","ciin","cinin"],o={},n=o,l=((e,t,i)=>{if(!t)return;let s=(Array.isArray(t)?t:t.match(/([^[.\]])+/g)).reduce((e,t)=>e&&e[t],e);return void 0===s?i:s})(i,r.join("."));return r.forEach((e,o)=>{o===r.length-1?l?n[e]=Array.isArray(l)?[...l,t]:[l,t]:n[e]=s&&a.includes(e)?[t]:t:(n[e]=i[e]?i[e]:{},n=n[e])}),o}}(x,window,document),N=new class extends s{constructor(e,t,i){super(e,t,i),this._createLightbox=this._createLightbox.bind(this),this.expandSliders=[]}initialize(e={}){try{let{document:e}=this,t=e.querySelectorAll(".has-mobile-expand");t.forEach(e=>{this._addExpandButton(e)}),this.expandSliders=this.expandSliders.concat(t)}catch(e){console.log(e)}}destroy(){let{document:e}=this;e.querySelectorAll(".lp-expand-btn, .lp-expand-btn-wrapper").forEach(e=>e.remove()),this.expandSliders=[]}_addExpandButton(e){let{document:t}=this,i=e.closest("section[id]"),s=e.dataset.append,r=i.querySelector(".lp-expand-btn");if(!r)if((r=t.createElement("button")).className="lp-expand-btn",r.setAttribute("aria-label","Open a lightbox"),r.innerHTML='<span class="lp-i lp-i--expand-alt" aria-hidden="true"></span>',s){let e=i.querySelector(s);e&&e.appendChild(r)}else{let i=t.createElement("div");i.className="lp-expand-btn-wrapper",i.style.position="relative",i.appendChild(r),e.parentNode.insertBefore(i,e.nextSibling)}r.addEventListener("click",()=>{this._createLightbox({slider:e,section:i})})}_createLightbox({slider:e,section:t,initialIndex:i}){let{window:s,document:r}=this,a=`lightbox-for-${t?.id}`,o=s.$&&s.$.fn.slick,n=o&&e.slick,l="function"==typeof s.Splide,d=e.classList.contains("is-initialized")&&e.classList.contains("splide");function c(){let t=r.createElement("div");t.id=a,t.className="lp-lightbox",t.setAttribute("tabindex","-1"),t.setAttribute("role","dialog"),t.setAttribute("aria-modal","true"),t.innerHTML=` 1788 <button class="lp-lightbox__close" aria-label="close modal"></button> 1789 <div class="lp-lightbox__content"> 1790 <div class="lp-lightbox__carousel splide" role="group" aria-label="Image Gallery"> 1791 <div class="splide__arrows"> 1792 <button class="splide__arrow splide__arrow--prev lp-lightbox-arrow lp-lightbox-arrow--prev"></button> 1793 <button class="splide__arrow splide__arrow--next lp-lightbox-arrow lp-lightbox-arrow--next"></button> 1794 </div> 1795 <div class="splide__track"> 1796 <ul class="splide__list"></ul> 1797 </div> 1798 </div> 1799 </div> 1800 `,"function"==typeof s.lpUI.requestScrollLock?s.lpUI.requestScrollLock(a):r.body.style.overflow="hidden",r.body.appendChild(t);let o=t.querySelector(".lp-lightbox__carousel"),n=o.querySelector(".splide__list");t.classList.add("show"),(d?e.querySelectorAll(".splide__slide:not(.splide__slide--clone) img"):e.querySelectorAll("img")).forEac
1800h(e=>{let t=e.cloneNode(!0);t.removeAttribute("style");let i=r.createElement("li");i.className="lp-lightbox__slide splide__slide",i.appendChild(t),n.appendChild(i)});let l=new s.Splide(o,{rewind:!0,arrows:!0,arrowPath:"",type:"loop",clones:1,pagination:!1,perPage:1,perMove:1});l.mount(),void 0!==i&&i>=0&&l.go(i),setTimeout(()=>{t.focus()},100);let c=e=>{if(!t.classList.contains("show"))return;let i=t.querySelector(".splide__arrow--prev"),s=t.querySelector(".splide__arrow--next"),r=t.querySelector(".lp-lightbox__close");"ArrowLeft"===e.key&&i?(e.preventDefault(),i.click()):"ArrowRight"===e.key&&s?(e.preventDefault(),s.click()):"Escape"===e.key&&r&&(e.preventDefault(),r.click())};r.addEventListener("keydown",c),t.querySelector(".lp-lightbox__close").addEventListener("click",()=>{r.removeEventListener("keydown",c),t.classList.remove("show"),l&&l.destroy(),"function"==typeof s.lpUI.releaseScrollLock?s.lpUI.releaseScrollLock(a):r.body.style.overflow="",t.remove()})}if("function"==typeof s.lpUI.requestScrollLock?s.lpUI.requestScrollLock(a):r.body.style.overflow="hidden",o&&!d){let t,i,o,l,d;i={arrows:!0,dots:!1,infinite:!0,draggable:!0,prevArrow:'<button type="button" class="lp-lightbox-arrow--prev lp-lightbox-arrow" aria-label="Previous"></button>',nextArrow:'<button type="button" class="lp-lightbox-arrow--next lp-lightbox-arrow" aria-label="Next"></button>'},(o=r.createElement("div")).id=a,o.className="lp-lightbox",o.setAttribute("tabindex","-1"),o.setAttribute("role","dialog"),o.setAttribute("aria-modal","true"),o.innerHTML=` 1801 <button class="lp-lightbox__close" aria-label="close modal"></button> 1802 <div class="lp-lightbox__content"> 1803 <div class="lp-lightbox__carousel"></div> 1804 </div> 1805 `,r.body.appendChild(o),l=o.querySelector(".lp-lightbox__carousel"),o.classList.add("show"),n?(t=e.slick.$slides.find("img"),i.initialSlide=e.slick?.currentSlide||0,t.each(function(){s.$(".lp-lightbox__carousel").append(s.$(this).clone(!1).removeAttr("style").wrap('<div class="lp-lightbox__slide"></div>').parent())})):(t=e.querySelectorAll("img")).forEach(e=>{let t=e.cloneNode(!0);t.removeAttribute("style");let i=r.createElement("div");i.className="lp-lightbox__slide",i.appendChild(t),l.appendChild(i)}),s.$(l).slick(i),setTimeout(()=>{o.focus()},100),d=e=>{if(!o.classList.contains("show"))return;let t=o.querySelector(".lp-lightbox-arrow--prev"),i=o.querySelector(".lp-lightbox-arrow--next"),s=o.querySelector(".lp-lightbox__close");"ArrowLeft"===e.key&&t?(e.preventDefault(),t.click()):"ArrowRight"===e.key&&i?(e.preventDefault(),i.click()):"Escape"===e.key&&s&&(e.preventDefault(),s.click())},r.addEventListener("keydown",d),o.querySelector(".lp-lightbox__close").addEventListener("click",()=>{r.removeEventListener("keydown",d),o.classList.remove("show");let t=l?.slick?s.$(l).slick("slickCurrentSlide"):0;l?.slick&&s.$(l).slick("unslick"),n&&s.$(e).slick("slickGoTo",t),"function"==typeof s.lpUI.releaseScrollLock?s.lpUI.releaseScrollLock(a):r.body.style.overflow="",o.remove()})}else l?c():(s.luxuryPresence.libs.loadCss(s.luxuryPresence.libs.jsLibsMap.splide.cssSrc),s.luxuryPresence.libs.loadJs(s.luxuryPresence.libs.jsLibsMap.splide.jsSrc,()=>{c(),s.luxuryPresence.libs.jsLibsMap.splide.isLoaded=!0}))}}(x,window,document),R=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:i,templateId:s,websiteId:r,pageId:a,shareId:o,pageMeta:n}=this.config;this.window.divolte.signal(e,Object.assign({companyId:i,templateId:s,websiteId:r,pageId:a,shareId:o,pageMeta:n},t))}sendLpPageView(){this.sendLpEvent("pageView",{})}}(x,window,document),B=new class extends s{constructor(e,t,i){super(e,t,i)}initialize(e={}){(void 0!==e.enabled?e.enabled:this.config.eventBus?.enabled)&&this.config.eventBus?.apiKey&&this.config.eventBus?.url&&this.loadScript()}loadScript(){let{eventBusUrl:e}=this.config,t=this.document.createElement("script");t.id="posthog-script",t.type="text/javascript",t.defer=!0,t.async=!0,t.src=`${e}/v2.8.0/event-bus-js.js`,this.document.head.appendChild(t),t.addEventListener("load",this.executeQueue.bind(this))}executeQueue(){this.window.LuxuryPresenceEventBus&&(this.window.eventBusProvider=this.window.LuxuryPresenceEventBus.createEventBusProvider({apiKey:this.config.eventBus.apiKey,host:this.config.eventBus.url,defaultSource:"frontend://website-render-engine"}
1805)),(this.window.eventBusLp.q||[]).forEach(([e,t])=>{this[e](t)}),this.window.eventBusLp=this.eventBusLp.bind(this)}destroy(){if(!this.window.eventBusProvider){this.window.eventBusLp=function(){(this.window.eventBusLp.q=this.window.eventBusLp.q||[]).push(arguments)};return}this.window.eventBusProvider.shutdown()}sendLpEvent(e,t){if("user.activity.page.viewed"!==e)return void console.log(`${e} IS NOT SUPPORTED`);if(!this.window.eventBusProvider)return;let{companyId:i}=this.config;try{this.window.eventBusProvider.capture(e,{company:i,data:{}})}catch(e){console.log("EventBus capture error:",e)}}eventBusLp(e,t){try{this[e](t)}catch(e){console.log(e)}}sendLpPageView(){this.sendLpEvent("user.activity.page.viewed",{})}}(x,window,document),D=new class extends s{constructor(e,t,i){super(e,t,i),this.successListeners=[],this._listenToMessages=this._listenToMessages.bind(this),this._listenToOneTapMessage=this._listenToOneTapMessage.bind(this)}initialize(e={}){try{e.googleSignOnEnabled&&!e.iframe&&this._renderGoogleOneTap(),this.document.querySelectorAll('div[data-signin-type="google-sign-in"]').forEach(e=>this._convertGoogleSignIn(e)),this.document.querySelectorAll('div[data-signin-type="facebook-sign-in"]').forEach(e=>this._convertFacebookSignIn(e))}catch(e){console.log(e)}}destroy(){this.successListeners.forEach(e=>{this.window.removeEventListener("message",this._listenToMessages),this.window.removeEventListener("message",this._listenToOneTapMessage),this.window.removeEventListener(p,this.window[e])})}_renderGoogleOneTap(){if(!this._isGoogleOneTapOnCooldown()){let e=this.document.createElement("div");google.accounts.id.initializeIntermediate({src:this._buildUrlAndCopyAttributes(e,e,"googleOneTap")}),this.window.localStorage.removeItem("googleOneTapExpiration"),this.window.addEventListener("message",this._listenToOneTapMessage)}}_listenToOneTapMessage(e){let t="show_intermediate_iframe",{buyerSellerServiceUrl:i}=this.config,{data:s,origin:r}=e,{type:a,height:o,event:n,source:l,token:d}=s;if(a===t||"hide_intermediate_iframe"===a){let e=this.document.getElementById("onetap_google_intermediate_iframe");e&&(e.style.height=o,e.style.display=a===t?"unset":"none")}r===i&&"GOOGLE_SIGN_ON"===l&&("success"===n?(this._setExpirationLsItem(864e5),this._handleQualifyingQuestionsModal(d)):"cancel"===n&&this._setExpirationLsItem(72e5))}_setExpirationLsItem(e){let t=new Date().getTime()+e;this.window.localStorage.setItem("googleOneTapExpiration",t)}_isGoogleOneTapOnCooldown(){return Number(this.window.localStorage.getItem("googleOneTapExpiration"))>new Date().getTime()}_convertGoogleSignIn(e){this._replaceWithIframe("googleSignIn",e)}_convertFacebookSignIn(e){this._replaceWithIframe("facebookSignIn",e)}_replaceWithIframe(e,t){this._attachSuccessCallback(t);let i=this.document.createElement("iframe");i.src=this._buildUrlAndCopyAttributes(t,i,e),i.dataset.isSocialOauthButton=!0,t.replaceWith(i)}_listenToMessages(e){let{buyerSellerServiceUrl:t}=this.config;if(e.origin===t&&"success"===e.data.event){let e=new Event(p);this.window.dispatchEvent(e),a(this.window,this.document),this.successListeners.forEach(t=>{this.window[t]?this.window[t](e):console.error(`Callback function ${t} not found on window object`)}),this.document.documentElement.classList.add("is-login-success")}}_attachSuccessCallback(e){this.window.addEventListener("message",this._listenToMessages);let t=e.dataset.onSuccessFunctionName;t&&this.successListeners.push(t)}_buildUrlAndCopyAttributes(e,t,i){let{buyerSellerServiceUrl:s,companyId:r,websiteId:a,pageId:o,pageMeta:n}=this.config,{location:l}=this.window,d=l.origin+l.pathname,c=new URL(`${s}/buttons/${i}`),u=this.window.localStorage.getItem("utm_vars"),h=this.window.localStorage.getItem("referrer");c.searchParams.append("companyId",r),c.searchParams.append("websiteId",a),c.searchParams.append("pageId",o),c.searchParams.append("sourceUrl",d),c.searchParams.append("pageMeta",JSON.stringify(n)),u&&c.searchParams.append("utm",u),h&&c.searchParams.append("referrer",h);let p=["data-size","data-width","data-text","data-button-type","data-shape","data-layout","data-max-rows","data-use-continue-as","data-type","data-theme","data-logo_alignment","data-locale"];
1805return Array.from(e.attributes).forEach(e=>{p.includes(e.nodeName)?c.searchParams.append(e.nodeName,e.nodeValue):t.setAttribute("id"===e.nodeName?"data-id":e.nodeName,e.nodeValue)}),c.toString()}_decodeToken(e){try{let t=e.split(".")[1].replace(/-/g,"+").replace(/_/g,"/"),i=4-t.length%4,s=4===i?t:t+"=".repeat(i);return JSON.parse(atob(s))}catch(e){return null}}_handleQualifyingQuestionsModal(e){if(e&&this.window.luxuryPresence&&this.window.luxuryPresence.qualifyingQuestionsModal){let t=this._decodeToken(e);t&&t.email&&this.window.luxuryPresence.qualifyingQuestionsModal.showModal(t.email,"Google Sign On")}}}(x,window,document),O=new class extends s{constructor(e,t,i){super(e,t,i),this.showModal=this.showModal.bind(this),this.hasModalBeenSubmitted=this.hasModalBeenSubmitted.bind(this),this.modalId="qualifying-questions-modal",this.cookieKey="qualifyingQuestionsModalSubmitted",this.qualifyingQuestionsModalEnabled=!0,this.eventListeners=[],this.timeouts=[]}initialize(e={}){this.qualifyingQuestionsModalEnabled=e.qualifyingQuestionsModalEnabled??this.qualifyingQuestionsModalEnabled,this.qualifyingQuestionsModalEnabled&&this.attachModalCloseListeners()}destroy(){this.eventListeners.forEach(({element:e,event:t,handler:i})=>{e&&e.removeEventListener&&e.removeEventListener(t,i)}),this.timeouts.forEach(e=>{clearTimeout(e)}),this.restoreBodyScroll(),this.eventListeners=[],this.timeouts=[]}hasModalBeenSubmitted(){return"true"===this.getCookie(this.cookieKey)}setModalSubmittedCookie(){this.setCookie(this.cookieKey,"true",365)}showModal(e,t){!this.qualifyingQuestionsModalEnabled||this.hasModalBeenSubmitted()||(this.updateEmailValue(e),this.updateTriggerSourceValue(t),this.showModalElement())}getModalElement(){let e=this.document.getElementById(this.modalId);return e||console.error("Modal element not found:",this.modalId),e}updateEmailValue(e){let t=this.getModalElement();if(!t)return;let i=t.querySelector('input[name="email"]');i&&"string"==typeof e&&(i.value=e)}updateTriggerSourceValue(e){let t=this.getModalElement();if(!t)return;let i=t.querySelector(`#${this.modalId}-triggerSource`);i&&"string"==typeof e&&(i.value=e)}showModalElement(){let e=this.getModalElement();e&&(e.style.display="flex",this.blockBodyScroll())}getCookie(e){let t=`; ${this.document.cookie}`.split(`; ${e}=`);return 2===t.length?decodeURIComponent(t.pop().split(";").shift()):null}setCookie(e,t,i){let s="";if(i){let e=new Date;e.setTime(e.getTime()+864e5*i),s=`; expires=${e.toUTCString()}`}let r="; path=/; SameSite=Lax";this.window&&this.window.location&&"https:"===this.window.location.protocol&&(r+="; Secure"),this.document.cookie=`${e}=${encodeURIComponent(t||"")}${s}${r}`}blockBodyScroll(){this._prevOverflow=this.document.body.style.overflow,this.document.body.style.overflow="hidden"}restoreBodyScroll(){this.document.body.style.overflow=this._prevOverflow||"",this._prevOverflow=null}attachModalCloseListeners(){let e=this.getModalElement();if(!e)return;let t=this.document.getElementById(`${this.modalId}-form`);if(t){let i=()=>{this.setModalSubmittedCookie();let t=setTimeout(()=>{e.style.display="none",this.restoreBodyScroll()},100);this.timeouts.push(t)};t.addEventListener("formsubmitted",i),this.eventListeners.push({element:t,event:"formsubmitted",handler:i})}let i=e.querySelector('[data-dismiss="modal"]');if(i){let t=()=>{e.style.display="none",this.restoreBodyScroll()};i.addEventListener("click",t),this.eventListeners.push({element:i,event:"click",handler:t})}let s=t=>{(t.target===e||t.target.id===this.modalId)&&(e.style.display="none",this.restoreBodyScroll())};e.addEventListener("click",s),this.eventListeners.push({element:e,event:"click",handler:s})}}(x,window,document),q=new class extends s{constructor(e,t,i){super(e,t,i),this.isValidating=!1,this.lastValidationResult=null,this.lastValidationTime=null,this.validationCacheDuration=3e5}destroy(){this.isValidating=!1,this.lastValidationResult=null,this.lastValidationTime=null}async validateSession(e={}){let{useCache:t=!0}=e;if(t&&null!==this.lastValidationResult&&this.lastValidationTime&&Date.now()-this.lastValidationTime<this.validationCacheDuration)return this.lastValidationResult;if(this.isValidating)return null!==this.lastValidationResult&&this.lastValidationResult;this.isValidating=!0;let i=` 1806 query { 1807 validSession { 1808 success 1809 } 1810 } 1811 `;try{let e=await this.window.fetch("/graphql",{method:"POST",headers:{"Content-Type":"application/json"},credentials:"include",body:JSON.stringify({query:i})});if(!e.ok)return console.error("SessionController: HTTP error during session validation",e.status),this.lastValidationResult=!1,this.lastValidationTime=Date.now(),!1;let t=await e.json();if(t.errors)return this.lastValidationResult=!1,this.lastValidationTime=Date.now(),!1;let s=t.data?.validSession?.success===!0;return this.lastValidationResult=s,this.lastValidationTime=Date.now(),s}catch(e){return console.error("SessionController: Error validating session",e),this.lastValidationResult=!1,this.lastValidationTime=Date.now(),!1}finally{this.isValidating=!1}}clearCache(){this.lastValidationResult=null,this.lastValidationTime=null}}(x,window,document),V=new class extends s{constructor(e,t,i){super(e,t,i),this.consentListener=null,this.eventName=null}destroy(){this.consentListener&&this.eventName&&(this.document.removeEventListener(this.eventName,this.consentListener),this.consentListener=null)}loadScript(){this.document.getElementById("posthog-script")||this.window.luxuryPresence.eventBus.initialize({enabled:this.config.eventBus?.enabled}),this.document.getElementById("divolte-script")||this.window.luxuryPresence.divolte.initialize({})}removeScripts(){this.window.luxuryPresence?.eventBus?.destroy?.(),this.window.luxuryPresence?.divolte?.destroy?.(),this.document.getElementById("posthog-script")?.remove(),this.document.getElementById("divolte-script")?.remove()}async initialize(e={}){let t=m[e.provider];if(!t)return;this.eventName=t.eventName;let i=await this.window.luxuryPresence.session.validateSession();(t.hasAnalyticsConsent(this.document,this.window)||i)&&this.loadScript(),this.consentListener||(this.consentListener=e=>{t.isAnalyticsAccepted(e.detail)?this.loadScript():this.removeScripts()},this.document.addEventListener(t.eventName,this.consentListener))}}(x,window,document),F=new class extends s{destroy(){}transformVariables(e,t){let i;return y(i={...t},["testimonialId"]),f(i,["testimonialId"],"testimonialIds"),0===i.limit&&delete i.limit,(void 0===i.limit||null===i.limit)&&(("testimonials"===e||"testimonialsCount"===e)&&(i.limit=50),("agents"===e||"agentsCount"===e||"developments"===e||"developmentsCount"===e||"neighborhoods"===e||"neighborhoodsCount"===e||"posts"===e||"postsCount"===e||"pressReleases"===e||"pressReleasesCount"===e)&&(i.limit=100)),!function(e){let{sortDir:t}=e;"string"==typeof t&&t.includes("_")&&(e.sortDir=t.replace(/_/g," "))}(i),!function(e,t){switch(t){case"agent":break;case"testimonials":case"testimonialsCount":y(e,["testimonialIds"]);break;case"agents":case"agentsCount":y(e,["officeId","teamId","developmentId","agentIds","tags"]),f(e,["officeId"],"officeIds"),f(e,["teamId"],"teamIds"),f(e,["developmentId"],"developmentIds");break;case"neighborhoods":case"neighborhoodsCount":y(e,["neighborhoodIds","neighborhoodId"]),f(e,["neighborhoodIds","neighborhoodId"],"neighborhoodId");break;case"developments":case"developmentsCount":y(e,["agentId","neighborhoodIds","neighborhoodId","developmentIds","tag"]),e.agentId&&Array.isArray(e.agentId)&&([e.agentId]=e.agentId),f(e,["neighborhoodIds","neighborhoodId"],"neighborhoodIds");break;case"properties":case"propertiesCount":y(e,["statusIds","statusId","propertyTypeIds","propertyTypeId","propertyId","networkId","propertyIds","agentIds","teamIds","officeIds","neighborhoodIds","
1811spaceTypeIds","addressState","addressCity","backfillProviders","backfillMLSListingIds","backfillMLSAgentIds","backfillMLSOfficeIds"]),["propertyIds","agentIds","teamIds","officeIds","neighborhoodIds","spaceTypeIds","backfillMLSListingIds","backfillMLSAgentIds","backfillMLSOfficeIds"].forEach(t=>f(e,[t],t)),f(e,["statusIds","statusId"],"propertyStatusId"),e.excludeStatusId&&(e.excludePropertyStatusId=e.excludeStatusId,delete e.excludeStatusId),f(e,["propertyTypeIds","propertyTypeId"],"propertyTypeId"),f(e,["networkId"],"networkId"),f(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":y(e,["categoryIds","categoryId","neighborhoodId"]),void 0!==e.order&&(e.sort=e.order,delete e.order),f(e,["categoryIds","categoryId"],"categoryId");break;case"postCategories":y(e,["categoryId","categoryIds"]),void 0!==e.order&&(e.sort=e.order,delete e.order),f(e,["categoryIds","categoryId"],"categoryId");break;case"pressReleases":case"pressReleasesCount":y(e,["pressReleaseId","categories","propertyId","developmentId","agentId","teamId"]),f(e,["pressReleaseId"],"pressReleaseIds");break;case"offices":case"officesCount":y(e,["officeId","officeIds","tags"]),f(e,["officeId"],"officeIds");break;case"teams":case"teamsCount":y(e,["teamId","teamIds"]),f(e,["teamId"],"teamIds");break;case"pois":y(e,["categories"]),Array.isArray(e.categories)&&(e.categories=e.categories.map(e=>e.toLowerCase())),"string"==typeof e.sortBy&&(e.sortBy=e.sortBy.toLowerCase())}}(i,e),i}transformResponse(e,t){return"agent"===e?I(t,v):"agents"===e||"agentsCount"===e?A(t,w):"neighborhood"===e?I(t,b):"neighborhoods"===e||"neighborhoodsCount"===e?A(t,S):"development"===e?I(t,_):"developments"===e||"developmentsCount"===e?A(t,E):t}transformPage(e){return{items:e&&e.items||[],count:e&&e.total||0}}applyPropertyDisclaimers(t,i){if(!Array.isArray(t)||!t.length||!i||!i.length)return Promise.resolve(t);let s=t.filter(e=>e&&e.vendorId&&e.mlsId).map(e=>({feedId:e.vendorId,listingId:e.mlsId,officeName:e.officeName??null,agentMlsId:e.mlsAgentId??null,officeMlsId:e.mlsOfficeId??null,attributionContact:e.attributionContact??null,status:e.status??null,syncedAt:e.syncedAt??null})),r=e=>{let s={};return(e||[]).forEach(e=>{s[`${e.feedId}:${e.listingId}`]=e}),t.map(e=>{let t=e&&s[`${e.vendorId}:${e.mlsId}`],r={};return i.forEach(e=>{let i=t?t[$[e]]:void 0;r[e]=i??null}),{...e,...r}})};if(!s.length)return Promise.resolve(r([]));let{websiteId:a}=this.config;return this.window.superagent?this.window.superagent.post(`${this.window.luxuryPresence.defaults.routerUrl}/graphql`).withCredentials().send({query:e(L),variables:{input:{websiteId:"string"==typeof a?a:void 0,properties:s}}}).then(e=>r(e.body&&e.body.data&&e.body.data.propertyDisclaimers),e=>(console.warn("[RouterApiController] propertyDisclaimers lookup failed:",e),r([]))):Promise.resolve(r([]))}}(x,window,document);function j(e,t){if(window.luxuryPresence[e])try{window.luxuryPresence[e].destroy()}catch(e){console.log(e)}window.luxuryPresence[e]=t}j("config",x),j("modals",T),j("buttons",C),j("validation",k),j("contactForms",M),j("mapApiLoader",P),j("pagination",U),j("expandSliders",N),j("divolte",R),j("eventBus",B),j("oauth",D),j("qualifyingQuestionsModal",O),j("session",q),j("consent",V),j("redirects",{checkHstRedirect:function(e){let{config:t}=window.luxuryPresence;return!t.hvStepTwoCaptureEnabled&&!!t.hstValuationRedirectEnabled&&!!t.mlsEnabled&&!!t.myhomeDashboardEnabled&&(window.location.href=`/home-search/home-valuation?address=${encodeURIComponent(e)}`,!0)},destroy(){}}),j("routerApi",F),window.luxuryPresence.formatSliderPriceRange=U.formatSliderPriceRange.bind(U),window.luxuryPresence.formatSliderAreaRange=U.formatSliderAreaRange.bind(U),window.luxuryPresence.getSearchFormValues=U.getSearchFormValues.bind(U),window.luxuryPresence.handlebarsHelpersFactory=function(i){return e(t)(i,{isEqual:(e,t)=>e==t})}})(); 1812//# sourceMappingURL=lp-sdk.js.map 1813 1814 </script>
1814 1815 1816
1816<script> 1817 var lpGlobalInitialized = false; 1818 1819 function lpGlobalInit () { 1820 if (lpGlobalInitialized) { 1821 return; 1822 } 1823 lpGlobalInitialized = true; 1824 // Initialize wow animation plugin only according to turbolinks 1825 var wow; 1826 if (window.WOW) { 1827 wow = new WOW({ 1828 animateClass: 'animated', 1829 offset: wowOffset, 1830 live: false, 1831 callback: function(box) {} 1832 }); 1833 } 1834 // Initialize handlebar helpers only once 1835 function handlebarsInit() { 1836 if (!window.Handlebars) { 1837 return; 1838 } 1839 HandlebarsIntl.registerWith(Handlebars); 1840 Handlebars.registerHelper(window.luxuryPresence.handlebarsHelpersFactory(Handlebars)); 1841 } 1842 1843 handlebarsInit(); 1844 1845 var modalContentUrl = "/modals.html"; 1846 const modalsContainer = document.getElementById('modals'); 1847 if (modalsContainer) { 1848 fetch(modalContentUrl).then(function(res) { 1849 if (!res.ok) { 1850 throw new Error(`HTTP error! Status: ${res.status}`); 1851 } 1852 return res.text(); 1853 }).then(function(resultText) { 1854 modalsContainer.innerHTML = resultText; 1855 1856 // now we need to execute all script elements 1857 Array.from(modalsContainer.getElementsByTagName('script')).forEach(function (s) { 1858 const script = document.createElement("script"); 1859 script.text = s.innerHTML; 1860 Array.from(s.attributes).forEach(function (a) { 1861 script.setAttribute(a.name, a.value); 1862 }) 1863 s.parentNode.replaceChild(script, s); 1864 }); 1865 1866 try { 1867 window.luxuryPresence.modals.initialize(window.luxuryPresence._modalIncludes); 1868 window.luxuryPresence.contactForms.initialize({ selector: '#modals' }); 1869 window.luxuryPresence.validation.initialize({ selector: '#modals' }); 1870 window.luxuryPresence.oauth.initialize({ 1871 googleSignOnEnabled: false, 1872 iframe: false }); 1873 } catch (e) { 1874 console.log(e); 1875 } 1876 document.querySelectorAll('.modals > .modal .close').forEach(closeModalBtn => { 1877 closeModalBtn.addEventListener('click', function() { 1878 window.lpUI.hideClosestModal(closeModalBtn); 1879 }); 1880 }); 1881 }).catch((e) => console.log(e)); 1882 } 1883 /* Initialize Luxury Presence SDK */ 1884 try { 1885 window.luxuryPresence.config.setCompany("2aaf8e5a-1524-403d-bb59-9fffdf8ad2f5", {}); 1886 window.luxuryPresence.config.setWebsite("a9dd2c66-346b-49bc-b2f9-24ad75fa20c9", { 1887 myhomeDashboardEnabled: true, 1888 mlsEnabled: true, 1889 hstValuationRedirectEnabled: true, 1890 hvStepTwoCaptureEnabled: false 1891 }); 1892 const url = new URL(window.location.href); 1893 const shareId = url.searchParams.get('shareId'); 1894 window.luxuryPresence.config.setPage("9fb04b20-c394-49f5-aef2-7498a5f24e2b", { 1895 sourceResource: "", 1896 pageElementId: "", 1897 pageQueryVariables: {}, 1898 shareId: "", 1899 }); 1900 window.luxuryPresence.config.setWebsiteApiGatewayUrl("https://wgw.luxurypresence.com", {}); 1901 window.luxuryPresence.config.setBuyerSellerServiceUrl("https://bss.luxurypresence.com", {}); 1902 window.luxuryPresence.config.setDivolteServiceUrl("https://t.luxurypresence.com", {}); 1903 window.luxuryPresence.config.setEventBusUrl("https://cdn.luxurypresence.com/scripts/event-bus-js", {}); 1904 window.luxuryPresence.config.setEventBus({ 1905 enabled: true, 1906 apiKey: "phc_PMYT31xlmXBaTCwpIRx1v6RrpLVZIuP47N3mOT6KLnr", 1907 url: "https://p.luxurypresence.com", 1908 }); 1909 window.luxuryPresence.config.setTemplateId("0c2b9641-6f2a-40f2-a2e0-dabc022eb278", {}); 1910 window.luxuryPresence.config.setLeadIngesterUrl("https://leads.luxurypresence.com", {}); 1911 window.luxuryPresence.buttons.initialize({}); 1912 window.luxuryPresence.consent.initialize({ provider: 'lp-consent' }); 1913 window.luxuryPresence.contactForms.initialize({}); 1914 window.luxuryPresence.validation.initialize({}); 1915 window.luxuryPresence.expandSliders.initialize({}); 1916 window.luxuryPresence.oauth.initialize({ googleSignOnEnabled: false, iframe: false }); 1917 window.luxuryPresence.qualifyingQuestionsModal.initialize({ qualifyingQuestionsModalEnabled: true }); 1918 } catch (e) { 1919 console.log(e); 1920 } 1921 1922 /* Inject Section Specific Javascript */ 1923 try { 1924(function init(sectionDomId) { 1925 const disclaimerLabel = document.querySelector('#' + sectionDomId + ' .lp-tcr-content'); 1926 if (disclaimerLabel) { 1927 const input = disclaimerLabel.querySelector('input'); 1928 if (input) { 1929 input.setAttribute('id', `${sectionDomId}-termsAccepted`); 1930 input.value = 'true'; 1931 const label = document.createElement('label'); 1932 label.setAttribute('for', `${sectionDomId}-termsAccepted`); 1933 label.classList.add('lp-visually-hidden'); 1934 label.textContent = 'Opt in/Disclaimer Consent:'; 1935 disclaimerLabel.prepend(label); 1936 } 1937 } 1938 function setHttp(link) { 1939 if (link.search(/^http[s]?\:\/\/|\//) == -1) { 1940 link = 'https://' + link; 1941 } 1942 return link; 1943 } 1944 const socialLinks = document.querySelectorAll('#' + sectionDomId + ' .socials__link, #' + sectionDomId + ' .lp-socials__link'); 1945 socialLinks.forEach(linkElement => { 1946 const href = linkElement.getAttribute('href'); 1947 if (href) { 1948 linkElement.setAttribute('href', setHttp(href)); 1949 } 1950 }); 1951 const redirectLink = $('#' + sectionDomId + ' .redirect-link'); 1952 if (redirectLink.length) { 1953 const rawHref = setHttp(redirectLink.attr('href')); 1954 let formEvent; 1955 if (rawHref) { 1956 formEvent = redirectLink.data('redirect') ? 'formsubmitted' : 'reset'; 1957 $('#' + sectionDomId + ' .contact-form').find('form').on(formEvent, function () { 1958 redirectLink.attr('href', rawHref); 1959 redirectLink[0].click(); 1960 }); 1961 } 1962 } 1963})('modal-global-contact-us'); 1964} catch(e) { 1965console.log(e); 1966} 1967 1968 try { 1969(function init(sectionDomId) { 1970 const $section = $('#' + sectionDomId); 1971 const $hamburger = $section.find('.hamburger-component'); 1972 function onSideMenuShow() { 1973 if (!$hamburger.hasClass('active')) { 1974 $hamburger.addClass('active'); 1975 } 1976 } 1977 function onSideMenuHide() { 1978 $hamburger.removeClass('active'); 1979 } 1980 const $window = $(window); 1981 $window.on('lpui-sidemenu-show.lpui-auto-clean', onSideMenuShow); 1982 $window.on('lpui-sidemenu-hide.lpui-auto-clean', onSideMenuHide); 1983 const $subContainers = $section.find('.navigation__item.sub-nav-container'); 1984 $subContainers.hover(function () { 1985 $(this).find('.sub-nav').addClass('visible'); 1986 }, function () { 1987 $(this).find('.sub-nav').removeClass('visible'); 1988 }); 1989 $window.on('click.lpui-auto-clean', function () { 1990 $('.sub-nav-container.visible-dropdown').removeClass('visible-dropdown'); 1991 }); 1992 let fixedWidth = 0; 1993 const rightPad = 20; 1994 function fixSubsPosition() { 1995 const wWidth = window.innerWidth; 1996 if (innerWidth === fixedWidth) { 1997 return; 1998 } 1999 fixedWidth = wWidth; 2000 $subContainers.each(function () { 2001 const $sub = $(this).find('.sub-nav'); 2002 $sub[0].style.right = '';
2003 const sRect = $sub[0].getBoundingClientRect(); 2004 const sRight = sRect.left + sRect.width; 2005 if (sRight > wWidth - rightPad) { 2006 const parentRect = $sub[0].offsetParent.getBoundingClientRect(); 2007 const parentRight = parentRect.left + parentRect.width; 2008 $sub[0].style.right = `${parentRight - wWidth + rightPad}px`; 2009 } 2010 }); 2011 } 2012 var debouncer; 2013 $window.on('resize.lpui-auto-clean', function () { 2014 clearTimeout(debouncer); 2015 debouncer = setTimeout(fixSubsPosition, 500); 2016 }); 2017 fixSubsPosition(); 2018 if ($('.property-intro').length || $('.property-intro-2').length) { 2019 $('nav').addClass('dark-opening'); 2020 $("#global-navbar").css({ 2021 "background-color": "rgb(26, 26, 26)", 2022 "color": "rgb(255, 255, 255)" 2023 }); 2024 } 2025 function initAutoTruncateMenu() { 2026 const $navbar = $section.find('.navbar'); 2027 const $navList = $section.find('.navigation > ul'); 2028 if (!$navbar.length || !$navList.length) { 2029 return; 2030 } 2031 const $logo = $section.find('.logo'); 2032 const $buttonsWrapper = $section.find('.buttons-wrapper'); 2033 const $allItems = $navList.children('.navigation__item'); 2034 const $phoneItem = $allItems.filter(function () { 2035 return $(this).find('a[href^="tel:"]').length > 0; 2036 }); 2037 const $menuItems = $allItems.not($phoneItem); 2038 if (!$menuItems.length) { 2039 return; 2040 } 2041 const buffer = 8; 2042 function measureFixedWidth() { 2043 let width = buffer; 2044 if ($logo.length) { 2045 width += $logo.outerWidth(true) || 0; 2046 } 2047 if ($buttonsWrapper.length) { 2048 width += $buttonsWrapper.outerWidth(true) || 0; 2049 } 2050 if ($phoneItem.length) { 2051 width += $phoneItem.outerWidth(true) || 0; 2052 } 2053 return width; 2054 } 2055 function truncateMenu() { 2056 if (!$navList.is(':visible')) { 2057 return; 2058 } 2059 $menuItems.css('display', ''); 2060 const availableWidth = $navbar[0].getBoundingClientRect().width - measureFixedWidth(); 2061 let widthSoFar = 0; 2062 let overflowed = false; 2063 $menuItems.each(function () { 2064 const $item = $(this); 2065 if (overflowed) { 2066 $item.css('display', 'none'); 2067 return; 2068 } 2069 widthSoFar += $item.outerWidth(true); 2070 if (widthSoFar > availableWidth) { 2071 $item.css('display', 'none'); 2072 overflowed = true; 2073 } 2074 }); 2075 } 2076 let truncateFrame; 2077 function scheduleTruncate() { 2078 if (truncateFrame) { 2079 return; 2080 } 2081 truncateFrame = window.requestAnimationFrame(function () { 2082 truncateFrame = null; 2083 truncateMenu(); 2084 }); 2085 } 2086 scheduleTruncate(); 2087 if (window.ResizeObserver) { 2088 const resizeObserver = new ResizeObserver(scheduleTruncate); 2089 resizeObserver.observe($navbar[0]); 2090 } else { 2091 $(window).on('resize.lpui-auto-truncate', scheduleTruncate); 2092 } 2093 $section.find('img').on('load.lpui-auto-truncate', scheduleTruncate); 2094 $(window).on('load.lpui-auto-truncate', scheduleTruncate); 2095 if (document.fonts && document.fonts.ready) { 2096 document.fonts.ready.then(scheduleTruncate); 2097 } 2098 } 2099 initAutoTruncateMenu(); 2100})('global-navbar'); 2101} catch(e) { 2102console.log(e); 2103} 2104 try { 2105(function init(sectionDomId, options) { 2106 var elementSelector = options.elementSelector || 'nav'; 2107 var element = document.querySelector(elementSelector); 2108 var sections = document.querySelectorAll('body > section'); 2109 var subNavContainers = element.querySelectorAll('.sub-nav'); 2110 var initialBackgroundColor = options.initialBackgroundColor || element.style.backgroundColor; 2111 var backgroundColorScroll = options.backgroundColorScroll || '#191919'; 2112 var fontColor = options.fontColor || '#fff'; 2113 var fontColorScroll = options.fontColorScroll || '#000'; 2114 var didScroll = false; 2115 var lastScrollTop = 0; 2116 var delta = 5; 2117 2118 // eslint-disable-next-line sonarjs/no-collapsible-if 2119 if (wow) { 2120 // Wowjs might not trigger for position fixed elements 2121 if (window.scrollY > 0) { 2122 element.querySelectorAll('.wow').forEach(el => wow.show(el)); 2123 } 2124 } 2125 function adjustNavPinState() { 2126 // Remove 'visible' class from all subNavContainers 2127 for (let i = 0; i < subNavContainers.length; i++) { 2128 subNavContainers[i].classList.remove('visible'); 2129 } 2130 if (window.scrollY > 0) { 2131 element.style.backgroundColor = backgroundColorScroll; 2132 element.style.color = fontColorScroll; 2133 element.classList.add('scroll'); 2134 } else {
2135 element.style.backgroundColor = initialBackgroundColor; 2136 element.style.color = fontColor; 2137 element.classList.remove('scroll'); 2138 } 2139 } 2140 adjustNavPinState(); 2141 function onScroll() { 2142 didScroll = true; 2143 } 2144 window.addEventListener('scroll', onScroll); 2145 2146 // eslint-disable-next-line 2147 var debounceInterval = setInterval(() => { 2148 if (didScroll) { 2149 // eslint-disable-next-line 2150 hasScrolled(); 2151 didScroll = false; 2152 } 2153 }, 250); 2154 function hasScrolled() { 2155 adjustNavPinState(); 2156 // eslint-disable-next-line 2157 var navbarHeight = element.offsetHeight; 2158 // eslint-disable-next-line 2159 var st = window.scrollY; 2160 2161 // Make sure they scroll more than delta 2162 if (Math.abs(lastScrollTop - st) <= delta) { 2163 return; 2164 } 2165 if (st > lastScrollTop && st > navbarHeight) { 2166 // Scroll Down 2167 element.style.transform = `translateY(-${navbarHeight}px) scaleY(0)`; 2168 document.documentElement.style.setProperty('--global-header-height', '0px'); 2169 2170 // Some sections "follow" the navbar with class sticky (i.e. Producer search) 2171 sections.forEach(section => { 2172 if (section.classList.contains('sticky')) { 2173 section.style.top = '0px'; 2174 } 2175 }); 2176 } else { 2177 // Scroll Up 2178 // eslint-disable-next-line 2179 if (st + window.innerHeight < document.documentElement.scrollHeight) { 2180 element.style.transform = `translateY(0) scaleY(1)`; 2181 document.documentElement.style.setProperty('--global-header-height', `${navbarHeight}px`); 2182 sections.forEach(section => { 2183 if (section.classList.contains('sticky')) { 2184 section.style.top = `${navbarHeight}px`; 2185 } 2186 }); 2187 } 2188 } 2189 lastScrollTop = st; 2190 } 2191})('NAVBAR', JSON.parse("{\"fontColor\":\"#fff\",\"elementSelector\":\"nav\",\"fontColorScroll\":\"#fff\",\"initialFontColor\":\"#fff\",\"backgroundColorScroll\":\"#1a1a1a\",\"initialBackgroundColor\":\"rgba(0,0,0,0)\"}")); 2192} catch(e) { 2193console.log(e); 2194} 2195 try { 2196(function init(sectionDomId) { 2197 var sidemenu = $('#' + sectionDomId); 2198 sidemenu.on('lpui-sidemenu-show.lpui-auto-clean', function () { 2199 window.lpUI.requestScrollLock(sectionDomId); 2200 }); 2201 $(window).on('lpui-sidemenu-hide.lpui-auto-clean', function () { 2202 window.lpUI.releaseScrollLock(sectionDomId); 2203 }); 2204 $(window).click(function (e) { 2205 let targetContactForm = $(e.target).closest('#modal-global-contact-us').length; 2206 let targetSideMenu = $(e.target).closest('.sidemenu').length; 2207 let targetContactItem = $(e.target).closest('[data-type="CONTACT_US"]').length; 2208 let targetHamburger = $(e.target).closest('.hamburger-component').length; 2209 if (!(targetContactForm || targetSideMenu || targetContactItem || targetHamburger)) { 2210 $('body').removeClass('locked'); 2211 $('.hamburger').removeClass('active'); 2212 $('.sidemenu').removeClass('visible'); 2213 $('#modal-global-contact-us').removeClass('visible'); 2214 } 2215 }); 2216})('global-sidemenu'); 2217} catch(e) { 2218console.log(e); 2219} 2220 2221 try { 2222(function init(footerId) { 2223 var textContent = $(".text_content_wrap p").text().trim().length; 2224 const socialLinks = $(`#${footerId} .lp-socials__link`); 2225 if (textContent < 1) { 2226 $(".text_content_wrap").remove(); 2227 $(".second_text_footer").css({ 2228 'margin-bottom': 0 2229 }); 2230 } 2231 if (socialLinks.length > 0) { 2232 socialLinks.attr('data-wow-offset', '10'); 2233 } 2234 if ($(window).width() > 1280) { 2235 let footer = document.querySelector("#" + footerId); 2236 let copyrightElem = footer.querySelector(".copy_zone"); 2237 if (copyrightElem) { 2238 copyrightElem.style.whiteSpace = "nowrap"; 2239 let nowrapElemWidth = copyrightElem.clientWidth; 2240 copyrightElem.style.whiteSpace = ""; 2241 let normalElemWidth = copyrightElem.clientWidth; 2242 if (nowrapElemWidth > normalElemWidth) { 2243 footer.querySelector(".form-col--socials").classList.add("form-col--xl-auto"); 2244 } 2245 } 2246 } 2247 const form = $("#" + footerId).find("form"); 2248 const redirectLink = $('#' + footerId + ' .redirect-link'); 2249 form.on("reset", function () { 2250 redirectPage(redirectLink); 2251 }); 2252 function redirectPage(link) { 2253 if (link.length) { 2254 const rawHref = link.attr('href'); 2255 link.attr('href', setHttp(rawHref)); 2256 link[0].click(); 2257 } 2258 } 2259 function setHttp(link) { 2260 if (link.search(/^http[s]?\:\/\/|\//) == -1) { 2261 link = 'http://' + link; 2262 } 2263 return link; 2264 } 2265})('global-footer'); 2266} catch(e) { 2267console.log(e); 2268} 2269 2270 try { 2271(function init(sectionDomId) { 2272 var _section = $('#' + sectionDomId); 2273 var _footer = document.getElementById('global-footer'); 2274 const redirectLink = _section.find('.js-redirect-link'); 2275 function setHttp(link) { 2276 if (link.search(/^(http[s]?\:\/\/|\/)/) == -1) { 2277 link = 'https://' + link; 2278 } 2279 return link; 2280 } 2281 function redirectPage(link) { 2282 if (link.length) { 2283 window.location.href = setHttp(link.attr('href')); 2284 } 2285 } 2286 const emailInput = _section.find('.js-email-input'); 2287 const emailRegex = /[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~\-]+@[a-zA-Z0-9-]+(?:\.[a-zA-Z0-9-]+)+/; 2288 emailInput.on('input', function () { 2289 if (emailRegex.test(this.value)) { 2290 this.setCustomValidity(''); 2291 } else { 2292 this.setCustomValidity('Please enter a valid email address.'); 2293 } 2294 this.reportValidity(); 2295 }); 2296 _section.find('input[name="name"]').on("keyup", function () { 2297 if (this.value.replaceAll(/\d/g, "").trim().split(" ").length < 2 || this.value.replaceAll(/\d/g, "").trim() === "") { 2298 this.setCustomValidity("Please input your first name and last name."); 2299 } else { 2300 this.setCustomValidity(""); 2301 } 2302 }); 2303 _section.find('form').on("reset", function () { 2304 $(this).addClass("show-success"); 2305 redirectPage(redirectLink); 2306 }); 2307 $(window).scroll(function () { 2308 if ($(this).scrollTop() >= 150) _section.find('.btn-holder').addClass('visible');else _section.find('.btn-holder').removeClass('visible'); 2309 }); 2310 _section.find('.close-btn, .connect-btn').click(function () { 2311 _section.find('.pop-up').toggle(); 2312 _section.find('.btn-holder').toggle(); 2313 }); 2314 if (!_footer) return; 2315 const observer = new IntersectionObserver(entries => {
2316 entries.forEach(entry => { 2317 if (entry.isIntersecting) _section.hide();else _section.show(); 2318 }); 2319 }, { 2320 threshold: 0.1 2321 }); 2322 observer.observe(_footer); 2323 function selectToDropdown(selectItem) { 2324 let customDropdown = ` 2325 <div class="custom-select" role="presentation"> 2326 <button class="custom-select-toggle is-placeholder" type="button" aria-haspopup="true" aria-expanded="false"></button> 2327 <div class="custom-select-menu" style="display: none;max-height: none;"> 2328 <div class="custom-select-content"> 2329 </div> 2330 </div> 2331 </div>`; 2332 $(customDropdown).insertAfter(selectItem); 2333 let $dropdown = $($(selectItem).next()); 2334 let $dropdownToggle = $dropdown.find(".custom-select-toggle"); 2335 let $dropdownMenu = $dropdown.find(".custom-select-menu"); 2336 let $dropdownContent = $dropdown.find(".custom-select-content"); 2337 $dropdownToggle.addClass($(selectItem).attr("class")).removeClass("dropdown-select"); 2338 $dropdownToggle.attr("id", $(selectItem).attr("id") + "custom"); 2339 $dropdownMenu.attr("aria-labelledby", $dropdownToggle.attr("id")); 2340 appendOptionButtons(selectItem, $dropdownContent); 2341 $(selectItem).removeClass().addClass("sr-only"); 2342 var toggleText = $(selectItem).find(":selected").first().text() || $(selectItem).children().first().text(); 2343 $dropdownToggle.html(toggleText); 2344 $dropdown.on("click", ".custom-select-item", function (e) { 2345 if ($(this).hasClass("is-disabled")) return; 2346 let elementNumber = $(this).index(); 2347 let $originalSelect = $(this).closest(".custom-select").siblings("select"); 2348 let $linkedOption = $originalSelect.find("option").eq(elementNumber); 2349 if (!$linkedOption.prop("selected")) { 2350 $linkedOption.prop("selected", true); 2351 $originalSelect.change(); 2352 $(this).addClass("is-selected").siblings(".custom-select-item").removeClass("is-selected"); 2353 $dropdownToggle.html($(this).html()); 2354 closeSelectMenu($(this).closest(".custom-select-menu")); 2355 } 2356 $dropdownToggle.removeClass("is-placeholder"); 2357 }); 2358 function convertOptionToButton(option) { 2359 var optionText = $(option).text(); 2360 var optionValue = $(option).attr("value") || $(option).text(); 2361 var optionIsDisabled = $(option).prop("disabled"); 2362 var outputButton = `<button value="${optionValue}" class="custom-select-item" type="button" ${optionIsDisabled ? "disabled" : ""}>${optionText}</button>`; 2363 return outputButton; 2364 } 2365 function appendOptionButtons(selectItem, appendTarget) { 2366 $(selectItem).find("option").each(function () { 2367 let currentButton = convertOptionToButton(this); 2368 $(appendTarget).append(currentButton); 2369 }); 2370 } 2371 function showSelectMenu(selectMenu) { 2372 var customSelect = $(selectMenu).closest(".custom-select")[0]; 2373 $(customSelect).addClass("open"); 2374 $(selectMenu).slideDown(); 2375 } 2376 function closeSelectMenu(selectMenu) { 2377 var customSelect = $(selectMenu).closest(".custom-select")[0]; 2378 $(customSelect).removeClass("open"); 2379 $(selectMenu).slideUp(); 2380 } 2381 $dropdown.on("click", ".custom-select-toggle", function (e) { 2382 var $customSelect = $(this).closest(".custom-select"); 2383 var selectMenu = $customSelect.find(".custom-select-menu")[0]; 2384 if ($customSelect.hasClass("open")) { 2385 closeSelectMenu(selectMenu); 2386 } else { 2387 showSelectMenu(selectMenu); 2388 } 2389 }); 2390 $(document).on("click", function (e) { 2391 if ($(e.target).closest(".custom-select").length < 1 && $(".custom-select").hasClass("open")) { 2392 $(".custom-select.open").each(function () { 2393 var selectMenu = $(this).find(".custom-select-menu")[0]; 2394 closeSelectMenu(selectMenu); 2395 }); 2396 } 2397 }); 2398 } 2399 $(".pop-up select[name='interest']").each(function () { 2400 selectToDropdown(this); 2401 }); 2402})('global-mobile-contact'); 2403} catch(e) { 2404console.log(e); 2405} 2406 2407 try { 2408(function init(sectionDomId) { 2409 var $section = $('#' + sectionDomId); 2410 var $carousel = $section.find('.collection'); 2411 var currentPreTitle = ''; 2412 var currentTitle = ''; 2413 const $videoWrap = $section.find('.full-screen-video-component > .video-wrapper'); 2414 if ($videoWrap.length) { 2415 const $video = $videoWrap.find('video'); 2416 $video.each(function () { 2417 var v = this; 2418 if (v.readyState > 0) { 2419 $videoWrap.addClass('playing'); 2420 } else { 2421 v.addEventListener('canplay', function () { 2422 $videoWrap.addClass('playing'); 2423 }, { 2424 once: true 2425 }); 2426 } 2427 }); 2428 } 2429 $('#' + sectionDomId + ' .collection').slick({ 2430 dots: $('#' + sectionDomId + ' .collection').find('.item').length > 1 ? true : false,
2431 arrows: false, 2432 speed: 0, 2433 fade: true, 2434 autoplay: true, 2435 autoplaySpeed: 6000, 2436 pauseOnHover: false, 2437 pauseOnFocus: false 2438 }); 2439 $carousel.on('beforeChange', function () { 2440 currentPreTitle = $(this).find('.slick-current').find('.lp-text--pretitle').text(); 2441 currentTitle = $(this).find('.slick-current').find('.lp-h1').text(); 2442 $(this).find('.slick-current').find('.lp-h1').addClass('animation'); 2443 $(this).find('.slick-current').find('.lp-text--pretitle').addClass('animation'); 2444 }); 2445 $carousel.on('afterChange', function () { 2446 if (currentPreTitle === $(this).find('.slick-current').find('.lp-text--pretitle').text()) { 2447 $(this).find('.slick-current').find('.lp-text--pretitle').removeClass('animation'); 2448 } 2449 if (currentTitle === $(this).find('.slick-current').find('.lp-h1').text()) { 2450 $(this).find('.slick-current').find('.lp-h1').removeClass('animation'); 2451 } 2452 }); 2453})('section-4694ef73-6ba0-4d31-8dce-f1f1d52c478b', 'undefined'); 2454} catch(e) { 2455console.log(e); 2456} 2457 try { 2458(function init(sectionDomId, options) { 2459 let section = null; 2460 switch (sectionDomId) { 2461 case 'NAVBAR': 2462 section = document.querySelector('body > nav, #global-navbar'); 2463 break; 2464 case 'FOOTER': 2465 section = document.querySelector('body > footer, #global-footer'); 2466 break; 2467 case 'SIDEMENU': 2468 section = document.querySelector('body > div.sidemenu, #global-sidemenu'); 2469 break; 2470 case 'CONTACT': 2471 section = document.querySelector('#modal-global-contact-us'); 2472 break; 2473 case 'MOBILE_CONTACT': 2474 section = document.querySelector('body > div.mobile-contact-wrapper, #global-mobile-contact'); 2475 break; 2476 case 'SUBSCRIBE': 2477 // Subscribe Not Implemented 2478 section = null; 2479 break; 2480 case 'ACCOUNT': 2481 // Account Not Implemented 2482 section = null; 2483 break; 2484 default: 2485 section = document.querySelector('#' + sectionDomId); 2486 } 2487 if (!section) { 2488 return; 2489 } 2490 2491 // Where content / items are rendered 2492 const dataContainer = section.querySelector('.data-container'); 2493 if (!dataContainer) { 2494 // no place to render items = no need to query server or do anything else 2495 return; 2496 } 2497 let variables = options.variables || {}; 2498 2499 // Some variables in options may not have been injected - remove 2500 Object.keys(variables).forEach(function (variableName) { 2501 if (typeof variables[variableName] === 'string' && variables[variableName].match(/^{{.*}}$/)) { 2502 delete variables[variableName]; 2503 } 2504 }); 2505 2506 // Merge page query variables 2507 if (options.usePageResource) { 2508 variables = { 2509 ...variables, 2510 ...window.luxuryPresence.config.pageMeta.pageQueryVariables[options.resource] 2511 }; 2512 } 2513 2514 // ROUTER-CLEANUP: keep router branch, drop legacy when API retired. Callers 2515 // resolve the flag — fetchData reads the section stamp, aux fetches read 2516 // their own resource's stamp (auxUsesRouter). 2517 function apiUrl(useRouter) { 2518 return options.url || (useRouter ? window.luxuryPresence.defaults.routerUrl : window.luxuryPresence.defaults.apiGatewayUrl); 2519 } 2520 2521 // ROUTER-CLEANUP: aux resources roll out on their own flag, not the section's 2522 // (options.routerApiAux is stamped per aux resource server-side). 2523 function auxUsesRouter(resource) { 2524 return !!(options.routerApiAux && options.routerApiAux[resource]); 2525 } 2526 2527 // Pagination Executes on a Numbered Pagination Container 2528 // Or via a load more button 2529 let mode = 'BUTTONLESS_PAGINATION'; 2530 const container = section.querySelector('.pagination-container');
2531 const loadMoreButton = section.querySelector(options?.loadMoreSelector); 2532 if (container) { 2533 mode = 'NUMBERED_PAGINATION'; 2534 } 2535 if (loadMoreButton) { 2536 mode = 'LOAD_MORE_BUTTON'; 2537 } 2538 let searchContainer = section.querySelector('.search-container'); 2539 const hidePaginationOnFirstPage = options.hidePaginationOnFirstPage || false; 2540 const eventPrefix = '__pagination-'; 2541 const searchFormParams = options.searchFormParams || (options.resource === 'properties' ? [{ 2542 param: 'neighborhoodId', 2543 urlKey: 'neighborhood' 2544 }, { 2545 param: 'search', 2546 urlKey: 'search' 2547 }, { 2548 param: 'salesPriceGTE', 2549 urlKey: 'pricemin', 2550 formKey: 'priceMin', 2551 type: 'int' 2552 }, { 2553 param: 'salesPriceLTE', 2554 urlKey: 'pricemax', 2555 formKey: 'priceMax', 2556 type: 'int' 2557 }, { 2558 param: 'livingSpaceSizeGTE', 2559 urlKey: 'areamin', 2560 formKey: 'areaMin', 2561 type: 'int' 2562 }, { 2563 param: 'livingSpaceSizeLTE', 2564 urlKey: 'areamax', 2565 formKey: 'areaMax', 2566 type: 'int' 2567 }] : []); 2568 2569 // Total entries - initialized in first render 2570 let totalNumber = 0; 2571 const DefaultSearchParams = { 2572 page: 1 2573 }; 2574 searchFormParams.forEach(function (formParam) { 2575 DefaultSearchParams[formParam.formKey || formParam.param] = null; 2576 }); 2577 let searchParams = { 2578 ...DefaultSearchParams 2579 }; 2580 const offset = options.variables?.offset || 0; 2581 let scrollTarget = options.scrollTargetSelector ? section.querySelector(options.scrollTargetSelector) || section : section; 2582 let scrollOffset = (parseInt(options.scrollOffset, 10) || 0) ?? 100; 2583 2584 // entries of per page 2585 // when query variables for a given section would't be filled options.pageSize can store 2586 // template string, ex: "{{variables.limit}}", below code handles that case and set 9 as a default value 2587 let pageSize = parseInt(options.pageSize, 10) || 9; 2588 2589 // Adding mobile pageRange support 2590 var NARROW_BREAKPOINT = 600; 2591 var mobileBreakpoint = options.mobileBreakpoint > 0 ? options.mobileBreakpoint : NARROW_BREAKPOINT; 2592 var paginationMql = window.matchMedia(`(max-width: ${mobileBreakpoint}px)`); 2593 2594 // Page range (pages on both sides of the current page) 2595 var mobilePageRange = options.mobilePageRange > 0 ? options.mobilePageRange : 0; 2596 var desktopPageRange = options.pageRange >= 0 ? options.pageRange : 2; 2597 var pageRange = paginationMql.matches ? mobilePageRange : desktopPageRange; 2598 2599 // Whether to display the 'Previous' button 2600 var showPrevious = true; 2601 2602 // Whether to display the 'Next' button 2603 var showNext = true; 2604 2605 // Whether to display the page buttons 2606 var showPageNumbers = true; 2607 2608 // 'Previous' text 2609 var prevText = options.prevText || '«'; 2610 2611 // 'Next' text 2612 var nextText = options.nextText || '»'; 2613 2614 // Ellipsis text 2615 var ellipsisText = '…'; 2616 var classPrefix = 'paginationjs'; 2617 2618 // Default active class 2619 var activeClassName = 'active'; 2620 2621 // Default disable class 2622 var disableClassName = 'disabled'; 2623 2624 // Pagination element's position in the container 2625 var position = 'bottom'; 2626 2627 // Whether to trigger pagination at initialization 2628 var triggerPagingOnInit = !options.skipInitialLoad; 2629 var showFirstOnEllipsisShow = true; 2630 var showLastOnEllipsisShow = true; 2631 2632 // Instantiated in init() 2633 var el = null; 2634 2635 // Controls scrollTop logic 2636 var firstRender = true; 2637 var renderBySearch = false; 2638 var disabled = false; 2639 2640 // Pagination script class selector 2641 var paginationScriptSelector = options.paginationPartialName ? `.${options.paginationPartialName}` : '.pagination-script'; 2642 2643 // Property Specific Image Override if No Image 2644 var propertyPlaceholderImage = window.luxuryPresence.defaults.propertyPlaceholderImage; 2645 2646 // Construct template 2647 var templateHTML = section.querySelector(`script${paginationScriptSelector}`)?.innerHTML || ''; 2648 var template = Handlebars.compile(templateHTML); 2649 2650 // Initialize 2651 init(); 2652 function init() { 2653 Object.assign(searchParams, window.luxuryPresence.pagination.deserializeParams(searchFormParams, sectionDomId)); 2654 2655 // Append/prepend pagination element to the pagination container 2656 if (mode === 'NUMBERED_PAGINATION') { 2657 el = document.createElement('div'); 2658 el.className = 'paginationjs';
2659 container[position === 'bottom' ? 'append' : 'prepend'](el); 2660 } 2661 if (searchContainer) { 2662 initSearchContainer({ 2663 fetchNeighborhoods: searchContainer.dataset.fetchNeighborhoods === 'true', 2664 fetchPostCategories: searchContainer.dataset.fetchPostCategories === 'true', 2665 fetchOffices: searchContainer.dataset.fetchOffices === 'true', 2666 fetchRentalRates: searchContainer.dataset.fetchRentalRates === 'true' 2667 }, function () { 2668 syncSearchFormState(searchParams); 2669 }); 2670 } 2671 2672 // Bind events 2673 observer(); 2674 } 2675 function syncSearchFormState(params) { 2676 searchContainer.dispatchEvent(new CustomEvent('sync', { 2677 detail: params 2678 })); 2679 } 2680 function initSearchContainer(options, done) { 2681 var promises = []; 2682 if (options.fetchNeighborhoods) { 2683 promises.push(fetchAllNeighborhoods(function (neighborhoods) { 2684 searchContainer.dispatchEvent(new CustomEvent('neighborhoods-data', { 2685 detail: { 2686 data: neighborhoods.map(function (item) { 2687 return { 2688 value: item.id, 2689 label: item.name 2690 }; 2691 }) 2692 } 2693 })); 2694 })); 2695 } 2696 if (options.fetchPostCategories) { 2697 promises.push(fetchPostCategories(function (categories) { 2698 searchContainer.dispatchEvent(new CustomEvent('post-categories-data', { 2699 detail: { 2700 data: categories 2701 } 2702 })); 2703 })); 2704 } 2705 if (options.fetchOffices) { 2706 promises.push(fetchOffices(function (offices) { 2707 searchContainer.dispatchEvent(new CustomEvent('offices-data', { 2708 detail: { 2709 data: offices 2710 } 2711 })); 2712 })); 2713 } 2714 if (options.fetchRentalRates) { 2715 promises.push(fetchAllRentalRates(function (rentalRates) { 2716 searchContainer.dispatchEvent(new CustomEvent('rental-rates-data', { 2717 detail: { 2718 data: rentalRates 2719 } 2720 })); 2721 })); 2722 } 2723 if (promises.length > 0) { 2724 Promise.all(promises).then(function () { 2725 done(); 2726 }); 2727 } else { 2728 // element's custom code is not executed yet, so we're scheduling callback to after element's code 2729 setTimeout(done); 2730 } 2731 } 2732 function fetchAllNeighborhoods(done) { 2733 var useRouter = auxUsesRouter('neighborhoods'); 2734 // ROUTER-CLEANUP: keep router branch, drop legacy when API retired. Same 2735 // args on both APIs (the federated neighborhoods field accepts 2736 // withProperties/withBlogPosts); only the selection set differs. 2737 var gqlQuery = 'query ($companyId: String, $withProperties: NeighborhoodPropertiesFilter, $withBlogPosts: NeighborhoodBlogPostsFilter, $offset: Int, $limit: Int) {' + 'neighborhoods (companyId: $companyId, withProperties: $withProperties, withBlogPosts: $withBlogPosts, offset: $offset, limit: $limit) {' + (useRouter ? 'items {id, name}' : 'id, name') + '}}'; 2738 var payload = {}; 2739 payload.offset = 0; 2740 payload.limit = 100; 2741 payload.companyId = variables.companyId; 2742 if (options.resource === 'properties') { 2743 payload.withProperties = { 2744 active: true 2745 }; 2746 ['agentIds', 'tag', 'propertyTypeId', 'statusIds', 'architectureStyle', 'lifestyle', 'salesPriceGTE', 'salesPriceLTE', 'leasePriceGTE', 'leasePriceLTE', 'livingSpaceSizeGTE', 'livingSpaceSizeLTE', 'bathCountGTE', 'bathCountLTE', 'bedroomCountGTE', 'bedroomCountLTE', 'bathCountGTE', 'bathCountLTE', 'bedroomCountGTE', 'bedroomCountLTE', 'featuredListing', 'leaseProperty', 'neighborhoodId', 'developmentId', 'openHouse'].forEach(function (field) { 2747 if (variables[field] !== undefined && variables[field] !== null) { 2748 payload.withProperties[field] = variables[field]; 2749 } 2750 }); 2751 } 2752 if (options.resource === 'posts') { 2753 payload.withBlogPosts = { 2754 active: true 2755 }; 2756 ['search', 'postStatusId', 'featured', 'categoryId', 'categoryIds', 'neighborhoodId', 'slug'].forEach(function (field) { 2757 if (variables[field] !== undefined && variables[field] !== null) { 2758 payload.withBlogPosts[field] = variables[field]; 2759 } 2760 }); 2761 } 2762 2763 // ROUTER-CLEANUP: keep router branch, drop legacy when API retired 2764 if (useRouter) { 2765 payload = window.luxuryPresence.routerApi.transformVariables('neighborhoods', payload); 2766 } 2767 superagent.post(apiUrl(useRouter) + '/graphql').withCredentials().send({ 2768 query: gqlQuery, 2769 variables: payload 2770 }).then(function (res) { 2771 var value = res.body.data && res.body.data.neighborhoods || {}; 2772 // ROUTER-CLEANUP: keep router branch, drop legacy when API retired 2773 var items = useRouter ? window.luxuryPresence.routerApi.transformPage(value).items : value || []; 2774 done(items, items.length); 2775 }); 2776 } 2777 function fetchPostCategories(done) { 2778 var featured = options.resource === 'posts' && !!variables.featured; 2779 var useRouter = auxUsesRouter('postCategories'); 2780 // ROUTER-CLEANUP: keep router branch, drop legacy when API retired. Only the 2781 // selection set differs ({ items {...} } on the router). 2782 var selection = 'id, name, publishedCount, featuredPublishedCount'; 2783 var gqlQuery = 'query ($companyId: String, $offset: Int, $limit: Int) {' + 'postCategories (companyId: $companyId, offset: $offset, limit: $limit ' + (featured ? ' withFeaturedPublishedOnly: true' : ' withPublishedOnly: true') + ') {' + (useRouter ? 'items {' + selection + '}' : selection) + '}}'; 2784 var payload = {}; 2785 payload.offset = 0; 2786 payload.limit = 100; 2787 payload.companyId = variables.companyId; 2788 superagent.post(apiUrl(useRouter) + '/graphql').withCredentials().send({ 2789 query: gqlQuery, 2790 variables: payload 2791 }).then(function (res) { 2792 var value = res.body.data && res.body.data.postCategories || {}; 2793 // ROUTER-CLEANUP: keep router branch, drop legacy when API retired 2794 var items = useRouter ? window.luxuryPresence.routerApi.transformPage(value).items : value || []; 2795 done(items.map(function (item) { 2796 item.count = featured ? item.featuredPublishedCount : item.publishedCount; 2797 return item; 2798 }), items.length); 2799 }); 2800 } 2801 function fetchOffices(done) { 2802 var useRouter = auxUsesRouter('offices'); 2803 // ROUTER-CLEANUP: keep router branch, drop legacy when API retired. Only the 2804 // selection set differs ({ items {...} } on the router). 2805 var selection = 'id, name, tags'; 2806 // ROUTER-CLEANUP: keep router branch, drop legacy when API retired. The two 2807 // APIs differ in more than the items wrapper: federated offices takes 2808 // companyId: ID! (legacy gateway: String), so each branch builds its whole doc. 2809 var gqlQuery = useRouter ? 'query ($companyId: ID!, $offset: Int, $limit: Int) {' + 'offices (companyId: $companyId, offset: $offset, limit: $limit) {' + 'items {' + selection + '}}}' : 'query ($companyId: String, $offset: Int, $limit: Int) {' + 'offices (companyId: $companyId, offset: $offset, limit: $limit) {' + selection + '}}'; 2810 var payload = { 2811 offset: 0, 2812 limit: 100, 2813 companyId: variables.companyId 2814 }; 2815 2816 // ROUTER-CLEANUP: keep router branch, drop legacy when API retired 2817 if (useRouter) { 2818 payload = window.luxuryPresence.routerApi.transformVariables('office
2818s', payload); 2819 } 2820 superagent.post(apiUrl(useRouter) + '/graphql').withCredentials().send({ 2821 query: gqlQuery, 2822 variables: payload 2823 }).then(function (res) { 2824 var value = res.body.data && res.body.data.offices || {}; 2825 // ROUTER-CLEANUP: keep router branch, drop legacy when API retired 2826 var items = useRouter ? window.luxuryPresence.routerApi.transformPage(value).items : value || []; 2827 done(items, items.length); 2828 }); 2829 } 2830 2831 // ROUTER-CLEANUP: no rentalRates field on the federated router — legacy only. 2832 function fetchAllRentalRates(done) { 2833 var url = options.url || window.luxuryPresence.defaults.apiGatewayUrl; 2834 var gqlQuery = 'query ($companyId: String, $offset: Int, $limit: Int) {' + 'rentalRates (companyId: $companyId, offset: $offset, limit: $limit) {rentalRateId, label}}'; 2835 var payload = { 2836 offset: 0, 2837 limit: 100, 2838 companyId: variables.companyId 2839 }; 2840 superagent.post(url + '/graphql').withCredentials().send({ 2841 query: gqlQuery, 2842 variables: payload 2843 }).then(function (res) { 2844 var items = res.body.data && res.body.data.rentalRates || []; 2845 done(items, items.length); 2846 }).catch(function (err) { 2847 console.error('Error fetching rental rates:', err); 2848 done([], 0); 2849 }); 2850 } 2851 function fetchData(params, done) { 2852 var resource = options.resource; 2853 var gqlQuery = options.query || window.luxuryPresence.defaults.gql[resource]; 2854 var payload = {}; 2855 try { 2856 payload = JSON.parse(JSON.stringify(variables)); 2857 } catch (e) { 2858 Object.keys(variables).forEach(function (variableName) { 2859 payload[variableName] = variables[variableName]; 2860 }); 2861 } 2862 payload.offset = (params.page - 1) * pageSize + offset; 2863 payload.limit = pageSize; 2864 payload.companyId = options.companyId; 2865 searchFormParams.forEach(function (formParam) { 2866 var val = params[formParam.formKey || formParam.param]; 2867 if (val !== null && val !== undefined) { 2868 objSet(payload, formParam.param, val); 2869 } 2870 }); 2871 2872 // ROUTER-CLEANUP: keep router branch, drop legacy when API retired 2873 if (options.useRouterApi) { 2874 payload = window.luxuryPresence.routerApi.transformVariables(resource, payload); 2875 } 2876 2877 // TODO: Disabled loading due to jarring effect 2878 // dataContainer.html('Loading...'); 2879 superagent.post(apiUrl(options.useRouterApi) + '/graphql').withCredentials().send({ 2880 query: gqlQuery, 2881 variables: payload 2882 }).then(function (res) { 2883 if (res.body.errors) { 2884 done(res.body.errors); 2885 return; 2886 } 2887 var data = res.body.data || {}; 2888 // ROUTER-CLEANUP: keep router branch, drop legacy when API retired 2889 var resources; 2890 var resourceCount; 2891 if (options.useRouterApi) { 2892 var page = window.luxuryPresence.routerApi.transformPage(data[resource]); 2893 resources = window.luxuryPresence.routerApi.transformResponse(resource, page.items); 2894 resourceCount = page.count; 2895 } else { 2896 resources = data[resource] || []; 2897 resourceCount = data[resource + 'Count'] && data[resource + 'Count'].count ? data[resource + 'Count'].count : 0; 2898 } 2899 const finish = function (items) { 2900 if (resource === 'properties' && propertyPlaceholderImage?.id) { 2901 items = items.map(item => { 2902 if (item.media?.length === 0) { 2903 return Object.assign(item, { 2904 media: [propertyPlaceholderImage] 2905 }); 2906 } 2907 return item; 2908 }); 2909 } 2910 done(null, items, resourceCount); 2911 }; 2912 2913 // ROUTER-CLEANUP: client half of PLAT-4073 — resolve the requested 2914 // disclaimers before rendering; older SDKs skip (keys stay unset). 2915 if (options.useRouterApi && resource === 'properties' && options.routerPropertyDisclaimers && options.routerPropertyDisclaimers.length && window.luxuryPresence.routerApi && typeof window.luxuryPresence.routerApi.applyPropertyDisclaimers === 'function') { 2916 window.luxuryPresence.routerApi.applyPropertyDisclaimers(resources, options.routerPropertyDisclaimers).then(finish); 2917 return; 2918 } 2919 finish(resources); 2920 }); 2921 } 2922 function getTotalPage() { 2923 return Math.ceil(totalNumber / pageSize); 2924 } 2925 function renderPaginationList() { 2926 var totalPages = getTotalPage(); 2927 var rangeStart = searchParams.page - pageRange; 2928 var rangeEnd = searchParams.page + pageRange; 2929 if (rangeEnd > totalPages) { 2930 rangeEnd = totalPages; 2931 rangeStart = totalPages - pageRange * 2; 2932 rangeStart = rangeStart < 1 ? 1 : rangeStart; 2933 } 2934 if (rangeStart <= 1) { 2935 rangeStart = 1; 2936 rangeEnd = Math.min(pageRange * 2 + 1, totalPages); 2937 } 2938 2939 // Making sure that 1 more page button is shown in edge positions 2940 if (pageRange === 0) { 2941 if (searchParams.page === totalPages) { 2942 rangeStart = totalPages <= 1 ? 1 : totalPages - 1; 2943 } 2944 if (searchParams.page === 1) { 2945 rangeEnd = Math.min(2, totalPages); 2946 } 2947 } 2948 2949 // Render pagination list 2950 if (mode === 'NUMBERED_PAGINATION') { 2951 el.innerHTML = generateHTML({ 2952 currentPage: searchParams.page, 2953 pageRange: pageRange, 2954 rangeStart: rangeStart, 2955 rangeEnd: rangeEnd 2956 }); 2957 if (totalPages < 2 && hidePaginationOnFirstPage) { 2958 container.style.display = 'none'; 2959 } else { 2960 container.style.display = ''; 2961 } 2962 } else if (mode === 'LOAD_MORE_BUTTON') { 2963 if (searchParams.page >= totalPages) {
2964 loadMoreButton.style.display = 'none'; 2965 } else { 2966 loadMoreButton.style.display = ''; 2967 } 2968 } 2969 } 2970 function render(data) { 2971 renderPaginationList(); 2972 2973 // Render new content with handlebars 2974 var html = ''; 2975 if (mode === 'LOAD_MORE_BUTTON' && searchParams.page > 1) { 2976 // If using load more, append search results to existing results 2977 html = dataContainer.innerHTML; 2978 } 2979 for (var i = 0; i < data.length; i++) { 2980 var itemData = recursivelyParse(data[i]); 2981 itemData.sectionIndex = options.sectionIndex; 2982 itemData.renderOptions = options.renderOptions; 2983 html += template(itemData); 2984 } 2985 dataContainer.innerHTML = html; 2986 2987 // Scroll Top 2988 if (!firstRender && mode === 'NUMBERED_PAGINATION' && (!renderBySearch || !options.skipScrollOnSearch)) { 2989 // Only animate to the top if we replace dataContainer (numbered pagination) 2990 setTimeout(() => { 2991 const scrollTargetOffsetTop = scrollTarget.getBoundingClientRect().top + window.scrollY - scrollOffset; 2992 window.scrollTo({ 2993 top: scrollTargetOffsetTop, 2994 behavior: 'smooth' 2995 }); 2996 }, 250); 2997 } 2998 return true; 2999 } 3000 function generateHTML(args) { 3001 const totalPages = getTotalPage(); 3002 const { 3003 rangeStart, 3004 rangeEnd 3005 } = args; 3006 const makeLnk = page => window.luxuryPresence.pagination.serializeParams(searchFormParams, sectionDomId, { 3007 ...searchParams, 3008 page 3009 }); 3010 let html = ''; 3011 if (showPrevious || showPageNumbers || showNext) { 3012 html += '<div class="paginationjs-pages"><ul>'; 3013 3014 // Previous button 3015 if (showPrevious) { 3016 if (searchParams.page <= 1) { 3017 html += `<li class="${classPrefix}-prev ${disableClassName}"><a>${prevText}</a></li>`; 3018 } else { 3019 html += `<li class="${classPrefix}-prev J-paginationjs-previous" data-num="${searchParams.page - 1}" title="Previous page"><a href="${makeLnk(searchParams.page - 1)}">${prevText}</a></li>`; 3020 } 3021 } 3022 3023 // Pages 3024 if (showPageNumbers) { 3025 if (rangeStart <= 3) { 3026 for (let i = 1; i < rangeStart; i++) { 3027 html += `<li class="${classPrefix}-page J-paginationjs-page ${i === searchParams.page ? activeClassName : ''}" data-num="${i}"><a ${i === searchParams.page ? '' : `href="${makeLnk(i)}"`}>${i}</a></li>`; 3028 } 3029 } else { 3030 if (showFirstOnEllipsisShow) { 3031 html += `<li class="${classPrefix}-page ${classPrefix}-first J-paginationjs-page" data-num="1"><a href="${makeLnk(1)}">1</a></li>`; 3032 } 3033 html += `<li class="${classPrefix}-ellipsis ${disableClassName}"><a>${ellipsisText}</a></li>`; 3034 } 3035 for (let i = rangeStart; i <= rangeEnd; i++) { 3036 html += `<li class="${classPrefix}-page J-paginationjs-page ${i === searchParams.page ? activeClassName : ''}" data-num="${i}"><a ${i === searchParams.page ? '' : `href="${makeLnk(i)}"`}>${i}</a></li>`; 3037 } 3038 if (rangeEnd < totalPages - 2) { 3039 html += `<li class="${classPrefix}-ellipsis ${disableClassName}"><a>${ellipsisText}</a></li>`; 3040 if (showLastOnEllipsisShow) { 3041 html += `<li class="${classPrefix}-page ${classPrefix}-last J-paginationjs-page" data-num="${totalPages}"><a href="${makeLnk(totalPages)}">${totalPages}</a></li>`; 3042 } 3043 } else { 3044 for (let i = rangeEnd + 1; i <= totalPages; i++) { 3045 html += `<li class="${classPrefix}-page J-paginationjs-page" data-num="${i}"><a href="${makeLnk(i)}">${i}</a></li>`; 3046 } 3047 } 3048 } 3049 3050 // Next button 3051 if (showNext) { 3052 if (searchParams.page >= totalPages) { 3053 html += `<li class="${classPrefix}-next ${disableClassName}"><a>${nextText}</a></li>`; 3054 } else { 3055 html += `<li class="${classPrefix}-next J-paginationjs-next" data-num="${searchParams.page + 1}" title="Next page"><a href="${makeLnk(searchParams.page + 1)}">${nextText}</a></li>`; 3056 } 3057 } 3058 html += '</ul></div>'; 3059 } 3060 return html; 3061 } 3062 function go(newSearchParams, callback, restorationVisit) { 3063 if (disabled) return; 3064 var goToPageNumber = newSearchParams.page; 3065 3066 // Page number is out of bounds 3067 if (!goToPageNumber || goToPageNumber < 1) return; 3068 var totalPage = getTotalPage(); 3069 3070 // Page number is out of bounds 3071 if (!restorationVisit && totalNumber > 0) { 3072 if (goToPageNumber > totalPage) return; 3073 } 3074 if (!options.skipSerialization && (mode === 'NUMBERED_PAGINATION' || searchContainer)) {
3075 var newURL = window.luxuryPresence.pagination.serializeParams(searchFormParams, sectionDomId, { 3076 ...newSearchParams, 3077 page: goToPageNumber !== 1 && mode === 'NUMBERED_PAGINATION' ? newSearchParams.page : null 3078 }); 3079 if (!areQueryParamsEqual(newSearchParams, searchParams) && !restorationVisit) { 3080 window.history.pushState({}, '', window.luxuryPresence.getPath(newURL, { 3081 queryString: true 3082 })); 3083 } 3084 } 3085 3086 // Fetch and update page 3087 fetchData(newSearchParams, renderWithData); 3088 disabled = true; 3089 function renderWithData(err, data, count) { 3090 if (err) { 3091 dataContainer.dispatchEvent(new Event('error')); 3092 } else { 3093 searchParams = { 3094 ...newSearchParams 3095 }; 3096 totalNumber = count - offset; 3097 if (data.length === 0) { 3098 dataContainer.dispatchEvent(new Event('no-data')); 3099 } else { 3100 dataContainer.dispatchEvent(new Event('data')); 3101 } 3102 render(data); 3103 firstRender = false; 3104 } 3105 disabled = false; 3106 renderBySearch = false; 3107 } 3108 } 3109 function areQueryParamsEqual(first, second) { 3110 var differ = Object.keys(first).find(function (key) { 3111 return first[key] !== undefined && first[key] !== null && first[key] !== second[key]; 3112 }); 3113 if (differ) { 3114 return false; 3115 } 3116 differ = Object.keys(second).find(function (key) { 3117 return second[key] !== undefined && second[key] !== null && second[key] !== first[key]; 3118 }); 3119 return !differ; 3120 } 3121 function next(callback) { 3122 go({ 3123 ...searchParams, 3124 page: searchParams.page + 1 3125 }, callback); 3126 } 3127 function previous(callback) { 3128 go({ 3129 ...searchParams, 3130 page: searchParams.page - 1 3131 }, callback); 3132 } 3133 function refresh(callback) { 3134 go(searchParams, callback); 3135 } 3136 function update(params, callback) { 3137 renderBySearch = true; 3138 go(params, callback); 3139 } 3140 function observer() { 3141 if (searchContainer) { 3142 searchContainer.addEventListener('search', function (event, newSearchParams) { 3143 newSearchParams = event.detail || newSearchParams; 3144 update({ 3145 ...searchParams, 3146 ...newSearchParams, 3147 page: 1 3148 }); 3149 }); 3150 searchContainer.addEventListener('clear-search', function () { 3151 const defaultSearchParams = { 3152 ...DefaultSearchParams 3153 }; 3154 const isCurrentSearchFormStateDefault = areQueryParamsEqual({ 3155 ...defaultSearchParams, 3156 page: null 3157 }, { 3158 ...searchParams, 3159 page: null 3160 }); 3161 3162 // if mode is LOAD_MORE_BUTTON we should't make anything on clear 3163 // when search form have default state 3164 if (isCurrentSearchFormStateDefault && mode !== 'NUMBERED_PAGINATION') { 3165 return; 3166 } 3167 3168 // if someone initially go to some page and click 'Clear' on search from 3169 // we should't navigate to first page. We should preserve page value 3170 if (isCurrentSearchFormStateDefault) { 3171 defaultSearchParams.page = searchParams.page; 3172 } 3173 syncSearchFormState(defaultSearchParams); 3174 update(defaultSearchParams); 3175 }); 3176 } 3177 if (mode === 'LOAD_MORE_BUTTON') { 3178 loadMoreButton.addEventListener('click', function (event) { 3179 go({ 3180 ...searchParams, 3181 page: searchParams.page + 1 3182 }); 3183 return false; 3184 }); 3185 } 3186 if (mode === 'LOAD_MORE_BUTTON' || mode === 'BUTTONLESS_PAGINATION') { 3187 // Do initial render 3188 go(Object.assign({}, searchParams, { 3189 page: 1 3190 })); 3191 return; 3192 } 3193 if (mode === 'NUMBERED_PAGINATION') { 3194 // Go to specified page number 3195 container.addEventListener(eventPrefix + 'go', function (event) { 3196 let { 3197 pageNumber, 3198 done 3199 } = event.detail || {}; 3200 pageNumber = parseInt(pageNumber, 10); 3201 if (!pageNumber) { 3202 return; 3203 } 3204 go({ 3205 ...searchParams, 3206 page: pageNumber 3207 }, done); 3208 }); 3209 3210 // Page number button click 3211 el.addEventListener('click', function (event) { 3212 let clickTarget = event.target; 3213 let current = clickTarget.closest('.J-paginationjs-page, .J-paginationjs-previous, .J-paginationjs-next'); 3214 let pageNumber = current?.getAttribute('data-num'); 3215 if (!pageNumber || current.classList.contains(disableClassName) || current.classList.contains(activeClassName)) { 3216 return; 3217 } else { 3218 go({ 3219 ...searchParams, 3220 page: parseInt(pageNumber, 10) 3221 }); 3222 } 3223 event.preventDefault(); 3224 }); 3225 3226 // Whether to load the default page 3227 var defaultPageNumber = searchParams.page; 3228 if (triggerPagingOnInit) {
3229 container.dispatchEvent(new CustomEvent(eventPrefix + 'go', { 3230 detail: { 3231 pageNumber: defaultPageNumber 3232 } 3233 })); 3234 } 3235 } 3236 window.addEventListener('popstate', function (event) { 3237 var newParams = Object.assign({}, DefaultSearchParams, window.luxuryPresence.pagination.deserializeParams(searchFormParams, sectionDomId)); 3238 if (!areQueryParamsEqual(newParams, searchParams)) { 3239 go(newParams, null, true); 3240 if (searchContainer) { 3241 syncSearchFormState(newParams); 3242 } 3243 } 3244 }); 3245 } 3246 function replaceVariables(template, variables) { 3247 var formattedString; 3248 for (var key in variables) { 3249 var value = variables[key]; 3250 var regexp = new RegExp('<%=\\s*' + key + '\\s*%>', 'img'); 3251 formattedString = (formattedString || template).replace(regexp, value); 3252 } 3253 return formattedString; 3254 } 3255 function isTextEditorValue(obj) { 3256 return 'raw' in obj || 'gjs' in obj; 3257 } 3258 function getTextEditorValue(obj) { 3259 if (!obj.html) { 3260 return ''; 3261 } 3262 var data = obj.html; 3263 var css = (obj.raw || obj.gjs || {}).css; 3264 if (css) { 3265 data = data + '<style>' + css + '</style>'; 3266 } 3267 return data; 3268 } 3269 3270 /** 3271 * check rendered resources for html and raw properties that could indicate if resource is from an advanced text editor. 3272 * strips out raw proprties and returns only HTML if it exists. 3273 * @param {Object} resources a collection retrieved from the database 3274 * @return {Object} the newly modified object. 3275 */ 3276 function recursivelyParse(resources) { 3277 forEach(resources, function (value, key) { 3278 if (!value) { 3279 return; 3280 } 3281 if (value instanceof Object) { 3282 if (isTextEditorValue(value)) { 3283 resources[key] = getTextEditorValue(value); 3284 return; 3285 } else { 3286 return recursivelyParse(value); 3287 } 3288 } 3289 try { 3290 var parsedData = JSON.parse(value); 3291 if (isTextEditorValue(parsedData)) { 3292 resources[key] = getTextEditorValue(parsedData); 3293 } 3294 } catch (e) { 3295 // do nothing if we failed to parse value as JSON 3296 } 3297 }); 3298 return resources; 3299 } 3300 function forEach(collection, iteratee) { 3301 var func = Array.isArray(collection) ? arrayEach : baseFor; 3302 return func(collection, iteratee); 3303 } 3304 function baseFor(object, iteratee) { 3305 if (!object) { 3306 return; 3307 } 3308 var iterable = Object(object); 3309 var props = Object.keys(object); 3310 var length = props.length; 3311 var index = -1; 3312 while (length--) { 3313 var key = props[++index]; 3314 if (iteratee(iterable[key], key, iterable) === false) { 3315 break; 3316 } 3317 } 3318 return object; 3319 } 3320 function objSet(obj, path, value) { 3321 const pathArray = Array.isArray(path) ? path : path.match(/([^[.\]])+/g); 3322 pathArray.reduce((acc, key, i) => { 3323 if (acc[key] === undefined) acc[key] = {}; 3324 if (i === pathArray.length - 1) acc[key] = value; 3325 return acc[key]; 3326 }, obj); 3327 } 3328 function arrayEach(array, iteratee) { 3329 var index = -1; 3330 var length = array.length; 3331 while (++index < length) { 3332 if (iteratee(array[index], index, array) === false) { 3333 break; 3334 } 3335 } 3336 return array; 3337 } 3338 function selectPageRangeMode(e) { 3339 pageRange = e.matches ? mobilePageRange : desktopPageRange; 3340 renderPaginationList(); 3341 } 3342 paginationMql.addEventListener('change', selectPageRangeMode); 3343})('section-65cbf1db-f9ee-4a1f-ae72-115648af7c76', JSON.parse("{\"pageSize\":\"6\",\"resource\":\"posts\",\"pageRange\":0,\"variables\":{\"limit\":6,\"order\":\"publishedAt\",\"offset\":0,\"sortDir\":\"DESC\",\"companyId\":\"2aaf8e5a-1524-403d-bb59-9fffdf8ad2f5\",\"categoryId\":\"{{pageElement.categoryId}}\"},\"searchFormParams\":[{\"param\":\"search\",\"urlKey\":\"search\"},{\"param\":\"categoryIds\",\"urlKey\":\"category\"}],\"skipScrollOnSearch\":true,\"scrollTargetSelector\":\".blog-list__container\",\"hidePaginationOnFirstPage\":true,\"companyId\":\"2aaf8e5a-1524-403d-bb59-9fffdf8ad2f5\",\"usePageResource\":false,\"sectionIndex\":2,\"useRouterApi\":true,\"routerApiAux\":{\"testimonials\":true,\"agents\":false,\"neighborhoods\":false,\"developments\":false,\"properties\":false,\"posts\":true,\"pressReleases\":true,\"offices\":true,\"teams\":true,\"pois\":true,\"postCategories\":true}}")); 3344} catch(e) { 3345console.log(e); 3346} 3347 try { 3348(function init(sectionDomId) { 3349 const section = $(`#${sectionDomId}`); 3350 const searchInput = section.find('.js-search-input'); 3351 const searchContainer = section.find('.search-container'); 3352 const dataContainer = section.find('.data-container'); 3353 const categoryFilter = section.find('.js-category-filter'); 3354 const btnCategory = section.find('.js-btn-category'); 3355 let activeFilters = null; 3356 if (searchContainer.length === 0) return; 3357 const { 3358 debounce 3359 } = window.luxuryPresence; 3360 const emptyResultsText = section.find('.empty-results'); 3361 searchInput.on('input', debounce(doSearch, 700)); 3362 dataContainer.on('data', function () { 3363 emptyResultsText.removeClass("visible"); 3364 }); 3365 dataContainer.on('no-data', function () { 3366 emptyResultsText.addClass("visible"); 3367 }); 3368 btnCategory.click(function () { 3369 $(this).toggleClass('active'); 3370 categoryFilter.slideToggle(); 3371 }); 3372 function doSearch() { 3373 let values = categoryFilter.find('.active').map(function () { 3374 return $(this).data('value'); 3375 }).get(); 3376 const params = { 3377 categoryIds: values || null, 3378 search: searchInput.val().trim() || null 3379 }; 3380 searchContainer[0]?.dispatchEvent(new CustomEvent('search', { 3381 detail: params 3382 })); 3383 } 3384 categoryFilter.on('click', '.category-cell', function () { 3385 if ($(this).hasClass('js-category-all')) { 3386 section.find('.category-cell').removeClass('active'); 3387 $(this).addClass('active'); 3388 } else { 3389 $(this).toggleClass('active'); 3390 section.find('.js-category-all').removeClass('active'); 3391 } 3392 doSearch(); 3393 }); 3394 searchContainer.on('post-categories-data', function (ev, category) { 3395 category = ev.detail || category; 3396 categoryFilter.find('.js-category-cell').remove(); 3397 categoryFilter.find('.active').removeClass('active'); 3398 let btnClass = categoryFilter.data('button-style'); 3399 if (Array.isArray(category.data) && category.data.length) { 3400 btnCategory.css('display', 'inline-flex'); 3401 categoryFilter.append(category.data.map(item => `<button id="filter-${item.id}" data-value="${item.id}" class="category-cell js-category-cell lp-btn ${btnClass}">${item.name}</button>`).join('\n')); 3402 } else { 3403 btnCategory.remove(); 3404 } 3405 setActiveFilters(); 3406 }); 3407 searchContainer.on('sync', function (event, params) { 3408 params = event.detail || params; 3409 activeFilters = params; 3410 setActiveFilters(); 3411 }); 3412 function setActiveFilters() { 3413 categoryFilter.find('.active').removeClass('active'); 3414 if (activeFilters.categoryIds !== null && activeFilters.categoryIds.length > 0) { 3415 activeFilters.categoryIds.forEach(function (categoryId) { 3416 categoryFilter.find(`#filter-${categoryId}`).addClass('active'); 3417 }); 3418 } else { 3419 categoryFilter.find('.js-category-all').addClass('active'); 3420 } 3421 } 3422})('section-65cbf1db-f9ee-4a1f-ae72-115648af7c76', JSON.parse("{\"resource\":\"posts\",\"useRouterApi\":true,\"companyId\":\"2aaf8e5a-1524-403d-bb59-9fffdf8ad2f5\",\"usePageResource\":false,\"sectionIndex\":2,\"routerApiAux\":{\"testimonials\":true,\"agents\":false,\"neighborhoods\":false,\"developments\":false,\"properties\":false,\"posts\":true,\"pressReleases\":true,\"offices\":true,\"teams\":true,\"pois\":true,\"postCategories\":true}}")); 3423} catch(e) { 3424console.log(e); 3425} 3426 try { 3427(function init(sectionDomId) { 3428 var $contactForm = $('#' + sectionDomId + ' .newsletter-signup__form'); 3429 $contactForm.find('.contact-form__reset').click(function (e) { 3430 e.preventDefault(); 3431 $(this).closest('form').removeClass('success').trigger("reset"); 3432 }); 3433 $contactForm.find('input[name="name"]').on("keyup", function () { 3434 if (this.value.replaceAll(/\d/g, "").trim() === "") { 3435 this.setCustomValidity("Please enter your name."); 3436 } else { 3437 this.setCustomValidity(""); 3438 } 3439 }); 3440 const form = $("#" + sectionDomId).find("form"); 3441 const redirectLink = $('#' + sectionDomId + ' .redirect-link'); 3442 form.on("reset", function () { 3443 redirectPage(redirectLink); 3444 }); 3445 function redirectPage(link) { 3446 if (link.length) { 3447 const rawHref = link.attr('href'); 3448 link.attr('href', setHttp(rawHref)); 3449 link[0].click(); 3450 } 3451 } 3452 function setHttp(link) { 3453 if (link.search(/^http[s]?\:\/\/|\//) == -1) { 3454 link = 'http://' + link; 3455 } 3456 return link; 3457 } 3458})('section-56f9b725-4e99-4d1c-9768-651be618ee2a', 'undefined'); 3459} catch(e) { 3460console.log(e); 3461} 3462 try { 3463(function init(sectionDomId) { 3464 const $section = $('#' + sectionDomId); 3465 if ($section.find('.parallax').length) $section.addClass('parallax-enabled'); 3466 if ($section.find('.video-wrapper').length) $section.addClass('video'); 3467})('section-1af8d6b4-8fcf-4a16-9cd4-e703b0e44663', 'undefined'); 3468} catch(e) { 3469console.log(e); 3470} 3471 try { 3472(function init(sectionDomId, options) { 3473 let section = null; 3474 switch (sectionDomId) { 3475 case 'NAVBAR': 3476 section = document.querySelector('body > nav, #global-navbar'); 3477 break; 3478 case 'FOOTER': 3479 section = document.querySelector('body > footer, #global-footer'); 3480 break; 3481 case 'SIDEMENU': 3482 section = document.querySelector('body > div.sidemenu, #global-sidemenu'); 3483 break; 3484 case 'CONTACT':
3485 section = document.querySelector('#modal-global-contact-us'); 3486 break; 3487 case 'MOBILE_CONTACT': 3488 section = document.querySelector('body > div.mobile-contact-wrapper, #global-mobile-contact'); 3489 break; 3490 case 'SUBSCRIBE': 3491 // Subscribe Not Implemented 3492 section = null; 3493 break; 3494 case 'ACCOUNT': 3495 // Account Not Implemented 3496 section = null; 3497 break; 3498 default: 3499 section = document.querySelector('#' + sectionDomId); 3500 } 3501 if (!section) { 3502 return; 3503 } 3504 var url = window.luxuryPresence.defaults.routerUrl; 3505 var companyId = window.luxuryPresence.defaults.companyId; 3506 var limit = options.limit || 8; 3507 if (typeof limit === 'string') { 3508 limit = parseInt(limit, 10) || 8; // this NaN protection also filters out 0 - this is expected 3509 } 3510 var templateSelector = options.templateSelector || '.jsIGTemplate'; 3511 var containerSelector = options.containerSelector || '.jsIGContainer'; 3512 var hasDataClass = options.hasDataClass || 'has-data'; 3513 var hideActivateMessage = options.hasDataClass || false; 3514 var payload = { 3515 companyId: companyId, 3516 limit: limit 3517 }; 3518 if (options.resourceId && typeof options.resourceId === 'string' && !options.resourceId.match(/^{{.*}}$/)) { 3519 payload.resourceId = options.resourceId; 3520 // Federated enum values are uppercase (AGENT/TEAM); element configs carry lowercase 3521 payload.resource = String(options.resource || 'agent').toUpperCase(); 3522 payload.fallbackToNoResource = options.fallbackToNoResource === 'true' || options.fallbackToNoResource === true; 3523 } 3524 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'; 3525 var templateHTML = section.querySelector(templateSelector)?.innerHTML || ''; 3526 var template = Handlebars.compile(templateHTML); 3527 var container = section.querySelector(containerSelector); 3528 if (options.variables) { 3529 Object.keys(options.variables).forEach(function (key) { 3530 if (options.variables.hasOwnProperty(key) && (typeof options.variables[key] !== 'string' || !options.variables[key].match(/^{{.*}}$/))) { 3531 payload[key] = options.variables[key]; 3532 } 3533 }); 3534 } 3535 function getData() { 3536 var feed = { 3537 error: true 3538 }; 3539 if (payload.companyId == null || payload.companyId === '') { 3540 // instagramContentFeed requires companyId (ID!) — nothing to fetch without it. 3541 // Checked after the options.variables merge, which may override the default. 3542 // Deferred so element listeners (attached after this template runs) still receive it. 3543 setTimeout(function () { 3544 section.dispatchEvent(new CustomEvent('ig-data', { 3545 detail: feed 3546 })); 3547 }, 0); 3548 return; 3549 } 3550 superagent.post(url + '/graphql').send({ 3551 query: query, 3552 variables: payload 3553 }).then(res => { 3554 try { 3555 if (!res.body.errors) { 3556 feed = res.body.data.instagramContentFeed; 3557 if (!feed.active) { 3558 if (!hideActivateMessage && sectionDomId === 'section-temp' && container) { 3559 if (payload.resourceId) { 3560 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>'; 3561 } else { 3562 container.innerHTML = '<div style="text-align: center">Instagram account is not connected.<br /> Connect it on <a href="/profile">Profile page</a></div>'; 3563 } 3564 } 3565 } else { 3566 if (feed.items.length) { 3567 if (hasDataClass) { 3568 section.classList.add(hasDataClass); 3569 } 3570 const feedName = feed.username; 3571 section.querySelectorAll('.jsIGLink').forEach(link => link.setAttribute('href', feed.feedUrl)); 3572 section.querySelectorAll('.jsIGName').forEach(name => { 3573 name.textContent = '@' + feedName; 3574 name.setAttribute('title', '@' + feedName); 3575 }); 3576 if (container && template) { 3577 container.innerHTML = template(feed); 3578 } 3579 } 3580 } 3581 } 3582 } catch (e) {} 3583 section.dispatchEvent(new CustomEvent('ig-data', { 3584 detail: feed 3585 })); 3586 }).catch(e => { 3587 console.log('err', e); 3588 section.dispatchEvent(new CustomEvent('ig-data', { 3589 detail: feed 3590 })); 3591 }); 3592 } 3593 getData(); 3594})('section-91399073-5f3c-4d74-8653-9093fa5f815d', JSON.parse("{\"limit\":33,\"resource\":\"agent\",\"resourceId\":\"\",\"fallbackToNoResource\":\"true\",\"companyId\":\"2aaf8e5a-1524-403d-bb59-9fffdf8ad2f5\",\"usePageResource\":false,\"sectionIndex\":5,\"useRouterApi\":false,\"routerApiAux\":{\"testimonials\":true,\"agents\":false,\"neighborhoods\":false,\"developments\":false,\"properties\":false,\"posts\":true,\"pressReleases\":true,\"offices\":true,\"teams\":true,\"pois\":true,\"postCategories\":true}}")); 3595} catch(e) { 3596console.log(e); 3597} 3598 try { 3599(function init(sectionDomId) { 3600 const $section = $('#' + sectionDomId); 3601 var templateHTML = $section.find('.jsIGItem').html(); 3602 var itemTemplate = templateHTML && Handlebars.compile(templateHTML); 3603 const $container = $section.find('.ig-feed-feed'); 3604 const $topPrev = $section.find('.top-nav-prev'); 3605 const $topNext = $section.find('.top-nav-next'); 3606 const $bottomPrev = $section.find('.bottom-nav-prev'); 3607 const $bottomNext = $section.find('.bottom-nav-next'); 3608 let limit = 33; 3609 try { 3610 limit = parseInt($container[0].dataset['limit']); 3611 } catch (e) {} 3612 if (!limit) { 3613 limit = 33; 3614 } 3615 let igFeed = {}; 3616 let usedWidth = 0; 3617 let slider = null; 3618 $section.on('ig-data', function (ev, feed) { 3619 feed = ev.detail || feed; 3620 igFeed = feed; 3621 if (feed.active && feed.items.length) { 3622 buildSlider(); 3623 } 3624 }); 3625 $(window).on('resize.lpui-auto-clean', onResize); 3626 let timer = null; 3627 function onResize() { 3628 clearTimeout(timer); 3629 timer = window.setTimeout(buildSlider, 50); 3630 } 3631 function getLayout(w, n) { 3632 if (w > 1100) { 3633 if (n > 7) { 3634 return { 3635 type: 'type1', 3636 single: 1, 3637 multi: n, 3638 slides: 3, 3639 slider: n > 9 3640 }; 3641 } 3642 if (n > 5) { 3643 return { 3644 type: 'type1', 3645 single: 2, 3646 multi: n, 3647 slides: 3, 3648 slider: false 3649 }; 3650 } 3651 return { 3652 type: 'type1', 3653 single: n, 3654 multi: n, 3655 slides: 3, 3656 slider: n > 3 3657 }; 3658 } else if (w > 880) { 3659 if (n > 4) { 3660 return { 3661 type: 'type2', 3662 single: 1, 3663 multi: n, 3664 slides: 2.5, 3665 slider: n > 7 3666 }; 3667 } 3668 return { 3669 type: 'type1', 3670 single: n, 3671 multi: n, 3672 slides: 3, 3673 slider: n > 3 3674 }; 3675 } else if (w > 767) { 3676 if (n > 4) { 3677 return { 3678 type: 'type3', 3679 single: 1, 3680 multi: n, 3681 slides: 2, 3682 slider: n > 5 3683 }; 3684 } 3685 return { 3686 type: 'type4', 3687 single: n, 3688 multi: n, 3689 slides: 2, 3690 slider: n > 2 3691 }; 3692 } else if (w > 460) { 3693 return { 3694 type: 'type4', 3695 single: n, 3696 multi: n, 3697 slides: 2, 3698 slider: n > 2 3699 }; 3700 } 3701 return { 3702 type: 'type5', 3703 single: n, 3704 multi: n, 3705 slides: 1, 3706 slider: n > 1 3707 }; 3708 } 3709 function ensureClass($el, className) { 3710 if ($el.hasClass(className)) { 3711 return; 3712 } 3713 $el.addClass(className); 3714 } 3715 function makeSquare($el) { 3716 const el = $el[0]; 3717 el.style.width = ''; 3718 el.style.height = ''; 3719 const rect = el.getBoundingClientRect(); 3720 if (rect.width !== rect.height) { 3721 el.style.width = rect.height + 'px'; 3722 } 3723 } 3724 function buildSlider() { 3725 const cWidth = $container[0].getBoundingClientRect().width; 3726 if (cWidth === usedWidth) { 3727 return; 3728 } 3729 $container.empty();
3730 slider = $('<div class="ig-feed-slider"></div>'); 3731 const items = igFeed.items.slice(0, limit); 3732 const layout = getLayout(cWidth, items.length); 3733 let i = 0; 3734 let slide = null; 3735 while (i < layout.single) { 3736 slide = $(`<div class="slide-single ${layout.type}"></div>`).append(itemTemplate(items[i])).appendTo(slider); 3737 i++; 3738 } 3739 while (i < layout.multi) { 3740 slide = $(`<div class="slide-multi ${layout.type}"></div>`).appendTo(slider); 3741 let slideContent = $('<div class="slide-multi-content"></div>').appendTo(slide); 3742 const lim = i + 4; 3743 while (i < lim && i < layout.multi) { 3744 slideContent.append(itemTemplate(items[i])); 3745 i++; 3746 } 3747 } 3748 $container.append(slider); 3749 if (layout.slider) { 3750 $topPrev.removeClass('hidden-control'); 3751 $topNext.removeClass('hidden-control'); 3752 $bottomPrev.removeClass('hidden-control'); 3753 $bottomNext.removeClass('hidden-control'); 3754 let prev, next; 3755 if ($bottomPrev.parent()[0].getBoundingClientRect().width) { 3756 prev = $bottomPrev; 3757 next = $bottomNext; 3758 } else { 3759 prev = $topPrev; 3760 next = $topNext; 3761 makeSquare($topPrev); 3762 makeSquare($topNext); 3763 } 3764 slider.children().each(function () { 3765 this.style.width = this.getBoundingClientRect().width + 'px'; 3766 }); 3767 slider.slick({ 3768 dots: false, 3769 prevArrow: prev, 3770 nextArrow: next, 3771 slidesToScroll: 1, 3772 infinite: false, 3773 slidesToShow: layout.slides 3774 }); 3775 } else { 3776 ensureClass($topPrev, 'hidden-control'); 3777 ensureClass($topNext, 'hidden-control'); 3778 ensureClass($bottomPrev, 'hidden-control'); 3779 ensureClass($bottomNext, 'hidden-control'); 3780 } 3781 } 3782})('section-91399073-5f3c-4d74-8653-9093fa5f815d', JSON.parse("{\"resource\":\"agent\",\"useRouterApi\":false,\"companyId\":\"2aaf8e5a-1524-403d-bb59-9fffdf8ad2f5\",\"usePageResource\":false,\"sectionIndex\":5,\"routerApiAux\":{\"testimonials\":true,\"agents\":false,\"neighborhoods\":false,\"developments\":false,\"properties\":false,\"posts\":true,\"pressReleases\":true,\"offices\":true,\"teams\":true,\"pois\":true,\"postCategories\":true}}")); 3783} catch(e) { 3784console.log(e); 3785} 3786 3787 var { body } = document; 3788 var globalNav = body.querySelector(':scope > nav'); 3789 var globalSideMenu = body.querySelector(':scope > div.sidemenu'); 3790 3791 document.querySelectorAll('body > .modal .close').forEach(modalCloseBtn => { 3792 modalCloseBtn.addEventListener('click', function() { 3793 window.lpUI.hideClosestModal(modalCloseBtn); 3794 }); 3795 }); 3796 3797 window.addEventListener('click', function() { 3798 document.querySelectorAll('.share-popup').forEach(sharedPopup => { 3799 sharedPopup.style.display = 'none' ; 3800 }); 3801 }); 3802 3803 /* Misc Partials / Addons */ 3804 function initWOW() { 3805 if (wow) { 3806 wow.init(); 3807 wow.scrollHandler(); 3808 setTimeout(function () { 3809 const wowHideStyle = document.getElementById('wow-hide-elements'); 3810 if(wowHideStyle) { 3811 wowHideStyle.disabled = true; 3812 } 3813 }, 1); 3814 } 3815 } 3816 3817 const wowHideElements = document.getElementById('wow-hide-elements'); 3818 if (wowHideElements) { 3819 wowHideElements.disabled = false; 3820 } 3821 3822 initWOW(); 3823 3824 /* Generic Navbar Handling */ 3825 globalNav?.querySelectorAll('.hamburger-component').forEach(hamburgerComponent => { 3826 hamburgerComponent.addEventListener('click', function() { 3827 window.lpUI.sideMenuToggle(); 3828 }); 3829 }); 3830 globalSideMenu?.querySelectorAll('.toggle').forEach(toggleEl => { 3831 toggleEl.addEventListener('click', function() { 3832 window.lpUI.sideMenuToggle(); 3833 }); 3834 }); 3835 3836 document.querySelectorAll('body > nav .sub-nav-container > a, body > div.sidemenu .sub-nav-container > a').forEach(linkEl => { 3837 linkEl.addEventListener('click', function(e) { 3838 e.preventDefault(); 3839 e.stopPropagation();
3840 var subNav = linkEl.parentElement.querySelector(':scope > .sub-nav'); 3841 if (subNav && subNav.classList.contains('visible')){ 3842 subNav.classList.remove('visible'); 3843 } else { 3844 globalNav?.querySelectorAll('.sub-nav-container .sub-nav').forEach(globalSubNav => { 3845 globalSubNav.classList.remove('visible'); 3846 }); 3847 globalSideMenu?.querySelectorAll('.sub-nav').forEach(sideMenuSubNav => { 3848 sideMenuSubNav.classList.remove('visible'); 3849 }); 3850 subNav?.classList.add('visible'); 3851 } 3852 }); 3853 }); 3854 window.addEventListener('click', function() { 3855 document.querySelectorAll('nav .sub-nav.visible, .sidemenu .sub-nav.visible').forEach(subNavEl => { 3856 subNavEl.classList.remove('visible'); 3857 }); 3858 }); 3859 3860 } 3861 3862 document.addEventListener('DOMContentLoaded', lpGlobalInit); 3863 3864 </script>
3864 3865 3866
3866<script type="module"> 3867 function selectorExists(selector) { 3868 return document.querySelector(selector) !== null; 3869 } 3870 3871 // Function to initialize the third-party library 3872 function initParoller(selector = '.my-paroller') { 3873 var $parollerElements = $(selector); 3874 if ($parollerElements.length > 0 && typeof $parollerElements.paroller === 'function') { 3875 $parollerElements.paroller(); 3876 } 3877 } 3878 3879 const parollerSelector = '.my-paroller'; 3880 3881 if (selectorExists(parollerSelector)) { 3882 window.luxuryPresence.libs.loadJs(window.luxuryPresence.libs.jsLibsMap.paroller.jsSrc, function() { 3883 initParoller(parollerSelector); 3884 window.luxuryPresence.libs.jsLibsMap.paroller.isLoaded = true; 3885 }); 3886 } 3887 </script>
3887 3888 3889 <!-- Google Tag Manager (noscript) -->
vendor: 80 bytes, lines 3889-3890
3889 3890 <noscript><iframe src="https://www.googletagmanager.com/ns.html?id=
3890GTM-T9SFQGHZ
vendor: 107 bytes, lines 3890-3892
3890" 3891 height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript> 3892
3892<!-- End Google Tag Manager --> 3893
3893<script> 3894 //Add terms and conditions link to footer 3895 document.addEventListener('DOMContentLoaded', function() { 3896 const container = document.querySelector('.copy_zone'); 3897 const privacyLink = container ? container.querySelector('a') : null; 3898 3899 if (privacyLink) { 3900 // 1. Update the existing link to be "Privacy Policy" 3901 privacyLink.textContent = 'Privacy Policy'; 3902 privacyLink.href = '/terms-and-conditions'; 3903 privacyLink.target = '_blank'; 3904 privacyLink.rel = 'noreferrer noopener'; 3905 3906 // 2. Check if "Terms of Use" already exists to avoid duplicates 3907 const existingTerms = Array.from(container.querySelectorAll('a')) 3908 .find(a => a.textContent.includes('Terms of Use')); 3909 3910 if (!existingTerms) { 3911 // 3. Create the separator and the new Terms of Use link 3912 const separator = document.createTextNode(' | '); 3913 const termsLink = document.createElement('a'); 3914 3915 termsLink.textContent = 'Terms of Use'; 3916 termsLink.href = '/terms-and-conditions#sms-details'; 3917 termsLink.className = privacyLink.className; // Matches the style of the first link 3918 termsLink.target = '_blank'; 3919 termsLink.rel = 'noreferrer noopener'; 3920 3921 // 4. Append them to the container 3922 container.appendChild(separator); 3923 container.appendChild(termsLink); 3924 } 3925 } 3926 }); 3927</script>
3927 3928 3929 3930<!-- CUSTOM Compliance Checkbox Script Gohighlevel START -->
3931<script> 3932 function replaceFormDisclaimer(form) { 3933 try { 3934 // The default business name won't be required in most of cases as we read it from the disclaimer text 3935 const DEFAULT_BUSINESS_NAME = "Luxury Presence"; 3936 3937 const currentDisclaimer = form.querySelector(".lp-tcr-content"); 3938 if (!currentDisclaimer) return; 3939 const disclaimerParent = 3940 form.querySelector(".lp-disclaimer") || currentDisclaimer.parentElement; 3941 3942 const businessName = 3943 currentDisclaimer.textContent?.match( 3944 /I agree to be contacted by\s+(.*?)\s+via call/s 3945 )?.[1] || DEFAULT_BUSINESS_NAME; 3946 3947 function getFormId(form) { 3948 const SELECTORS = 3949 "section[id^='section-'], footer[id], .modal[id^='modal-']"; 3950 const parent = form.closest(SELECTORS); 3951 return parent?.id || ""; 3952 } 3953 3954 const parentId = getFormId(form); 3955 3956 const newDisclaimer = ` 3957 <label style="display: none;" for="${parentId}-termsAccepted">Opt in/Disclaimer Consent:</label> 3958 <label class="lp-tcr-content" style="margin-bottom: 1em;"> 3959 <span class="lp-tcr-checkbox"> 3960 <input type="checkbox" name="termsAccepted" id="${parentId}-termsAccepted" oninvalid="this.setCustomValidity('Please accept the terms and conditions')" 3961 oninput="this.setCustomValidity('')" value="Yes, I consent to receive marketing text messages, about special offers, discounts, and service updates, from ${businessName} at the phone number provided."> 3962 </span> 3963 <span class="lp-tcr-message"> 3964 I consent to receive marketing text messages, about special offers, discounts, and service updates, from ${businessName} at the phone number provided. Message frequency may vary. Message & data rates may apply. Text HELP for assistance, reply STOP to opt out. 3965 </span> 3966 </label> 3967 <label style="display: none;" for="${parentId}-customConsent">Opt in/Disclaimer Consent:</label> 3968 <label class="lp-tcr-content" style="margin-bottom: 1em;"> 3969 <span class="lp-tcr-checkbox"> 3970 <input type="checkbox" name="customConsent" id="${parentId}-customConsent" value="Yes, I consent to receive non-marketing text messages from ${businessName} about support requests, ticket updates, appointment coordination, or follow-up communications related to an existing inquiry."> 3971 </span> 3972 <span class="lp-tcr-message"> 3973 I consent to receive non-marketing text messages from ${businessName} about support requests, ticket updates, appointment coordination, or follow-up communications related to an existing inquiry. Message frequency may vary, message & data rates may apply. Text HELP for assistance, reply STOP to opt out. 3974 </span> 3975 </label> 3976 <div class="lp-tcr-content" style="margin-bottom: 1em;"> 3977 <span class="lp-tcr-message"> 3978 <a href="/terms-and-conditions" target="_blank" rel="noreferrer noopener">Privacy Policy</a> | <a href="/terms-and-conditions#sms-details" target="_blank" rel="noreferrer noopener">Terms of Use</a> 3979 </span> 3980 </div> 3981 `; 3982 3983 disclaimerParent.insertAdjacentHTML("beforeend", newDisclaimer); 3984 currentDisclaimer.remove(); 3985 } catch (error) { 3986 console.error("Error replacing form disclaimer:", error); 3987 } 3988 } 3989 3990 function getFilteredContactForms(root = document) { 3991 const PATH_MATCHES = ["/contact-us", "/contact", "/get-in-touch", "/connect", "/"]; 3992 const currentPath = window.location.pathname; 3993 3994 return Array.from( 3995 root.querySelectorAll('form[data-type="contact-form"]') 3996 ).filter((form) => { 3997 // Requirement 1: Must have a phone input 3998 const hasPhoneInput = form.querySelector('input[type="tel"]'); 3999 if (!hasPhoneInput) return false; 4000 4001 // Requirement 2: Must be inside a specific container or on a matching path 4002 const container = form.closest( 4003 '#global-mobile-contact, #modal-global-contact-us, .modal, [id^="modal-"]' 4004 ); 4005 const isInValidContainer = !!container; 4006 const isOnValidPath = PATH_MATCHES.includes(currentPath); 4007 4008 return isInValidContainer || isOnValidPath; 4009 }); 4010 } 4011 4012 const filteredForms = getFilteredContactForms(document); 4013 4014 if (filteredForms.length > 0) {
4015 filteredForms.forEach((form) => { 4016 replaceFormDisclaimer(form); 4017 }); 4018 } 4019 4020 // Function to initialize disclaimers for forms inside the modals container 4021 4022 function initializeDisclaimers(modalsContainer) { 4023 if (modalsContainer) { 4024 const filteredForms = getFilteredContactForms(modalsContainer); 4025 4026 filteredForms.forEach((form) => replaceFormDisclaimer(form)); 4027 } 4028 } 4029 4030 function observeModals() { 4031 const modalsContainer = document.getElementById("modals"); 4032 4033 if (modalsContainer) { 4034 let observerDisconnectionDone = false; 4035 const observer = new MutationObserver((mutationsList, observer) => { 4036 mutationsList.forEach((mutation) => { 4037 if (mutation.type === "childList") { 4038 mutation.addedNodes.forEach((node) => { 4039 if (node.nodeType === 1) { 4040 if (!observerDisconnectionDone) { 4041 initializeDisclaimers(modalsContainer); 4042 observerDisconnectionDone = true; 4043 observer.disconnect(); 4044 } 4045 } 4046 }); 4047 } 4048 }); 4049 }); 4050 4051 // Start observing the modals container for added child nodes 4052 observer.observe(modalsContainer, { 4053 childList: true, 4054 }); 4055 } 4056 } 4057 4058 document.addEventListener("DOMContentLoaded", () => { 4059 observeModals(); 4060 }); 4061</script>
4061 4062<!-- CUSTOM Compliance Checkbox Script - Gohighlevel END --> 4063 4064
4064<script 4065 src="https://cdn.luxurypresence.com/scripts/a11y-widget/latest/widget.js" 4066 data-website-id="a9dd2c66-346b-49bc-b2f9-24ad75fa20c9" 4067 4068 defer></script>
vendor: 1 bytes, line 4068
4068
4069<script type="module" src="https://static.cloudflareinsights.com/beacon.min.js/v31edd6df95cf4e85bb4c19e7a9bdbcba1788362987495" integrity="sha512-iIg7k2xntmwu6/uSb5tpc/hySgZc4eoL31yB29W6tJFo2akwjPWcEqnCEdJvGexCL0KEQwVYv5BlowfhVz26hg==" data-cf-beacon='{"version":"2024.11.0","token":"d2a8f4b3d65944edb8fcd6ffce49ee5e","spa":2}' crossorigin="anonymous"></script>
vendor: 1 bytes, line 4069
4069
4070<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:'a46a5b237ff94848',t:'MTc5MTM0OTM3MQ=='};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>
4070</body> 4071</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.