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>Georgian Bay, ON Real Estate Blog | Coxworth & Associates</title> 10 <meta property="og:title" content="Georgian Bay, ON Real Estate Blog | Coxworth & Associates"> 11 <meta name="twitter:title" content="Georgian Bay, ON Real Estate Blog | Coxworth & Associates"> 12 <meta name="description" content="Discover the best deals on Georgian Bay, ON real estate with Coxworth & Associates. Find your dream home in this beautiful waterfront community today!"> 13 <meta property="og:description" content="Discover the best deals on Georgian Bay, ON real estate with Coxworth & Associates. Find your dream home in this beautiful waterfront community today!"> 14 <meta name="twitter:description" content="Discover the best deals on Georgian Bay, ON real estate with Coxworth & Associates. Find your dream home in this beautiful waterfront community today!"> 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/21081fb8-719a-4b32-ae2d-225683c434ee"> 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/21081fb8-719a-4b32-ae2d-225683c434ee"> 17 <meta property="og:url" content="https://cottageliferealty.com/blog"> 18 <link rel="canonical" href="https://cottageliferealty.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 <style>@font-face {font-family: 'MercuryDisplayRoman';src: url('https://d1e1jt2fj4r8r.cloudfront.net/fonts/MercuryDisplayRoman/MercuryDisplay-Roman.woff2') format('woff2'),url('https://d1e1jt2fj4r8r.cloudfront.net/fonts/MercuryDisplayRoman/MercuryDisplay-Roman.woff') format('woff');font-weight: 400;font-style: normal;}</style><style>@font-face {font-family: 'BentonSans';src: url('https://d1e1jt2fj4r8r.cloudfront.net/fonts/BentonSans/v3/BentonSans-Regular.woff2') format('woff2'),url('https://d1e1jt2fj4r8r.cloudfront.net/fonts/BentonSans/v3/BentonSans-Regular.woff') format('woff');font-weight: 400;font-style: normal;}@font-face {font-family: 'BentonSans';src: url('https://d1e1jt2fj4r8r.cloudfront.net/fonts/BentonSans/v3/BentonSans-Medium.woff2') format('woff2'),url('https://d1e1jt2fj4r8r.cloudfront.net/fonts/BentonSans/v3/BentonSans-Medium.woff') format('woff');font-weight: 500;font-style: normal;}</style> 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:MercuryDisplayRoman,serif;--global-primary-font-family-short:MercuryDisplayRoman;--global-secondary-font-family:BentonSans,sans-serif;--global-secondary-font-family-short:BentonSans;--global-body-padding:0px;--global-background-color:#fff;--global-body-font-size:16px;--global-h1-font-size:55px;--global-h2-font-size:43px;--global-h3-font-size:30px;--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:BentonSans,sans-serif;font-size:16px;}@media (min-width: 768px){body{padding:0px 0px 0px 0px;}}h1,h2,h3,h4,h5,h6,button{font-family:MercuryDisplayRoman,serif;}h1{font-size:55px;}h2{font-size:43px;}h3{font-size:30px;}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">nav#global-navbar .header .navigation .sub-nav ul a{cursor:pointer;}h1,.lp-h1,h2,.lp-h2,h3,.lp-h3,h4,.lp-h4,h5,.lp-h5{text-transform:uppercase!important;}p{text-transform:none!important;}div#global-sidemenu.sidemenu a,nav#global-navbar a{text-transform:uppercase;}div#global-sidemenu.sidemenu button,nav#global-navbar button{text-transform:uppercase;}nav#global-navbar a{font-weight:400;}.redesign .btn--small{padding:20px 46px;}.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;}nav#global-navbar.scroll .header a.logo__link img:last-child{display:block!important;}nav#global-navbar.scroll .header a.logo__link img:first-child{display:none!important;}nav#global-navbar .header .navigation .sub-nav ul{background-color:transparent;}nav#global-navbar .header .navigation .sub-nav ul li{background-color:#FFF;}nav#global-navbar .header .navigation .sub-nav ul li:hover{background-color:#FFF;}nav#global-navbar .header .navigation .sub-nav ul a{color:#000!important;}nav#global-navbar.scroll{background-color:#FFF!important;}nav#global-navbar.scroll li.navigation__item a.navigation__link{color:#000!important;}nav#global-navbar.scroll li.navigation__item a.navigation__link:hover{color:#00244A!important;}nav#global-navbar.scroll li.navigation__item a.navigation__link span:after{background-color:#00244A!important;}nav#global-navbar.scroll button.hamburger-component.hamburger{color:#000;}nav#global-navbar.scroll button.hamburger-component.hamburger:hover{color:#00244A;}nav#global-navbar .header .navigation .sub-nav ul a:hover{color:#FFF!important;background-color:#00244A!important;}nav#global-navbar .header .navigation .sub-nav ul a:hover span:hover{color:#FFF!important;}nav#global-navbar .header .navigation .sub-nav ul a:hover span:after{background-color:#FFF!important;}nav .header .navigation .sub-nav__link{max-width:400px!important;}nav .header .navigation .sub-nav ul{max-width:400px!important;}nav#global-navbar.scroll li.navigation__item a.navigation__link:hover{color:#00244A;}nav#global-navbar.scroll li.navigation__item a.navigation__link span:after{background-color:#00244A;}nav#global-navbar .header{padding-top:5px;padding-bottom:5px;height:auto;}nav#global-navbar .header .logo{max-height:80px;}@media only screen and (min-width:768px){nav#global-navbar .header .logo a.logo__link img{max-height:80px;}}@media (max-width: 768px){nav .header .logo img{max-height:70px!important;}}@media (max-width: 768px){footer#global-footer .footer .info-wrap .type_user{margin-bottom:21px;}}@media (min-width: 1201px){footer#global-footer .footer .info-wrap .type_user{margin-bottom:21px;}}@media (max-width: 768px){footer#global-footer .footer.no_newsletter h3{margin-bottom:26px!important;}}#global-footer .info-wrap-contact_zone h4{line-height:1.8;}@media (max-width: 768px){#global-footer .info-wrap-contact_zone h4{line-height:1.5;}}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:#00244A!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:#ccc!important;}footer#global-footer a.hvr_animation:after,footer#global-footer .lp-link:after{width:0%!important;background-color:#00244A!important;}footer#global-footer a.hvr_animation:hover:after,footer#global-footer .lp-link:hover:after{width:100%!important;}
31#global-footer div.footer .info-wrap-contact_zone svg path{fill:#00244A!important;}#global-footer div.footer .info-wrap-contact_title{color:#000!important;}#global-footer div.footer .info-wrap .contact_title{color:#000!important;}@media only screen and (min-width: 769px){#global-footer .footer .info-privacy{border-top:1px solid #00244A!important;}}@media only screen and (max-width: 768px){#global-footer .footer .info-privacy .socials_zone{margin-top:25px;}#global-footer .footer .info-privacy .copy_zone{border-top:1px solid #00244A;}}footer#global-footer .footer .info-privacy .copy_zone a,footer#global-footer .footer .info-privacy .powered_zone a{font-weight:400;}footer#global-footer div.text_footer.first_text_footer div.images_box .img_size{height:100px;}footer .footer .text_footer .images_box{-webkit-align-items:center!important;-webkit-box-align:center!important;-ms-flex-align:center!important;align-items:center!important;}#global-footer .info-wrap-contact_zone h4{line-height:1.8;color:#00244A;}footer .footer.no_newsletter .info-wrap-contact h4{max-width:300px!important;}footer .footer.no_newsletter .info-wrap-contact{padding-left:250px!important;}@media(max-width: 768px){footer .footer.no_newsletter .info-wrap-contact{padding-left:0px!important;}}footer#global-footer .lp-link,.aiAXrc{font-weight:400;}@media only screen and (max-width:1200px){footer#global-footer .info-wrap-contact_link{overflow-wrap:anywhere;font-size:12px;white-space:normal!important;}footer#global-footer .info-wrap-contact_link:before{background-color:transparent;}footer#global-footer .info-wrap-contact_link:after{background-color:transparent;}}@media only screen and (min-width: 376px){footer#global-footer .footer div.type_user div.info-wrap-contact_cell:first-of-type{min-width:380px!important;width:480px!important;}}@media only screen and (max-width: 375px){footer#global-footer .footer div.type_user div.info-wrap-contact_cell:first-of-type{width:100%!important;min-width:unset!important;}}body>div.sidemenu .wrapper{background-image:linear-gradient(to left, rgba(255, 255, 255, 1), rgba(255, 255, 255, .2), rgba(255, 255, 255, 0)),url("https://media-production.lp-cdn.com/media/ce4bb4db-03f7-4201-9ef4-d4ccc9e770ba");-webkit-background-position:center;background-position:center;background-repeat:no-repeat;-webkit-background-size:cover;background-size:cover;background-blend-mode:normal;}body>div.sidemenu .title,body>div.sidemenu .section-options a{padding-right:50px!important;}@media(max-width: 768px){body>div.sidemenu .title,body>div.sidemenu .section-options a{padding-right:20px!important;}}div#global-sidemenu.sidemenu a:hover{color:#00244A!important;}body>div.sidemenu .sub-nav.visible+.main-nav{color:#000!important;}body>div.sidemenu .sub-nav-container .main-nav::after{border-bottom:1px solid #000!important;border-right:1px solid #000!important;}body>div.sidemenu .sub-nav-container .main-nav:hover::after{border-bottom:1px solid #00244A!important;border-right:1px solid #00244A!important;}body>div.sidemenu .sidebar__nav-link{font-size:20px!important;}body>div.sidemenu .sidebar__nav-item{border-bottom:1px solid #ccc!important;}@media (max-width: 768px){body>div.sidemenu .wrapper{background:#FFF!important;}body>div.sidemenu button.toggle{right:16px!important;}body>div.sidemenu .section-options a{font-size:22px!important;line-height:40px!important;}}div#modal-global-contact-us .contact-form .info-zone .info-zone_contact_cell{margin-bottom:21px;}div#modal-global-contact-us .contact-form .info-zone .type_user:nth-of-type(2){margin-bottom:21px;}@media only screen and (max-width: 768px){div#modal-global-contact-us .contact-form .info-zone .type_user{margin-bottom:25px;}}div#modal-global-contact-us .contact-form .info-zone_contact{margin-bottom:14px;}div#modal-global-contact-us .contact-form h2{font-size:35px!important;}@media only screen and (max-width: 925px){div#modal-global-contact-us .contact-form h2{font-size:35px!important;}}@media (max-width: 768px){#modal-global-contact-us .contact-form .info-zone h4{font-size:25px!important;}div#modal-global-contact-us .contact-form h2{font-size:24px!important;}}#modal-global-contact-us .contact-form .section-message label{color:#fff!important;}#modal-global-contact-us .lp-input-group .lp-input{border-color:#fff!important;}div#modal-global-contact-us a:not(.lp-socials__link):after{background-color:#FFF!important;}.info-zone_contact_cell a:hover{color:#FFF!important;}.info-zone_contact_cell a:before{background-color:#ccc!important;width:100%;}.info-zone_contact_cell a:after{background-color:#FFF!important;}#modal-global-contact-us .contact-form .section-message label{text-transform:uppercase!important;}.section-message .lp-tcr-message{text-transform:none!important;font-weight:400;}div#modal-global-contact-us .contact-form .section-message form{max-width:49
310px;}@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 div.modal-content div.contact-form.redesign:after{background-color:rgba(0, 0, 0, 0.6);}#modal-global-contact-us .lp-disclaimer a{-webkit-text-decoration:none!important;text-decoration:none!important;position:relative;display:inline-block;vertical-align:top;}#modal-global-contact-us .lp-disclaimer a:after,#modal-global-contact-us .lp-disclaimer a:before{content:"";height:1px;position:absolute;bottom:0;left:0;box-sizing:border-box;outline:none;-webkit-transition:0.4s;transition:0.4s;}#modal-global-contact-us .lp-disclaimer a:before{background-color:#ccc;width:100%;}#modal-global-contact-us .lp-disclaimer a:after{width:0%;background-color:#FFF!important;-webkit-transition:0.4s;transition:0.4s;}#modal-global-contact-us .lp-disclaimer a:hover{-webkit-text-decoration:none!important;text-decoration:none!important;}#modal-global-contact-us .lp-disclaimer a:hover:after{width:100%;}div#modal-global-contact-us .contact-form{-webkit-background-position:center;background-position:center;}div#modal-global-contact-us .contact-form h2{color:#FFF;}@media(max-width: 768px){#modal-global-contact-us .contact-form .info-zone_contact_cell{font-size:12px;}}footer#global-footer .lp-link{font-weight:400;}#modal-global-contact-us .contact-form .info-zone_contact_link{font-weight:400;}div.mobile-contact-wrapper .contact-form .lp-btn{background-color:#00244A;border-color:#00244A;color:#FFF;}div.mobile-contact-wrapper .contact-form .lp-btn:hover{background-color:transparent;border-color:#00244A;color:#00244A;}@media (max-width: 768px){footer#global-footer .footer.no_newsletter h3{margin-top:40px;}}footer#global-footer .footer.no_newsletter h3,.contact-form__container .lp-h3{color:#00244A;}.contact-form__inputs-container .custom-select-toggle{text-transform:none;}.contact-form__inputs-container .custom-select-toggle.lp-input--dark{color:#000;text-transform:uppercase!important;}.contact-form__inputs-container .custom-select-toggle.lp-input--dark::after{border-color:#000;}.contact-form__inputs-container .custom-select-item{text-transform:uppercase!important;font-family:var(--global-secondary-font-family);}.contact-form__inputs-container .custom-select-item:hover{background-color:#00244A;color:#fff;}.contact-form__inputs-container .custom-select-content{background-color:#FFF;}.contact-form__inputs-container .lp-input--dark{text-transform:uppercase!important;}@media(max-width: 768px){.contact-form__item textarea.lp-input{height:70px!important;min-height:70px!important;}}@media (max-width: 768px){.lp-socials{-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center;}}@media (max-width: 768px){footer .footer .info-privacy .socials_zone li{padding:0 3px 10px 3px!important;}}#modal-global-contact-us .contact-form .socials_zone li:not(:last-child){padding-right:20px!important;}@media (max-width: 768px){#modal-global-contact-us .contact-form .socials_zone li:not(:last-child){padding-right:9px!important;}}.lp-btn{white-space:inherit!important;}@media (max-width: 400px){h2{font-size:28px!important;}h1{font-size:32px!important;}}</style> 32 <style id="wow-hide-elements">.wow{visibility:hidden!important}</style> 33 <style id="page-css"> 34 #section-45f448e7-c335-4c5a-9aa7-fd3cc6622af8{color:#fff;--fontColor:#fff;--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/21081fb8-719a-4b32-ae2d-225683c434ee');background-repeat:no-repeat;-webkit-background-position:center;background-position:center;-webkit-background-size:cover;background-size:cover;}#section-45f448e7-c335-4c5a-9aa7-fd3cc6622af8 .custom-intro{position:relative;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;width:100%;height:600px;-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;}#section-45f448e7-c335-4c5a-9aa7-fd3cc6622af8 .custom-intro .container{z-index:1;text-align:center;max-width:900px;}#section-45f448e7-c335-4c5a-9aa7-fd3cc6622af8 .custom-intro__title{margin-bottom:0px;font-weight:400;margin-bottom:24px;}@media (max-width: 768px){#section-45f448e7-c335-4c5a-9aa7-fd3cc6622af8 .custom-intro__title{font-size:32px;}}@media (max-width: 360px){#section-45f448e7-c335-4c5a-9aa7-fd3cc6622af8 .custom-intro__title{font-size:22px;}}#section-45f448e7-c335-4c5a-9aa7-fd3cc6622af8 .custom-intro__subtitle{font-weight:400;white-space:pre-line;font-size:21px;line-height:1.57;}@media (max-width: 768px){#section-45f448e7-c335-4c5a-9aa7-fd3cc6622af8 .custom-intro__subtitle{font-size:18px;}}#section-45f448e7-c335-4c5a-9aa7-fd3cc6622af8 .description{margin-bottom:15px;}@media (min-width: 960px) and (orientation: landscape){#section-45f448e7-c335-4c5a-9aa7-fd3cc6622af8{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/21081fb8-719a-4b32-ae2d-225683c434ee');}}@media (min-width: 1280px) and (orientation: landscape){#section-45f448e7-c335-4c5a-9aa7-fd3cc6622af8{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/21081fb8-719a-4b32-ae2d-225683c434ee');}}@media (min-width: 1920px) and (orientation: landscape){#section-45f448e7-c335-4c5a-9aa7-fd3cc6622af8{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/21081fb8-719a-4b32-ae2d-225683c434ee');}}@media (min-width: 2560px) and (orientation: landscape){#section-45f448e7-c335-4c5a-9aa7-fd3cc6622af8{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/21081fb8-719a-4b32-ae2d-225683c434ee');}}#section-01ab6531-3f2b-4f85-b398-88e312943c07{color:#000000;--fontColor:#000000;--fontColor_H:0;--fontColor_S:0%;--fontColor_L:0%;--fontColor_A:1;--fontColor_darkenDir:1;--bgColor:#FFFFFF;--bgColor_H:0;--bgColor_S:0%;--bgColor_L:100%;--bgColor_A:1;--bgColor_darkenDir:-1;--section-padding-top:calc(4 / 4 * var(--global-section-padding));--section-padding-bottom:calc(4 / 4 * var(--global-section-padding));background-color:#FFFFFF;}@media (min-width: 768px){#section-01ab6531-3f2b-4f85-b398-88e312943c07 div.blog-list__item-content{padding:2rem;}}#section-01ab6531-3f2b-4f85-b398-88e312943c07 div.blog-list__container a.blog-list__item{background-color:#F6F1F1;color:#000;}#section-01ab6531-3f2b-4f85-b398-88e312943c07 div.blog-list__item-content h4.serif:after{background-color:#00244A;}#section-01ab6531-3f2b-4f85-b398-88e312943c07 div.blog-list__item-content span.link{color:#000;font-weight:400;}#section-01ab6531-3f2b-4f85-b398-88e312943c07 div.blog-list__item-content span.link:before{background-color:#ccc;}#section-01ab6531-3f2b-4f85-b398-88e312943c07 div.blog-list__item-content span.link:after{background-color:#00244A;}#section-01ab6531-3f2b-4f85-b398-88e312943c07 .blog-list{padding:120px 0;position:relative;z-index:1;}#section-01ab6531-3f2b-4f85-b398-88e312943c07 .blog-list .center-items{-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center;}#section-01ab6531-3f2b-4f85-b398-88e312943c07 .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-01ab6531-3f2b-4f85-b398-88e312943c07 .blog-list__container{padding:0;}}#section-01ab6531-3f2b-4f85-b398-88e312943c07 .blog-list__container.hide-date .blog-list__item-date{display:none;}#section-01ab6531-3f2b-4f85-b398-88e312943c07 .blog-list__container.hide-author .blog-list__item-author{display:none;}#section-01ab6531-3f2b-4f85-b398-88e312943c07 .blog-list__container.hide-author .blog-list__item-date{margin-left:0;padding-left:0;border-left:none;}#section-01ab6531-3f2b-4f85-b398-88e312943c07 .blog-list__container .blog-list__item{background-color:#fff;}#section-01ab6531-3f2b-4f85-b398-88e312943c07 .blog-list__section-title,#section-01ab6531-3f2b-4f85-b398-88e312943c07 .blog-list .description{text-align:center;margin-bottom:50px;max-width:75%;margin-left:auto;margin-right:auto;}@media(max-width: 768px){#section-01ab6531-3f2b-4f85-b398-88e312943c07 .blog-list__section-title,#section-01ab6531-3f2b-4f85-b398-88e312943c07 .blog-list .description{max-width:100%;}}#section-01ab6531-3f2b-4f85-b398-88e312943c07 .blog-list__item{width:calc(50% - 18px);margin-bottom:34px;}@media(max-width: 768px){#section-01ab6531-3f2b-4f85-b398-88e312943c07 .blog-list__item{width:100%;margin-bottom:32px;}}#section-01ab6531-3f2b-4f85-b398-88e312943c07 .blog-list__item:nth-child(2n) .blog-list__item-content h4:after{right:-116px;left:60%;}@media(max-width: 768px){#section-01ab6531-3f2b-4f85-b398-88e312943c07 .blog-list__item:nth-child(2n) .blog-list__item-content h4:after{right:-25px;left:40%;}}#section-01ab6531-3f2b-4f85-b398-88e312943c07 .blog-list__item-image{padding-top:70.16%;position:relative;background-color:#808080;}#section-01ab6531-3f2b-4f85-b398-88e312943c07 .blog-list__item-image img{position:absolute;object-fit:cover;height:100%;width:100%;top:0;z-index:0;}#section-01ab6531-3f2b-4f85-b398-88e312943c07 .blog-list__item-content{padding:46px 36px;}@media(max-width: 768px){#section-01ab6531-3f2b-4f85-b398-88e312943c07 .blog-list__item-content{padding:40px 25px;}}#section-01ab6531-3f2b-4f85-b398-88e312943c07 .blog-list__item-content h4{margin:0 0 36px;position:relative;}@media(max-width: 768px){#section-01ab6531-3f2b-4f85-b398-88e312943c07 .blog-list__item-content h4{margin:0 0 38px;}}#section-01ab6531-3f2b-4f85-b398-88e312943c07 .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-01ab6531-3f2b-4f85-b398-88e312943c07 .blog-list__item-content h4:after{right:40%;left:-25px;bottom:-21px;}}#section-01ab6531-3f2b-4f85-b398-88e312943c07 .blog-list__item-content .link{display:inline-block;margin-top:36px;text-transform:uppercase;font-size:14px;}#section-01ab6531-3f2b-4f85-b398-88e312943c07 .blog-list__item-details{list-style-type:none;display:block;margin:0 0 9px;}#section-01ab6531-3f2b-4f85-b398-88e312943c07 .blog-list__item-details >li{display:inline-block;position:relative;font-size:14px;font-weight:700;line-height:1.4;text-transform:uppercase;}#section-01ab6531-3f2b-4f85-b398-88e312943c07 .blog-list__item-details >li+li{margin-left:3px;padding-left:5px;border-left:2px solid;}#section-01ab6531-3f2b-4f85-b398-88e312943c07 .search-container{margin-bottom:48px;}@media (max-width: 768px){#section-01ab6531-3f2b-4f85-b398-88e312943c07 .search-container{margin-bottom:32px;}}#section-01ab6531-3f2b-4f85-b398-88e312943c07 .search-container__row{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;-webkit-align-items:flex-end;-webkit-box-align:flex-end;-ms-flex-align:flex-end;align-items:flex-end;gap:12px;}#section-01ab6531-3f2b-4f85-b398-88e312943c07 .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-01ab6531-3f2b-4f85-b398-88e312943c07 .search-container__row{-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;}}#section-01ab6531-3f2b-4f85-b398-88e312943c07 .input-container{width:100%;max-width:485px;position:relative;}@media (max-width: 1024px){#section-01ab6531-3f2b-4f85-b398-88e312943c07 .input-container{max-width:350px;}}@media (max-width: 768px){#section-01ab6531-3f2b-4f85-b398-88e312943c07 .input-container{max-width:100%;}}#section-01ab6531-3f2b-4f85-b398-88e312943c07 .input-container .lp-input{height:50px;width:100%;}#section-01ab6531-3f2b-4f85-b398-88e312943c07 .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-01ab6531-3f2b-4f85-b398-88e312943c07 .empty-results{text-align:center;display:none;}#section-01ab6531-3f2b-4f85-b398-88e312943c07 .empty-results.visible{display:block;}#section-01ab6531-3f2b-4f85-b398-88e312943c07 .filter-container{padding-top:16px;display:none;}#section-01ab6531-3f2b-4f85-b398-88e312943c07 .category-cell{margin:0 8px 8px 0;border-width:2px;padding:10px 15px;opacity:.3;position:relative;cursor:pointer;}#section-01ab6531-3f2b-4f85-b398-88e312943c07 .category-cell.active{opacity:1;}@media(hover: hover) and (pointer: fine){#section-01ab6531-3f2b-4f85-b398-88e312943c07 .category-cell:hover{opacity:1;}}#section-01ab6531-3f2b-4f85-b398-88e312943c07 .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-01ab6531-3f2b-4f85-b398-88e312943c07 .lp-btn.lp-i--chevron-down{width:100%;}}#section-01ab6531-3f2b-4f85-b398-88e312943c07 .lp-btn.lp-i--chevron-down:before{-webkit-transition:-webkit-transform .3s;transition:transform .3s;}#section-01ab6531-3f2b-4f85-b398-88e312943c07 .lp-btn.lp-i--chevron-down.active:before{-webkit-transform:scaleY(-1);-moz-transform:scaleY(-1);-ms-transform:scaleY(-1);transform:scaleY(-1);}#section-01ab6531-3f2b-4f85-b398-88e312943c07 .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-01ab6531-3f2b-4f85-b398-88e312943c07 h1{color:#00244A;}#section-01ab6531-3f2b-4f85-b398-88e312943c07 h2{color:#00244A;}#section-01ab6531-3f2b-4f85-b398-88e312943c07 h3{color:#00244A;}#section-01ab6531-3f2b-4f85-b398-88e312943c07 p{color:#000000;}#section-01ab6531-3f2b-4f85-b398-88e312943c07>div:last-child{padding-top:calc(4 / 4 * var(--global-section-padding))!important;padding-bottom:calc(4 / 4 * var(--global-section-padding))!important;}#section-910a61ad-2067-4b52-a160-61bbac832465{color:#FFFFFF;--fontColor:#FFFFFF;--fontColor_H:0;--fontColor_S:0%;--fontColor_L:100%;--fontColor_A:1;--fontColor_darkenDir:-1;--bgColor:#00244A;--bgColor_H:211;--bgColor_S:100%;--bgColor_L:15%;--bgColor_A:1;--bgColor_darkenDir:1;--section-padding-top:calc(4 / 4 * var(--global-section-padding));--section-padding-bottom:calc(4 / 4 * var(--global-section-padding));background-color:#00244A;}#section-910a61ad-2067-4b52-a160-61bbac832465 input.lp-input--light{color:#FFF;border-color:#FFF;}#section-910a61ad-2067-4b52-a160-61bbac832465 input.lp-input--light:-webkit-autofill{border:1px solid#FFF;-webkit-text-fill-color:#FFF;}#section-910a61ad-2067-4b52-a160-61bbac832465 h2:before{content:"Newsletter";font-family:var(--global-secondary-font-family);
34display:block;font-size:16px;letter-spacing:4px;text-transform:uppercase;margin-bottom:15px;color:#917035;}#section-910a61ad-2067-4b52-a160-61bbac832465 .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-910a61ad-2067-4b52-a160-61bbac832465 .newsletter-signup{min-height:80vh;}#section-910a61ad-2067-4b52-a160-61bbac832465 .newsletter-signup .lp-container-custom{padding:0 25px;}}#section-910a61ad-2067-4b52-a160-61bbac832465 .newsletter-signup__form{margin:0;}#section-910a61ad-2067-4b52-a160-61bbac832465 .newsletter-signup__form.success .newsletter-signup__form-container{display:none;}#section-910a61ad-2067-4b52-a160-61bbac832465 .newsletter-signup__form.success .success-block{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;}#section-910a61ad-2067-4b52-a160-61bbac832465 .newsletter-signup__inputs-container{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center;}@media (max-width: 768px){#section-910a61ad-2067-4b52-a160-61bbac832465 .newsletter-signup__inputs-container{-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;}}#section-910a61ad-2067-4b52-a160-61bbac832465 .newsletter-signup__form-container{position:relative;z-index:1;}@media (max-width: 768px){#section-910a61ad-2067-4b52-a160-61bbac832465 .newsletter-signup__form-container .lp-h2{margin-bottom:32px;}}@media (max-width: 768px){#section-910a61ad-2067-4b52-a160-61bbac832465 .newsletter-signup__form-container .lp-text--subtitle{margin-bottom:32px;}}#section-910a61ad-2067-4b52-a160-61bbac832465 .newsletter-signup__form-item +.newsletter-signup__form-item{margin-left:16px;}@media (max-width: 768px){#section-910a61ad-2067-4b52-a160-61bbac832465 .newsletter-signup__form-item +.newsletter-signup__form-item{margin-left:0px;margin-top:32px;}}@media (min-width: 769px){#section-910a61ad-2067-4b52-a160-61bbac832465 .newsletter-signup__form-item.lp-input{padding-top:0;padding-bottom:0;width:250px;}}#section-910a61ad-2067-4b52-a160-61bbac832465 .newsletter-signup__form-item.lp-btn{text-transform:uppercase;font-weight:700;}@media (min-width: 769px){#section-910a61ad-2067-4b52-a160-61bbac832465 .newsletter-signup__form-item.lp-btn{width:200px;}}#section-910a61ad-2067-4b52-a160-61bbac832465 .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-910a61ad-2067-4b52-a160-61bbac832465 .newsletter-signup .success-block.hide{display:none;}#section-910a61ad-2067-4b52-a160-61bbac832465 .lp-text--subtitle{margin-left:auto;margin-right:auto;text-transform:none;}#section-910a61ad-2067-4b52-a160-61bbac832465 .lp-h-pot{max-width:1px;}#section-910a61ad-2067-4b52-a160-61bbac832465 .lp-title-group{max-width:unset;padding:0 20px;}#section-910a61ad-2067-4b52-a160-61bbac832465 input:-webkit-autofill,#section-910a61ad-2067-4b52-a160-61bbac832465 input:-webkit-autofill:hover,#section-910a61ad-2067-4b52-a160-61bbac832465 input:-webkit-autofill:focus,#section-910a61ad-2067-4b52-a160-61bbac832465 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-910a61ad-2067-4b52-a160-61bbac832465 .lp-disclaimer{max-width:730px;margin:20px auto 0 auto;}#section-910a61ad-2067-4b52-a160-61bbac832465 h1{color:#FFFFFF;}#section-910a61ad-2067-4b52-a160-61bbac832465 h2{color:#FFFFFF;}#section-910a61ad-2067-4b52-a160-61bbac832465 h3{color:#FFFFFF;}#section-910a61ad-2067-4b52-a160-61bbac832465 p{color:#FFFFFF;}#section-910a61ad-2067-4b52-a160-61bbac832465>div:last-child{padding-top:calc(4 / 4 * var(--global-section-padding))!important;padding-bottom:calc(4 / 4 * var(--global-section-padding))!important;}#section-910a61ad-2067-4b52-a160-61bbac832465 input.lp-input--light::-webkit-input-placeholder{color:#FFF;}#section-910a61ad-2067-4b52-a160-61bbac832465 input.lp-input--light::-moz-placeholder{color:#FFF;}#section-910a61ad-2067-4b52-a160-61bbac832465 input.lp-input--light:-ms-input-placeholder{color:#FFF;}#section-910a61ad-2067-4b52-a160-61bbac832465 input.lp-input--light::placeholder{color:#FFF;}#section-56a0f81a-5721-42c1-ad3c-7b29258fa8bd{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.30));background-image:linear-gradient(var(--gradient-color), var(--gradient-color)),url('https://media-production.lp-cdn.com/cdn-cgi/image/format=auto,quality=85,fit=scale-down,width=1280/https://media-production.lp-cdn.com/media/35e9cf1d-8290-489e-b79a-5c24feee416f');background-repeat:no-repeat;-webkit-background-position:center;background-position:center;-webkit-background-size:cover;background-size:cover;}#section-56a0f81a-5721-42c1-ad3c-7b29258fa8bd div.redesign.work-with-us div.container{max-width:1000px;}#section-56a0f81a-5721-42c1-ad3c-7b29258fa8bd div.redesign.work-with-us h2:after{background-color:#FFF;}#section-56a0f81a-5721-42c1-ad3c-7b29258fa8bd.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-56a0f81a-5721-42c1-ad3c-7b29258fa8bd.parallax-enabled>div.video-wrapper{position:fixed;left:0;top:0;width:100vw;height:100vh;z-index:-9999;}#section-56a0f81a-5721-42c1-ad3c-7b29258fa8bd.parallax-enabled .work-with-us:before{display:block;content:'';left:0;top:0;width:100%;
34background:var(--sectionBackground) center no-repeat;-webkit-background-size:cover;background-size:cover;position:fixed;z-index:-1;height:100%;}#section-56a0f81a-5721-42c1-ad3c-7b29258fa8bd .redesign.work-with-us{position:relative;color:var(--fontColor, #ffffff);}#section-56a0f81a-5721-42c1-ad3c-7b29258fa8bd .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;-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-56a0f81a-5721-42c1-ad3c-7b29258fa8bd .redesign.work-with-us .container{min-height:auto;padding-top:100px;padding-bottom:100px;}}#section-56a0f81a-5721-42c1-ad3c-7b29258fa8bd .redesign.work-with-us h2{position:relative;padding-bottom:28px;margin:0 0 30px;}@media(max-width: 768px){#section-56a0f81a-5721-42c1-ad3c-7b29258fa8bd .redesign.work-with-us h2{padding-bottom:40px;}}#section-56a0f81a-5721-42c1-ad3c-7b29258fa8bd .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-56a0f81a-5721-42c1-ad3c-7b29258fa8bd .redesign.work-with-us .description{margin:0 0 30px;}@media(max-width: 768px){#section-56a0f81a-5721-42c1-ad3c-7b29258fa8bd .redesign.work-with-us .description{margin-bottom:40px;}}#section-56a0f81a-5721-42c1-ad3c-7b29258fa8bd .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-56a0f81a-5721-42c1-ad3c-7b29258fa8bd .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-56a0f81a-5721-42c1-ad3c-7b29258fa8bd{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/35e9cf1d-8290-489e-b79a-5c24feee416f');}}@media (min-width: 1280px) and (orientation: landscape){#section-56a0f81a-5721-42c1-ad3c-7b29258fa8bd{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/35e9cf1d-8290-489e-b79a-5c24feee416f');}}@media (min-width: 1920px) and (orientation: landscape){#section-56a0f81a-5721-42c1-ad3c-7b29258fa8bd{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/35e9cf1d-8290-489e-b79a-5c24feee416f');}}@media (min-width: 2560px) and (orientation: landscape){#section-56a0f81a-5721-42c1-ad3c-7b29258fa8bd{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/35e9cf1d-8290-489e-b79a-5c24feee416f');}}#section-1ae84a2f-352a-40df-9967-03972ee58fc7{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-1ae84a2f-352a-40df-9967-03972ee58fc7 .ig-feed{padding:80px 0;}#section-1ae84a2f-352a-40df-9967-03972ee58fc7 .title{margin:0 20px 0 0;}#section-1ae84a2f-352a-40df-9967-03972ee58fc7 .instagram-link{display:block;margin:0 20px 0 0;color:var(--global-primary-font-color);}#section-1ae84a2f-352a-40df-9967-03972ee58fc7 .instagram-link .instagram-name{display:inline;margin:0;}#section-1ae84a2f-352a-40df-9967-03972ee58fc7 .title+.instagram-link{margin-top:5px;}#section-1ae84a2f-352a-40df-9967-03972ee58fc7 .top-wrapper{margin-bottom:20px;
34display:-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-1ae84a2f-352a-40df-9967-03972ee58fc7 .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-1ae84a2f-352a-40df-9967-03972ee58fc7 .follow-button{margin:20px 0 0 0;display:block;}#section-1ae84a2f-352a-40df-9967-03972ee58fc7 .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;-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-1ae84a2f-352a-40df-9967-03972ee58fc7 .nav-button.slick-disabled{opacity:0.6;pointer-events:none;cursor:default;}#section-1ae84a2f-352a-40df-9967-03972ee58fc7 .nav-button:not(.slick-disabled):hover{background-color:#1a1a1a;border-color:#1a1a1a;color:#fff;}#section-1ae84a2f-352a-40df-9967-03972ee58fc7 .top-nav-prev{margin-left:30px;}#section-1ae84a2f-352a-40df-9967-03972ee58fc7 .top-nav-next{margin-left:10px;}#section-1ae84a2f-352a-40df-9967-03972ee58fc7 .hidden-control{display:none;}#section-1ae84a2f-352a-40df-9967-03972ee58fc7 .slide-single,#section-1ae84a2f-352a-40df-9967-03972ee58fc7 .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-1ae84a2f-352a-40df-9967-03972ee58fc7 .slide-single:first-child,#section-1ae84a2f-352a-40df-9967-03972ee58fc7 .slide-multi:first-child{margin-left:auto;}#section-1ae84a2f-352a-40df-9967-03972ee58fc7 .slide-single:last-child,#section-1ae84a2f-352a-40df-9967-03972ee58fc7 .slide-multi:last-child{margin-right:auto;}#section-1ae84a2f-352a-40df-9967-03972ee58fc7 .slide-single.type2,#section-1ae84a2f-352a-40df-9967-03972ee58fc7 .slide-multi.type2{width:calc(100% / 5 * 2);}#section-1ae84a2f-352a-40df-9967-03972ee58fc7 .slide-single.type3,#section-1ae84a2f-352a-40df-9967-03972ee58fc7 .slide-multi.type3{width:calc(100% / 2);}#section-1ae84a2f-352a-40df-9967-03972ee58fc7 .slide-single.type4,#section-1ae84a2f-352a-40df-9967-03972ee58fc7 .slide-multi.type4{width:calc(100% / 2);}#section-1ae84a2f-352a-40df-9967-03972ee58fc7 .slide-single.type5,#section-1ae84a2f-352a-40df-9967-03972ee58fc7 .slide-multi.type5{width:100%;}@media (max-width: 440px){#section-1ae84a2f-352a-40df-9967-03972ee58fc7 .ig-feed-container{padding:0;width:100%;}}#section-1ae84a2f-352a-40df-9967-03972ee58fc7 .ig-feed-feed{width:calc(100% + 20px);position:relative;left:-10px;overflow:hidden;}#section-1ae84a2f-352a-40df-9967-03972ee58fc7 .ig-feed-slider{width:100%;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;}#section-1ae84a2f-352a-40df-9967-03972ee58fc7 .ig-feed-item__img{position:absolute;left:-1px;top:-1px;bottom:-1px;right:-1px;background:center/cover no-repeat;}#section-1ae84a2f-352a-40df-9967-03972ee58fc7 .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-1ae84a2f-352a-40df-9967-03972ee58fc7 .ig-feed-item:hover .ig-feed-item__info{opacity:1;}#section-1ae84a2f-352a-40df-9967-03972ee58fc7 .ig-feed-item__caption{text-overflow:ellipsis;-webkit-line-clamp:4;display:-webkit-box;-webkit-box-orient:vertical;overflow:hidden;}#section-1ae84a2f-352a-40df-9967-03972ee58fc7 .video-icon{position:absolute;width:50px;height:50px;background-color:#fff;left:50%;
34top: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-1ae84a2f-352a-40df-9967-03972ee58fc7 .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-1ae84a2f-352a-40df-9967-03972ee58fc7 .ig-feed-item:hover .video-icon{opacity:0;}#section-1ae84a2f-352a-40df-9967-03972ee58fc7 .slide-single .ig-feed-item__info{padding:15%;}#section-1ae84a2f-352a-40df-9967-03972ee58fc7 .slide-single .ig-feed-item__caption{-webkit-line-clamp:7;}#section-1ae84a2f-352a-40df-9967-03972ee58fc7 .ig-feed-item{background-color:var(--tileColor, #000);display:block;width:100%;padding-bottom:125%;overflow:hidden;position:relative;}#section-1ae84a2f-352a-40df-9967-03972ee58fc7 .slide-multi::before{content:'';display:block;width:100%;padding-bottom:125%;}#section-1ae84a2f-352a-40df-9967-03972ee58fc7 .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;-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-1ae84a2f-352a-40df-9967-03972ee58fc7 .slide-multi-content .ig-feed-item{width:calc(50% - 10px);padding-bottom:calc(62.5% - 12.5px);}#section-1ae84a2f-352a-40df-9967-03972ee58fc7 .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-1ae84a2f-352a-40df-9967-03972ee58fc7 .bottom-controls{width:100%;display:none;-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center;}#section-1ae84a2f-352a-40df-9967-03972ee58fc7 .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-1ae84a2f-352a-40df-9967-03972ee58fc7 .bottom-nav-button.slick-disabled{opacity:0.6;pointer-events:none;cursor:default;}@media (max-width: 767px){#section-1ae84a2f-352a-40df-9967-03972ee58fc7 .top-right,#section-1ae84a2f-352a-40df-9967-03972ee58fc7 .top-left{width:100%;-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center;}#section-1ae84a2f-352a-40df-9967-03972ee58fc7 .title,#section-1ae84a2f-352a-40df-9967-03972ee58fc7 .instagram-link{margin-right:0;text-align:center;}#section-1ae84a2f-352a-40df-9967-03972ee58fc7 .top-nav-prev,#section-1ae84a2f-352a-40df-9967-03972ee58fc7 .top-nav-next{display:none;}#section-1ae84a2f-352a-40df-9967-03972ee58fc7 .bottom-controls{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;}}#section-1ae84a2f-352a-40df-9967-03972ee58fc7 .ig-feed{display:none;}#section-1ae84a2f-352a-40df-9967-03972ee58fc7 .has-data .ig-feed{display:block;}#section-1ae84a2f-352a-40df-9967-03972ee58fc7.has-data .ig-feed,#section-1ae84a2f-352a-40df-9967-03972ee58fc7#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;}
34#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;}}@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
34-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;left: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;
34-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;}}nav .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;
34left: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;-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{background-color:transparent;}body>div.sidemenu .wrapper{opacity:1;-webkit-transition:-webkit-transform 0s linear,opacity 0.2s ease-out;transition:transform 0s linear,opacity 0.2s ease-out;background-color:var(--bgColor, rgba(0, 0, 0, 0.9));color:var(--fontColor, #fff);position:fixed;top:0;right:0;height:100%;width:100vw;}body>div.sidemenu .holder{font-size:20px;top:150px;left:auto;right:0;position:absolute;max-width:1200px;width:100%;height:100%;}body>div.sidemenu .title{font-size:12px;text-align:right;width:100%;padding-right:150px;margin-bottom:30px;text-transform:uppercase;letter-spacing:1px;font-weight:bold;}@media (max-width: 992px){body>div.sidemenu .title{padding-right:20px;}}body>div.sidemenu .section-options{margin:0 auto;overflow-y:scroll;height:calc(100% - 200px);list-style:none;}body>div.sidemenu .section-options::-webkit-scrollbar{width:7px;}body>div.sidemenu .section-options::-webkit-scrollbar-thumb{border-radius:10px;background-color:#4d5259;}body>div.sidemenu .section-options .option{text-align:right;border-bottom:2px none;}body>div.sidemenu .section-options a,body>div.sidemenu .section-options button{font-family:var(--global-primary-font-family);line-height:70px;color:var(--fontColor, #fff);font-size:35px;-webkit-text-decoration:none;text-decoration:none;display:inline-block;padding-right:150px;border:none;background-color:transparent;cursor:pointer;border-bottom:2px solid transparent;text-transform:none;-webkit-transition:.3s linear all;transition:.3s linear all;}body>div.sidemenu .section-options a:hover:not(.sub-nav-link),body>div.sidemenu .section-options button:hover:not(.sub-nav-link){color:var(--fontColor, #7a7a7a);}@media (max-width: 992px){body>div.sidemenu .section-options a,body>div.sidemenu .section-options button{padding-right:20px;}}body>div.sidemenu .sidemenu-close{width:24px;height:24px;display:block;padding:0;border:none;background-color:transparent;cursor:pointer;-webkit-transition:all .3s ease;transition:all .3s ease;}body>
34div.sidemenu .sidemenu-close:hover{-webkit-transform:scale(1.3);-moz-transform:scale(1.3);-ms-transform:scale(1.3);transform:scale(1.3);}body>div.sidemenu .sidemenu-close:before,body>div.sidemenu .sidemenu-close:after{content:'';display:block;width:30px;height:2px;background-color:var(--fontColor, #fff);position:absolute;left:50%;top:50%;}body>div.sidemenu .sidemenu-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 .sidemenu-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);}body>div.sidemenu button.toggle{border:none;background:none;position:absolute;right:76px;top:74px;}body>div.sidemenu button.toggle:focus,body>div.sidemenu button.toggle:active{outline:none;}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(-150%);-moz-transform:rotate(45deg) translateX(-150%);-ms-transform:rotate(45deg) translateX(-150%);transform:rotate(45deg) translateX(-150%);border-bottom:2px solid var(--fontColor, #fff);border-right:2px solid var(--fontColor, #fff);top:0%;bottom:auto;left:auto;-webkit-transition:0.5s all ease;transition:0.5s all ease;background-color:transparent;}body>div.sidemenu .sub-nav{opacity:0;visibility:hidden;-webkit-transition:all .5s ease;transition:all .5s ease;max-height:0;}body>div.sidemenu .sub-nav ul{margin:0;padding-top:10px;}body>div.sidemenu .sub-nav.visible{opacity:1;visibility:visible;max-height:400px;}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 a,body>div.sidemenu .sub-nav button{font-size:25px;line-height:45px;}body>div.sidemenu .sub-nav a:hover,body>div.sidemenu .sub-nav button:hover{color:var(--fontColor, #fff);}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( 35var(--fontColor_H), 36var(--fontColor_S), 37calc(var(--fontColor_L) + (50% - var(--fontColor_L)) * 0.445), 38var(--fontColor_A));}footer .redesign .inp--dark-bg input{color:var(--fontColor);border-color:hsla( 39 var(--fontColor_H), 40 var(--fontColor_S), 41 calc(var(--fontColor_L) + (50% - var(--fontColor_L)) * 0.445), 42 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;-webkit-justify-content:flex-end;justify-content:flex-end;}footer .redesign .socials--grey .socials__link{background-color:hsla( 43 var(--bgColor_H), 44 var(--bgColor_S), 45 calc(var(--bgColor_L) + (50% - var(--bgColor_L)) * 0.15), 46 var(--bgColor_A));color:var(--greyColor);}
46footer .redesign .socials--grey .socials__link svg{fill:var(--greyColor);}footer .redesign .socials--grey .socials__link:hover{background-color:hsla( 47 var(--bgColor_H), 48 var(--bgColor_S), 49 calc(var(--bgColor_L) + (50% - var(--bgColor_L)) * 0.4), 50 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;
50left: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( 51 var(--bgColor_H), 52 var(--bgColor_S), 53 calc(var(--bgColor_L) + (50% - var(--bgColor_L)) * 0.55), 54 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( 55 var(--bgColor_H), 56 var(--bgColor_S), 57 calc(var(--bgColor_L) + (50% - var(--bgColor_L)) * 0.55), 58 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;
58-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
58ox='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
58699 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
5871 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;
58-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;
58height: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);}} 59 </style> 60 <style id="custom-style-css">.button-style-1{color:#00244A!important;background-color:rgba(0, 0, 0, 0)!important;border-color:#00244A!important;}.button-style-1:hover{color:rgba(255,255,255,1)!important;background-color:#00244A!important;border-color:#00244A!important;}.pagination-style-1 li a{color:#00244A!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:#00244A!important;border-color:#00244A!important;}.pagination-style-1 li.active a{color:rgba(255, 255, 255, 1)!important;background-color:#00244A!important;border-color:#00244A!important;}.hyperlink-style-1{color:rgba(0, 0, 0, 1)!important;}.hyperlink-style-1:hover{color:#00244A!important;}.social_icons-style-1 a{border-color:#00244A!important;background-color:#00244A!important;color:#FFFFFF!important;}.social_icons-style-1 a:hover{border-color:#00244A!important;background-color:rgba(0, 0, 0, 0)!important;color:#00244A!important;}.social_icons-style-1 a i{color:inherit!important;}
60.social_icons-style-1 a svg,.social_icons-style-1 a svg path{fill:currentColor!important;}.social_icons-style-2 a{border-color:rgba(255, 255, 255, 1)!important;background-color:#FFFFFF!important;color:#00244A!important;}.social_icons-style-2 a:hover{border-color:rgba(255, 255, 255, 1)!important;background-color:rgba(0, 0, 0, 0)!important;color:#FFFFFF!important;}.social_icons-style-2 a i{color:inherit!important;}.social_icons-style-2 a svg,.social_icons-style-2 a svg path{fill:currentColor!important;}.hyperlink-style-2{color:rgba(255, 255, 255, 1)!important;}.hyperlink-style-2:hover{color:rgba(255, 255, 255, 0.7)!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:#00244A!important;background-color:rgba(255, 255, 255, 1)!important;border-color:rgba(255,255,255,1)!important;}.pagination-style-2 li.active a{color:#00244A!important;background-color:rgba(255, 255, 255, 1)!important;border-color:rgba(255,255,255,1)!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:#00244A!important;background-color:rgba(255, 255, 255, 1)!important;border-color:rgba(255, 255, 255, 1)!important;}.button-style-3{color:#FFFFFF!important;background-color:#00244A!important;border-color:#00244A!important;}.button-style-3:hover{color:#00244A!important;background-color:rgba(0, 0, 0, 0)!important;border-color:#00244A!important;}.button-style-4{color:#00244A!important;background-color:#FFFFFF!important;border-color:#FFFFFF!important;}.button-style-4:hover{color:#FFFFFF!important;background-color:rgba(0, 0, 0, 0)!important;border-color:#FFFFFF!important;}</style> 61 <!-- LP Consent bootstrap: blocking; resolves consent state, pushes Consent Mode 62 defaults, and dynamically loads the locale + main (and banner if needed). --> 63
63<script src="https://cdn.luxurypresence.com/scripts/lp-consent/latest/lp-consent-boot.js" data-website-id="0a323938-1109-46c4-b822-46ace916f333"></script>
63 64 65 66
66<script> 67 (function utmParse() { 68 const url = new URL(window.location.href); 69 if (url.search) { 70 const utm = url.search.split(/\?|&/g).reduce((acc, current) => { 71 const matched = current.match(/utm_(content|campaign|medium|source|term|id)|gclid/g); 72 if (matched) { 73 acc[matched[0]] = current.replace(`${matched[0]}=`, ''); 74 } 75 return acc; 76 }, {}); 77 if (Object.keys(utm).length) { 78 window.localStorage.setItem('utm_vars', JSON.stringify(utm)); 79 } else { 80 // Remove old utm vars 81 window.localStorage.removeItem('utm_vars'); 82 } 83 } 84 // Set referrer in local storage 85 // This is meant to be stored once to avoid self-referrals and to have the first referrer only. 86 if (!window.localStorage.getItem('referrer')) { 87 // Capture the Referrer URL 88 const referrer = document.referrer; 89 if (referrer) { 90 // Only store the referrer if it comes from outside the current domain (to avoid self-referrals) 91 const currentDomain = window.location.hostname; 92 const referrerDomain = new URL(referrer).hostname; 93 94 if (referrerDomain !== currentDomain) { 95 // Store it in localStorage 96 localStorage.setItem('referrer', referrer); 97 } 98 } 99 } 100 })(); 101 </script>
101 102 <!-- Bing Webmaster Tools Verification -->
103<script> 104 // Check if on the homepage before the body loads 105 if (window.location.pathname === '/' || window.location.pathname === '/index.html') { 106 document.write('<meta name="msvalidate.01" content="6F6D563899A42C028420CB015EF73B27" />'); 107 } 108</script>
108 109 110 <!-- GOOGLE TRANSLATE STYLES are moved to external CSS --> 111</head> 112<body> 113 <div id="google_translate_element" style="display: none"></div> 114 115 <nav id="global-navbar" data-el-id="43e7a874-fb1e-4cdd-91fe-eb6bf5b9179b"> 116 <div class="redesign"> 117 <div class="content-container header"> 118 <div class="container header__container"> 119 <div class="navbar"> 120 <div class="logo"> 121 <a href="/" class="logo__link"> 122 <img src="https://media-production.lp-cdn.com/cdn-cgi/image/format=auto,quality=85/https://media-production.lp-cdn.com/media/04aea726-e37d-45c1-88cd-052d667cd5aa" 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/04aea726-e37d-45c1-88cd-052d667cd5aa 320w, https://media-production.lp-cdn.com/cdn-cgi/image/format=auto,quality=85/https://media-production.lp-cdn.com/media/04aea726-e37d-45c1-88cd-052d667cd5aa 960w" class="logo__img light" alt=""> 123 <img src="https://media-production.lp-cdn.com/cdn-cgi/image/format=auto,quality=85/https://media-production.lp-cdn.com/media/56742797-c03f-4454-9ccf-92007a24b6ec" 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/56742797-c03f-4454-9ccf-92007a24b6ec 320w, https://media-production.lp-cdn.com/cdn-cgi/image/format=auto,quality=85/https://media-production.lp-cdn.com/media/56742797-c03f-4454-9ccf-92007a24b6ec 960w" class="logo__img dark" alt="Coxworth & Associates"> 124 </a> 125 </div> 126 <div class="navigation"> 127 <ul> 128 <li class="navigation__item sub-nav-container"> 129 <a href="#" class="navigation__link wow fadeInUp">Properties</a> 130 <div class="sub-nav"> 131 <ul> 132 <li class="sub-nav__item"><a href="/properties/sale" class="nav-link sub-nav__link feature"><span>Featured Properties</span></a></li> 133 <li class="sub-nav__item"><a href="/properties/sold" class="nav-link sub-nav__link feature"><span>Past Transactions</span></a></li> 134 </ul> 135 </div> 136 </li> 137 <li class="navigation__item"> 138 <a href="/home-search/listings" class="navigation__link wow fadeInUp" data-wow-delay="2.1"><span>Home Search</span></a> 139 </li> 140 <li class="navigation__item"> 141 <a href="/home-valuation-international" class="navigation__link wow fadeInUp" data-wow-delay="2.2"><span>Home Valuation</span></a> 142 </li> 143 <li class="navigation__item"> 144 <a href="/communities" class="navigation__link wow fadeInUp" data-wow-delay="2.3"><span>Neighbourhoods</span></a> 145 </li> 146 <li class="navigation__item"> 147 <a data-type="CONTACT_US" class="navigation__link wow fadeInUp"><span>Contact Us</span></a> 148 </li> 149 </ul> 150 </div> 151 <div class="buttons-wrapper"> 152 <button type="button" class="hamburger-component hamburger"> 153 <span class="hamburger__bars"></span> 154 </button> 155 </div> 156 </div> 157 </div> 158 </div> 159</div> 160 161 </nav> 162 <div id="global-sidemenu" class="sidemenu" data-el-id="dd409a90-defd-4b7a-a4fb-816ab12adf2a"> 163 <div class="wrapper"> 164 <div class="holder"> 165 <div class="title">Coxworth & Associates</div> 166 <ul class="section-options"> 167 <li class="option"><a href="/">Home</a></li> 168 <li class="option"><a href="/team">Meet the Team</a></li> 169 <li class="option sub-nav-container"> 170 <div class="sub-nav"> 171 <ul> 172 <li><a href="/properties/sale" class="link sub-nav-link">Featured Properties</a></li> 173 <li><a href="/properties/sold" class="link sub-nav-link">Past Transactions</a></li> 174 </ul> 175 </div> 176 <a href="#" class="link main-nav">Properties</a> 177 </li> 178 <li class="option"><a href="/home-search/listings">Home Search</a></li> 179 <li class="option"><a href="/home-valuation-international">Home Valuation</a></li> 180 <li class="option"><a href="/communities">Communities</a></li> 181 <li class="option"><a href="/testimonials">Testimonials</a></li> 182 <li class="option"><a href="/about-sir">About the Brand</a></li> 183 <li class="option"><a href="/auction">Sotheby'
183s Auction House</a></li> 184 <li class="option sub-nav-container"> 185 <div class="sub-nav"> 186 <ul> 187 <li><a href="/buyers-guide" class="link sub-nav-link">Buyer's Guide</a></li> 188 <li><a href="/sellers-guide" class="link sub-nav-link">Seller's Guide</a></li> 189 <li><a href="/mortgage-calculator" class="link sub-nav-link">Mortgage Calculator</a></li> 190 <li><a href="/video-gallery" class="link sub-nav-link">Video Gallery</a></li> 191 </ul> 192 </div> 193 <a href="#" class="link main-nav">Resources</a> 194 </li> 195 <li class="option"><a href="/blog">Blog</a></li> 196 <li class="option"><a href="/contact">Contact Us</a></li> 197 <li class="option"><a href="/home-search/account">My Search Portal</a></li> 198 </ul> 199 </div> 200 <button class="toggle sidemenu-close"></button> 201</div> 202 203 </div> 204 <div id="global-mobile-contact" class="mobile-contact-wrapper" data-el-id="befe5af2-a6ca-4119-924a-a85d96d36b51"> 205 <div class="btn-holder" 206style=" 207--backgroundColor: rgba(255, 255, 255, 1); 208--textColor: rgba(26, 26, 26, 1); 209--pillTextColor: rgba(255, 255, 255, 1); 210--pillBackgroundColor: rgba(0, 36, 74, 1);"> 211 212 <button type="button" class="connect-btn lp-ico lp-ico-arrow-top visible">Contact Us</button> 213</div> 214 215 216<div class="pop-up" style="--backgroundColor: rgba(255, 255, 255, 1); --textColor: rgba(26, 26, 26, 1);"> 217 <div class="lp-container"> 218 <form data-type="contact-form" class="contact-form"> 219 <div class="contact-form__container"> 220 <h3 class="lp-h3">Leave a Message</h3> 221 222 <div class="contact-form__content"> 223 <div class="contact-form__inputs-container"> 224 <div class="contact-form__item"> 225 <input 226 id="__FullName" 227 type="text" name="name" 228 class="lp-input lp-input--dark" 229 required 230 placeholder="Full Name"> 231 </div> 232 <div class="contact-form__item"> 233 <input 234 id="__Email" 235 type="email" name="email" 236 class="lp-input js-email-input lp-input--dark" 237 required 238 placeholder="Email"> 239 </div> 240 <div class="contact-form__item"> 241 <input 242 class="lp-input lp-input--dark" 243 type="tel" 244 placeholder="Phone" 245 id="__Phone" 246 name="phone" 247 required> 248 </div> 249 250 <div class="contact-form__item input-group-select"> 251 <select name="interest" id="-field-interest" placeholder="Interest" 252 class="lp-input dropdown-select js-select js-form-element lp-input--dark" required> 253 <option value="" disabled selected data-label="Interest">Interested in...</option> 254 <option value="Selling & Buying">Selling & Buying</option> 255 <option value="Selling">Selling</option> 256 <option value="Buying">Buying</option> 257 <option value="Renting">Renting</option> 258 <option value="Other">Other</option> 259 </select> 260 <label for="-field-interest" class="lp-label sr-only">Interest</label> 261 </div> 262 263 <div class="contact-form__item"> 264 <textarea 265 name="message" 266 rows="4" 267 id="__Message" 268 class="lp-input lp-input--dark" 269 placeholder="Message" 270 required></textarea> 271 </div> 272 <div class="lp-disclaimer"> <label style='display: none;' for='-termsAccepted'>Opt In/Disclaimer Consent:</label> 273 <label class='lp-tcr-content'> 274 <span class='lp-tcr-checkbox'> 275 <input 276 type='checkbox' 277 id='-termsAccepted' 278 name='termsAccepted' 279 oninvalid="this.setCustomValidity('Please accept the terms and conditions')"
280 oninput="this.setCustomValidity('')" 281 required 282 /></span> 283 <span class='lp-tcr-message'> 284 285 I agree to be contacted by 286 Bryan Coxworth 287 via call, email, and text for real estate services. To opt out, you can reply 'stop' at any time or reply 'help' for assistance. 288 You can also click the unsubscribe link in the emails. Message and data rates may apply. Message frequency may vary. 289 <a href='/terms-and-conditions' target='_blank'>Privacy Policy</a>. 290 </span> 291 </label> 292 293</div> 294 <button type="submit" class="lp-btn lp-btn--filled lp-btn--dark submit contact-form__item">Submit</button> 295 296 <div class="lp-h-pot"> 297 <input id="__newsSignMiddleName" name="middleName" value="" autocomplete="off" tabindex="-1"> 298 </div> 299 300 <input style="display: none;" type="text" name="source" value="CONTACT_INQUIRY" /> 301 <input type="hidden" name="button_text" value="Contact Us"> 302 </div> 303 </div> 304 </div> 305 306 307 <div class="success-block"> 308 <h3 class="lp-h3 success-message">Thank you for your message. We will be in touch with you shortly.</h3> 309 310 </div> 311 </form> 312 313 <button type="button" class="close-btn lp-ico lp-ico-close"></button> 314 315 316 </div> 317</div> 318 319 320 </div> 321 <section class="image-section is-font-color-light is-background-color-light" id="section-45f448e7-c335-4c5a-9aa7-fd3cc6622af8" data-el-id="e6c6941b-dd32-4d6b-b4aa-56593f2d58bb"> 322 <div class="redesign custom-intro"> 323 <div class="container"> 324 <h1 class="custom-intro__title">Blog</h1> 325 326 </div> 327</div> 328 329</section> 330<section id="section-01ab6531-3f2b-4f85-b398-88e312943c07" class="solid-section is-font-color-dark is-background-color-light" data-el-id="1e77e4a0-6624-43db-b736-bd434565fece">
331<script type="text/x-handlebars-template" class="gridItem pagination-script"><a href="/blog/{{slug}}" class="blog-list__item"> 332 <div class="blog-list__item-image"> 333 334 335 336 {{#if media.length}} 337 {{{mediaImage media.[0] alt=title}}} 338 {{/if}} 339 </div> 340 341 <div class="blog-list__item-content"> 342 <h4 class="serif">{{title}}</h4> 343 <ul class="blog-list__item-details"> 344 345 {{#isEmpty customAuthor}} 346 {{#if (or createdBy.firstName createdBy.lastName)}}<li class="blog-list__item-author">{{createdBy.firstName}} {{createdBy.lastName}}</li>{{/if}} 347 {{else}} 348 <li class="blog-list__item-author">{{customAuthor}}</li> 349 {{/isEmpty}} 350 351 <li class="blog-list__item-date">{{hbFormatDate publishedAt 'MM/DD/YY'}}</li> 352 </ul> 353 354 {{#if subtitle}} 355 <p>{{truncate (striptags subtitle) 130 "..."}}</p> 356 {{/if}} 357 <span class="link hyperlink-style-1">Read MORE</span> 358 </div> 359</a> 360</script>
360 361 362 363 364 365 366 367<div class="redesign blog-list"> 368 369 370 <div class="container blog-list__container data-container hide-date hide-author"> 371 <a href="/blog/the-port-carling-average-that-skips-its-own-best-sales" class="blog-list__item"> 372 <div class="blog-list__item-image"> 373 374 375 376 <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/4d52d486-9e20-46a3-8f54-f382fe5c733b" 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/4d52d486-9e20-46a3-8f54-f382fe5c733b 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/4d52d486-9e20-46a3-8f54-f382fe5c733b 1280w, https://media-production.lp-cdn.com/cdn-cgi/image/format=auto,quality=85/https://media-production.lp-cdn.com/media/4d52d486-9e20-46a3-8f54-f382fe5c733b 1536w" alt="Cedar cottage with a glazed wall and deck above granite steps, beneath a leaning pine." loading="lazy"> 377 </div> 378 379 <div class="blog-list__item-content"> 380 <h4 class="serif">The Port Carling Average That Skips Its Own Best Sales</h4> 381 <ul class="blog-list__item-details"> 382 383 384 385 <li class="blog-list__item-date">10/1/26</li> 386 </ul> 387 388 <span class="link hyperlink-style-1">Read MORE</span> 389 </div> 390 </a> 391 <a href="/blog/the-wasaga-beach-rental-license-gap-that-could-break-your-investment-math" class="blog-list__item"> 392 <div class="blog-list__item-image"> 393 394 395 396 <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/a0a2861b-7f05-4655-99bf-697bf202d87f" 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/a0a2861b-7f05-4655-99bf-697bf202d87f 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/a0a2861b-7f05-4655-99bf-697bf202d87f 1280w, https://media-production.lp-cdn.com/cdn-cgi/image/format=auto,quality=85/https://media-production.lp-cdn.com/media/a0a2861b-7f05-4655-99bf-697bf202d87f 1408w" alt="Contemporary cottage entry with charcoal cedar siding, granite steps, and a serviceberry tree against dense forest." loading="lazy"> 397 </div> 398 399 <div class="blog-list__item-content"> 400 <h4 class="serif">The Wasaga Beach Rental License Gap That Could Break Your Investment Math</h4> 401 <ul class="blog-list__item-details"> 402 403 404 405 <li class="blog-list__item-date">09/24/26</li> 406 </ul> 407 408 <span class="link hyperlink-style-1">Read MORE</span> 409 </div> 410 </a> 411 <a href="/blog/the-beach-isnt-closed-what-beach-drive-construction-actually-means-for-wasaga-beach-this-fall" class="blog-list__item"> 412 <div class="blog-list__item-image"> 413 414 415 416 <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/2e0a931e-3bff-44f5-bc8f-696e2f3a6b6d" 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/2e0a931e-3bff-44f5-bc8f-696e2f3a6b6d 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/2e0a931e-3bff-44f5-bc8f-696e2f3a6b6d 1280w, https://media-production.lp-cdn.com/cdn-cgi/image/format=auto,quality=85/https://media-production.lp-cdn.com/media/2e0a931e-3bff-44f5-bc8f-696e2f3a6b6d 1408w" alt="Charcoal metal roof overlooks a fieldstone terrace, framed by an orange-red serviceberry and autumn tree canopy." loading="lazy"> 417 </div> 418 419 <div class="blog-list__item-content"> 420 <h4 class="serif">The Beach Isn't Closed: What Beach Drive Construction Actually Means for Wasaga Beach This Fall</h4> 421 <ul class="blog-list__item-details"> 422 423 424 425 <li class="blog-list__item-date">09/17/26</li> 426 </ul> 427
428 <span class="link hyperlink-style-1">Read MORE</span> 429 </div> 430 </a> 431 <a href="/blog/why-the-biggest-name-on-muskokas-big-three-has-the-smaller-average-price" class="blog-list__item"> 432 <div class="blog-list__item-image"> 433 434 435 436 <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/952f9546-1e1d-44fc-9da0-e28e7f081684" 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/952f9546-1e1d-44fc-9da0-e28e7f081684 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/952f9546-1e1d-44fc-9da0-e28e7f081684 1280w, https://media-production.lp-cdn.com/cdn-cgi/image/format=auto,quality=85/https://media-production.lp-cdn.com/media/952f9546-1e1d-44fc-9da0-e28e7f081684 1408w" alt="Dark cedar log lodge with a stone chimney and timber gable rises above a granite shoreline beside a pine." loading="lazy"> 437 </div> 438 439 <div class="blog-list__item-content"> 440 <h4 class="serif">Why the Biggest Name on Muskoka's Big Three Has the Smaller Average Price</h4> 441 <ul class="blog-list__item-details"> 442 443 444 445 <li class="blog-list__item-date">09/10/26</li> 446 </ul> 447 448 <span class="link hyperlink-style-1">Read MORE</span> 449 </div> 450 </a> 451 <a href="/blog/same-asking-price-different-deal-what-water-access-costs-you-at-the-bank-on-go-home-lake" class="blog-list__item"> 452 <div class="blog-list__item-image"> 453 454 455 456 <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/4d55f498-5a73-4e5e-a6e9-51be75205fae" 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/4d55f498-5a73-4e5e-a6e9-51be75205fae 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/4d55f498-5a73-4e5e-a6e9-51be75205fae 1280w, https://media-production.lp-cdn.com/cdn-cgi/image/format=auto,quality=85/https://media-production.lp-cdn.com/media/4d55f498-5a73-4e5e-a6e9-51be75205fae 1408w" alt="Contemporary lake house overlooking granite steps that descend to a dock with two green Adirondack chairs." loading="lazy"> 457 </div> 458 459 <div class="blog-list__item-content"> 460 <h4 class="serif">Same Asking Price, Different Deal: What Water Access Costs You at the Bank on Go Home Lake</h4> 461 <ul class="blog-list__item-details"> 462 463 464 465 <li class="blog-list__item-date">09/3/26</li> 466 </ul> 467 468 <span class="link hyperlink-style-1">Read MORE</span> 469 </div> 470 </a> 471 <a href="/blog/muskokas-fall-calendar-runs-on-two-clocks-and-most-locals-only-watch-one" class="blog-list__item"> 472 <div class="blog-list__item-image"> 473 474 475 476 <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/9a10fe7b-92e5-4c75-9050-de960bb9a697" 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/9a10fe7b-92e5-4c75-9050-de960bb9a697 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/9a10fe7b-92e5-4c75-9050-de960bb9a697 1280w, https://media-production.lp-cdn.com/cdn-cgi/image/format=auto,quality=85/https://media-production.lp-cdn.com/media/9a10fe7b-92e5-4c75-9050-de960bb9a697 1408w" alt="Silvered cedar dock beside rippling water, with a stone retaining wall, timber stairs, and house framed by autumn trees." loading="lazy"> 477 </div> 478 479 <div class="blog-list__item-content"> 480 <h4 class="serif">Muskoka's Fall Calendar Runs on Two Clocks, and Most Locals Only Watch One</h4> 481 <ul class="blog-list__item-details"> 482 483 484 485 <li class="blog-list__item-date">08/27/26</li> 486 </ul> 487
488 <span class="link hyperlink-style-1">Read MORE</span> 489 </div> 490 </a> 491 </div> 492 <div class="empty-results">Sorry, we couldn't find any results that match that search. Try another search.</div> 493 <div class="pagination-container pagination-container--dark pagination-style-1"></div> 494</div> 495</section> 496<section id="section-910a61ad-2067-4b52-a160-61bbac832465" class="solid-section is-font-color-dark is-background-color-light" data-el-id="19e4a145-7cee-4338-8873-657ce2636b4c"> 497 498<div class="newsletter-signup lp-vertical-paddings redesign"> 499 <div class="lp-container-custom"> 500 <form data-type="contact-form" class="newsletter-signup__form"> 501 <div class="newsletter-signup__form-container"> 502 <div class="lp-title-group"> 503 <h2 class="lp-h2">Join the insiders list</h2> 504 <div class="lp-text--subtitle"><p>Sign up to get updates on the latest listings, neighbourhood trends, and local real estate insights.</p></div> 505 </div> 506 <div class="newsletter-signup-form"> 507 <div class="newsletter-signup__inputs-container"> 508 <input id="section-910a61ad-2067-4b52-a160-61bbac832465__newsSignFirstName" type="text" name="name" class="lp-input lp-input--light newsletter-signup__form-item" required placeholder="Name"> 509 510 <input id="section-910a61ad-2067-4b52-a160-61bbac832465__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-]+)+"> 511 512 <button type="submit" class="lp-btn lp-btn--filled lp-btn--light submit button-style-4 newsletter-signup__form-item lp-btn--mob-full-width">Submit</button> 513 514 <div class="lp-h-pot"> 515 <input id="section-910a61ad-2067-4b52-a160-61bbac832465__newsSignMiddleName" name="middleName" value="" autocomplete="off" tabindex="-1"> 516 </div> 517 518 <input style="display: none;" type="text" name="source" value="NEWSLETTER_SIGNUP" /> 519 </div> 520 </div> 521 <div class="lp-disclaimer"> <label style='display: none;' for='section-910a61ad-2067-4b52-a160-61bbac832465-termsAccepted'>Opt In/Disclaimer Consent:</label> 522 <label class='lp-tcr-content'> 523 <span class='lp-tcr-checkbox'> 524 <input 525 type='checkbox' 526 id='section-910a61ad-2067-4b52-a160-61bbac832465-termsAccepted' 527 name='termsAccepted' 528 oninvalid="this.setCustomValidity('Please accept the terms and conditions')" 529 oninput="this.setCustomValidity('')" 530 required 531 /></span> 532 <span class='lp-tcr-message'> 533 534 I agree to be contacted by 535 Bryan Coxworth 536 via call, email, and text for real estate services. To opt out, you can reply 'stop' at any time or reply 'help' for assistance. 537 You can also click the unsubscribe link in the emails. Message and data rates may apply. Message frequency may vary. 538 <a href='/terms-and-conditions' target='_blank'>Privacy Policy</a>. 539 </span> 540 </label> 541 542</div> 543 </div> 544 <div class="success-block"> 545 <div class="lp-title-group"> 546 <h2 class="lp-h2">Thank You</h2> 547 <div class="lp-text--subtitle"><p>You have successfully been added to our Newsletter. Stay tuned for the latest updates sent straight to your inbox!</p></div> 548 </div> 549 </div> 550 </form> 551 552 </div> 553</div> 554</section> 555<section class="image-section is-font-color-light is-background-color-light" id="section-56a0f81a-5721-42c1-ad3c-7b29258fa8bd" data-el-id="e6b1ae9f-5b8d-4ac5-a23f-bfb55ef91c3c"> 556
556<script> 557 (function(){ 558 const sectionId = 'section-56a0f81a-5721-42c1-ad3c-7b29258fa8bd' 559 const section = document.querySelector(`#${sectionId}`); 560 var sectionBg = window.getComputedStyle(section, null).getPropertyValue('background-image'); 561 562 if('true' === 'true') { 563 section.classList.add('parallax-enabled'); 564 section.style.setProperty('--sectionBackground', sectionBg); 565 section.style.setProperty('background', 'none'); 566 } 567 })() 568</script>
568 569<div class="redesign work-with-us parallax"> 570 <div class="container"> 571 <h2 class="serif">Work With Us</h2> 572 <div class="description">Reach out anytime for a no-obligation conversation â Bryan and Megan look forward to learning more about your plans and helping you move toward your next chapter.</div> 573 <div class="btn-container"> 574 <a 575 role="button" 576 data-type="CONTACT_US" 577 class="btn btn--primary-light button-style-4" 578 579 580 581 582 583 > 584 Contact Us 585 </a> 586 </div> 587 </div> 588</div> 589</section> 590<section id="section-1ae84a2f-352a-40df-9967-03972ee58fc7" class="solid-section is-font-color-dark is-background-color-light" data-el-id="5db65d6a-01e9-4ee3-babf-2748e074a284"> 591
591<script type="text/x-handlebars-template" class="jsIGItem"> 592 <a href="{{permalink}}" target="_blank" class="ig-feed-item insta-type-{{mediaType}}"> 593 <div class="ig-feed-item__img" style="background-image: url('{{#ifEquals mediaType 'VIDEO'}}{{thumbnailUrl}}{{^}}{{mediaUrl}}{{/ifEquals}}');"></div> 594 <div class="ig-feed-item__info"><div class="ig-feed-item__caption">{{caption}}</div></div> 595 {{#ifEquals mediaType 'VIDEO'}}<div class="video-icon"></div>{{/ifEquals}} 596 </a> 597</script>
597 598<div class="ig-feed redesign"> 599 <div class="ig-feed-top lp-container"> 600 <div class="top-wrapper"> 601 <div class="top-left"> 602 <h3 class="lp-h3 title">Follow Me on Instagram</h3> 603 <a href="#" target="_blank" class="instagram-link jsIGLink"><h4 class="lp-h4 instagram-name jsIGName"></h4></a> 604 </div> 605 <div class="top-right"> 606 <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> 607 <a class="nav-button top-nav-prev hidden-control button-style-1"> 608 <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> 609 </a> 610 <a class="nav-button top-nav-next hidden-control button-style-1"> 611 <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> 612 </a> 613 </div> 614 </div> 615 </div> 616 <div class="lp-container ig-feed-container "> 617 <div class="ig-feed-feed" data-limit="33"> 618 </div> 619 </div> 620 <div class="bottom-controls"> 621 <a class="bottom-nav-button bottom-nav-prev button-style-1"> 622 <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> 623 </a> 624 <a class="bottom-nav-button bottom-nav-next button-style-1"> 625 <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> 626 </a> 627 </div> 628</div> 629 630</section> 631 632 <div id="modals" class="modals"></div> 633 <footer id="global-footer" class="is-font-color-dark is-background-color-light" data-el-id="874a9373-949d-4275-b72f-04c2a6ec373b"> 634 <div class="footer redesign no_newsletter "> 635 <div class="container"> 636 <h3>Coxworth & Associates</h3> 637 <div class="info-wrap"> 638 <div class="info-wrap-contact agent_box"> 639 <div class="info-wrap-contact_zone type_user"> 640 <h4 class="serif"> Bryan Coxworth</h4> 641 <div class="info-wrap-contact_cell"> 642 <i> 643 <svg width="30" height="19" viewBox="0 0 30 19" fill="none" xmlns="http://www.w3.org/2000/svg"> 644 <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" /> 645 </svg> 646 </i> 647 <p class="contact_title">Email</p> 648 <a href="/cdn-cgi/l/email-protection#c0a2b2b9a1ae80a3afb4b4a1a7a5aca9a6a5b2a5a1acb4b9eea3afad" class="lp-link info-wrap-contact_link grey-text hyperlink-style-1"><span class="__cf_email__" data-cfemail="a2c0d0dbc3cce2c1cdd6d6c3c5c7cecbc4c7d0c7c3ced6db8cc1cdcf">[email protected]</span></a> 649 </div> 650 <div class="info-wrap-contact_cell"> 651 <i><svg width="30" height="25" viewBox="0 0 30 25" fill="none" xmlns="http://www.w3.org/2000/svg"> 652 <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
65213 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" /> 653 </svg></i> 654 <p class="contact_title">Phone Number</p> 655 <a href="tel:7057907629" class="lp-link info-wrap-contact_link grey-text hyperlink-style-1">705.790.7629</a> 656 </div> 657 </div> 658 <div class="info-wrap-contact_zone type_user"> 659 <h4 class="serif"> Megan Coxworth</h4> 660 <div class="info-wrap-contact_cell"> 661 <i> 662 <svg width="30" height="19" viewBox="0 0 30 19" fill="none" xmlns="http://www.w3.org/2000/svg"> 663 <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" /> 664 </svg> 665 </i> 666 <p class="contact_title">Email</p> 667 <a href="/cdn-cgi/l/email-protection#81ece2eef9f6eef3f5e9c1f2eef5e9e4e3f8f2f3e4e0edf5f8afe2e0" class="lp-link info-wrap-contact_link grey-text hyperlink-style-1"><span class="__cf_email__" data-cfemail="ff929c908788908d8b97bf8c908b979a9d868c8d9a9e938b86d19c9e">[email protected]</span></a> 668 </div> 669 <div class="info-wrap-contact_cell"> 670 <i> 671 <svg width="30" height="25" viewBox="0 0 30 25" fill="none" xmlns="http://www.w3.org/2000/svg"> 672 <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
67213 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" /> 673 </svg> 674 </i> 675 <p class="contact_title">Phone Number</p> 676 <a href="tel:7055439989" class="lp-link info-wrap-contact_link grey-text hyperlink-style-1">705.543.9989</a> 677 </div> 678 </div> 679 <div class="info-wrap-contact_zone"> 680 <div class="info-wrap-contact_cell"> 681 <i> 682 <svg width="31" height="30" viewBox="0 0 31 30" fill="none" xmlns="http://www.w3.org/2000/svg"> 683 <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" /> 684 <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" /> 685 <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" /> 686 </svg> 687 </i> 688 <p class="info-wrap-contact_title">Address</p> 689 <p class="info-wrap-contact_link grey-text"><div class="aiAXrc"><span class="fMYBhe">97 Joseph St Unit 101</span></div> 690<div class="aiAXrc"><span class="fMYBhe">Port Carling ON P0B 1J0</span></div> 691<div class="aiAXrc"> </div> 692<div class="aiAXrc"><span class="fMYBhe">243 Hurontario St<br>Collingwood ON L9Y 2M1</span></div></p> 693 </div> 694 </div> 695 </div> 696 </div> 697 <div class="text_footer first_text_footer"> 698 <div class="images_box"> 699 <div class="img_size"> 700 <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/ad9c37fe-f70d-4f8e-a491-0dab87ed4f99" 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/ad9c37fe-f70d-4f8e-a491-0dab87ed4f99 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/ad9c37fe-f70d-4f8e-a491-0dab87ed4f99 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/ad9c37fe-f70d-4f8e-a491-0dab87ed4f99 1280w, https://media-production.lp-cdn.com/cdn-cgi/image/format=auto,quality=85/https://media-production.lp-cdn.com/media/ad9c37fe-f70d-4f8e-a491-0dab87ed4f99 1920w" alt="Sotheby's International Realty Canada" sizes="200px"> 701 </div> 702 </div> 703 <div class="luxury-text"> 704 <p style="font-size: 12px;">Sotheby’s International Realty Canada is Independently Owned and Operated.<br><br>This website is not the official website of Sotheby’s International Realty, Inc. Sotheby’s International Realty, Inc. does not make any representation or warranty regarding any information, including without limitation its accuracy or c
704ompleteness, contained on this website.<br><img style="margin-top: 20px; width: 50px; filter: invert();" src="https://res.cloudinary.com/luxuryp/images/w_1280,c_limit,f_auto,q_auto/o3dp4jbwaleselnqffvw/light-realtor-png"></p> 705 </div> 706 </div> 707 <div class="text_footer second_text_footer"> 708 <div class="text_content_wrap"> 709 <div> 710 This Website is not the official website of Sothebyâs International Realty, Inc. Sothebyâs International Realty, Inc. does not make any representation or warranty regarding any information, including without limitation its accuracy or completeness, contained on this Website. 711 </div> 712 <div> 713 <div> </div> 714<style>* { box-sizing: border-box; } body {margin: 0;}ul{list-style:inherit;}</style> 715 </div> 716 </div> 717 </div> 718 <div class="info-privacy"> 719 <div class="form-row info-privacy__row"> 720 721 <div class="form-col form-col--powered powered-box"> 722 <div class="img-wrap"> 723 <img src="https://media-production.lp-cdn.com/media/b517d231-d9f5-4e15-870d-852a977c9204" alt=""> 724 </div> 725 <div class="powered_zone"> 726 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> 727 </div> 728 </div> 729 730 <div class="form-col form-col--copyright"> 731 <div class="copy_zone"> 732 <span class="copy_words">Copyright ©</span> <span class="auto-year-update">2026</span> 733 | <a href="/terms-and-conditions" class="lp-link grey-text hyperlink-style-1">Privacy Policy</a> 734 735 </div> 736 </div> 737 738 <div class="form-col form-col--socials"> 739 <ul class="lp-socials social_icons-style-1 socials socials--grey socials_zone"> 740 741 <li> 742 <a 743 href="https://www.facebook.com/coxworthassociates/" 744 class="lp-socials__link socials__item socials__link wow fadeInUp" 745 data-wow-delay="0s" 746 target="_blank" 747 aria-label="FACEBOOK" 748 > 749 <span class="lp-i lp-i--facebook" aria-hidden="true"></span> 750 </a> 751 </li> 752 <li> 753 <a 754 href="https://www.instagram.com/coxworthassociates" 755 class="lp-socials__link socials__item socials__link wow fadeInUp" 756 data-wow-delay="0.1s" 757 target="_blank" 758 aria-label="INSTAGRAM" 759 > 760 <span class="lp-i lp-i--instagram" aria-hidden="true"></span> 761 </a> 762 </li> 763 <li> 764 <a 765 href="https://www.linkedin.com/company/coxworthassociates/about/" 766 class="lp-socials__link socials__item socials__link wow fadeInUp" 767 data-wow-delay="0.2s" 768 target="_blank" 769 aria-label="LINKEDIN" 770 > 771 <span class="lp-i lp-i--linkedin" aria-hidden="true"></span> 772 </a> 773 </li> 774 <li> 775 <a 776 href="https://youtube.com/channel/UCeVaG97L4Be4LHmm-jGQH9A" 777 class="lp-socials__link socials__item socials__link wow fadeInUp" 778 data-wow-delay="0.3s" 779 target="_blank" 780 aria-label="YOUTUBE" 781 >
782 <span class="lp-i lp-i--youtube" aria-hidden="true"></span> 783 </a> 784 </li> 785 </ul> </div> 786 </div> 787 </div> 788 </div> 789</div> 790 791 </footer> 792 793 <div id="modal-global-contact-us" class="modal " 794 data-el-id="" 795 style="background-color: ;" 796 > 797 <div class="modal-content"> 798 <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/63d7b384-33de-47ca-8861-990f8d749f00')"> 799 <div class="container"> 800 <div class="section-details" style="--colorTxt: #ffffff"> 801 <h2>Coxworth & Associates</h2> 802 803 <div class="info-zone"> 804 805 <div class="info-zone_contact type_user"> 806 <h4 class="serif">Bryan Coxworth</h4> 807 <div class="info-zone_contact_cell"> 808 <i> 809 <svg width="30" height="25" viewBox="0 0 30 25" fill="none" xmlns="http://www.w3.org/2000/svg"> 810 <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"/> 811 </svg> 812 </i> 813 <p class="contact_title">Phone</p> 814 <a href="tel:705.790.7629" class="lp-link info-zone_contact_link link hyperlink-style-2">705.790.7629</a> 815 </div> 816 <div class="info-zone_contact_cell"> 817 <i> 818 <svg width="30" height="19" viewBox="0 0 30 19" fill="none" xmlns="http://www.w3.org/2000/svg"> 819 <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"/> 820 </svg> 821 </i> 822 <p class="contact_title">Email</p> 823 <a href="/cdn-cgi/l/email-protection#9af8e8e3fbf4daf9f5eeeefbfdfff6f3fcffe8fffbf6eee3b4f9f5f7" class="lp-link info-zone_contact_link link hyperlink-style-2"><span class="__cf_email__" data-cfemail="1a7868637b745a79756e6e7b7d7f76737c7f687f7b766e6334797577">[email protected]</span></a> 824 </div> 825 </div> 826 <div class="info-zone_contact type_user"> 827 <h4 class="serif">Megan Coxworth</h4> 828 <div class="info-zone_contact_cell"> 829 <i> 830 <svg width="30" height="25" viewB
830ox="0 0 30 25" fill="none" xmlns="http://www.w3.org/2000/svg"> 831 <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"/> 832 </svg> 833 </i> 834 <p class="contact_title">Phone</p> 835 <a href="tel:705.543.9989" class="info-zone_contact_link hvr_animation link link--white hyperlink-style-2">705.543.9989</a> 836 </div> 837 <div class="info-zone_contact_cell"> 838 <i> 839 <svg width="30" height="19" viewBox="0 0 30 19" fill="none" xmlns="http://www.w3.org/2000/svg"> 840 <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"/> 841 </svg> 842 </i> 843 <p class="contact_title">Email</p> 844 <a href="/cdn-cgi/l/email-protection#4528262a3d322a37312d05362a312d20273c3637202429313c6b2624" class="info-zone_contact_link hvr_animation link link--white hyperlink-style-2"><span class="__cf_email__" data-cfemail="1c717f73646b736e68745c6f736874797e656f6e797d706865327f7d">[email protected]</span></a> 845 </div> 846 </div> 847 <div class="info-zone_contact"> 848 <div class="info-zone_contact_cell"> 849 <i> 850 <svg width="31" height="30" viewBox="0 0 31 30" fill="none" xmlns="http://www.w3.org/2000/svg"> 851 <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
8510.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"/> 852 <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"/> 853 <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"/> 854 </svg> 855 </i> 856 <p class="info-wrap-contact_title">Address</p> 857 <p class="info-zone_contact_link pre-line">97 Joseph St Unit 101 858 Port Carling ON P0B 1J0 859 860 243 Hurontario St 861 Collingwood ON L9Y 2M1</p> 862 </div> 863 </div> 864 <div class="info-zone_contact"> 865 <div class="info-zone_contact_cell"> 866 <p class="pre-line"><div></div><style>* { box-sizing: border-box; } body {margin: 0;}ul{list-style:inherit;}</style></p> 867 </div> 868 </div> 869 <ul class="lp-socials social_icons-style-2 socials socials--grey socials_zone footer__contact-column"> 870 871 <li> 872 <a 873 href="https://www.facebook.com/coxworthassociates/" 874 class="lp-socials__link socials__item wow fadeInUp socials__link" 875 data-wow-delay="0s" 876 target="_blank" 877 aria-label="FACEBOOK" 878 > 879 <span class="lp-i lp-i--facebook" aria-hidden="true"></span> 880 </a> 881 </li> 882 <li> 883 <a 884 href="https://www.instagram.com/coxworthassociates" 885 class="lp-socials__link socials__item wow fadeInUp socials__link" 886 data-wow-delay="0.1s" 887 target="_blank" 888 aria-label="INSTAGRAM" 889 > 890 <span class="lp-i lp-i--instagram" aria-hidden="true"></span> 891 </a> 892 </li> 893 <li> 894 <a 895 href="https://youtube.com/channel/UCeVaG97L4Be4LHmm-jGQH9A" 896 class="lp-socials__link socials__item wow fadeInUp socials__link" 897 data-wow-delay="0.2s" 898 target="_blank" 899 aria-label="YOUTUBE" 900 >
901 <span class="lp-i lp-i--youtube" aria-hidden="true"></span> 902 </a> 903 </li> 904 <li> 905 <a 906 href="https://www.linkedin.com/company/coxworthassociates/about/" 907 class="lp-socials__link socials__item wow fadeInUp socials__link" 908 data-wow-delay="0.3s" 909 target="_blank" 910 aria-label="LINKEDIN" 911 > 912 <span class="lp-i lp-i--linkedin" aria-hidden="true"></span> 913 </a> 914 </li> 915 </ul> </div> 916 </div> 917 <div class="section-message"> 918 <form data-type="contact-form"> 919 <h2>Submit a Message</h2> 920 <div class="h-pot"> 921 <label for="-middleName">Middle Name</label> 922 <input id="-middleName" name="middleName" value="" autocomplete="off" tabindex="-1"> 923 </div> 924 925 926 <div class="lp-input-group"> 927 <label for="prod-name" class="lp-label">Name</label> 928 <input id="prod-name" name="name" value="" required="" class="lp-input lp-input--light"> 929 </div> 930 <div class="lp-input-group"> 931 <label for="prod-email" class="lp-label">Email</label> 932 <input id="prod-email" type="email" name="email" value="" required="" class="lp-input lp-input--light"> 933 </div> 934 <div class="lp-input-group"> 935 <label for="prod-phone" class="lp-label">Phone</label> 936 <input id="prod-phone" type="tel" name="phoneNumber" value="" required="" class="lp-input lp-input--light"> 937 </div> 938 <div class="lp-input-group m16"> 939 <label for="prod-message" class="lp-label">Message</label> 940 <textarea id="prod-message" name="message" value="" required="" class="lp-input"></textarea> 941 </div> 942 943 <div class="lp-disclaimer"> <label style='display: none;' for='-termsAccepted'>Opt In/Disclaimer Consent:</label> 944 <label class='lp-tcr-content'> 945 <span class='lp-tcr-checkbox'> 946 <input 947 type='checkbox' 948 id='-termsAccepted' 949 name='termsAccepted' 950 oninvalid="this.setCustomValidity('Please accept the terms and conditions')" 951 oninput="this.setCustomValidity('')" 952 required 953 /></span> 954 <span class='lp-tcr-message'> 955 956 I agree to be contacted by 957 Bryan Coxworth 958 via call, email, and text for real estate services. To opt out, you can reply 'stop' at any time or reply 'help' for assistance. 959 You can also click the unsubscribe link in the emails. Message and data rates may apply. Message frequency may vary. 960 <a href='/terms-and-conditions' target='_blank'>Privacy Policy</a>. 961 </span> 962 </label> 963 964 </div> 965 966 <input style="display: none;" type="text" name="source" value="CONTACT_INQUIRY" /> 967 968 969 <button type="submit" class="submitButton lp-btn button-style-4"> 970 <span class="label-initial">Submit</span> 971 <span class="label-loading">Submitting</span> 972 <span class="label-success">Submitted</span> 973 <span class="submit-icon lp-i lp-i--circle-notch lp-i--spin"></span> 974 </button> 975 <p class="success-message success hide"> 976 Message sent successfully! 977 </p> 978 </form> 979 980 981 </div> 982 </div> 983 </div> 984 985 </div> 986 <button class="close lp-close" type="button" aria-label="close modal">
987 <span class="lp-close-icon" aria-hidden="true"></span> 988 </button> 989 </div> 990 <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;"> 991 <style> 992 #qualifying-questions-modal .custom-select-toggle { 993 border: 1px solid #848484; 994 border-radius: 8px; 995 padding: 12px 16px; 996 } 997 998 #qualifying-questions-modal .custom-select-toggle.is-placeholder { 999 color: #848484; 1000 } 1001 1002 #qualifying-questions-modal #qualifying-questions-modal-phoneNumber::placeholder { 1003 color: #848484; 1004 opacity: 1; 1005 } 1006 1007 #qualifying-questions-modal .disclaimer-more { 1008 display: none; 1009 } 1010 1011 #qualifying-questions-modal #qualifying-questions-modal-disclaimer-text:not(.collapsed) .disclaimer-more { 1012 display: inline; 1013 } 1014 1015 #qualifying-questions-modal #qualifying-questions-modal-disclaimer-text:not(.collapsed) .disclaimer-ellipsis { 1016 display: none; 1017 } 1018 </style>
vendor: 119 bytes, lines 1018-1019
1018 1019 <script data-cfasync="false" src="/cdn-cgi/scripts/5c5dd728/cloudflare-static/email-decode.min.js"></script>
1019<script> 1020 function toggleDisclaimerQualifyingQuestionsModal() { 1021 const disclaimerText = document.getElementById('qualifying-questions-modal-disclaimer-text'); 1022 const toggleButton = document.getElementById('qualifying-questions-modal-toggle-disclaimer'); 1023 1024 if (disclaimerText.classList.contains('collapsed')) { 1025 disclaimerText.classList.remove('collapsed'); 1026 toggleButton.textContent = 'Read less'; 1027 toggleButton.setAttribute('aria-expanded', 'true'); 1028 } else { 1029 disclaimerText.classList.add('collapsed'); 1030 toggleButton.textContent = 'Read more'; 1031 toggleButton.setAttribute('aria-expanded', 'false'); 1032 } 1033 } 1034 </script>
1034 1035 <div style="max-width: 400px; width: 95%; margin: 0 auto;"> 1036 <div style="background: #fff; border: none; border-radius: 16px; color: black; box-shadow: none; position: relative;"> 1037 <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;"> 1038 <span aria-hidden="true">×</span> 1039 </button> 1040 <div style="padding: 40px 30px 32px;"> 1041 <div style="text-align: left; margin-bottom: 32px;"> 1042 <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;"> 1043 Thanks, please provide more information to help serve you 1044 </h2> 1045 </div> 1046 <form id="qualifying-questions-modal-form" data-type="contact-form"> 1047 <input type="hidden" name="source" value="PROFILE_UPDATE" /> 1048 <input type="hidden" name="email" value="" id="qualifying-questions-modal-email" /> 1049 <input type="hidden" name="triggerSource" id="qualifying-questions-modal-triggerSource" value="" /> 1050 <label for="qualifying-questions-modal-email" style="display:none;"> 1051 Email 1052 </label> 1053 <label for="qualifying-questions-modal-triggerSource" style="display:none;"> 1054 Trigger Source 1055 </label> 1056 1057 <div style="margin-bottom: 20px;"> 1058 <label for="qualifying-questions-modal-phoneNumber" style="display:none;"> 1059 Phone Number 1060 </label> 1061 <input 1062 type="tel" 1063 id="qualifying-questions-modal-phoneNumber" 1064 name="phoneNumber" 1065 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;" 1066 pattern="^\+?1?[-.\s]?\(?[0-9]{3}\)?[-.\s]?[0-9]{3}[-.\s]?[0-9]{4}$" 1067 required 1068 placeholder="Phone" 1069 aria-label="Phone Number" 1070 inputmode="tel" 1071 autocomplete="tel" 1072 onfocus="this.style.borderColor='black';" 1073 onblur="this.style.borderColor='#848484';" 1074 /> 1075 </div> 1076 1077 <div style="margin-bottom: 20px;"> 1078 <label for="qualifying-questions-modal-interest" style="display:none;"> 1079 Interest 1080 </label> 1081 <select 1082 id="qualifying-questions-modal-interest" 1083 name="interest" 1084 required 1085 data-label="Interest" 1086 aria-label="Interest" 1087 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;" 1088 onfocus="this.style.borderColor='black'; this.style.color='black';" 1089 onblur="this.style.borderColor='#848484'; if(this.value === '') this.style.color='#848484'; else this.style.color='black';" 1090 > 1091 <option value="" style="background: #fff; color: #848484;" disabled selected>Interested in...</option> 1092 <option value="Selling & Buying" style="background: #fff; color: black;">Selling & Buying</option> 1093 <option value="Selling" style="background: #fff; color: black;">Selling</option> 1094 <option value="Buying" style="background: #fff; color: black;">Buying</option> 1095 <option value="Renting" style="background: #fff; color: black;">Renting</option> 1096 <option value="Other" style="background: #fff; color: black;">Other</option> 1097 </select> 1098 </div> 1099 1100 <div style="margin-bottom: 32px; font-size: 12px; line-height: 1.2;"> 1101 <label style='display: none;' for='qualifying-questions-modal-qualifying-questions-termsAccepted'>Opt In/Disclaimer Consent:</label> 1102 <label class='lp-tcr-content'>
1103 <span class='lp-tcr-checkbox'> 1104 <input 1105 type='checkbox' 1106 id='qualifying-questions-modal-qualifying-questions-termsAccepted' 1107 name='termsAccepted' 1108 aria-describedby='qualifying-questions-modal-disclaimer-text' 1109 oninvalid="this.setCustomValidity('Please accept the terms and conditions')" 1110 oninput="this.setCustomValidity('')" 1111 required 1112 /></span> 1113 <span class='lp-tcr-message'> 1114 <div id="qualifying-questions-modal-disclaimer-text" class="collapsed" style="color: #848484;"> 1115 1116 I agree to be contacted by 1117 <strong>Bryan Coxworth</strong> 1118 via call, email, and text <span class="disclaimer-more">for real estate services. 1119 To opt out, you can reply 'stop' at any time or reply 'help' for assistance. 1120 You can also click the unsubscribe link in the emails. 1121 Message and data rates may apply. Message frequency may vary.</span> 1122 <span class="disclaimer-ellipsis">...</span> 1123 <a href='/terms-and-conditions' target='_blank' rel='noopener noreferrer' style='text-decoration: underline;'>Privacy Policy</a>. 1124 </div> 1125 <button 1126 id="qualifying-questions-modal-toggle-disclaimer" 1127 type="button" 1128 style="background: none; border: none; color: #848484; font-size: inherit; font-weight: bold; padding: 0; margin-top: 4px; cursor: pointer;" 1129 aria-expanded="false" 1130 onclick="toggleDisclaimerQualifyingQuestionsModal()" 1131 > 1132 Read more 1133 </button> 1134 </span> 1135 </label> 1136 </div> 1137 1138 <div> 1139 <button 1140 type="submit" 1141 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;" 1142 onmouseover="this.style.background='transparent'; this.style.color='black';" 1143 onmouseout="this.style.background='black'; this.style.color='white';" 1144 > 1145 Submit 1146 </button> 1147 </div> 1148 </form> 1149 </div> 1150 </div> 1151 </div> 1152 </div> 1153 1154
1154<script> 1155 (function() { 1156 var lazyVideos = [].slice.call(document.querySelectorAll("video.lazy")); 1157 1158 if ("IntersectionObserver" in window && lazyVideos.length > 0) { 1159 var lazyVideoObserver = new IntersectionObserver(function(entries, observer) { 1160 entries.forEach(function(video) { 1161 if (video.isIntersecting) { 1162 for (var source in video.target.children) { 1163 var videoSource = video.target.children[source]; 1164 if (typeof videoSource.tagName === "string" && videoSource.tagName === "SOURCE") { 1165 videoSource.src = videoSource.dataset.src; 1166 } 1167 } 1168 1169 video.target.load(); 1170 video.target.classList.remove("lazy"); 1171 lazyVideoObserver.unobserve(video.target); 1172 } 1173 }); 1174 }); 1175 1176 lazyVideos.forEach(function(lazyVideo) { 1177 lazyVideoObserver.observe(lazyVideo); 1178 }); 1179 } 1180 })(); 1181 </script>
1181 1182 1183 <!-- Global site tag (gtag.js) - Google Analytics --> 1184
1184<script defer src="https://www.googletagmanager.com/gtag/js"></script>
1184 1185 1186 <!-- Google Tag Manager --> 1187
1187<script>(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start': 1188 new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0], 1189 j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.defer=true;j.async=false;j.src= 1190 'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f); 1191 })(window,document,'script','dataLayer','GTM-T9SFQGHZ');</script>
1191 1192 <!-- End Google Tag Manager --> 1193 1194 1195 <!-- LP Tracker (divolte.js) - LP Divolte --> 1196
1196<script>window.divolteLp=window.divolteLp||function(){(divolteLp.q=divolteLp.q||[]).push(arguments)}</script>
1196 1197 <!-- LP Tracker (eventBus) - LP EventBus --> 1198
1198<script>window.eventBusLp=window.eventBusLp||function(){(eventBusLp.q=eventBusLp.q||[]).push(arguments)}</script>
1198 1199 1200
1200<script> 1201 window.dataLayer = window.dataLayer || []; 1202 document.sendGoogleTagManagerEvent = function() { 1203 /* Honor GPC-enabled browsers and prevent GTM event if GPC is enabled. More details: https://global-privacy-control.glitch.me/ */ 1204 if (window.navigator.globalPrivacyControl) { 1205 return; 1206 } 1207 1208 dataLayer.push(arguments); 1209 } 1210 1211 document.sendGoogleTagManagerEvent('js', new Date()); 1212 document.sendGoogleTagManagerEvent('config', 'G-SETRJE929R', { page: location.pathname, location: location.href }); 1213 document.sendGoogleAnalyticsEvent = function(googleEvent) { 1214 document.sendGoogleTagManagerEvent('event', googleEvent.eventAction || googleEvent.hitType, { 1215 event_category: googleEvent.eventCategory, 1216 event_label: googleEvent.eventLabel, 1217 value: googleEvent.eventValue, 1218 page: googleEvent.page, 1219 location: googleEvent.location 1220 }) 1221 }; 1222 1223 document.addEventListener("DOMContentLoaded", function() { 1224 (function() { 1225 //If the page has an element with ID of auto-year-update the element will be populated with the current year. 1226 var date = new Date(); 1227 var elements = document.getElementsByClassName('auto-year-update'); 1228 var i; 1229 for (i = 0; i < elements.length; i++) { 1230 elements[i].innerText = date.getFullYear(); 1231 } 1232 })(); 1233 if (window.divolteLp) { 1234 window.divolteLp('sendLpPageView', {}); 1235 } 1236 if (window.eventBusLp) { 1237 window.eventBusLp('sendLpPageView', {}); 1238 } 1239 }); 1240 </script>
1240 1241 1242 1243
1243<script> 1244 // Function to dynamically load a script 1245 function loadScript(url, callback) { 1246 var script = document.createElement('script'); 1247 script.type = 'text/javascript'; 1248 script.src = url; 1249 script.defer = true; 1250 script.async = true; 1251 script.onload = callback; 1252 document.head.appendChild(script); 1253 } 1254 1255 // Function to dynamically load CSS file 1256 function loadCSS(url) { 1257 var link = document.createElement("link"); 1258 link.rel = "stylesheet"; 1259 link.href = url; 1260 document.head.appendChild(link); 1261 } 1262 1263 // Global methods / variables that can be accessed by element js 1264 window.luxuryPresence = { 1265 libs: { 1266 loadJs: loadScript, 1267 loadCss: loadCSS, 1268 jsLibsMap: { 1269 paroller: { 1270 jsSrc: 'https://d1e1jt2fj4r8r.cloudfront.net/javascript/jquery.paroller.min.js', 1271 isLoaded: false, 1272 }, 1273 ionRangeSlider: { 1274 jsSrc: 'https://cdnjs.cloudflare.com/ajax/libs/ion-rangeslider/2.3.1/js/ion.rangeSlider.min.js', 1275 cssSrc: 'https://cdnjs.cloudflare.com/ajax/libs/ion-rangeslider/2.3.1/css/ion.rangeSlider.min.css', 1276 isLoaded: false, 1277 requires: ['jquery'], 1278 }, 1279 splide: { 1280 jsSrc: 'https://cdnjs.cloudflare.com/ajax/libs/splidejs/4.1.4/js/splide.min.js', 1281 cssSrc: 'https://cdnjs.cloudflare.com/ajax/libs/splidejs/4.1.4/css/splide-core.min.css', 1282 isLoaded: false, 1283 }, 1284 wow: { 1285 jsSrc: 'https://cdnjs.cloudflare.com/ajax/libs/wow/1.1.2/wow.min.js', 1286 isLoaded: false, 1287 }, 1288 jquery: { 1289 jsSrc: 'https://cdnjs.cloudflare.com/ajax/libs/jquery/3.7.1/jquery.min.js', 1290 isLoaded: false, 1291 }, 1292 slick: { 1293 jsSrc: 'https://cdnjs.cloudflare.com/ajax/libs/slick-carousel/1.8.1/slick.min.js', 1294 isLoaded: false, 1295 requires: ['jquery'], 1296 }, 1297 libphonenumber: { 1298 jsSrc: 'https://cdnjs.cloudflare.com/ajax/libs/libphonenumber-js/1.11.8/libphonenumber-js.min.js', 1299 isLoaded: false, 1300 }, 1301 }, 1302 }, 1303 }; 1304 </script>
1304 1305
1305<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>
1305 1306
1306<script defer src="https://cdnjs.cloudflare.com/ajax/libs/handlebars.js/4.7.8/handlebars.min.js"></script>
1306 1307
1307<script defer src="https://cdn.jsdelivr.net/npm/[email protected]/dist/handlebars-intl.min.js"></script>
1307 1308
1308<script defer src="https://cdnjs.cloudflare.com/ajax/libs/superagent/4.1.0/superagent.min.js"></script>
1308 1309
1309<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>
1309 1310
1310<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>
1310 1311
1311<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>
1311 1312 1313 <!-- GOOGLE TRANSLATE SCRIPT --> 1314
1314<script> 1315 function googleTranslateElementInit() { 1316 // list of languages can be overridden by setting window.customLanguages in the head JS. example `window.customLanguages = 'en,de,fr,ro,sk,pl'` 1317 // Language codes can be taken from here https://cloud.google.com/translate/docs/languages 1318 const DEFAULT_LANGUAGES = 'en,es,zh-CN,zh-TW,tl,vi,ar,ko,ru,de,fr,hi,pt'; 1319 document.querySelectorAll('[data-type="TRANSLATE"]').forEach(function(translate){ 1320 translate.innerText = ''; 1321 new google.translate.TranslateElement({ 1322 pageLanguage: 'en', 1323 layout: google.translate.TranslateElement.InlineLayout.SIMPLE, 1324 includedLanguages: window.customLanguages || DEFAULT_LANGUAGES, 1325 }, translate); 1326 }); 1327 } 1328 </script>
1328 1329
1329<script defer src="//translate.google.com/translate_a/element.js?cb=googleTranslateElementInit"></script>
1329 1330
1330<script defer src="https://accounts.google.com/gsi/intermediate"></script>
1330 1331 1332 <!-- GOOGLE TRANSLATE SCRIPT END--> 1333
1333<script> 1334 1335 // UI helpers 1336 (function () { 1337 1338 function getSideMenu () { 1339 return document.querySelector('body > div.sidemenu'); 1340 } 1341 1342 function sideMenuHide (instant) { 1343 var sideMenu = getSideMenu(); 1344 if (!sideMenu || !sideMenu.classList.contains('visible')) { 1345 return; 1346 } 1347 sideMenu.classList.remove('visible'); 1348 sideMenu.dispatchEvent(new CustomEvent('lpui-hide', { detail: { instant: !!instant } })); 1349 window.dispatchEvent(new CustomEvent('lpui-sidemenu-hide', { detail: {instant: !!instant} })); 1350 } 1351 1352 function sideMenuShow () { 1353 var sideMenu = getSideMenu(); 1354 if (!sideMenu || sideMenu.classList.contains('visible')) { 1355 return; 1356 } 1357 sideMenu.classList.add('visible'); 1358 sideMenu.dispatchEvent(new Event('lpui-show')); 1359 window.dispatchEvent(new Event('lpui-sidemenu-show')); 1360 } 1361 1362 function sideMenuToggle () { 1363 var sideMenu = getSideMenu(); 1364 if (!sideMenu) { 1365 return; 1366 } 1367 var isSideMenuVisible = sideMenu.classList.contains('visible'); 1368 if (isSideMenuVisible) { 1369 sideMenuHide(); 1370 } else { 1371 sideMenuShow(); 1372 } 1373 } 1374 1375 var scrollLockRequests = {}; 1376 window.__debug_scrollLockRequests = scrollLockRequests; 1377 var hideScrollStyles = ''+ 1378 'body {'+ 1379 'overflow: hidden;' + 1380 '}'; 1381 var hideScrollId = 'hide-body-scroll-style'; 1382 1383 function scrollLock () { 1384 var style = document.createElement('style'); 1385 style.id = hideScrollId; 1386 style.textContent = hideScrollStyles; 1387 document.head.appendChild(style); 1388 window.dispatchEvent(new Event('lpui-scroll-locked')); 1389 } 1390 1391 function scrollUnlock () { 1392 document.getElementById(hideScrollId)?.remove(); 1393 window.dispatchEvent(new Event('lpui-scroll-unlocked')); 1394 } 1395 1396 function requestScrollLock (lockId) { 1397 var wasLocked = Object.keys(scrollLockRequests).length > 0; 1398 scrollLockRequests[lockId || '__anonymous_lock'] = true; 1399 if (!wasLocked) { 1400 scrollLock(); 1401 } 1402 } 1403 1404 function releaseScrollLock (lockId) { 1405 if (lockId) { 1406 delete scrollLockRequests[lockId]; 1407 if (!Object.keys(scrollLockRequests).length) { 1408 scrollUnlock(); 1409 } 1410 } else { 1411 scrollLockRequests = {}; 1412 window.__debug_scrollLockRequests = scrollLockRequests; 1413 scrollUnlock(); 1414 } 1415 } 1416 1417 function showModal (modalId, options) { 1418 var modal = document.getElementById(modalId); 1419 if (!modal) { 1420 return; 1421 } 1422 1423 if (!modal.classList.contains('visible')) { 1424 modal.classList.add('visible'); 1425 if (options && options.scrollLock) { 1426 window.lpUI.requestScrollLock(modalId); 1427 } 1428 modal.dispatchEvent(new Event('lpui-show')); 1429 window.dispatchEvent(new CustomEvent('lpui-modal-show', { detail: { id: modalId } })); 1430 } 1431 1432 const visibleModals = document.querySelectorAll('.modal.visible'); 1433 1434 if (visibleModals.length > 1) { 1435 1436 const maxZIndex = Array.from(visibleModals).reduce((maxZIndex, modal) => { 1437 const zIndex = window.getComputedStyle(modal).zIndex; 1438 const parsedZIndex = zIndex !== 'auto' ? parseInt(zIndex) : 0; 1439 return Math.max(maxZIndex, parsedZIndex); 1440 }, 0); 1441 1442 modal.style.zIndex = maxZIndex + 1; 1443 } 1444 1445 } 1446 1447 function _hideModal (modalEl) { 1448 if (!modalEl) { 1449 return; 1450 } 1451 if (!modalEl.classList.contains('visible')) { 1452 return; 1453 } 1454 modalEl.classList.remove('visible'); 1455 modalEl.style.zIndex = '';
1456 modalEl.dispatchEvent(new Event('lpui-hide')); 1457 var modalId = modalEl.getAttribute('id'); 1458 if (modalId) { 1459 window.lpUI.releaseScrollLock(modalId); 1460 window.dispatchEvent(new CustomEvent('lpui-modal-hide', { detail: { id: modalId } })); 1461 } 1462 } 1463 1464 function hideModal (modalId) { 1465 _hideModal(document.getElementById(modalId)); 1466 } 1467 1468 function hideClosestModal (el) { 1469 const modal = el?.closest('.modal'); 1470 if (!modal) { 1471 return; 1472 } 1473 if (modal.classList) { 1474 _hideModal(modal); 1475 return; 1476 } 1477 if (modal.length && modal[0].classList) { 1478 _hideModal(modal[0]); 1479 } 1480 } 1481 1482 window.lpUI = { 1483 sideMenuHide: sideMenuHide, 1484 sideMenuShow: sideMenuShow, 1485 sideMenuToggle: sideMenuToggle, 1486 requestScrollLock: requestScrollLock, 1487 releaseScrollLock: releaseScrollLock, 1488 showModal: showModal, 1489 hideModal: hideModal, 1490 hideClosestModal: hideClosestModal 1491 } 1492 })(); 1493 1494 var stringifyPrimitive = function(v) { 1495 switch (typeof v) { 1496 case 'string': 1497 return v; 1498 1499 case 'boolean': 1500 return v ? 'true' : 'false'; 1501 1502 case 'number': 1503 return isFinite(v) ? v : ''; 1504 1505 default: 1506 return ''; 1507 } 1508 }; 1509 1510 function objectToQuerystring(obj, sep, eq, name) { 1511 // https://github.com/Gozala/querystring/blob/master/encode.js 1512 sep = sep || '&'; 1513 eq = eq || '='; 1514 if (obj === null) { 1515 obj = undefined; 1516 } 1517 1518 if (typeof obj === 'object') { 1519 return Object.keys(obj).map(function(k) { 1520 var ks = encodeURIComponent(stringifyPrimitive(k)) + eq; 1521 if (Array.isArray(obj[k])) { 1522 return obj[k].map(function(v) { 1523 return ks + encodeURIComponent(stringifyPrimitive(v)); 1524 }).join(sep); 1525 } else { 1526 return ks + encodeURIComponent(stringifyPrimitive(obj[k])); 1527 } 1528 }).filter(Boolean).join(sep); 1529 1530 } 1531 1532 if (!name) return ''; 1533 return encodeURIComponent(stringifyPrimitive(name)) + eq + 1534 encodeURIComponent(stringifyPrimitive(obj)); 1535 } 1536 1537 function getPath(url, options) { 1538 var parser = document.createElement('a'); 1539 parser.href = url || ''; 1540 var path = parser.pathname || ''; 1541 if (path[0] !== '/') { 1542 // IE does not return path starting with a slash 1543 path = '/' + path; 1544 } 1545 1546 if (options && options.queryString) { 1547 path += parser.search; 1548 } 1549 1550 return path; 1551 } 1552 1553 function getMLSAutocomplete(keyword) { 1554 var searchURL = window.location.protocol + '//' + window.location.hostname + '/home-search/auto_complete'; 1555 var query = { 1556 kind: 'listings', 1557 query: keyword 1558 }; 1559 1560 return superagent 1561 .get(searchURL) 1562 .query(query) 1563 .then(function(res) { 1564 var data = res.body || []; 1565 // Array of listing_auto_complete documents: id, display_address, city, state, 1566 // price, sold_price, status, status_modified_at, photo_urls (array of URLs). 1567 1568 return data; 1569 }); 1570 } 1571 1572 function getMLSAutocompleteWithFilters(keyword, filters = {}) { 1573 var searchURL = window.location.protocol + '//' + window.location.hostname + '/home-search/auto_complete'; 1574 1575 return superagent 1576 .get(searchURL) 1577 .query({ kind: 'listings', query: keyword, ...filters }) 1578 .then(function(res) { 1579 // Same response shape as getMLSAutocomplete. 1580 return res.body || []; 1581 }); 1582 } 1583 1584 function makeMlsLink(data) { 1585 // Code Dupe from utils/googlePlace 1586 // mapping of google data type to mls data type 1587 var mapping = { 1588 neighborhood: 'neighborhood', 1589 locality: 'place', 1590 administrative_area_level_2: 'county', 1591 administrative_area_level_1: 'state', 1592 postal_code: 'postalcode', 1593 }; 1594 1595 function _filterTypes(types) { 1596 return types.filter(function(type) { return type !== 'political' }); 1597 } 1598 1599 if (!data || !Object.keys(data).length) { 1600 return '/home-search/listings'; 1601 } 1602 1603 var newData = {};
1604 _filterTypes(data.types).forEach(function(type) { 1605 if (mapping[type]) { 1606 newData.search_type = mapping[type]; 1607 } 1608 }); 1609 newData.omnibox = data.formatted_address; 1610 data.address_components.forEach(function(component) { 1611 _filterTypes(component.types).forEach(function(type) { 1612 if (mapping[type]) { 1613 newData[mapping[type]] = component.long_name; 1614 } 1615 }); 1616 }); 1617 var bounds = data.geometry.bounds; 1618 var convertedData = Object.assign(bounds, newData); 1619 1620 return '/home-search/listings?' + objectToQuerystring(convertedData); 1621 } 1622 1623 function debounce(func, wait) { 1624 let timeout; 1625 return function(...args) { 1626 const context = this; 1627 clearTimeout(timeout); 1628 timeout = setTimeout(() => func.apply(context, args), wait) 1629 } 1630 } 1631 1632 // Global methods / variables that can be accessed by element js 1633 window.luxuryPresence = { 1634 ...window.luxuryPresence, 1635 defaults: { 1636 companyId: '71d4b9b5-d2d9-47f2-ab55-cbbab0ea5089', 1637 apiGatewayUrl: '/api-gw', 1638 routerUrl: '/api-nv', 1639 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\
1639n }\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
1639s: 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"}, 1640 propertyPlaceholderImage: {"id":"86f4a1ee-ad27-463d-a7fe-5ef9cd4afdd7","alt":null,"bytes":68170,"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/6b8afe1d-64d4-43b2-8a9b-173671403481","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/6b8afe1d-64d4-43b2-8a9b-173671403481","authorUrl":null,"createdAt":"2025-12-04T23:18:40.490Z","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/6b8afe1d-64d4-43b2-8a9b-1
164073671403481","sourceUrl":null,"updatedAt":"2025-12-04T23:18:40.490Z","xLargeUrl":"https://media-production.lp-cdn.com/cdn-cgi/image/format=auto,quality=85/https://media-production.lp-cdn.com/media/6b8afe1d-64d4-43b2-8a9b-173671403481","__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/6b8afe1d-64d4-43b2-8a9b-173671403481","description":null,"displayName":"property-placeholder","originalUrl":"https://media-production.lp-cdn.com/cdn-cgi/image/format=auto,quality=85/https://media-production.lp-cdn.com/media/6b8afe1d-64d4-43b2-8a9b-173671403481","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/6b8afe1d-64d4-43b2-8a9b-173671403481","originalFileName":"Property Placeholder","cloudinaryPublicId":"6b8afe1d-64d4-43b2-8a9b-173671403481"} 1641 }, 1642 objectToQuerystring: objectToQuerystring, 1643 getPath: getPath, 1644 getMLSAutocomplete: getMLSAutocomplete, 1645 getMLSAutocompleteWithFilters: getMLSAutocompleteWithFilters, 1646 makeMlsLink: makeMlsLink, 1647 debounce: debounce, 1648 }; 1649 1650 var wowOffset = 100; 1651 </script>
1651 1652
1652<script> 1653 (()=>{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 r=i[i.length-1];r.lastIndexOf(".")>-1?r=`${r.slice(0,r.lastIndexOf("."))}.jpg`:r+=".jpg",i[i.length-1]=r;let s=3;"videos"===i[1].toLowerCase()&&""!==i[2]&&(s=2);let a=/^(?:[a-z]{1,3}|\$\w+)_\S+$/;for(;s<i.length-1&&a.test(i[s]);)s++;return i.splice(s,0,"so_0,eo_0"),t+i.join("/")}};let r={amp:"&",lt:"<",gt:">",quot:'"',apos:"'",nbsp:" "},s=/&(?:amp|lt|gt|quot|apos|nbsp|#(?:[0-9]+|[xX][0-9a-fA-F]+));/y,a=/[<&]/g,o=/["'>]/g,n=/<\/p\s*>|<br\s*\/?>|[\r\n\u2028\u2029]/g;function l(e,t){let i="";for(let l=0;l<e.length;){a.lastIndex=l;let d=a.exec(e);if(!d){i+=e.slice(l);break}let c=d.index;i+=e.slice(l,c);let u="&"===e[c]?function(e,t){s.lastIndex=t;let i=s.exec(e);return{text:i?function(e){if("#"!==e[1])return r[e.slice(1,-1)];
1653let t="x"===e[2]||"X"===e[2],i=parseInt(e.slice(t?3:2,-1),t?16:10);return 0===i||i>1114111||i>=55296&&i<=57343?e:160===i?" ":String.fromCodePoint(i)}(i[0]):"&",end:i?s.lastIndex:t+1}}(e,c):function(e,t,i){let r=function(e,t){let i=null;o.lastIndex=t+1;let r=o.exec(e);for(;r;){let t=r[0];if(i)t===i&&(i=null);else if('"'===t||"'"===t)i=t;else if(">"===t)return o.lastIndex;r=o.exec(e)}return -1}(e,t);return{text:-1===r?"<":function(e,t,i,r){if(!r)return"";let s=e.slice(t,i);if(/^<br\s*\/?>$/.test(s))return" ";if(/^<\/p\s*>$/.test(s)){n.lastIndex=i;let t=n.exec(e);if(t&&"<"===t[0][0])return" "}return""}(e,t,r,i),end:-1===r?t+1:r}}(e,c,t);i+=u.text,l=u.end}return i}t=function(e,{isEqual:t}){let r=[{field:"thumbnailUrl",w:320},{field:"smallUrl",w:960},{field:"mediumUrl",w:1280},{field:"largeUrl",w:1920},{field:"xLargeUrl",w:2560},{field:"xxLargeUrl",w:3456}],s=function(e,t,i){let r="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 s="number"==typeof i?i:0,a=Number.isInteger(e)?0:s,o={minimumFractionDigits:a,maximumFractionDigits:a};return"USD"===t?`$${e.toLocaleString(r,o)}`:"CAD"===t?`$${e.toLocaleString(r,o)} CAD`:"EUR"===t?`\u{20AC}${e.toLocaleString(r,o)}`:"GBP"===t?`\xa3${e.toLocaleString(r,o)}`:"PERCENT"===t?`${e}%`:"number"==typeof i&&i>-1?e.toLocaleString(r,{maximumFractionDigits:i}):e.toLocaleString(r)},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""}},d=function(e,t){let i,r,s=t||{};switch(s.mode){case"short":i=o(e),r=s.frequencySeparator||"/";break;case"standard":case"std":i=n(e),r=s.frequencySeparator||"/";break;default:i=a(e),r=s.frequencySeparator||" "}return i?s.frequencyTag||s.frequencyClass?`${r}<${s.frequencyTag||"span"}${s.frequencyClass?` class="${s.frequencyClass}"`:""}>${i}</${s.frequencyTag||"span"}>`:r+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,r){return t(e,i)?r.fn(this):r.inverse(this)},"raw-helper":function(e){return e.fn()},striptags:e=>e?l(e=(e=e.replace(/<\!--(.|[\r\n])*?-\->/g,"")).replace(/<(xml|style|svg)("[^"]*"|'[^']*'|[^>])*>(.|[\r\n])*?<\/\1>/gi,""),!1):"",striptagsLineBreaks:e=>e?l(e=(e=e.replace(/<\!--(.|[\r\n])*?-\->/g,"")).replace(/<(xml|style|svg)("[^"]*"|'[^']*'|[^>])*>(.|[\r\n])*?<\/\1>/gi,""),!0):"",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,r,s){s.data.root[r]=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)=>d(e,t&&t.hash),subArray(e,t,i,r){return e>=t&&e<i?r.fn(this):r.inverse(this)},formatPropertyStatus(e,t,i){let r="";switch(e){case"SOLD":r="Sold";break;case"FOR_SALE":r="For Sale";break;case"COMING_SOON":r="Coming Soon";break;case"INACTIVE":r="Inactive";break;case"POCKET_LISTING":r="Pocket Listing";break;case"PENDING":r="Pending";break;case"UNDER_CONTRACT":r="Under Contract";break;case"ACTIVE_UNDER_CONTRACT":r="Active Under Contract";break;default:r=e}return("Sold"===r||"Leased"===r)&&t&&"string"==typeof i&&i&&(r+=` on ${i}`),r},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 r=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},s="",a=e,o=t;
1653i&&(a=new Date(e).toLocaleString("en-US",{timeZone:i}),o=new Date(t).toLocaleString("en-US",{timeZone:i}),[,,,s]=new Date(t).toLocaleString("en-US",{timeZone:i,timeZoneName:"short"}).split(" "));let n=new Date(a),l=n.toLocaleDateString("en-US"),d=r(n),c=r(new Date(o));return`${l} ${d} - ${c} ${s}`},math:(e,t,i)=>(e=parseFloat(e),({"+":e+(i=parseFloat(i)),"-":e-i,"*":e*i,"/":e/i,"%":e%i})[t]),findByKey(e,t,i,r){let s=(e||[]).find(e=>e[t]===i);return r.fn(s)},capitalize(e,t,i){let r;return"string"==typeof e&&e.length&&(r=e.toLowerCase().split(t).map(e=>e.charAt(0).toUpperCase()+e.slice(1)).join(" ").toString()),r},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,r){let s="",a=null;r.data&&(a=e.createFrame(r.data));let o=(i||[]).filter(Boolean);if(o&&o.length){let e=0;s=o.reduce((i,s,o)=>{let n=(t||[]).find(e=>e.id===s);return n?(a&&(a.index=o-e),i+r.fn(n,{data:a})):(e+=1,i)},"")}else for(let e=0,i=(t||[]).length;e<i;e++)a&&(a.index=e),s+=r.fn(t[e],{data:a});return s},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())),`
1653<script type="text/x-handlebars-template" class="${t} pagination-script">${i.fn()}<\/script>`),numCompare(e,t,i,r){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)?!r.fn||r.fn(this):!!r.fn&&r.inverse(this)},lpFormatNumber:s,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,r){let s=null,a=0,o=new Set;return r.data&&(s=e.createFrame(r.data)),(t||[]).reduce((e,t,n)=>{let l=i?t[i]:t;return!o.has(l)||i&&void 0===l?(o.add(l),s&&(s.index=n-a),e+r.fn(t,{data:s})):(a+=1,e)},"")},JSONstringify:(e,t)=>JSON.stringify(e),formatPropertyPrice(...t){let i=t[t.length-1].hash,r=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=" | "),r.isPasswordProtected)return"Exclusive Listing";let n=t.length>4?t[3]:i.priceUponRequestText;if("string"!=typeof n&&(n="Price Upon Request"),r.priceUponRequest)return n;let l=r.salesPrice,c=null;"SOLD"!==r.status&&"Leased"!==r.status&&r.reducedPrice&&(i.reducedClass?c=r.reducedPrice:l=r.reducedPrice);let u="";c&&(u+=`<${i.reducedTag||"span"} class="${i.reducedClass}">${s(c,r.currency,a)}</${i.reducedTag||"span"}>`),l&&(l=s(l,r.currency,a),i.priceTag||i.priceClass?u+=`<${i.priceTag||"span"}${i.priceClass?` class="${i.priceClass}"`:""}>${l}</${i.priceTag||"span"}>`:u+=l);let h=r.leasePrice&&s(r.leasePrice,r.currency,a);if(h){u&&(u+=o);let e=`${h}${d(r.leasePeriod,i)}`;i.leaseTag||i.leaseClass?u+=`<${i.leaseTag||"span"}${i.leaseClass?` class="${i.leaseClass}"`:""}>${e}</${i.leaseTag||"span"}>`:u+=e}
1653return new e.SafeString(u)},mediaImage(t,i={}){if(!t)return;let{lazy:s,...a}=i.hash,o="",n="";if("string"==typeof t)o=t;else{let e={},{height:s,width:l,altTagText:d}=t;r.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),s&&l&&(s>=l&&(a.class?a.class+=" portrait":a.class="portrait"),"setDims"in i.hash&&(a.width=l,a.height=s)),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||s)&&(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 r=i.pathname.lastIndexOf("."),s=i.pathname;return -1!==r&&(s=i.pathname.substr(0,r)),i.pathname=`${s}.${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,r=e.match(/\b\w/g)?.slice(0,i);return r?(t?.hash?.addText&&(r=r.map(e=>e+t.hash.addText)),r.join(t?.hash?.joinWith||"").toUpperCase()):""},normalizePhone(e){if(!e)return"";let t=String(e).trim();return(t.startsWith("+")?"+":"")+t.replace(/\D/g,"")}}};class d{constructor(e,t,i){if(this.config=e,this.window=t,this.document=i,!this.destroy)throw Error("Controllers must implement a deconstructor")}}let c="lp_lead_form_conversion_fired";function u(e,t){if(e&&t&&"function"==typeof t.sendGoogleTagManagerEvent&&!function(e){try{return"true"===e.sessionStorage.getItem(c)}catch{return!1}}(e))try{t.sendGoogleTagManagerEvent("event","generate_lead");try{e.sessionStorage.setItem(c,"true")}catch{}}catch{}}function h(e){return!!e&&(!!e.expired||Date.now()>=e.expiresAt)}let p="/api/v1/home-valuation";class m extends d{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={},r=t("street_number"),s=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 r&&(i.streetNumber=r),s&&(i.streetName=s),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:r}=e;r.address?.addressComponents&&(t=this._transformAddressComponents(r.address.addressComponents)),r.geocode?.location&&(i={latitude:r.geocode.location.latitude,longitude:r.geocode.location.longitude})}return{structuredAddress:t,coordinates:i}}_filterEmptyStrings(e){let t={};for(let[i,r]of Object.entries(e))""!==r&&null!=r&&(t[i]=r);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 r={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&&(r.errorMessage=i.userMessage||(i.status?`Request failed with status ${i.status}`:"An error occurred"),r.errorName=i.name,r.errorStatus=i.status),console.error(`[HomeValuation] ${e}`,JSON.stringify(r)),this.window.posthog)try{this.window.posthog.capture(e,r)}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
1653ontact 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,r){let s=this._formatStructuredAddress(i)||this._getRawAddress(e);if(!s)throw Error("Unable to extract home valuation address from form data");let a={companyId:e.companyId,homeValuationAddress:s,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
1653ourceResource,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},...r&&{coordinates:r}}}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 r=new AbortController,s=setTimeout(()=>r.abort(),1e4);try{let a=await fetch(e,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(t),signal:r.signal});clearTimeout(s);let o=await a.text(),n=this._parseResponsePayload(o);if(!a.ok)throw this._createResponseError(n,a.status);if(n&&"success"===n.status&&n.redirectUrl){if(h(i))return n;if(!this._isSafeRedirectUrl(n.redirectUrl))return console.error("Home valuation: refusing redirect to unsupported protocol"),n;return this.window.location.href=n.redirectUrl,{redirected:!0,url:n.redirectUrl}}return n}catch(e){throw clearTimeout(s),e}}async _submitHomeValuationRequest(e){let t=this._resolveValuationApiBase();this._logLeadEvent("home_valuation_submission_started",e);try{let i=this._getRawAddress(e),r=null;try{r=await this._validateAddressSafely(i)}catch(t){throw this._logLeadEvent("home_valuation_address_validation_failed",e,t),t}let s=null;try{s=await this._getHomeValuationEstimateSafely(r)}catch(t){this._logLeadEvent("home_valuation_estimate_failed",e,t),s=null}let{structuredAddress:a,coordinates:o}=this._extractAddressAndCoordinates(r),n=`${t}${p}`,l=this._buildHomeValuationData(e,s,a,o),d=await this._submitLead(n,l,e.deadline);return this._logLeadEvent("home_valuation_submission_success",e),d}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,r=t.googleMapsAPIKey;if(!r&&i.luxuryPresence?.mapApiLoader&&(r=await i.luxuryPresence.mapApiLoader.getMapApiKey()),!r)throw Error("Google Maps API key not configured");let s=new AbortController,a=setTimeout(()=>s.abort(),1e4);try{let t=await fetch(`https://addressvalidation.googleapis.com/v1:validateAddress?key=${r}`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({address:{addressLines:[e]},enableUspsCass:!1}),signal:s.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()}${p}`;if(!e?.result?.address?.addressComponents)return null;let i=this._transformAddressComponents(e.result.address.addressComponents);if(!this._hasMandatoryAddressFields(i))return this._logMissingAddressFields(i),null;let r=this._buildAddressQueryString(i),s=`${t}?${r}`,a=new AbortController,o=setTimeout(()=>a.abort(),1e4);try{let e=await fetch(s,{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 g="middleName",y="redirect-pending",f=["name","firstName","lastName",g,"email","phone","phoneNumber","source","message","mlsId","sourceUrl"],v="lp_map_key_failed",w="oauthSuccess",b={cookieyes:{eventName:"cookieyes_consent_update",hasAnalyticsConsent:e=>(function(e){let t=e.cookie.match(/cookieyes-consent=([^;
1653]+)/);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 S(e){return"object"==typeof e&&null!==e&&!Array.isArray(e)}function _(e,t){t.forEach(t=>{let i=e[t];Array.isArray(i)&&0===i.length&&delete e[t]})}function I(e,t,i,r){let s=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=r?.merge?s.flat():s.find(e=>e.length>0)??[];t.forEach(t=>{delete e[t]}),a.length>0&&(e[i]=[...new Set(a)])}function E(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()||"",r=t.type?.toLowerCase()||"";return i.localeCompare(r)});t.socialLinks=i;let r={youtube:"urlYoutube",facebook:"urlFacebook",instagram:"urlInstagram",linkedin:"urlLinkedin",podcast:"urlPodcast",twitter:"urlTwitter"};i.forEach(e=>{let i=r[e.type?.toLowerCase()??""];i&&(t[i]=e.link)})}return t}function A(e){return e&&Array.isArray(e)?e.map(e=>E(e)):e}function L(e){let{region:t}=e;if(!S(t))return e;let{schools:i,pois:r,...s}=t,a={...s,schools:S(i)?i.data??[]:[],...Array.isArray(r)?{pois:r.map(e=>({...e,category:"string"==typeof e.category?e.category.toUpperCase():e.category}))}:{}};return{...e,region:a}}function x(e){return e&&Array.isArray(e)?e.map(e=>L(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 T(e){return e&&Array.isArray(e)?e.map(e=>$(e)):e}function C(e,t){return S(e)?t(e):e}function k(e,t){return Array.isArray(e)?t(e):e}var M={};M=` 1654 query PropertyDisclaimers($input: PropertyDisclaimersInput!) { 1655 propertyDisclaimers(input: $input) { 1656 feedId 1657 listingId 1658 resolvedFromListing 1659 listingCardAttribution 1660 listingDetailCourtesy 1661 listingDetailFooter 1662 logo 1663 } 1664 } 1665`;let P={mlsAttribution:"listingCardAttribution",mlsLogo:"logo",listingDetailCourtesy:"listingDetailCourtesy",listingDetailFooter:"listingDetailFooter"},U=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}}}({}),N=new class extends d{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 >
1665 .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,r=`modal-controller-${e}`;try{t.localStorage.setItem(r,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,r=i.getItem(`modal-controller-${e}`);if(!r)return!1;let s=JSON.parse(r);return!(new Date().getTime()>s)||(i.removeItem(`modal-controller-${e}`),!1)}show(e,t={}){let{window:i}=this,r=this.getModalWithExpiry(e);(e&&!r||!0===t.forced)&&(i.lpUI.showModal(`modal-${e}`,t),this.setModalWithExpiry(e))}_attachModalHandler(e){let{pageId:t}=this,{trigger:i,pageSpecific:r}=e;(!r||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:r}=this,{modalId:s}=e;function a(e){!r[s]&&(e.toElement||e.relatedTarget||(t.show(s),r[s]=!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:r}=this;if("true"!==i.localStorage.getItem("isSignedUp")){let e=r.querySelector(`#modal-${t}`),s=e?.querySelector("form"),a=s?.dataset.delay||2e3;s.addEventListener("formsubmitted",()=>{this.setLoginState()}),i.addEventListener("oauthSuccess",()=>{this.setLoginState(),s.classList.add("success"),setTimeout(()=>{i.lpUI.hideModal(`modal-${t}`),s.reset(),s.classList.remove("success")},a)}),this.show(t,{forced:!0})}}}(U,window,document),R=new class extends d{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,r=e.target.closest("button, a");if(!r)return;let s=r.dataset.type||"",a=r.href||r.dataset.href||"",o=r.target||"",{submit:n}=r.dataset;if(n){try{await this._handleSubmit(r)}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(r),"VIDEO"===s)return void this._handleVideoButton(r);if("CONTACT_US"===s)return void this._handleContactUsButton(r);if("SUBSCRIBE"===s)return void t.lpUI.showModal("modal-global-subscribe");if("MY_ACCOUNT"===s)return void t.lpUI.showModal("modal-global-my-account");if("SHARE_POPUP"===s){let t=r.querySelector(".share-popup");t&&(t.style.display="flex"),e.stopPropagation();return}if("MODAL_"===s.substring(0,6)){let e=s.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,r]=t,s=`https://player.vimeo.com/video/${i}?`;return r&&(s+=`h=${r}&`),s+="autoplay=1"}_handleVideoButton(e){let{document:t}=this,i=e.closest("section"),{src:r}=e.dataset,s="";if(r&&(r.includes("youtube.com")||r.includes("youtu.be"))&&!r.includes("youtube.com/embed")){let e=r.match(/(?:youtube\.com\/\S*(?:(?:\/e(?:mbed))?\/|watch\?(?:\S*?&?v=)
1665)|youtu.be\/)([a-zA-Z0-9_-]{6,11})/);e&&(s=e[1])}let a=this._getVimeoSrc(r);if(s?r=`https://youtube.com/embed/${s}?autoplay=1&controls=0`:a&&(r=a),!r||!i)return;let o=r.endsWith(".mp4")||r.endsWith(".webm")||r.includes("cloudinary.com"),n=` 1666 <div id="modal-${i.id}" class="modal visible"> 1667 <div class="modal-content"> 1668 <div class="lightbox-video"> 1669 <div class="video-player"> 1670 <div class="embed-container"> 1671 ${o?`<video controls autoplay src="${r}"></video>`:`<iframe frameborder="0" allowfullscreen="1" allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture" title="YouTube video player" width="100%" height="100%" src="${r}"></iframe>`} 1672 </div> 1673 </div> 1674 </div> 1675 </div> 1676 <button class="close lp-close" type="button" aria-label="close modal"><span class="lp-close-icon" aria-hidden="true"></span></button> 1677 </div> 1678 `;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:r,gtagConversionLabel:s,fbEventName:a}=e.dataset;if(r&&s){t.dataLayer&&t.dataLayer.length&&(t.dataLayer.some(e=>e.length&&"config"===e[0]&&e[1]===r)||i.sendGoogleTagManagerEvent("config",r));let e=`${r}/${s}`;i.sendGoogleTagManagerEvent("event","conversion",{send_to:e})}t.fbq&&a&&t.fbq("track",a,{})}}(U,window,document),B=new class extends d{constructor(e,t,i){super(e,t,i),this.validatedForms=[]}initialize(e={}){try{let{window:t,document:i}=this,{selector:r}=e,s=[];if(s=r?i.querySelectorAll(`${r} 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:r}=i;e(r.jsSrc,this.attachValidation.bind(this,s))}else this.attachValidation(s);this.validatedForms=this.validatedForms.concat(s)}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("")})}}}(U,window,document),D=new class extends d{constructor(e,t,i){super(e,t,i),this.forms=[],this.homeValuationService=new m(e,t,i)}initialize(e={}){try{let{document:t}=this,{selector:i}=e,r=[];(r=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(r)}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={},r=[],s=/^name(?:-\d+)?$/;return t.forEach((e,t)=>{if("string"==typeof e){let a=e.trim();s.test(t)&&a&&r.push(a);let o=i[t];i[t]=o?`${o} ${a}`:a}else i[t]=e}),r.length?i.name=r.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:r,config:s}=this,a=Object.keys(e).filter(e=>!f.includes(e)).reduce((t,i)=>(t[i]=e[i],t),{}),{pageId:o,companyId:n,websiteId:l,pageMeta:d}=s,c=r.localStorage.getItem("utm_vars")||"{}",u=r.localStorage.getItem("referrer")||"",h=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:r.location.href,content:{...a,...JSON.parse(c)}},page:{pageId:o,companyId:n,websiteId:l,pageMeta:{...d,formId:h}},companyId:n,referrer:u,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
1678=>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),r=this._buildSubmissionData(e,i,t);u(this.window,this.document);let s=await this._waitForLeadSubmit(e=>this._submitLeadRequest(r,e));if(this._sendGAEvent(r),s?.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},r=new Promise(e=>{t=setTimeout(()=>{i.expired=!0,e(null)},6e3)}),s=e(i).catch(e=>{if(h(i))return null;throw e});try{return await Promise.race([s,r])}finally{clearTimeout(t)}}_showRedirectPending(e){if(e.classList.add(y),e.querySelector(`.${y}__indicator`))return;let t=this.document.createElement("div");t.className=`${y}__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 r=this.window.eventBusProvider.getDistinctId();if(!r)return void console.warn("[EventBus] No anonymous ID available for alias");let s=this.window.LuxuryPresenceEventBus.generateUUIDv5FromCompanyEmail(i,t);this.window.eventBusProvider.alias({anonId:r,canonicalId:s}),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:r,name:s,type:a}=t;if(s===g)return!0;let o="";if(r){let i=e.querySelector(`label[for='${r}']`);i?o=i.textContent.trim():t.placeholder&&(o=t.placeholder.trim())}i[s]={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")}}(U,window,document),O=new class extends d{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 r=e&&!t;try{let e=await fetch(this._getMapKeyUrl(i,r));if(t=t||r,this._setFailureFlag(!1),!e.ok)throw Error(`Failed to fetch API key: ${e.status}`);let s=await e.text();if(!s)return"";return this.apiKey=s,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 r=i.length?`?${i.join("&")}`:"";return`${this._getBaseUrl()}/api/v1/map${r}`}_hadPreviousFailure(){try{return"1"===this.window.sessionStorage.getItem(v)}catch(e){return!1}}_setFailureFlag(e){try{e?this.window.sessionStorage.setItem(v,"1"):this.window.sessionStorage.removeItem(v)}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");
1678let 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}`:"",r=t.color?`color:${t.color.replace("#","0x")}`:"",s=t.lightness?`lightness:${t.lightness}`:"";return`${e}|${i}${r}${s}`},""),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,r,s,a){let{width:o,height:n}=this.resizeStaticMapDimensions(s,a),l={center:`${e},${t}`,zoom:i,scale:2,size:`${o}x${n}`,key:this.apiKey};r&&(l.style=this.convertThemeToStaticApiUrl(r));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,...r}){let{width:s,height:a}=this.resizeStaticMapDimensions(e,t),o={...r,size:`${s}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),""}}}(U,window,document),q=new class extends d{destroy(){}updateQueryString(e,t,i){i||(i=this.window.location.href);let r=RegExp(`([?&])${e}=.*?(&|#|$)`,"i"),s="";null!=t&&(Array.isArray(t)?t.length&&(s=this.serializeArray(e,t)):"object"==typeof t?(r=RegExp(`([?&])${e}\\[[^=]*\\]=.*?(&|#|$)`,"i"),s=this.serializeObj(t,"",e)):s=`${e}=${encodeURIComponent(t)}`);let a=i.split("#"),o=a[0];if(r.test(i)){let e=o;for(s=s?`$1${s}$2`:"$1";r.test(e);)o=e.replace(r,s),e=e.replace(r,"$1");o=o.replace(/(&|\?)$/,"")}else if(s){let e=-1!==o.indexOf("?")?"&":"?";o+=`${e}${s}`}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}(=([^&#]*)|&|#|$)`),r=Array.from(RegExp.prototype[Symbol.matchAll].call(i,t)).flat();if(!r.length){let i=RegExp(`[?&]${e}(\\[.*?\\])=(.*?)(?=&|#|$)`,"g");return r=Array.from(RegExp.prototype[Symbol.matchAll].call(i,t)).flat(),this._parseParamToObject(r,"advancedFilters"===e)}return r.length>3?r.reduce((e,t,i)=>((i+1)%3==0&&e.push(decodeURIComponent(t.replace(/\+/g," "))),e),[]):r[2]?decode
1678URIComponent(r[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={},r=this.makePageKey(t),s=this.getParameterByName(r);return s&&(i.page=parseInt(s)),Array.isArray(e)&&e.forEach(e=>{let t=this.makeParamKey(e,r),s=this.getParameterByName(t);if("int"===e.type)isFinite(s=parseInt(s))||(s=null);else if("bool"===e.type||"boolean"===e.type)s="true"===s||"false"!==s&&null;else if("json"===e.type)try{s=JSON.parse(s)}catch(e){}i[e.formKey||e.param]=s}),i}serializeParams(e,t,i){let r=this.window.location.href,s=this.makePageKey(t);return r=this.updateQueryString(s,i.page,r),Array.isArray(e)&&e.forEach(e=>{let t=this.makeParamKey(e,s),a=i[e.formKey||e.param];"json"===e.type&&null!=a&&(a=JSON.stringify(a)),r=this.updateQueryString(t,a,r)}),r}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,r){return t.min===e&&0!==e?`${r.lowPrefix}${this.formatSliderValue(e,i," ")}`:t.max===e?`${this.formatSliderValue(e,i," ")}${r.highSuffix}`:`${this.formatSliderValue(e,i," ")}`}formatSliderAreaRange(e,t,i,r){return t.min===e&&0!==e?`${r.lowPrefix}${this.formatSliderValue(e)} ${i}`:t.max===e?`${this.formatSliderValue(e)}${r.highSuffix} ${i}`:`${this.formatSliderValue(e)} ${i}`}getSearchFormValues(e){let{queryElement:t,priceSliderElement:i,areaSliderElement:r,neighborhoodSelect:s}=e,a={};if(t&&(a.search=t.value||null),i){let e=i.value.split(";"),t=parseInt(i.dataset.min),r=parseInt(i.dataset.max),s=parseInt(e[0]),o=parseInt(e[1]);a.priceMin=s!==t?s:null,a.priceMax=o!==r?o:null}if(r){let e=r.value.split(";"),t=parseInt(r.dataset.min),i=parseInt(r.dataset.max),s=parseInt(e[0]),o=parseInt(e[1]);a.areaMin=s!==t?s:null,a.areaMax=o!==i?o:null}return s&&(a.neighborhoodId=s.value||null),a}serializeObj(e,t="",i=""){let r=[];for(let s in e)if(e.hasOwnProperty(s)){let a,o=e[s];if(i){let e=t?`[${t}][${s}]`:`[${s}]`;a=`${i}${e}`}else a=t?`${t}[${s}]`:s;null!==o&&Array.isArray(o)?o.length&&r.push(this.serializeArray(a,o)):null!==o&&"object"==typeof o?r.push(this.serializeObj(o,a)):r.push(`${a}=${encodeURIComponent(o)}`)}return r.join("&")}serializeArray(e,t,i=""){let r=[];return t.forEach(t=>{let s=i?`${i}${e}`:e;r.push(`${s}=${encodeURIComponent(t)}`)}),r.join("&")}_parseParamToObject(e,t=!1){if(!e.length)return null;let i={};for(let r=0;r<e.length;r++)if((r+1)%3==0){let s=decodeURIComponent(e[r].replace(/\+/g," ")),a=e[r-1];Object.assign(i,this._setObjectPath(a,s,i,t))}return i}_setObjectPath(e,t,i,r=!1){let s=e.split(/[\[\]]/).filter(Boolean),a=["in","nin","btw","ciin","cinin"],o={},n=o,l=((e,t,i)=>{if(!t)return;let r=(Array.isArray(t)?t:t.match(/([^[.\]])+/g)).reduce((e,t)=>e&&e[t],e);return void 0===r?i:r})(i,s.join("."));return s.forEach((e,o)=>{o===s.length-1?l?n[e]=Array.isArray(l)?[...l,t]:[l,t]:n[e]=r&&a.includes(e)?[t]:t:(n[e]=i[e]?i[e]:{},n=n[e])}),o}}(U,window,document),V=new class extends d{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]"),r=e.dataset.append,s=i.querySelector(".lp-expand-btn");if(!s)if((s=t.createElement("button")).className="lp-expand-btn",s.setAttribute("aria-label","Open a lightbox"),s.innerHTML='<span class="lp-i lp-i--expand-alt" aria-hidden="true"></span>',r){let e=i.querySelector(r);e&&e.appendChild(s)}else{let i=t.createElement("div");i.className="lp-expand-btn-wrapper",i.style.position="relative",i.appendChild(s),e.parentNode.insertBefore(i,e.nextSibling)}s.addEventListener("click",()=>{this._createLightbox({slider:e,section:i})})}_createLightbox({slider:e,section:t,initialIndex:i}){let{window:r,document:s}=this,a=`lightbox-for-${t?.id}`,o=r.$&&r.$.fn.slick,n=o&&e.slick,l="function"==typeof r.Splide,d=e.classList.contains("is-initialized")&&e.classList.contains("splide");function c(){let t=s.createElement("div");t.id=a,t.className="lp-lightbox",t.setAttribute("tabindex","-1"),t.setAttribute("role","dialog"),t.setAttribute("aria-modal","true"),t.innerHTML=` 1679 <button class="lp-lightbox__close" aria-label="close modal"></button> 1680 <div class="lp-lightbox__content"> 1681 <div class="lp-lightbox__carousel splide" role="group" aria-label="Image Gallery"> 1682 <div class="splide__arrows"> 1683 <button class="splide__arrow splide__arrow--prev lp-lightbox-arrow lp-lightbox-arrow--prev"></button> 1684 <button class="splide__arrow splide__arrow--next lp-lightbox-arrow lp-lightbox-arrow--next"></button> 1685 </div> 1686 <div class="splide__track"> 1687 <ul class="splide__list"></ul> 1688 </div> 1689 </div> 1690 </div> 1691 `,"function"==typeof r.lpUI.requestScrollLock?r.lpUI.requestScrollLock(a):s.body.style.overflow="hidden",s.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
1691h(e=>{let t=e.cloneNode(!0);t.removeAttribute("style");let i=s.createElement("li");i.className="lp-lightbox__slide splide__slide",i.appendChild(t),n.appendChild(i)});let l=new r.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"),r=t.querySelector(".splide__arrow--next"),s=t.querySelector(".lp-lightbox__close");"ArrowLeft"===e.key&&i?(e.preventDefault(),i.click()):"ArrowRight"===e.key&&r?(e.preventDefault(),r.click()):"Escape"===e.key&&s&&(e.preventDefault(),s.click())};s.addEventListener("keydown",c),t.querySelector(".lp-lightbox__close").addEventListener("click",()=>{s.removeEventListener("keydown",c),t.classList.remove("show"),l&&l.destroy(),"function"==typeof r.lpUI.releaseScrollLock?r.lpUI.releaseScrollLock(a):s.body.style.overflow="",t.remove()})}if("function"==typeof r.lpUI.requestScrollLock?r.lpUI.requestScrollLock(a):s.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=s.createElement("div")).id=a,o.className="lp-lightbox",o.setAttribute("tabindex","-1"),o.setAttribute("role","dialog"),o.setAttribute("aria-modal","true"),o.innerHTML=` 1692 <button class="lp-lightbox__close" aria-label="close modal"></button> 1693 <div class="lp-lightbox__content"> 1694 <div class="lp-lightbox__carousel"></div> 1695 </div> 1696 `,s.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(){r.$(".lp-lightbox__carousel").append(r.$(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=s.createElement("div");i.className="lp-lightbox__slide",i.appendChild(t),l.appendChild(i)}),r.$(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"),r=o.querySelector(".lp-lightbox__close");"ArrowLeft"===e.key&&t?(e.preventDefault(),t.click()):"ArrowRight"===e.key&&i?(e.preventDefault(),i.click()):"Escape"===e.key&&r&&(e.preventDefault(),r.click())},s.addEventListener("keydown",d),o.querySelector(".lp-lightbox__close").addEventListener("click",()=>{s.removeEventListener("keydown",d),o.classList.remove("show");let t=l?.slick?r.$(l).slick("slickCurrentSlide"):0;l?.slick&&r.$(l).slick("unslick"),n&&r.$(e).slick("slickGoTo",t),"function"==typeof r.lpUI.releaseScrollLock?r.lpUI.releaseScrollLock(a):s.body.style.overflow="",o.remove()})}else l?c():(r.luxuryPresence.libs.loadCss(r.luxuryPresence.libs.jsLibsMap.splide.cssSrc),r.luxuryPresence.libs.loadJs(r.luxuryPresence.libs.jsLibsMap.splide.jsSrc,()=>{c(),r.luxuryPresence.libs.jsLibsMap.splide.isLoaded=!0}))}}(U,window,document),F=new class extends d{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:r,websiteId:s,pageId:a,shareId:o,pageMeta:n}=this.config;this.window.divolte.signal(e,Object.assign({companyId:i,templateId:r,websiteId:s,pageId:a,shareId:o,pageMeta:n},t))}sendLpPageView(){this.sendLpEvent("pageView",{})}}(U,window,document),j=new class extends d{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"}
1696)),(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",{})}}(U,window,document),H=new class extends d{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(w,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:r,origin:s}=e,{type:a,height:o,event:n,source:l,token:d}=r;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")}s===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(w);this.window.dispatchEvent(e),u(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:r,companyId:s,websiteId:a,pageId:o,pageMeta:n}=this.config,{location:l}=this.window,d=l.origin+l.pathname,c=new URL(`${r}/buttons/${i}`),u=this.window.localStorage.getItem("utm_vars"),h=this.window.localStorage.getItem("referrer");c.searchParams.append("companyId",s),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"];
1696return 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,r=4===i?t:t+"=".repeat(i);return JSON.parse(atob(r))}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")}}}(U,window,document),G=new class extends d{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 r="";if(i){let e=new Date;e.setTime(e.getTime()+864e5*i),r=`; expires=${e.toUTCString()}`}let s="; path=/; SameSite=Lax";this.window&&this.window.location&&"https:"===this.window.location.protocol&&(s+="; Secure"),this.document.cookie=`${e}=${encodeURIComponent(t||"")}${r}${s}`}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 r=t=>{(t.target===e||t.target.id===this.modalId)&&(e.style.display="none",this.restoreBodyScroll())};e.addEventListener("click",r),this.eventListeners.push({element:e,event:"click",handler:r})}}(U,window,document),K=new class extends d{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=` 1697 query { 1698 validSession { 1699 success 1700 } 1701 } 1702 `;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 r=t.data?.validSession?.success===!0;return this.lastValidationResult=r,this.lastValidationTime=Date.now(),r}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}}(U,window,document),z=new class extends d{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=b[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))}}(U,window,document),Q=new class extends d{destroy(){}transformVariables(e,t){let i;return _(i={...t},["testimonialId"]),I(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":_(e,["testimonialIds"]);break;case"agents":case"agentsCount":_(e,["officeId","teamId","developmentId","agentIds","tags"]),I(e,["officeId"],"officeIds"),I(e,["teamId"],"teamIds"),I(e,["developmentId"],"developmentIds");break;case"neighborhoods":case"neighborhoodsCount":_(e,["neighborhoodIds","neighborhoodId"]),I(e,["neighborhoodIds","neighborhoodId"],"neighborhoodId");break;case"developments":case"developmentsCount":_(e,["agentId","neighborhoodIds","neighborhoodId","developmentIds","tag"]),e.agentId&&Array.isArray(e.agentId)&&([e.agentId]=e.agentId),I(e,["neighborhoodIds","neighborhoodId"],"neighborhoodIds");break;case"properties":case"propertiesCount":_(e,["statusIds","statusId","propertyTypeIds","propertyTypeId","propertyId","networkId","propertyIds","agentIds","teamIds","officeIds","neighborhoodIds","
1702spaceTypeIds","addressState","addressCity","backfillProviders","backfillMLSListingIds","backfillMLSAgentIds","backfillMLSOfficeIds"]),["propertyIds","agentIds","teamIds","officeIds","neighborhoodIds","spaceTypeIds","backfillMLSListingIds","backfillMLSAgentIds","backfillMLSOfficeIds"].forEach(t=>I(e,[t],t)),I(e,["statusIds","statusId"],"propertyStatusId"),e.excludeStatusId&&(e.excludePropertyStatusId=e.excludeStatusId,delete e.excludeStatusId),I(e,["propertyTypeIds","propertyTypeId"],"propertyTypeId"),I(e,["networkId"],"networkId"),I(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":_(e,["categoryIds","categoryId","neighborhoodId"]),void 0!==e.order&&(e.sort=e.order,delete e.order),I(e,["categoryIds","categoryId"],"categoryId");break;case"postCategories":_(e,["categoryId","categoryIds"]),void 0!==e.order&&(e.sort=e.order,delete e.order),I(e,["categoryIds","categoryId"],"categoryId");break;case"pressReleases":case"pressReleasesCount":_(e,["pressReleaseId","categories","propertyId","developmentId","agentId","teamId"]),I(e,["pressReleaseId"],"pressReleaseIds");break;case"offices":case"officesCount":_(e,["officeId","officeIds","tags"]),I(e,["officeId"],"officeIds");break;case"teams":case"teamsCount":_(e,["teamId","teamIds"]),I(e,["teamId"],"teamIds");break;case"pois":_(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?C(t,E):"agents"===e||"agentsCount"===e?k(t,A):"neighborhood"===e?C(t,L):"neighborhoods"===e||"neighborhoodsCount"===e?k(t,x):"development"===e?C(t,$):"developments"===e||"developmentsCount"===e?k(t,T):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 r=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})),s=e=>{let r={};return(e||[]).forEach(e=>{r[`${e.feedId}:${e.listingId}`]=e}),t.map(e=>{let t=e&&r[`${e.vendorId}:${e.mlsId}`],s={};return i.forEach(e=>{let i=t?t[P[e]]:void 0;s[e]=i??null}),{...e,...s}})};if(!r.length)return Promise.resolve(s([]));let{websiteId:a}=this.config;return this.window.superagent?this.window.superagent.post(`${this.window.luxuryPresence.defaults.routerUrl}/graphql`).withCredentials().send({query:e(M),variables:{input:{websiteId:"string"==typeof a?a:void 0,properties:r}}}).then(e=>s(e.body&&e.body.data&&e.body.data.propertyDisclaimers),e=>(console.warn("[RouterApiController] propertyDisclaimers lookup failed:",e),s([]))):Promise.resolve(s([]))}}(U,window,document);function W(e,t){if(window.luxuryPresence[e])try{window.luxuryPresence[e].destroy()}catch(e){console.log(e)}window.luxuryPresence[e]=t}W("config",U),W("modals",N),W("buttons",R),W("validation",B),W("contactForms",D),W("mapApiLoader",O),W("pagination",q),W("expandSliders",V),W("divolte",F),W("eventBus",j),W("oauth",H),W("qualifyingQuestionsModal",G),W("session",K),W("consent",z),W("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(){}}),W("routerApi",Q),window.luxuryPresence.formatSliderPriceRange=q.formatSliderPriceRange.bind(q),window.luxuryPresence.formatSliderAreaRange=q.formatSliderAreaRange.bind(q),window.luxuryPresence.getSearchFormValues=q.getSearchFormValues.bind(q),window.luxuryPresence.handlebarsHelpersFactory=function(i){return e(t)(i,{isEqual:(e,t)=>e==t})}})(); 1703//# sourceMappingURL=lp-sdk.js.map 1704 1705 </script>
1705 1706 1707
1707<script> 1708 var lpGlobalInitialized = false; 1709 1710 function lpGlobalInit () { 1711 if (lpGlobalInitialized) { 1712 return; 1713 } 1714 lpGlobalInitialized = true; 1715 // Initialize wow animation plugin only according to turbolinks 1716 var wow; 1717 if (window.WOW) { 1718 wow = new WOW({ 1719 animateClass: 'animated', 1720 offset: wowOffset, 1721 live: false, 1722 callback: function(box) {} 1723 }); 1724 } 1725 // Initialize handlebar helpers only once 1726 function handlebarsInit() { 1727 if (!window.Handlebars) { 1728 return; 1729 } 1730 HandlebarsIntl.registerWith(Handlebars); 1731 Handlebars.registerHelper(window.luxuryPresence.handlebarsHelpersFactory(Handlebars)); 1732 } 1733 1734 handlebarsInit(); 1735 1736 var modalContentUrl = "/modals.html"; 1737 const modalsContainer = document.getElementById('modals'); 1738 if (modalsContainer) { 1739 fetch(modalContentUrl).then(function(res) { 1740 if (!res.ok) { 1741 throw new Error(`HTTP error! Status: ${res.status}`); 1742 } 1743 return res.text(); 1744 }).then(function(resultText) { 1745 modalsContainer.innerHTML = resultText; 1746 1747 // now we need to execute all script elements 1748 Array.from(modalsContainer.getElementsByTagName('script')).forEach(function (s) { 1749 const script = document.createElement("script"); 1750 script.text = s.innerHTML; 1751 Array.from(s.attributes).forEach(function (a) { 1752 script.setAttribute(a.name, a.value); 1753 }) 1754 s.parentNode.replaceChild(script, s); 1755 }); 1756 1757 try { 1758 window.luxuryPresence.modals.initialize(window.luxuryPresence._modalIncludes); 1759 window.luxuryPresence.contactForms.initialize({ selector: '#modals' }); 1760 window.luxuryPresence.validation.initialize({ selector: '#modals' }); 1761 window.luxuryPresence.oauth.initialize({ 1762 googleSignOnEnabled: true, 1763 iframe: false }); 1764 } catch (e) { 1765 console.log(e); 1766 } 1767 document.querySelectorAll('.modals > .modal .close').forEach(closeModalBtn => { 1768 closeModalBtn.addEventListener('click', function() { 1769 window.lpUI.hideClosestModal(closeModalBtn); 1770 }); 1771 }); 1772 }).catch((e) => console.log(e)); 1773 } 1774 /* Initialize Luxury Presence SDK */ 1775 try { 1776 window.luxuryPresence.config.setCompany("71d4b9b5-d2d9-47f2-ab55-cbbab0ea5089", {}); 1777 window.luxuryPresence.config.setWebsite("0a323938-1109-46c4-b822-46ace916f333", { 1778 myhomeDashboardEnabled: false, 1779 mlsEnabled: true, 1780 hstValuationRedirectEnabled: true, 1781 hvStepTwoCaptureEnabled: false 1782 }); 1783 const url = new URL(window.location.href); 1784 const shareId = url.searchParams.get('shareId'); 1785 window.luxuryPresence.config.setPage("2de89b36-fa79-47c8-9117-7e9c999a7750", { 1786 sourceResource: "", 1787 pageElementId: "", 1788 pageQueryVariables: {}, 1789 shareId: "", 1790 }); 1791 window.luxuryPresence.config.setWebsiteApiGatewayUrl("https://wgw.luxurypresence.com", {}); 1792 window.luxuryPresence.config.setBuyerSellerServiceUrl("https://bss.luxurypresence.com", {}); 1793 window.luxuryPresence.config.setDivolteServiceUrl("https://t.luxurypresence.com", {}); 1794 window.luxuryPresence.config.setEventBusUrl("https://cdn.luxurypresence.com/scripts/event-bus-js", {}); 1795 window.luxuryPresence.config.setEventBus({ 1796 enabled: true, 1797 apiKey: "phc_PMYT31xlmXBaTCwpIRx1v6RrpLVZIuP47N3mOT6KLnr", 1798 url: "https://p.luxurypresence.com", 1799 }); 1800 window.luxuryPresence.config.setTemplateId("0c2b9641-6f2a-40f2-a2e0-dabc022eb278", {}); 1801 window.luxuryPresence.config.setLeadIngesterUrl("https://leads.luxurypresence.com", {}); 1802 window.luxuryPresence.buttons.initialize({}); 1803 window.luxuryPresence.consent.initialize({ provider: 'lp-consent' }); 1804 window.luxuryPresence.contactForms.initialize({}); 1805 window.luxuryPresence.validation.initialize({}); 1806 window.luxuryPresence.expandSliders.initialize({}); 1807 window.luxuryPresence.oauth.initialize({ googleSignOnEnabled: true, iframe: false }); 1808 window.luxuryPresence.qualifyingQuestionsModal.initialize({ qualifyingQuestionsModalEnabled: true }); 1809 } catch (e) { 1810 console.log(e); 1811 } 1812 1813 /* Inject Section Specific Javascript */ 1814 try { 1815(function init(sectionDomId) { 1816 const disclaimerLabel = document.querySelector('#' + sectionDomId + ' .lp-tcr-content'); 1817 if (disclaimerLabel) { 1818 const input = disclaimerLabel.querySelector('input'); 1819 if (input) { 1820 input.setAttribute('id', `${sectionDomId}-termsAccepted`); 1821 input.value = 'true'; 1822 const label = document.createElement('label'); 1823 label.setAttribute('for', `${sectionDomId}-termsAccepted`); 1824 label.classList.add('lp-visually-hidden'); 1825 label.textContent = 'Opt in/Disclaimer Consent:'; 1826 disclaimerLabel.prepend(label); 1827 } 1828 } 1829 function setHttp(link) { 1830 if (link.search(/^http[s]?\:\/\/|\//) == -1) { 1831 link = 'https://' + link; 1832 } 1833 return link; 1834 } 1835 const socialLinks = document.querySelectorAll('#' + sectionDomId + ' .socials__link, #' + sectionDomId + ' .lp-socials__link'); 1836 socialLinks.forEach(linkElement => { 1837 const href = linkElement.getAttribute('href'); 1838 if (href) { 1839 linkElement.setAttribute('href', setHttp(href)); 1840 } 1841 }); 1842 const redirectLink = $('#' + sectionDomId + ' .redirect-link'); 1843 if (redirectLink.length) { 1844 const rawHref = setHttp(redirectLink.attr('href')); 1845 let formEvent; 1846 if (rawHref) { 1847 formEvent = redirectLink.data('redirect') ? 'formsubmitted' : 'reset'; 1848 $('#' + sectionDomId + ' .contact-form').find('form').on(formEvent, function () { 1849 redirectLink.attr('href', rawHref); 1850 redirectLink[0].click(); 1851 }); 1852 } 1853 } 1854})('modal-global-contact-us'); 1855} catch(e) { 1856console.log(e); 1857} 1858 1859 try { 1860(function init(sectionDomId) { 1861 const $section = $('#' + sectionDomId); 1862 const $hamburger = $section.find('.hamburger-component'); 1863 function onSideMenuShow() { 1864 if (!$hamburger.hasClass('active')) { 1865 $hamburger.addClass('active'); 1866 } 1867 } 1868 function onSideMenuHide() { 1869 $hamburger.removeClass('active'); 1870 } 1871 const $window = $(window); 1872 $window.on('lpui-sidemenu-show.lpui-auto-clean', onSideMenuShow); 1873 $window.on('lpui-sidemenu-hide.lpui-auto-clean', onSideMenuHide); 1874 const $subContainers = $section.find('.navigation__item.sub-nav-container'); 1875 $subContainers.hover(function () { 1876 $(this).find('.sub-nav').addClass('visible'); 1877 }, function () { 1878 $(this).find('.sub-nav').removeClass('visible'); 1879 }); 1880 $window.on('click.lpui-auto-clean', function () { 1881 $('.sub-nav-container.visible-dropdown').removeClass('visible-dropdown'); 1882 }); 1883 let fixedWidth = 0; 1884 const rightPad = 20; 1885 function fixSubsPosition() { 1886 const wWidth = window.innerWidth; 1887 if (innerWidth === fixedWidth) { 1888 return; 1889 } 1890 fixedWidth = wWidth; 1891 $subContainers.each(function () { 1892 const $sub = $(this).find('.sub-nav'); 1893 $sub[0].style.right = '';
1894 const sRect = $sub[0].getBoundingClientRect(); 1895 const sRight = sRect.left + sRect.width; 1896 if (sRight > wWidth - rightPad) { 1897 const parentRect = $sub[0].offsetParent.getBoundingClientRect(); 1898 const parentRight = parentRect.left + parentRect.width; 1899 $sub[0].style.right = `${parentRight - wWidth + rightPad}px`; 1900 } 1901 }); 1902 } 1903 var debouncer; 1904 $window.on('resize.lpui-auto-clean', function () { 1905 clearTimeout(debouncer); 1906 debouncer = setTimeout(fixSubsPosition, 500); 1907 }); 1908 fixSubsPosition(); 1909 if ($('.property-intro').length || $('.property-intro-2').length) { 1910 $('nav').addClass('dark-opening'); 1911 $("#global-navbar").css({ 1912 "background-color": "rgb(26, 26, 26)", 1913 "color": "rgb(255, 255, 255)" 1914 }); 1915 } 1916 function initAutoTruncateMenu() { 1917 const $navbar = $section.find('.navbar'); 1918 const $navList = $section.find('.navigation > ul'); 1919 if (!$navbar.length || !$navList.length) { 1920 return; 1921 } 1922 const $logo = $section.find('.logo'); 1923 const $buttonsWrapper = $section.find('.buttons-wrapper'); 1924 const $allItems = $navList.children('.navigation__item'); 1925 const $phoneItem = $allItems.filter(function () { 1926 return $(this).find('a[href^="tel:"]').length > 0; 1927 }); 1928 const $menuItems = $allItems.not($phoneItem); 1929 if (!$menuItems.length) { 1930 return; 1931 } 1932 const buffer = 8; 1933 function measureFixedWidth() { 1934 let width = buffer; 1935 if ($logo.length) { 1936 width += $logo.outerWidth(true) || 0; 1937 } 1938 if ($buttonsWrapper.length) { 1939 width += $buttonsWrapper.outerWidth(true) || 0; 1940 } 1941 if ($phoneItem.length) { 1942 width += $phoneItem.outerWidth(true) || 0; 1943 } 1944 return width; 1945 } 1946 function truncateMenu() { 1947 if (!$navList.is(':visible')) { 1948 return; 1949 } 1950 $menuItems.css('display', ''); 1951 const availableWidth = $navbar[0].getBoundingClientRect().width - measureFixedWidth(); 1952 let widthSoFar = 0; 1953 let overflowed = false; 1954 $menuItems.each(function () { 1955 const $item = $(this); 1956 if (overflowed) { 1957 $item.css('display', 'none'); 1958 return; 1959 } 1960 widthSoFar += $item.outerWidth(true); 1961 if (widthSoFar > availableWidth) { 1962 $item.css('display', 'none'); 1963 overflowed = true; 1964 } 1965 }); 1966 } 1967 let truncateFrame; 1968 function scheduleTruncate() { 1969 if (truncateFrame) { 1970 return; 1971 } 1972 truncateFrame = window.requestAnimationFrame(function () { 1973 truncateFrame = null; 1974 truncateMenu(); 1975 }); 1976 } 1977 scheduleTruncate(); 1978 if (window.ResizeObserver) { 1979 const resizeObserver = new ResizeObserver(scheduleTruncate); 1980 resizeObserver.observe($navbar[0]); 1981 } else { 1982 $(window).on('resize.lpui-auto-truncate', scheduleTruncate); 1983 } 1984 $section.find('img').on('load.lpui-auto-truncate', scheduleTruncate); 1985 $(window).on('load.lpui-auto-truncate', scheduleTruncate); 1986 if (document.fonts && document.fonts.ready) { 1987 document.fonts.ready.then(scheduleTruncate); 1988 } 1989 } 1990 initAutoTruncateMenu(); 1991})('global-navbar'); 1992} catch(e) { 1993console.log(e); 1994} 1995 try { 1996(function init(sectionDomId, options) { 1997 var elementSelector = options.elementSelector || 'nav'; 1998 var element = document.querySelector(elementSelector); 1999 var sections = document.querySelectorAll('body > section'); 2000 var subNavContainers = element.querySelectorAll('.sub-nav'); 2001 var initialBackgroundColor = options.initialBackgroundColor || element.style.backgroundColor; 2002 var backgroundColorScroll = options.backgroundColorScroll || '#191919'; 2003 var fontColor = options.fontColor || '#fff'; 2004 var fontColorScroll = options.fontColorScroll || '#000'; 2005 var didScroll = false; 2006 var lastScrollTop = 0; 2007 var delta = 5; 2008 2009 // eslint-disable-next-line sonarjs/no-collapsible-if 2010 if (wow) { 2011 // Wowjs might not trigger for position fixed elements 2012 if (window.scrollY > 0) { 2013 element.querySelectorAll('.wow').forEach(el => wow.show(el)); 2014 } 2015 } 2016 function adjustNavPinState() { 2017 // Remove 'visible' class from all subNavContainers 2018 for (let i = 0; i < subNavContainers.length; i++) { 2019 subNavContainers[i].classList.remove('visible'); 2020 } 2021 if (window.scrollY > 0) { 2022 element.style.backgroundColor = backgroundColorScroll; 2023 element.style.color = fontColorScroll; 2024 element.classList.add('scroll'); 2025 } else {
2026 element.style.backgroundColor = initialBackgroundColor; 2027 element.style.color = fontColor; 2028 element.classList.remove('scroll'); 2029 } 2030 } 2031 adjustNavPinState(); 2032 function onScroll() { 2033 didScroll = true; 2034 } 2035 window.addEventListener('scroll', onScroll); 2036 2037 // eslint-disable-next-line 2038 var debounceInterval = setInterval(() => { 2039 if (didScroll) { 2040 // eslint-disable-next-line 2041 hasScrolled(); 2042 didScroll = false; 2043 } 2044 }, 250); 2045 function hasScrolled() { 2046 adjustNavPinState(); 2047 // eslint-disable-next-line 2048 var navbarHeight = element.offsetHeight; 2049 // eslint-disable-next-line 2050 var st = window.scrollY; 2051 2052 // Make sure they scroll more than delta 2053 if (Math.abs(lastScrollTop - st) <= delta) { 2054 return; 2055 } 2056 if (st > lastScrollTop && st > navbarHeight) { 2057 // Scroll Down 2058 element.style.transform = `translateY(-${navbarHeight}px) scaleY(0)`; 2059 document.documentElement.style.setProperty('--global-header-height', '0px'); 2060 2061 // Some sections "follow" the navbar with class sticky (i.e. Producer search) 2062 sections.forEach(section => { 2063 if (section.classList.contains('sticky')) { 2064 section.style.top = '0px'; 2065 } 2066 }); 2067 } else { 2068 // Scroll Up 2069 // eslint-disable-next-line 2070 if (st + window.innerHeight < document.documentElement.scrollHeight) { 2071 element.style.transform = `translateY(0) scaleY(1)`; 2072 document.documentElement.style.setProperty('--global-header-height', `${navbarHeight}px`); 2073 sections.forEach(section => { 2074 if (section.classList.contains('sticky')) { 2075 section.style.top = `${navbarHeight}px`; 2076 } 2077 }); 2078 } 2079 } 2080 lastScrollTop = st; 2081 } 2082})('NAVBAR', JSON.parse("{\"fontColor\":\"#fff\",\"elementSelector\":\"nav\",\"fontColorScroll\":\"#fff\",\"initialFontColor\":\"#fff\",\"backgroundColorScroll\":\"#1a1a1a\",\"initialBackgroundColor\":\"rgba(0,0,0,0)\"}")); 2083} catch(e) { 2084console.log(e); 2085} 2086 try { 2087(function init(sectionDomId) { 2088 var $sidemenu = $('#' + sectionDomId); 2089 var $link = $sidemenu.find('.sub-nav-link'); 2090 var shown = false; 2091 function onShow() { 2092 if (shown) { 2093 return; 2094 } 2095 shown = true; 2096 window.lpUI.requestScrollLock(sectionDomId); 2097 } 2098 function onHide() { 2099 if (!shown) { 2100 return; 2101 } 2102 shown = false; 2103 window.lpUI.releaseScrollLock(sectionDomId); 2104 $('body').removeClass('locked'); 2105 $('.hamburger.active').removeClass('active'); 2106 } 2107 const handleLinkClick = href => { 2108 if (href && href.match(/^#[^#].*$/)) { 2109 window.lpUI.sideMenuHide(); 2110 } 2111 }; 2112 $sidemenu.find('a').click(function () { 2113 const href = $(this).attr('href'); 2114 handleLinkClick(href); 2115 }); 2116 $sidemenu.on('lpui-show', onShow); 2117 $sidemenu.on('lpui-hide', onHide); 2118 $link.click(function () { 2119 lpUI.sideMenuHide(); 2120 }); 2121})('global-sidemenu'); 2122} catch(e) { 2123console.log(e); 2124} 2125 2126 try { 2127(function init(footerId) { 2128 var textContent = $(".text_content_wrap p").text().trim().length; 2129 const socialLinks = $(`#${footerId} .lp-socials__link`); 2130 if (textContent < 1) { 2131 $(".text_content_wrap").remove(); 2132 $(".second_text_footer").css({ 2133 'margin-bottom': 0 2134 }); 2135 } 2136 if (socialLinks.length > 0) { 2137 socialLinks.attr('data-wow-offset', '10'); 2138 } 2139 if ($(window).width() > 1280) { 2140 let footer = document.querySelector("#" + footerId); 2141 let copyrightElem = footer.querySelector(".copy_zone"); 2142 if (copyrightElem) { 2143 copyrightElem.style.whiteSpace = "nowrap"; 2144 let nowrapElemWidth = copyrightElem.clientWidth; 2145 copyrightElem.style.whiteSpace = ""; 2146 let normalElemWidth = copyrightElem.clientWidth; 2147 if (nowrapElemWidth > normalElemWidth) { 2148 footer.querySelector(".form-col--socials").classList.add("form-col--xl-auto"); 2149 } 2150 } 2151 } 2152 const form = $("#" + footerId).find("form"); 2153 const redirectLink = $('#' + footerId + ' .redirect-link'); 2154 form.on("reset", function () { 2155 redirectPage(redirectLink); 2156 }); 2157 function redirectPage(link) { 2158 if (link.length) { 2159 const rawHref = link.attr('href'); 2160 link.attr('href', setHttp(rawHref)); 2161 link[0].click(); 2162 } 2163 } 2164 function setHttp(link) { 2165 if (link.search(/^http[s]?\:\/\/|\//) == -1) { 2166 link = 'http://' + link; 2167 } 2168 return link; 2169 } 2170})('global-footer'); 2171} catch(e) { 2172console.log(e); 2173} 2174 2175 try { 2176(function init(sectionDomId) { 2177 var _section = $('#' + sectionDomId); 2178 var _footer = document.getElementById('global-footer'); 2179 const redirectLink = _section.find('.js-redirect-link'); 2180 function setHttp(link) { 2181 if (link.search(/^(http[s]?\:\/\/|\/)/) == -1) { 2182 link = 'https://' + link; 2183 } 2184 return link; 2185 } 2186 function redirectPage(link) { 2187 if (link.length) { 2188 window.location.href = setHttp(link.attr('href')); 2189 } 2190 } 2191 const emailInput = _section.find('.js-email-input'); 2192 const emailRegex = /[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~\-]+@[a-zA-Z0-9-]+(?:\.[a-zA-Z0-9-]+)+/; 2193 emailInput.on('input', function () { 2194 if (emailRegex.test(this.value)) { 2195 this.setCustomValidity(''); 2196 } else { 2197 this.setCustomValidity('Please enter a valid email address.'); 2198 } 2199 this.reportValidity(); 2200 }); 2201 _section.find('input[name="name"]').on("keyup", function () { 2202 if (this.value.replaceAll(/\d/g, "").trim().split(" ").length < 2 || this.value.replaceAll(/\d/g, "").trim() === "") { 2203 this.setCustomValidity("Please input your first name and last name."); 2204 } else { 2205 this.setCustomValidity(""); 2206 } 2207 }); 2208 _section.find('form').on("reset", function () { 2209 $(this).addClass("show-success"); 2210 redirectPage(redirectLink); 2211 }); 2212 $(window).scroll(function () { 2213 if ($(this).scrollTop() >= 150) _section.find('.btn-holder').addClass('visible');else _section.find('.btn-holder').removeClass('visible'); 2214 }); 2215 _section.find('.close-btn, .connect-btn').click(function () { 2216 _section.find('.pop-up').toggle(); 2217 _section.find('.btn-holder').toggle(); 2218 }); 2219 if (!_footer) return; 2220 const observer = new IntersectionObserver(entries => {
2221 entries.forEach(entry => { 2222 if (entry.isIntersecting) _section.hide();else _section.show(); 2223 }); 2224 }, { 2225 threshold: 0.1 2226 }); 2227 observer.observe(_footer); 2228 function selectToDropdown(selectItem) { 2229 let customDropdown = ` 2230 <div class="custom-select" role="presentation"> 2231 <button class="custom-select-toggle is-placeholder" type="button" aria-haspopup="true" aria-expanded="false"></button> 2232 <div class="custom-select-menu" style="display: none;max-height: none;"> 2233 <div class="custom-select-content"> 2234 </div> 2235 </div> 2236 </div>`; 2237 $(customDropdown).insertAfter(selectItem); 2238 let $dropdown = $($(selectItem).next()); 2239 let $dropdownToggle = $dropdown.find(".custom-select-toggle"); 2240 let $dropdownMenu = $dropdown.find(".custom-select-menu"); 2241 let $dropdownContent = $dropdown.find(".custom-select-content"); 2242 $dropdownToggle.addClass($(selectItem).attr("class")).removeClass("dropdown-select"); 2243 $dropdownToggle.attr("id", $(selectItem).attr("id") + "custom"); 2244 $dropdownMenu.attr("aria-labelledby", $dropdownToggle.attr("id")); 2245 appendOptionButtons(selectItem, $dropdownContent); 2246 $(selectItem).removeClass().addClass("sr-only"); 2247 var toggleText = $(selectItem).find(":selected").first().text() || $(selectItem).children().first().text(); 2248 $dropdownToggle.html(toggleText); 2249 $dropdown.on("click", ".custom-select-item", function (e) { 2250 if ($(this).hasClass("is-disabled")) return; 2251 let elementNumber = $(this).index(); 2252 let $originalSelect = $(this).closest(".custom-select").siblings("select"); 2253 let $linkedOption = $originalSelect.find("option").eq(elementNumber); 2254 if (!$linkedOption.prop("selected")) { 2255 $linkedOption.prop("selected", true); 2256 $originalSelect.change(); 2257 $(this).addClass("is-selected").siblings(".custom-select-item").removeClass("is-selected"); 2258 $dropdownToggle.html($(this).html()); 2259 closeSelectMenu($(this).closest(".custom-select-menu")); 2260 } 2261 $dropdownToggle.removeClass("is-placeholder"); 2262 }); 2263 function convertOptionToButton(option) { 2264 var optionText = $(option).text(); 2265 var optionValue = $(option).attr("value") || $(option).text(); 2266 var optionIsDisabled = $(option).prop("disabled"); 2267 var outputButton = `<button value="${optionValue}" class="custom-select-item" type="button" ${optionIsDisabled ? "disabled" : ""}>${optionText}</button>`; 2268 return outputButton; 2269 } 2270 function appendOptionButtons(selectItem, appendTarget) { 2271 $(selectItem).find("option").each(function () { 2272 let currentButton = convertOptionToButton(this); 2273 $(appendTarget).append(currentButton); 2274 }); 2275 } 2276 function showSelectMenu(selectMenu) { 2277 var customSelect = $(selectMenu).closest(".custom-select")[0]; 2278 $(customSelect).addClass("open"); 2279 $(selectMenu).slideDown(); 2280 } 2281 function closeSelectMenu(selectMenu) { 2282 var customSelect = $(selectMenu).closest(".custom-select")[0]; 2283 $(customSelect).removeClass("open"); 2284 $(selectMenu).slideUp(); 2285 } 2286 $dropdown.on("click", ".custom-select-toggle", function (e) { 2287 var $customSelect = $(this).closest(".custom-select"); 2288 var selectMenu = $customSelect.find(".custom-select-menu")[0]; 2289 if ($customSelect.hasClass("open")) { 2290 closeSelectMenu(selectMenu); 2291 } else { 2292 showSelectMenu(selectMenu); 2293 } 2294 }); 2295 $(document).on("click", function (e) { 2296 if ($(e.target).closest(".custom-select").length < 1 && $(".custom-select").hasClass("open")) { 2297 $(".custom-select.open").each(function () { 2298 var selectMenu = $(this).find(".custom-select-menu")[0]; 2299 closeSelectMenu(selectMenu); 2300 }); 2301 } 2302 }); 2303 } 2304 $(".pop-up select[name='interest']").each(function () { 2305 selectToDropdown(this); 2306 }); 2307})('global-mobile-contact'); 2308} catch(e) { 2309console.log(e); 2310} 2311 2312 try { 2313(function init(sectionDomId, options) { 2314 let section = null; 2315 switch (sectionDomId) { 2316 case 'NAVBAR': 2317 section = document.querySelector('body > nav, #global-navbar'); 2318 break; 2319 case 'FOOTER': 2320 section = document.querySelector('body > footer, #global-footer'); 2321 break; 2322 case 'SIDEMENU': 2323 section = document.querySelector('body > div.sidemenu, #global-sidemenu'); 2324 break; 2325 case 'CONTACT':
2326 section = document.querySelector('#modal-global-contact-us'); 2327 break; 2328 case 'MOBILE_CONTACT': 2329 section = document.querySelector('body > div.mobile-contact-wrapper, #global-mobile-contact'); 2330 break; 2331 case 'SUBSCRIBE': 2332 // Subscribe Not Implemented 2333 section = null; 2334 break; 2335 case 'ACCOUNT': 2336 // Account Not Implemented 2337 section = null; 2338 break; 2339 default: 2340 section = document.querySelector('#' + sectionDomId); 2341 } 2342 if (!section) { 2343 return; 2344 } 2345 2346 // Where content / items are rendered 2347 const dataContainer = section.querySelector('.data-container'); 2348 if (!dataContainer) { 2349 // no place to render items = no need to query server or do anything else 2350 return; 2351 } 2352 let variables = options.variables || {}; 2353 2354 // Some variables in options may not have been injected - remove 2355 Object.keys(variables).forEach(function (variableName) { 2356 if (typeof variables[variableName] === 'string' && variables[variableName].match(/^{{.*}}$/)) { 2357 delete variables[variableName]; 2358 } 2359 }); 2360 2361 // Merge page query variables 2362 if (options.usePageResource) { 2363 variables = { 2364 ...variables, 2365 ...window.luxuryPresence.config.pageMeta.pageQueryVariables[options.resource] 2366 }; 2367 } 2368 2369 // ROUTER-CLEANUP: keep router branch, drop legacy when API retired. Callers 2370 // resolve the flag â fetchData reads the section stamp, aux fetches read 2371 // their own resource's stamp (auxUsesRouter). 2372 function apiUrl(useRouter) { 2373 return options.url || (useRouter ? window.luxuryPresence.defaults.routerUrl : window.luxuryPresence.defaults.apiGatewayUrl); 2374 } 2375 2376 // ROUTER-CLEANUP: aux resources roll out on their own flag, not the section's 2377 // (options.routerApiAux is stamped per aux resource server-side). 2378 function auxUsesRouter(resource) { 2379 return !!(options.routerApiAux && options.routerApiAux[resource]); 2380 } 2381 2382 // Pagination Executes on a Numbered Pagination Container 2383 // Or via a load more button 2384 let mode = 'BUTTONLESS_PAGINATION'; 2385 const container = section.querySelector('.pagination-container');
2386 const loadMoreButton = section.querySelector(options?.loadMoreSelector); 2387 if (container) { 2388 mode = 'NUMBERED_PAGINATION'; 2389 } 2390 if (loadMoreButton) { 2391 mode = 'LOAD_MORE_BUTTON'; 2392 } 2393 let searchContainer = section.querySelector('.search-container'); 2394 const hidePaginationOnFirstPage = options.hidePaginationOnFirstPage || false; 2395 const eventPrefix = '__pagination-'; 2396 const searchFormParams = options.searchFormParams || (options.resource === 'properties' ? [{ 2397 param: 'neighborhoodId', 2398 urlKey: 'neighborhood' 2399 }, { 2400 param: 'search', 2401 urlKey: 'search' 2402 }, { 2403 param: 'salesPriceGTE', 2404 urlKey: 'pricemin', 2405 formKey: 'priceMin', 2406 type: 'int' 2407 }, { 2408 param: 'salesPriceLTE', 2409 urlKey: 'pricemax', 2410 formKey: 'priceMax', 2411 type: 'int' 2412 }, { 2413 param: 'livingSpaceSizeGTE', 2414 urlKey: 'areamin', 2415 formKey: 'areaMin', 2416 type: 'int' 2417 }, { 2418 param: 'livingSpaceSizeLTE', 2419 urlKey: 'areamax', 2420 formKey: 'areaMax', 2421 type: 'int' 2422 }] : []); 2423 2424 // Total entries - initialized in first render 2425 let totalNumber = 0; 2426 const DefaultSearchParams = { 2427 page: 1 2428 }; 2429 searchFormParams.forEach(function (formParam) { 2430 DefaultSearchParams[formParam.formKey || formParam.param] = null; 2431 }); 2432 let searchParams = { 2433 ...DefaultSearchParams 2434 }; 2435 const offset = options.variables?.offset || 0; 2436 let scrollTarget = options.scrollTargetSelector ? section.querySelector(options.scrollTargetSelector) || section : section; 2437 let scrollOffset = (parseInt(options.scrollOffset, 10) || 0) ?? 100; 2438 2439 // entries of per page 2440 // when query variables for a given section would't be filled options.pageSize can store 2441 // template string, ex: "{{variables.limit}}", below code handles that case and set 9 as a default value 2442 let pageSize = parseInt(options.pageSize, 10) || 9; 2443 2444 // Adding mobile pageRange support 2445 var NARROW_BREAKPOINT = 600; 2446 var mobileBreakpoint = options.mobileBreakpoint > 0 ? options.mobileBreakpoint : NARROW_BREAKPOINT; 2447 var paginationMql = window.matchMedia(`(max-width: ${mobileBreakpoint}px)`); 2448 2449 // Page range (pages on both sides of the current page) 2450 var mobilePageRange = options.mobilePageRange > 0 ? options.mobilePageRange : 0; 2451 var desktopPageRange = options.pageRange >= 0 ? options.pageRange : 2; 2452 var pageRange = paginationMql.matches ? mobilePageRange : desktopPageRange; 2453 2454 // Whether to display the 'Previous' button 2455 var showPrevious = true; 2456 2457 // Whether to display the 'Next' button 2458 var showNext = true; 2459 2460 // Whether to display the page buttons 2461 var showPageNumbers = true; 2462 2463 // 'Previous' text 2464 var prevText = options.prevText || '«'; 2465 2466 // 'Next' text 2467 var nextText = options.nextText || '»'; 2468 2469 // Ellipsis text 2470 var ellipsisText = '…'; 2471 var classPrefix = 'paginationjs'; 2472 2473 // Default active class 2474 var activeClassName = 'active'; 2475 2476 // Default disable class 2477 var disableClassName = 'disabled'; 2478 2479 // Pagination element's position in the container 2480 var position = 'bottom'; 2481 2482 // Whether to trigger pagination at initialization 2483 var triggerPagingOnInit = !options.skipInitialLoad; 2484 var showFirstOnEllipsisShow = true; 2485 var showLastOnEllipsisShow = true; 2486 2487 // Instantiated in init() 2488 var el = null; 2489 2490 // Controls scrollTop logic 2491 var firstRender = true; 2492 var renderBySearch = false; 2493 var disabled = false; 2494 2495 // Pagination script class selector 2496 var paginationScriptSelector = options.paginationPartialName ? `.${options.paginationPartialName}` : '.pagination-script'; 2497 2498 // Property Specific Image Override if No Image 2499 var propertyPlaceholderImage = window.luxuryPresence.defaults.propertyPlaceholderImage; 2500 2501 // Construct template 2502 var templateHTML = section.querySelector(`script${paginationScriptSelector}`)?.innerHTML || ''; 2503 var template = Handlebars.compile(templateHTML); 2504 2505 // Initialize 2506 init(); 2507 function init() { 2508 Object.assign(searchParams, window.luxuryPresence.pagination.deserializeParams(searchFormParams, sectionDomId)); 2509 2510 // Append/prepend pagination element to the pagination container 2511 if (mode === 'NUMBERED_PAGINATION') { 2512 el = document.createElement('div'); 2513 el.className = 'paginationjs';
2514 container[position === 'bottom' ? 'append' : 'prepend'](el); 2515 } 2516 if (searchContainer) { 2517 initSearchContainer({ 2518 fetchNeighborhoods: searchContainer.dataset.fetchNeighborhoods === 'true', 2519 fetchPostCategories: searchContainer.dataset.fetchPostCategories === 'true', 2520 fetchOffices: searchContainer.dataset.fetchOffices === 'true', 2521 fetchRentalRates: searchContainer.dataset.fetchRentalRates === 'true' 2522 }, function () { 2523 syncSearchFormState(searchParams); 2524 }); 2525 } 2526 2527 // Bind events 2528 observer(); 2529 } 2530 function syncSearchFormState(params) { 2531 searchContainer.dispatchEvent(new CustomEvent('sync', { 2532 detail: params 2533 })); 2534 } 2535 function initSearchContainer(options, done) { 2536 var promises = []; 2537 if (options.fetchNeighborhoods) { 2538 promises.push(fetchAllNeighborhoods(function (neighborhoods) { 2539 searchContainer.dispatchEvent(new CustomEvent('neighborhoods-data', { 2540 detail: { 2541 data: neighborhoods.map(function (item) { 2542 return { 2543 value: item.id, 2544 label: item.name 2545 }; 2546 }) 2547 } 2548 })); 2549 })); 2550 } 2551 if (options.fetchPostCategories) { 2552 promises.push(fetchPostCategories(function (categories) { 2553 searchContainer.dispatchEvent(new CustomEvent('post-categories-data', { 2554 detail: { 2555 data: categories 2556 } 2557 })); 2558 })); 2559 } 2560 if (options.fetchOffices) { 2561 promises.push(fetchOffices(function (offices) { 2562 searchContainer.dispatchEvent(new CustomEvent('offices-data', { 2563 detail: { 2564 data: offices 2565 } 2566 })); 2567 })); 2568 } 2569 if (options.fetchRentalRates) { 2570 promises.push(fetchAllRentalRates(function (rentalRates) { 2571 searchContainer.dispatchEvent(new CustomEvent('rental-rates-data', { 2572 detail: { 2573 data: rentalRates 2574 } 2575 })); 2576 })); 2577 } 2578 if (promises.length > 0) { 2579 Promise.all(promises).then(function () { 2580 done(); 2581 }); 2582 } else { 2583 // element's custom code is not executed yet, so we're scheduling callback to after element's code 2584 setTimeout(done); 2585 } 2586 } 2587 function fetchAllNeighborhoods(done) { 2588 var useRouter = auxUsesRouter('neighborhoods'); 2589 // ROUTER-CLEANUP: keep router branch, drop legacy when API retired. Same 2590 // args on both APIs (the federated neighborhoods field accepts 2591 // withProperties/withBlogPosts); only the selection set differs. 2592 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') + '}}'; 2593 var payload = {}; 2594 payload.offset = 0; 2595 payload.limit = 100; 2596 payload.companyId = variables.companyId; 2597 if (options.resource === 'properties') { 2598 payload.withProperties = { 2599 active: true 2600 }; 2601 ['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) { 2602 if (variables[field] !== undefined && variables[field] !== null) { 2603 payload.withProperties[field] = variables[field]; 2604 } 2605 }); 2606 } 2607 if (options.resource === 'posts') { 2608 payload.withBlogPosts = { 2609 active: true 2610 }; 2611 ['search', 'postStatusId', 'featured', 'categoryId', 'categoryIds', 'neighborhoodId', 'slug'].forEach(function (field) { 2612 if (variables[field] !== undefined && variables[field] !== null) { 2613 payload.withBlogPosts[field] = variables[field]; 2614 } 2615 }); 2616 } 2617 2618 // ROUTER-CLEANUP: keep router branch, drop legacy when API retired 2619 if (useRouter) { 2620 payload = window.luxuryPresence.routerApi.transformVariables('neighborhoods', payload); 2621 } 2622 superagent.post(apiUrl(useRouter) + '/graphql').withCredentials().send({ 2623 query: gqlQuery, 2624 variables: payload 2625 }).then(function (res) { 2626 var value = res.body.data && res.body.data.neighborhoods || {}; 2627 // ROUTER-CLEANUP: keep router branch, drop legacy when API retired 2628 var items = useRouter ? window.luxuryPresence.routerApi.transformPage(value).items : value || []; 2629 done(items, items.length); 2630 }); 2631 } 2632 function fetchPostCategories(done) { 2633 var featured = options.resource === 'posts' && !!variables.featured; 2634 var useRouter = auxUsesRouter('postCategories'); 2635 // ROUTER-CLEANUP: keep router branch, drop legacy when API retired. Only the 2636 // selection set differs ({ items {...} } on the router). 2637 var selection = 'id, name, publishedCount, featuredPublishedCount'; 2638 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) + '}}'; 2639 var payload = {}; 2640 payload.offset = 0; 2641 payload.limit = 100; 2642 payload.companyId = variables.companyId; 2643 superagent.post(apiUrl(useRouter) + '/graphql').withCredentials().send({ 2644 query: gqlQuery, 2645 variables: payload 2646 }).then(function (res) { 2647 var value = res.body.data && res.body.data.postCategories || {}; 2648 // ROUTER-CLEANUP: keep router branch, drop legacy when API retired 2649 var items = useRouter ? window.luxuryPresence.routerApi.transformPage(value).items : value || []; 2650 done(items.map(function (item) { 2651 item.count = featured ? item.featuredPublishedCount : item.publishedCount; 2652 return item; 2653 }), items.length); 2654 }); 2655 } 2656 function fetchOffices(done) { 2657 var useRouter = auxUsesRouter('offices'); 2658 // ROUTER-CLEANUP: keep router branch, drop legacy when API retired. Only the 2659 // selection set differs ({ items {...} } on the router). 2660 var selection = 'id, name, tags'; 2661 // ROUTER-CLEANUP: keep router branch, drop legacy when API retired. The two 2662 // APIs differ in more than the items wrapper: federated offices takes 2663 // companyId: ID! (legacy gateway: String), so each branch builds its whole doc. 2664 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 + '}}'; 2665 var payload = { 2666 offset: 0, 2667 limit: 100, 2668 companyId: variables.companyId 2669 }; 2670 2671 // ROUTER-CLEANUP: keep router branch, drop legacy when API retired 2672 if (useRouter) { 2673 payload = window.luxuryPresence.routerApi.transformVariables('office
2673s', payload); 2674 } 2675 superagent.post(apiUrl(useRouter) + '/graphql').withCredentials().send({ 2676 query: gqlQuery, 2677 variables: payload 2678 }).then(function (res) { 2679 var value = res.body.data && res.body.data.offices || {}; 2680 // ROUTER-CLEANUP: keep router branch, drop legacy when API retired 2681 var items = useRouter ? window.luxuryPresence.routerApi.transformPage(value).items : value || []; 2682 done(items, items.length); 2683 }); 2684 } 2685 2686 // ROUTER-CLEANUP: no rentalRates field on the federated router â legacy only. 2687 function fetchAllRentalRates(done) { 2688 var url = options.url || window.luxuryPresence.defaults.apiGatewayUrl; 2689 var gqlQuery = 'query ($companyId: String, $offset: Int, $limit: Int) {' + 'rentalRates (companyId: $companyId, offset: $offset, limit: $limit) {rentalRateId, label}}'; 2690 var payload = { 2691 offset: 0, 2692 limit: 100, 2693 companyId: variables.companyId 2694 }; 2695 superagent.post(url + '/graphql').withCredentials().send({ 2696 query: gqlQuery, 2697 variables: payload 2698 }).then(function (res) { 2699 var items = res.body.data && res.body.data.rentalRates || []; 2700 done(items, items.length); 2701 }).catch(function (err) { 2702 console.error('Error fetching rental rates:', err); 2703 done([], 0); 2704 }); 2705 } 2706 function fetchData(params, done) { 2707 var resource = options.resource; 2708 var gqlQuery = options.query || window.luxuryPresence.defaults.gql[resource]; 2709 var payload = {}; 2710 try { 2711 payload = JSON.parse(JSON.stringify(variables)); 2712 } catch (e) { 2713 Object.keys(variables).forEach(function (variableName) { 2714 payload[variableName] = variables[variableName]; 2715 }); 2716 } 2717 payload.offset = (params.page - 1) * pageSize + offset; 2718 payload.limit = pageSize; 2719 payload.companyId = options.companyId; 2720 searchFormParams.forEach(function (formParam) { 2721 var val = params[formParam.formKey || formParam.param]; 2722 if (val !== null && val !== undefined) { 2723 objSet(payload, formParam.param, val); 2724 } 2725 }); 2726 2727 // ROUTER-CLEANUP: keep router branch, drop legacy when API retired 2728 if (options.useRouterApi) { 2729 payload = window.luxuryPresence.routerApi.transformVariables(resource, payload); 2730 } 2731 2732 // TODO: Disabled loading due to jarring effect 2733 // dataContainer.html('Loading...'); 2734 superagent.post(apiUrl(options.useRouterApi) + '/graphql').withCredentials().send({ 2735 query: gqlQuery, 2736 variables: payload 2737 }).then(function (res) { 2738 if (res.body.errors) { 2739 done(res.body.errors); 2740 return; 2741 } 2742 var data = res.body.data || {}; 2743 // ROUTER-CLEANUP: keep router branch, drop legacy when API retired 2744 var resources; 2745 var resourceCount; 2746 if (options.useRouterApi) { 2747 var page = window.luxuryPresence.routerApi.transformPage(data[resource]); 2748 resources = window.luxuryPresence.routerApi.transformResponse(resource, page.items); 2749 resourceCount = page.count; 2750 } else { 2751 resources = data[resource] || []; 2752 resourceCount = data[resource + 'Count'] && data[resource + 'Count'].count ? data[resource + 'Count'].count : 0; 2753 } 2754 const finish = function (items) { 2755 if (resource === 'properties' && propertyPlaceholderImage?.id) { 2756 items = items.map(item => { 2757 if (item.media?.length === 0) { 2758 return Object.assign(item, { 2759 media: [propertyPlaceholderImage] 2760 }); 2761 } 2762 return item; 2763 }); 2764 } 2765 done(null, items, resourceCount); 2766 }; 2767 2768 // ROUTER-CLEANUP: client half of PLAT-4073 â resolve the requested 2769 // disclaimers before rendering; older SDKs skip (keys stay unset). 2770 if (options.useRouterApi && resource === 'properties' && options.routerPropertyDisclaimers && options.routerPropertyDisclaimers.length && window.luxuryPresence.routerApi && typeof window.luxuryPresence.routerApi.applyPropertyDisclaimers === 'function') { 2771 window.luxuryPresence.routerApi.applyPropertyDisclaimers(resources, options.routerPropertyDisclaimers).then(finish); 2772 return; 2773 } 2774 finish(resources); 2775 }); 2776 } 2777 function getTotalPage() { 2778 return Math.ceil(totalNumber / pageSize); 2779 } 2780 function renderPaginationList() { 2781 var totalPages = getTotalPage(); 2782 var rangeStart = searchParams.page - pageRange; 2783 var rangeEnd = searchParams.page + pageRange; 2784 if (rangeEnd > totalPages) { 2785 rangeEnd = totalPages; 2786 rangeStart = totalPages - pageRange * 2; 2787 rangeStart = rangeStart < 1 ? 1 : rangeStart; 2788 } 2789 if (rangeStart <= 1) { 2790 rangeStart = 1; 2791 rangeEnd = Math.min(pageRange * 2 + 1, totalPages); 2792 } 2793 2794 // Making sure that 1 more page button is shown in edge positions 2795 if (pageRange === 0) { 2796 if (searchParams.page === totalPages) { 2797 rangeStart = totalPages <= 1 ? 1 : totalPages - 1; 2798 } 2799 if (searchParams.page === 1) { 2800 rangeEnd = Math.min(2, totalPages); 2801 } 2802 } 2803 2804 // Render pagination list 2805 if (mode === 'NUMBERED_PAGINATION') { 2806 el.innerHTML = generateHTML({ 2807 currentPage: searchParams.page, 2808 pageRange: pageRange, 2809 rangeStart: rangeStart, 2810 rangeEnd: rangeEnd 2811 }); 2812 if (totalPages < 2 && hidePaginationOnFirstPage) { 2813 container.style.display = 'none'; 2814 } else { 2815 container.style.display = ''; 2816 } 2817 } else if (mode === 'LOAD_MORE_BUTTON') { 2818 if (searchParams.page >= totalPages) {
2819 loadMoreButton.style.display = 'none'; 2820 } else { 2821 loadMoreButton.style.display = ''; 2822 } 2823 } 2824 } 2825 function render(data) { 2826 renderPaginationList(); 2827 2828 // Render new content with handlebars 2829 var html = ''; 2830 if (mode === 'LOAD_MORE_BUTTON' && searchParams.page > 1) { 2831 // If using load more, append search results to existing results 2832 html = dataContainer.innerHTML; 2833 } 2834 for (var i = 0; i < data.length; i++) { 2835 var itemData = recursivelyParse(data[i]); 2836 itemData.sectionIndex = options.sectionIndex; 2837 itemData.renderOptions = options.renderOptions; 2838 html += template(itemData); 2839 } 2840 dataContainer.innerHTML = html; 2841 2842 // Scroll Top 2843 if (!firstRender && mode === 'NUMBERED_PAGINATION' && (!renderBySearch || !options.skipScrollOnSearch)) { 2844 // Only animate to the top if we replace dataContainer (numbered pagination) 2845 setTimeout(() => { 2846 const scrollTargetOffsetTop = scrollTarget.getBoundingClientRect().top + window.scrollY - scrollOffset; 2847 window.scrollTo({ 2848 top: scrollTargetOffsetTop, 2849 behavior: 'smooth' 2850 }); 2851 }, 250); 2852 } 2853 return true; 2854 } 2855 function generateHTML(args) { 2856 const totalPages = getTotalPage(); 2857 const { 2858 rangeStart, 2859 rangeEnd 2860 } = args; 2861 const makeLnk = page => window.luxuryPresence.pagination.serializeParams(searchFormParams, sectionDomId, { 2862 ...searchParams, 2863 page 2864 }); 2865 let html = ''; 2866 if (showPrevious || showPageNumbers || showNext) { 2867 html += '<div class="paginationjs-pages"><ul>'; 2868 2869 // Previous button 2870 if (showPrevious) { 2871 if (searchParams.page <= 1) { 2872 html += `<li class="${classPrefix}-prev ${disableClassName}"><a>${prevText}</a></li>`; 2873 } else { 2874 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>`; 2875 } 2876 } 2877 2878 // Pages 2879 if (showPageNumbers) { 2880 if (rangeStart <= 3) { 2881 for (let i = 1; i < rangeStart; i++) { 2882 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>`; 2883 } 2884 } else { 2885 if (showFirstOnEllipsisShow) { 2886 html += `<li class="${classPrefix}-page ${classPrefix}-first J-paginationjs-page" data-num="1"><a href="${makeLnk(1)}">1</a></li>`; 2887 } 2888 html += `<li class="${classPrefix}-ellipsis ${disableClassName}"><a>${ellipsisText}</a></li>`; 2889 } 2890 for (let i = rangeStart; i <= rangeEnd; i++) { 2891 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>`; 2892 } 2893 if (rangeEnd < totalPages - 2) { 2894 html += `<li class="${classPrefix}-ellipsis ${disableClassName}"><a>${ellipsisText}</a></li>`; 2895 if (showLastOnEllipsisShow) { 2896 html += `<li class="${classPrefix}-page ${classPrefix}-last J-paginationjs-page" data-num="${totalPages}"><a href="${makeLnk(totalPages)}">${totalPages}</a></li>`; 2897 } 2898 } else { 2899 for (let i = rangeEnd + 1; i <= totalPages; i++) { 2900 html += `<li class="${classPrefix}-page J-paginationjs-page" data-num="${i}"><a href="${makeLnk(i)}">${i}</a></li>`; 2901 } 2902 } 2903 } 2904 2905 // Next button 2906 if (showNext) { 2907 if (searchParams.page >= totalPages) { 2908 html += `<li class="${classPrefix}-next ${disableClassName}"><a>${nextText}</a></li>`; 2909 } else { 2910 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>`; 2911 } 2912 } 2913 html += '</ul></div>'; 2914 } 2915 return html; 2916 } 2917 function go(newSearchParams, callback, restorationVisit) { 2918 if (disabled) return; 2919 var goToPageNumber = newSearchParams.page; 2920 2921 // Page number is out of bounds 2922 if (!goToPageNumber || goToPageNumber < 1) return; 2923 var totalPage = getTotalPage(); 2924 2925 // Page number is out of bounds 2926 if (!restorationVisit && totalNumber > 0) { 2927 if (goToPageNumber > totalPage) return; 2928 } 2929 if (!options.skipSerialization && (mode === 'NUMBERED_PAGINATION' || searchContainer)) {
2930 var newURL = window.luxuryPresence.pagination.serializeParams(searchFormParams, sectionDomId, { 2931 ...newSearchParams, 2932 page: goToPageNumber !== 1 && mode === 'NUMBERED_PAGINATION' ? newSearchParams.page : null 2933 }); 2934 if (!areQueryParamsEqual(newSearchParams, searchParams) && !restorationVisit) { 2935 window.history.pushState({}, '', window.luxuryPresence.getPath(newURL, { 2936 queryString: true 2937 })); 2938 } 2939 } 2940 2941 // Fetch and update page 2942 fetchData(newSearchParams, renderWithData); 2943 disabled = true; 2944 function renderWithData(err, data, count) { 2945 if (err) { 2946 dataContainer.dispatchEvent(new Event('error')); 2947 } else { 2948 searchParams = { 2949 ...newSearchParams 2950 }; 2951 totalNumber = count - offset; 2952 if (data.length === 0) { 2953 dataContainer.dispatchEvent(new Event('no-data')); 2954 } else { 2955 dataContainer.dispatchEvent(new Event('data')); 2956 } 2957 render(data); 2958 firstRender = false; 2959 } 2960 disabled = false; 2961 renderBySearch = false; 2962 } 2963 } 2964 function areQueryParamsEqual(first, second) { 2965 var differ = Object.keys(first).find(function (key) { 2966 return first[key] !== undefined && first[key] !== null && first[key] !== second[key]; 2967 }); 2968 if (differ) { 2969 return false; 2970 } 2971 differ = Object.keys(second).find(function (key) { 2972 return second[key] !== undefined && second[key] !== null && second[key] !== first[key]; 2973 }); 2974 return !differ; 2975 } 2976 function next(callback) { 2977 go({ 2978 ...searchParams, 2979 page: searchParams.page + 1 2980 }, callback); 2981 } 2982 function previous(callback) { 2983 go({ 2984 ...searchParams, 2985 page: searchParams.page - 1 2986 }, callback); 2987 } 2988 function refresh(callback) { 2989 go(searchParams, callback); 2990 } 2991 function update(params, callback) { 2992 renderBySearch = true; 2993 go(params, callback); 2994 } 2995 function observer() { 2996 if (searchContainer) { 2997 searchContainer.addEventListener('search', function (event, newSearchParams) { 2998 newSearchParams = event.detail || newSearchParams; 2999 update({ 3000 ...searchParams, 3001 ...newSearchParams, 3002 page: 1 3003 }); 3004 }); 3005 searchContainer.addEventListener('clear-search', function () { 3006 const defaultSearchParams = { 3007 ...DefaultSearchParams 3008 }; 3009 const isCurrentSearchFormStateDefault = areQueryParamsEqual({ 3010 ...defaultSearchParams, 3011 page: null 3012 }, { 3013 ...searchParams, 3014 page: null 3015 }); 3016 3017 // if mode is LOAD_MORE_BUTTON we should't make anything on clear 3018 // when search form have default state 3019 if (isCurrentSearchFormStateDefault && mode !== 'NUMBERED_PAGINATION') { 3020 return; 3021 } 3022 3023 // if someone initially go to some page and click 'Clear' on search from 3024 // we should't navigate to first page. We should preserve page value 3025 if (isCurrentSearchFormStateDefault) { 3026 defaultSearchParams.page = searchParams.page; 3027 } 3028 syncSearchFormState(defaultSearchParams); 3029 update(defaultSearchParams); 3030 }); 3031 } 3032 if (mode === 'LOAD_MORE_BUTTON') { 3033 loadMoreButton.addEventListener('click', function (event) { 3034 go({ 3035 ...searchParams, 3036 page: searchParams.page + 1 3037 }); 3038 return false; 3039 }); 3040 } 3041 if (mode === 'LOAD_MORE_BUTTON' || mode === 'BUTTONLESS_PAGINATION') { 3042 // Do initial render 3043 go(Object.assign({}, searchParams, { 3044 page: 1 3045 })); 3046 return; 3047 } 3048 if (mode === 'NUMBERED_PAGINATION') { 3049 // Go to specified page number 3050 container.addEventListener(eventPrefix + 'go', function (event) { 3051 let { 3052 pageNumber, 3053 done 3054 } = event.detail || {}; 3055 pageNumber = parseInt(pageNumber, 10); 3056 if (!pageNumber) { 3057 return; 3058 } 3059 go({ 3060 ...searchParams, 3061 page: pageNumber 3062 }, done); 3063 }); 3064 3065 // Page number button click 3066 el.addEventListener('click', function (event) { 3067 let clickTarget = event.target; 3068 let current = clickTarget.closest('.J-paginationjs-page, .J-paginationjs-previous, .J-paginationjs-next'); 3069 let pageNumber = current?.getAttribute('data-num'); 3070 if (!pageNumber || current.classList.contains(disableClassName) || current.classList.contains(activeClassName)) { 3071 return; 3072 } else { 3073 go({ 3074 ...searchParams, 3075 page: parseInt(pageNumber, 10) 3076 }); 3077 } 3078 event.preventDefault(); 3079 }); 3080 3081 // Whether to load the default page 3082 var defaultPageNumber = searchParams.page; 3083 if (triggerPagingOnInit) {
3084 container.dispatchEvent(new CustomEvent(eventPrefix + 'go', { 3085 detail: { 3086 pageNumber: defaultPageNumber 3087 } 3088 })); 3089 } 3090 } 3091 window.addEventListener('popstate', function (event) { 3092 var newParams = Object.assign({}, DefaultSearchParams, window.luxuryPresence.pagination.deserializeParams(searchFormParams, sectionDomId)); 3093 if (!areQueryParamsEqual(newParams, searchParams)) { 3094 go(newParams, null, true); 3095 if (searchContainer) { 3096 syncSearchFormState(newParams); 3097 } 3098 } 3099 }); 3100 } 3101 function replaceVariables(template, variables) { 3102 var formattedString; 3103 for (var key in variables) { 3104 var value = variables[key]; 3105 var regexp = new RegExp('<%=\\s*' + key + '\\s*%>', 'img'); 3106 formattedString = (formattedString || template).replace(regexp, value); 3107 } 3108 return formattedString; 3109 } 3110 function isTextEditorValue(obj) { 3111 return 'raw' in obj || 'gjs' in obj; 3112 } 3113 function getTextEditorValue(obj) { 3114 if (!obj.html) { 3115 return ''; 3116 } 3117 var data = obj.html; 3118 var css = (obj.raw || obj.gjs || {}).css; 3119 if (css) { 3120 data = data + '<style>' + css + '</style>'; 3121 } 3122 return data; 3123 } 3124 3125 /** 3126 * check rendered resources for html and raw properties that could indicate if resource is from an advanced text editor. 3127 * strips out raw proprties and returns only HTML if it exists. 3128 * @param {Object} resources a collection retrieved from the database 3129 * @return {Object} the newly modified object. 3130 */ 3131 function recursivelyParse(resources) { 3132 forEach(resources, function (value, key) { 3133 if (!value) { 3134 return; 3135 } 3136 if (value instanceof Object) { 3137 if (isTextEditorValue(value)) { 3138 resources[key] = getTextEditorValue(value); 3139 return; 3140 } else { 3141 return recursivelyParse(value); 3142 } 3143 } 3144 try { 3145 var parsedData = JSON.parse(value); 3146 if (isTextEditorValue(parsedData)) { 3147 resources[key] = getTextEditorValue(parsedData); 3148 } 3149 } catch (e) { 3150 // do nothing if we failed to parse value as JSON 3151 } 3152 }); 3153 return resources; 3154 } 3155 function forEach(collection, iteratee) { 3156 var func = Array.isArray(collection) ? arrayEach : baseFor; 3157 return func(collection, iteratee); 3158 } 3159 function baseFor(object, iteratee) { 3160 if (!object) { 3161 return; 3162 } 3163 var iterable = Object(object); 3164 var props = Object.keys(object); 3165 var length = props.length; 3166 var index = -1; 3167 while (length--) { 3168 var key = props[++index]; 3169 if (iteratee(iterable[key], key, iterable) === false) { 3170 break; 3171 } 3172 } 3173 return object; 3174 } 3175 function objSet(obj, path, value) { 3176 const pathArray = Array.isArray(path) ? path : path.match(/([^[.\]])+/g); 3177 pathArray.reduce((acc, key, i) => { 3178 if (acc[key] === undefined) acc[key] = {}; 3179 if (i === pathArray.length - 1) acc[key] = value; 3180 return acc[key]; 3181 }, obj); 3182 } 3183 function arrayEach(array, iteratee) { 3184 var index = -1; 3185 var length = array.length; 3186 while (++index < length) { 3187 if (iteratee(array[index], index, array) === false) { 3188 break; 3189 } 3190 } 3191 return array; 3192 } 3193 function selectPageRangeMode(e) { 3194 pageRange = e.matches ? mobilePageRange : desktopPageRange; 3195 renderPaginationList(); 3196 } 3197 paginationMql.addEventListener('change', selectPageRangeMode); 3198})('section-01ab6531-3f2b-4f85-b398-88e312943c07', JSON.parse("{\"pageSize\":\"6\",\"resource\":\"posts\",\"pageRange\":0,\"variables\":{\"limit\":6,\"order\":\"publishedAt\",\"offset\":0,\"sortDir\":\"DESC\",\"companyId\":\"71d4b9b5-d2d9-47f2-ab55-cbbab0ea5089\",\"categoryId\":\"{{pageElement.categoryId}}\"},\"searchFormParams\":[{\"param\":\"search\",\"urlKey\":\"search\"},{\"param\":\"categoryIds\",\"urlKey\":\"category\"}],\"skipScrollOnSearch\":true,\"scrollTargetSelector\":\".blog-list__container\",\"hidePaginationOnFirstPage\":true,\"companyId\":\"71d4b9b5-d2d9-47f2-ab55-cbbab0ea5089\",\"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}}")); 3199} catch(e) { 3200console.log(e); 3201} 3202 try { 3203(function init(sectionDomId) { 3204 const section = $(`#${sectionDomId}`); 3205 const searchInput = section.find('.js-search-input'); 3206 const searchContainer = section.find('.search-container'); 3207 const dataContainer = section.find('.data-container'); 3208 const categoryFilter = section.find('.js-category-filter'); 3209 const btnCategory = section.find('.js-btn-category'); 3210 let activeFilters = null; 3211 if (searchContainer.length === 0) return; 3212 const { 3213 debounce 3214 } = window.luxuryPresence; 3215 const emptyResultsText = section.find('.empty-results'); 3216 searchInput.on('input', debounce(doSearch, 700)); 3217 dataContainer.on('data', function () { 3218 emptyResultsText.removeClass("visible"); 3219 }); 3220 dataContainer.on('no-data', function () { 3221 emptyResultsText.addClass("visible"); 3222 }); 3223 btnCategory.click(function () { 3224 $(this).toggleClass('active'); 3225 categoryFilter.slideToggle(); 3226 }); 3227 function doSearch() { 3228 let values = categoryFilter.find('.active').map(function () { 3229 return $(this).data('value'); 3230 }).get(); 3231 const params = { 3232 categoryIds: values || null, 3233 search: searchInput.val().trim() || null 3234 }; 3235 searchContainer[0]?.dispatchEvent(new CustomEvent('search', { 3236 detail: params 3237 })); 3238 } 3239 categoryFilter.on('click', '.category-cell', function () { 3240 if ($(this).hasClass('js-category-all')) { 3241 section.find('.category-cell').removeClass('active'); 3242 $(this).addClass('active'); 3243 } else { 3244 $(this).toggleClass('active'); 3245 section.find('.js-category-all').removeClass('active'); 3246 } 3247 doSearch(); 3248 }); 3249 searchContainer.on('post-categories-data', function (ev, category) { 3250 category = ev.detail || category; 3251 categoryFilter.find('.js-category-cell').remove(); 3252 categoryFilter.find('.active').removeClass('active'); 3253 let btnClass = categoryFilter.data('button-style'); 3254 if (Array.isArray(category.data) && category.data.length) { 3255 btnCategory.css('display', 'inline-flex'); 3256 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')); 3257 } else { 3258 btnCategory.remove(); 3259 } 3260 setActiveFilters(); 3261 }); 3262 searchContainer.on('sync', function (event, params) { 3263 params = event.detail || params; 3264 activeFilters = params; 3265 setActiveFilters(); 3266 }); 3267 function setActiveFilters() { 3268 categoryFilter.find('.active').removeClass('active'); 3269 if (activeFilters.categoryIds !== null && activeFilters.categoryIds.length > 0) { 3270 activeFilters.categoryIds.forEach(function (categoryId) { 3271 categoryFilter.find(`#filter-${categoryId}`).addClass('active'); 3272 }); 3273 } else { 3274 categoryFilter.find('.js-category-all').addClass('active'); 3275 } 3276 } 3277})('section-01ab6531-3f2b-4f85-b398-88e312943c07', JSON.parse("{\"resource\":\"posts\",\"useRouterApi\":true,\"companyId\":\"71d4b9b5-d2d9-47f2-ab55-cbbab0ea5089\",\"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}}")); 3278} catch(e) { 3279console.log(e); 3280} 3281 try { 3282(function init(sectionDomId) { 3283 var $contactForm = $('#' + sectionDomId + ' .newsletter-signup__form'); 3284 $contactForm.find('.contact-form__reset').click(function (e) { 3285 e.preventDefault(); 3286 $(this).closest('form').removeClass('success').trigger("reset"); 3287 }); 3288 $contactForm.find('input[name="name"]').on("keyup", function () { 3289 if (this.value.replaceAll(/\d/g, "").trim() === "") { 3290 this.setCustomValidity("Please enter your name."); 3291 } else { 3292 this.setCustomValidity(""); 3293 } 3294 }); 3295 const form = $("#" + sectionDomId).find("form"); 3296 const redirectLink = $('#' + sectionDomId + ' .redirect-link'); 3297 form.on("reset", function () { 3298 redirectPage(redirectLink); 3299 }); 3300 function redirectPage(link) { 3301 if (link.length) { 3302 const rawHref = link.attr('href'); 3303 link.attr('href', setHttp(rawHref)); 3304 link[0].click(); 3305 } 3306 } 3307 function setHttp(link) { 3308 if (link.search(/^http[s]?\:\/\/|\//) == -1) { 3309 link = 'http://' + link; 3310 } 3311 return link; 3312 } 3313})('section-910a61ad-2067-4b52-a160-61bbac832465', 'undefined'); 3314} catch(e) { 3315console.log(e); 3316} 3317 try { 3318(function init(sectionDomId) { 3319 const $section = $('#' + sectionDomId); 3320 if ($section.find('.parallax').length) $section.addClass('parallax-enabled'); 3321 if ($section.find('.video-wrapper').length) $section.addClass('video'); 3322})('section-56a0f81a-5721-42c1-ad3c-7b29258fa8bd', 'undefined'); 3323} catch(e) { 3324console.log(e); 3325} 3326 try { 3327(function init(sectionDomId, options) { 3328 let section = null; 3329 switch (sectionDomId) { 3330 case 'NAVBAR': 3331 section = document.querySelector('body > nav, #global-navbar'); 3332 break; 3333 case 'FOOTER': 3334 section = document.querySelector('body > footer, #global-footer'); 3335 break; 3336 case 'SIDEMENU': 3337 section = document.querySelector('body > div.sidemenu, #global-sidemenu'); 3338 break; 3339 case 'CONTACT':
3340 section = document.querySelector('#modal-global-contact-us'); 3341 break; 3342 case 'MOBILE_CONTACT': 3343 section = document.querySelector('body > div.mobile-contact-wrapper, #global-mobile-contact'); 3344 break; 3345 case 'SUBSCRIBE': 3346 // Subscribe Not Implemented 3347 section = null; 3348 break; 3349 case 'ACCOUNT': 3350 // Account Not Implemented 3351 section = null; 3352 break; 3353 default: 3354 section = document.querySelector('#' + sectionDomId); 3355 } 3356 if (!section) { 3357 return; 3358 } 3359 var url = window.luxuryPresence.defaults.routerUrl; 3360 var companyId = window.luxuryPresence.defaults.companyId; 3361 var limit = options.limit || 8; 3362 if (typeof limit === 'string') { 3363 limit = parseInt(limit, 10) || 8; // this NaN protection also filters out 0 - this is expected 3364 } 3365 var templateSelector = options.templateSelector || '.jsIGTemplate'; 3366 var containerSelector = options.containerSelector || '.jsIGContainer'; 3367 var hasDataClass = options.hasDataClass || 'has-data'; 3368 var hideActivateMessage = options.hasDataClass || false; 3369 var payload = { 3370 companyId: companyId, 3371 limit: limit 3372 }; 3373 if (options.resourceId && typeof options.resourceId === 'string' && !options.resourceId.match(/^{{.*}}$/)) { 3374 payload.resourceId = options.resourceId; 3375 // Federated enum values are uppercase (AGENT/TEAM); element configs carry lowercase 3376 payload.resource = String(options.resource || 'agent').toUpperCase(); 3377 payload.fallbackToNoResource = options.fallbackToNoResource === 'true' || options.fallbackToNoResource === true; 3378 } 3379 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'; 3380 var templateHTML = section.querySelector(templateSelector)?.innerHTML || ''; 3381 var template = Handlebars.compile(templateHTML); 3382 var container = section.querySelector(containerSelector); 3383 if (options.variables) { 3384 Object.keys(options.variables).forEach(function (key) { 3385 if (options.variables.hasOwnProperty(key) && (typeof options.variables[key] !== 'string' || !options.variables[key].match(/^{{.*}}$/))) { 3386 payload[key] = options.variables[key]; 3387 } 3388 }); 3389 } 3390 function getData() { 3391 var feed = { 3392 error: true 3393 }; 3394 if (payload.companyId == null || payload.companyId === '') { 3395 // instagramContentFeed requires companyId (ID!) â nothing to fetch without it. 3396 // Checked after the options.variables merge, which may override the default. 3397 // Deferred so element listeners (attached after this template runs) still receive it. 3398 setTimeout(function () { 3399 section.dispatchEvent(new CustomEvent('ig-data', { 3400 detail: feed 3401 })); 3402 }, 0); 3403 return; 3404 } 3405 superagent.post(url + '/graphql').send({ 3406 query: query, 3407 variables: payload 3408 }).then(res => { 3409 try { 3410 if (!res.body.errors) { 3411 feed = res.body.data.instagramContentFeed; 3412 if (!feed.active) { 3413 if (!hideActivateMessage && sectionDomId === 'section-temp' && container) { 3414 if (payload.resourceId) { 3415 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>'; 3416 } else { 3417 container.innerHTML = '<div style="text-align: center">Instagram account is not connected.<br /> Connect it on <a href="/profile">Profile page</a></div>'; 3418 } 3419 } 3420 } else { 3421 if (feed.items.length) { 3422 if (hasDataClass) { 3423 section.classList.add(hasDataClass); 3424 } 3425 const feedName = feed.username; 3426 section.querySelectorAll('.jsIGLink').forEach(link => link.setAttribute('href', feed.feedUrl)); 3427 section.querySelectorAll('.jsIGName').forEach(name => { 3428 name.textContent = '@' + feedName; 3429 name.setAttribute('title', '@' + feedName); 3430 }); 3431 if (container && template) { 3432 container.innerHTML = template(feed); 3433 } 3434 } 3435 } 3436 } 3437 } catch (e) {} 3438 section.dispatchEvent(new CustomEvent('ig-data', { 3439 detail: feed 3440 })); 3441 }).catch(e => { 3442 console.log('err', e); 3443 section.dispatchEvent(new CustomEvent('ig-data', { 3444 detail: feed 3445 })); 3446 }); 3447 } 3448 getData(); 3449})('section-1ae84a2f-352a-40df-9967-03972ee58fc7', JSON.parse("{\"limit\":33,\"resource\":\"agent\",\"resourceId\":\"\",\"fallbackToNoResource\":\"true\",\"companyId\":\"71d4b9b5-d2d9-47f2-ab55-cbbab0ea5089\",\"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}}")); 3450} catch(e) { 3451console.log(e); 3452} 3453 try { 3454(function init(sectionDomId) { 3455 const $section = $('#' + sectionDomId); 3456 var templateHTML = $section.find('.jsIGItem').html(); 3457 var itemTemplate = templateHTML && Handlebars.compile(templateHTML); 3458 const $container = $section.find('.ig-feed-feed'); 3459 const $topPrev = $section.find('.top-nav-prev'); 3460 const $topNext = $section.find('.top-nav-next'); 3461 const $bottomPrev = $section.find('.bottom-nav-prev'); 3462 const $bottomNext = $section.find('.bottom-nav-next'); 3463 let limit = 33; 3464 try { 3465 limit = parseInt($container[0].dataset['limit']); 3466 } catch (e) {} 3467 if (!limit) { 3468 limit = 33; 3469 } 3470 let igFeed = {}; 3471 let usedWidth = 0; 3472 let slider = null; 3473 $section.on('ig-data', function (ev, feed) { 3474 feed = ev.detail || feed; 3475 igFeed = feed; 3476 if (feed.active && feed.items.length) { 3477 buildSlider(); 3478 } 3479 }); 3480 $(window).on('resize.lpui-auto-clean', onResize); 3481 let timer = null; 3482 function onResize() { 3483 clearTimeout(timer); 3484 timer = window.setTimeout(buildSlider, 50); 3485 } 3486 function getLayout(w, n) { 3487 if (w > 1100) { 3488 if (n > 7) { 3489 return { 3490 type: 'type1', 3491 single: 1, 3492 multi: n, 3493 slides: 3, 3494 slider: n > 9 3495 }; 3496 } 3497 if (n > 5) { 3498 return { 3499 type: 'type1', 3500 single: 2, 3501 multi: n, 3502 slides: 3, 3503 slider: false 3504 }; 3505 } 3506 return { 3507 type: 'type1', 3508 single: n, 3509 multi: n, 3510 slides: 3, 3511 slider: n > 3 3512 }; 3513 } else if (w > 880) { 3514 if (n > 4) { 3515 return { 3516 type: 'type2', 3517 single: 1, 3518 multi: n, 3519 slides: 2.5, 3520 slider: n > 7 3521 }; 3522 } 3523 return { 3524 type: 'type1', 3525 single: n, 3526 multi: n, 3527 slides: 3, 3528 slider: n > 3 3529 }; 3530 } else if (w > 767) { 3531 if (n > 4) { 3532 return { 3533 type: 'type3', 3534 single: 1, 3535 multi: n, 3536 slides: 2, 3537 slider: n > 5 3538 }; 3539 } 3540 return { 3541 type: 'type4', 3542 single: n, 3543 multi: n, 3544 slides: 2, 3545 slider: n > 2 3546 }; 3547 } else if (w > 460) { 3548 return { 3549 type: 'type4', 3550 single: n, 3551 multi: n, 3552 slides: 2, 3553 slider: n > 2 3554 }; 3555 } 3556 return { 3557 type: 'type5', 3558 single: n, 3559 multi: n, 3560 slides: 1, 3561 slider: n > 1 3562 }; 3563 } 3564 function ensureClass($el, className) { 3565 if ($el.hasClass(className)) { 3566 return; 3567 } 3568 $el.addClass(className); 3569 } 3570 function makeSquare($el) { 3571 const el = $el[0]; 3572 el.style.width = ''; 3573 el.style.height = ''; 3574 const rect = el.getBoundingClientRect(); 3575 if (rect.width !== rect.height) { 3576 el.style.width = rect.height + 'px'; 3577 } 3578 } 3579 function buildSlider() { 3580 const cWidth = $container[0].getBoundingClientRect().width; 3581 if (cWidth === usedWidth) { 3582 return; 3583 } 3584 $container.empty();
3585 slider = $('<div class="ig-feed-slider"></div>'); 3586 const items = igFeed.items.slice(0, limit); 3587 const layout = getLayout(cWidth, items.length); 3588 let i = 0; 3589 let slide = null; 3590 while (i < layout.single) { 3591 slide = $(`<div class="slide-single ${layout.type}"></div>`).append(itemTemplate(items[i])).appendTo(slider); 3592 i++; 3593 } 3594 while (i < layout.multi) { 3595 slide = $(`<div class="slide-multi ${layout.type}"></div>`).appendTo(slider); 3596 let slideContent = $('<div class="slide-multi-content"></div>').appendTo(slide); 3597 const lim = i + 4; 3598 while (i < lim && i < layout.multi) { 3599 slideContent.append(itemTemplate(items[i])); 3600 i++; 3601 } 3602 } 3603 $container.append(slider); 3604 if (layout.slider) { 3605 $topPrev.removeClass('hidden-control'); 3606 $topNext.removeClass('hidden-control'); 3607 $bottomPrev.removeClass('hidden-control'); 3608 $bottomNext.removeClass('hidden-control'); 3609 let prev, next; 3610 if ($bottomPrev.parent()[0].getBoundingClientRect().width) { 3611 prev = $bottomPrev; 3612 next = $bottomNext; 3613 } else { 3614 prev = $topPrev; 3615 next = $topNext; 3616 makeSquare($topPrev); 3617 makeSquare($topNext); 3618 } 3619 slider.children().each(function () { 3620 this.style.width = this.getBoundingClientRect().width + 'px'; 3621 }); 3622 slider.slick({ 3623 dots: false, 3624 prevArrow: prev, 3625 nextArrow: next, 3626 slidesToScroll: 1, 3627 infinite: false, 3628 slidesToShow: layout.slides 3629 }); 3630 } else { 3631 ensureClass($topPrev, 'hidden-control'); 3632 ensureClass($topNext, 'hidden-control'); 3633 ensureClass($bottomPrev, 'hidden-control'); 3634 ensureClass($bottomNext, 'hidden-control'); 3635 } 3636 } 3637})('section-1ae84a2f-352a-40df-9967-03972ee58fc7', JSON.parse("{\"resource\":\"agent\",\"useRouterApi\":false,\"companyId\":\"71d4b9b5-d2d9-47f2-ab55-cbbab0ea5089\",\"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}}")); 3638} catch(e) { 3639console.log(e); 3640} 3641 3642 var { body } = document; 3643 var globalNav = body.querySelector(':scope > nav'); 3644 var globalSideMenu = body.querySelector(':scope > div.sidemenu'); 3645 3646 document.querySelectorAll('body > .modal .close').forEach(modalCloseBtn => { 3647 modalCloseBtn.addEventListener('click', function() { 3648 window.lpUI.hideClosestModal(modalCloseBtn); 3649 }); 3650 }); 3651 3652 window.addEventListener('click', function() { 3653 document.querySelectorAll('.share-popup').forEach(sharedPopup => { 3654 sharedPopup.style.display = 'none' ; 3655 }); 3656 }); 3657 3658 /* Misc Partials / Addons */ 3659 function initWOW() { 3660 if (wow) { 3661 wow.init(); 3662 wow.scrollHandler(); 3663 setTimeout(function () { 3664 const wowHideStyle = document.getElementById('wow-hide-elements'); 3665 if(wowHideStyle) { 3666 wowHideStyle.disabled = true; 3667 } 3668 }, 1); 3669 } 3670 } 3671 3672 const wowHideElements = document.getElementById('wow-hide-elements'); 3673 if (wowHideElements) { 3674 wowHideElements.disabled = false; 3675 } 3676 3677 initWOW(); 3678 3679 /* Generic Navbar Handling */ 3680 globalNav?.querySelectorAll('.hamburger-component').forEach(hamburgerComponent => { 3681 hamburgerComponent.addEventListener('click', function() { 3682 window.lpUI.sideMenuToggle(); 3683 }); 3684 }); 3685 globalSideMenu?.querySelectorAll('.toggle').forEach(toggleEl => { 3686 toggleEl.addEventListener('click', function() { 3687 window.lpUI.sideMenuToggle(); 3688 }); 3689 }); 3690 3691 document.querySelectorAll('body > nav .sub-nav-container > a, body > div.sidemenu .sub-nav-container > a').forEach(linkEl => { 3692 linkEl.addEventListener('click', function(e) { 3693 e.preventDefault(); 3694 e.stopPropagation();
3695 var subNav = linkEl.parentElement.querySelector(':scope > .sub-nav'); 3696 if (subNav && subNav.classList.contains('visible')){ 3697 subNav.classList.remove('visible'); 3698 } else { 3699 globalNav?.querySelectorAll('.sub-nav-container .sub-nav').forEach(globalSubNav => { 3700 globalSubNav.classList.remove('visible'); 3701 }); 3702 globalSideMenu?.querySelectorAll('.sub-nav').forEach(sideMenuSubNav => { 3703 sideMenuSubNav.classList.remove('visible'); 3704 }); 3705 subNav?.classList.add('visible'); 3706 } 3707 }); 3708 }); 3709 window.addEventListener('click', function() { 3710 document.querySelectorAll('nav .sub-nav.visible, .sidemenu .sub-nav.visible').forEach(subNavEl => { 3711 subNavEl.classList.remove('visible'); 3712 }); 3713 }); 3714 3715 } 3716 3717 document.addEventListener('DOMContentLoaded', lpGlobalInit); 3718 3719 </script>
3719 3720 3721
3721<script type="module"> 3722 function selectorExists(selector) { 3723 return document.querySelector(selector) !== null; 3724 } 3725 3726 // Function to initialize the third-party library 3727 function initParoller(selector = '.my-paroller') { 3728 var $parollerElements = $(selector); 3729 if ($parollerElements.length > 0 && typeof $parollerElements.paroller === 'function') { 3730 $parollerElements.paroller(); 3731 } 3732 } 3733 3734 const parollerSelector = '.my-paroller'; 3735 3736 if (selectorExists(parollerSelector)) { 3737 window.luxuryPresence.libs.loadJs(window.luxuryPresence.libs.jsLibsMap.paroller.jsSrc, function() { 3738 initParoller(parollerSelector); 3739 window.luxuryPresence.libs.jsLibsMap.paroller.isLoaded = true; 3740 }); 3741 } 3742 </script>
3742 3743 3744 <!-- Google Tag Manager (noscript) -->
vendor: 80 bytes, lines 3744-3745
3744 3745 <noscript><iframe src="https://www.googletagmanager.com/ns.html?id=
3745GTM-T9SFQGHZ
vendor: 107 bytes, lines 3745-3747
3745" 3746 height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript> 3747
3747<!-- End Google Tag Manager --> 3748 3749
3749<script 3750 src="https://cdn.luxurypresence.com/scripts/a11y-widget/latest/widget.js" 3751 data-website-id="0a323938-1109-46c4-b822-46ace916f333" 3752 3753 defer></script>
vendor: 1 bytes, line 3753
3753
3754<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:'a45fc4dd2e62f865',t:'MTc5MTIzODM1OA=='};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>
3754<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>
3754 3755</body> 3756</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.