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>High End Sales | Richard Scully & Associates</title> 10 <meta property="og:title" content="High End Sales | Richard Scully & Associates"> 11 <meta name="twitter:title" content="High End Sales | Richard Scully & Associates"> 12 <meta name="description" content="Explore sold properties and remarkable transactions in Ontario. Contact Richard Scully & Associates for exclusive real estate opportunities. Contact us now!"> 13 <meta property="og:description" content="Explore sold properties and remarkable transactions in Ontario. Contact Richard Scully & Associates for exclusive real estate opportunities. Contact us now!"> 14 <meta name="twitter:description" content="Explore sold properties and remarkable transactions in Ontario. Contact Richard Scully & Associates for exclusive real estate opportunities. Contact us now!"> 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/12e40fb9-9d86-403c-bcea-2eb3264f96bb"> 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/12e40fb9-9d86-403c-bcea-2eb3264f96bb"> 17 <meta property="og:url" content="https://muskokacottagesforsale.com/high-end-sales"> 18 <link rel="canonical" href="https://muskokacottagesforsale.com/high-end-sales"> 19
19<script>(function(html){html.className = html.className.replace(/\bno-js\b/,'js')})(document.documentElement);</script>
19 20 <link rel="preconnect" href="https://fonts.googleapis.com"> 21 <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin> 22 <link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Tenor%20Sans:400"><link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Lato:100,100i,300,300i,400,400i,700,700i,900,900i"> 23 <link rel="preload" href="https://cdnjs.cloudflare.com/ajax/libs/ion-rangeslider/2.3.1/css/ion.rangeSlider.min.css" as="style" onload="this.onload=null;this.rel='stylesheet'"> 24 <noscript><link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/ion-rangeslider/2.3.1/css/ion.rangeSlider.min.css"></noscript> 25 <link rel="icon" type="image/x-icon" href="/favicon.ico"> 26 <link rel="icon" type="image/png" sizes="16x16" href="/favicon-16x16.png"> 27 <link rel="icon" type="image/png" sizes="32x32" href="/favicon-32x32.png"> 28 <link rel="icon" type="image/png" sizes="48x48" href="/favicon-48x48.png"> 29 <style id="global-css">:root{--global-primary-font-family:'Tenor Sans',sans-serif;--global-primary-font-family-short:Tenor Sans;--global-secondary-font-family:Lato,sans-serif;--global-secondary-font-family-short:Lato;--global-body-padding:0px;--global-background-color:#fff;--global-body-font-size:16px;--global-h1-font-size:50px;--global-h2-font-size:40px;--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:Lato,sans-serif;font-size:16px;}@media (min-width: 768px){body{padding:0px 0px 0px 0px;}}h1,h2,h3,h4,h5,h6,button{font-family:'Tenor Sans',sans-serif;}h1{font-size:50px;}h2{font-size:40px;}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">ul.slick-links-nav li span.link.slick-disabled{cursor:default;}.J-paginationjs-page a{margin:0 3px;}.lp-btn,.redesign .lp-btn{padding:20px 46px;}#modal-global-contact-us .contact-form .section-message form .submitButton{padding:14px 20px;}.lp-btn,.redesign .lp-btn,.redesign .btn{border-width:1px!important;font-weight:300!important;}nav#global-navbar a{font-weight:300;}button.newsletter-signup__form-item{line-height:1;font-weight:400;}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:#000!important;}nav#global-navbar.scroll li.navigation__item a.navigation__link{color:#FFF!important;}nav#global-navbar.scroll li.navigation__item a.navigation__link:hover{color:#FFF!important;}nav#global-navbar.scroll li.navigation__item a.navigation__link span:after{background-color:#FFF!important;}nav#global-navbar.scroll button.hamburger-component.hamburger{color:#FFF;}nav#global-navbar.scroll button.hamburger-component.hamburger:hover{color:#FFF;}nav#global-navbar.scroll .navigation__item:last-child{-webkit-filter:invert(1);filter:invert(1);}nav#global-navbar .header .navigation .sub-nav ul a:hover{color:#FFF!important;background-color:#792617!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:#792617;}nav#global-navbar.scroll li.navigation__item a.navigation__link span:after{background-color:#792617;}#global-navbar .header .logo .logo__img{max-height:100%;max-width:300px;}@media only screen and (max-width:768px){#global-navbar .header .logo .logo__img{max-width:250px!important;}}#global-navbar .header{padding-top:15px;padding-bottom:15px;height:auto;}.company__info__newsletter h2{font-size:0px;}.company__info__newsletter h2:before{content:"";display:block;width:auto;height:40px;background-image:url(https://media-production.lp-cdn.com/cdn-cgi/image/format=auto,quality=85/https://media-production.lp-cdn.com/media/124e6fd1-c91a-4767-8aec-b87e6e6b1291);-webkit-background-size:contain;background-size:contain;background-repeat:no-repeat;-webkit-background-position:left;background-position:left;margin:0 auto!important;}footer .footer .company__contacts{margin-top:0px!important;}
31footer .footer .newsletter__info{max-width:100%!important;}footer .luxury-link,.copyright-box .hyperlink-style-2,.info-wrap-contact_link,.ft-link{font-weight:400;position:relative!important;color:#fff!important;-webkit-text-decoration:none!important;text-decoration:none!important;-webkit-transition:0.4s;transition:0.4s;opacity:1!important;}footer .luxury-link:hover,.copyright-box .hyperlink-style-2:hover,.info-wrap-contact_link:hover,.ft-link:hover{color:#fff!important;}footer .luxury-link:before,.copyright-box .hyperlink-style-2:before,.info-wrap-contact_link:before,.ft-link:before,footer .luxury-link:after,.copyright-box .hyperlink-style-2:after,.info-wrap-contact_link:after,.ft-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 .luxury-link:before,.copyright-box .hyperlink-style-2:before,.info-wrap-contact_link:before,.ft-link:before{width:100%!important;background-color:#ccc!important;}footer .luxury-link:after,.copyright-box .hyperlink-style-2:after,.info-wrap-contact_link:after,.ft-link:after{width:0%!important;background-color:#fff!important;}footer .luxury-link:hover:after,.copyright-box .hyperlink-style-2:hover:after,.info-wrap-contact_link:hover:after,.ft-link:hover:after{width:100%!important;}div#global-sidemenu.sidemenu a:hover{color:#FFF!important;}body>div.sidemenu .sub-nav-container .main-nav:hover::after{border-bottom:1px solid #FFF!important;border-right:1px solid #FFF!important;}body>div.sidemenu .section-options a{color:#FFF!important;}@media (max-width: 768px){body>div.sidemenu .section-options a{font-size:25px!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 .section-message h2{font-size:38px;}@media only screen and (max-width: 768px){div#modal-global-contact-us .contact-form .section-message h2{font-size:28px;}}div#modal-global-contact-us .contact-form h2{font-size:38px;}@media only screen and (max-width: 768px){div#modal-global-contact-us .contact-form h2{font-size:28px;}}#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:capitalize!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:490px;}@media only screen and (max-width:1080px){div#modal-global-contact-us .contact-form h2{font-size:37px;}}@media only screen and (max-width:925px){div#modal-global-contact-us .contact-form h2{font-size:25px;}}div#modal-global-contact-us .close{top:4vh;}div#modal-global-contact-us 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;}div.mobile-contact-wrapper .contact-form .lp-btn{background-color:#FFF;border-color:#FFF;color:#792617;}div.mobile-contact-wrapper .contact-form .lp-btn:hover{background-color:transparent;border-color:#FFF;color:#FFF;}footer .img-wrap img{-webkit-filter:invert(1);filter:invert(1);}footer .footer .first_text_footer .img_size img{-webkit-filter:invert(1);filter:invert(1);}.navbar .navigation .navigation__item:last-child{content:""!important;display:block;height:30px;background-image:url('https://media-production.lp-cdn.com/media/58cb8d09-2b18-463c-94d6-a81a57ca19b0');background-repeat:no-repeat;-webkit-background-size:contain;background-size:contain;margin-left:15px;margin-right:15px;-webkit-filter:invert(1);filter:invert(1);}.navbar .navigation .navigation__item:last-child .navigation__link span{font-size:0px!important;display:none!important;}@media (max-width: 768px){footer .footer__layout__right{margin-top:0px!important;padding-left:0;}}
31footer .footer .newsletter{margin-bottom:0px!important;}@media (max-width: 768px){body>div.sidemenu .section-options a{font-size:20px!important;}}@media (max-width: 768px){body>div.sidemenu li{margin-bottom:0!important;}}@media (max-width: 768px){nav .header .navbar{padding-left:10px;}nav .header .logo img{max-width:80%!important;}}@media (max-width: 575px){footer .footer__layout__left{margin-left:auto!important;margin-right:auto!important;}}</style> 32 <style id="wow-hide-elements">.wow{visibility:hidden!important}</style> 33 <style id="page-css"> 34 #section-4071ae2a-c2c0-4fd1-a1c3-241c4cc001a0{color:#fff;--fontColor:#fff;--fontColor_H:0;--fontColor_S:0%;--fontColor_L:100%;--fontColor_A:1;--fontColor_darkenDir:-1;--bgColor:#ffffff;--bgColor_H:0;--bgColor_S:0%;--bgColor_L:100%;--bgColor_A:1;--bgColor_darkenDir:-1;background-color:#ffffff;--gradient-color:var(--overlay-color, rgba(0, 0, 0, 0.3));background-image:linear-gradient(var(--gradient-color), var(--gradient-color)),url('https://media-production.lp-cdn.com/cdn-cgi/image/format=auto,quality=85,fit=scale-down,width=1280/https://media-production.lp-cdn.com/media/12e40fb9-9d86-403c-bcea-2eb3264f96bb');background-repeat:no-repeat;-webkit-background-position:center;background-position:center;-webkit-background-size:cover;background-size:cover;}#section-4071ae2a-c2c0-4fd1-a1c3-241c4cc001a0 div.custom-intro{height:80vh;}#section-4071ae2a-c2c0-4fd1-a1c3-241c4cc001a0{background-position-y:50%!important;}#section-4071ae2a-c2c0-4fd1-a1c3-241c4cc001a0 .custom-intro{-webkit-align-items:flex-end!important;-webkit-box-align:flex-end!important;-ms-flex-align:flex-end!important;align-items:flex-end!important;}#section-4071ae2a-c2c0-4fd1-a1c3-241c4cc001a0 .custom-intro__title{margin-bottom:15vh!important;}#section-4071ae2a-c2c0-4fd1-a1c3-241c4cc001a0{background-attachment:fixed;-webkit-background-position:center;background-position:center;background-repeat:no-repeat;-webkit-background-size:cover;background-size:cover;}@media only screen and (max-width: 768px){#section-4071ae2a-c2c0-4fd1-a1c3-241c4cc001a0{background-attachment:unset;}}#section-4071ae2a-c2c0-4fd1-a1c3-241c4cc001a0 .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;-webkit-justify-content:center;justify-content:center;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;}#section-4071ae2a-c2c0-4fd1-a1c3-241c4cc001a0 .custom-intro .container{z-index:1;text-align:center;max-width:900px;}#section-4071ae2a-c2c0-4fd1-a1c3-241c4cc001a0 .custom-intro__title{margin-bottom:0px;font-weight:400;margin-bottom:24px;}@media (max-width: 768px){#section-4071ae2a-c2c0-4fd1-a1c3-241c4cc001a0 .custom-intro__title{font-size:32px;}}@media (max-width: 360px){#section-4071ae2a-c2c0-4fd1-a1c3-241c4cc001a0 .custom-intro__title{font-size:22px;}}#section-4071ae2a-c2c0-4fd1-a1c3-241c4cc001a0 .custom-intro__subtitle{font-weight:400;white-space:pre-line;font-size:21px;line-height:1.57;}@media (max-width: 768px){#section-4071ae2a-c2c0-4fd1-a1c3-241c4cc001a0 .custom-intro__subtitle{font-size:18px;}}#section-4071ae2a-c2c0-4fd1-a1c3-241c4cc001a0 .description{margin-bottom:15px;}@media (min-width: 960px) and (orientation: landscape){#section-4071ae2a-c2c0-4fd1-a1c3-241c4cc001a0{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/12e40fb9-9d86-403c-bcea-2eb3264f96bb');}}@media (min-width: 1280px) and (orientation: landscape){#section-4071ae2a-c2c0-4fd1-a1c3-241c4cc001a0{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/12e40fb9-9d86-403c-bcea-2eb3264f96bb');}}@media (min-width: 1920px) and (orientation: landscape){#section-4071ae2a-c2c0-4fd1-a1c3-241c4cc001a0{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=2560/https://media-production.lp-cdn.com/media/12e40fb9-9d86-403c-bcea-2eb3264f96bb');}}@media (min-width: 2560px) and (orientation: landscape){#section-4071ae2a-c2c0-4fd1-a1c3-241c4cc001a0{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=3456/https://media-production.lp-cdn.com/media/12e40fb9-9d86-403c-bcea-2eb3264f96bb');}}#section-5fa636d0-d142-4931-96c1-8a32e3f6aa3f{color:#000;--fontColor:#000;--fontColor_H:0;--fontColor_S:0%;--fontColor_L:0%;--fontColor_A:1;--fontColor_darkenDir:1;--bgColor:#2B2B2D;--bgColor_H:240;--bgColor_S:2%;--bgColor_L:17%;--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:#2B2B2D;}#section-5fa636d0-d142-4931-96c1-8a32e3f6aa3f div.redesign.property-list-section span.property-list__label{background:#792617!important;color:#FFF!important;text-transform:uppercase;}#section-5fa636d0-d142-4931-96c1-8a32e3f6aa3f .property-list__text{color:#000;background-color:#F9F9F8!important;}#section-5fa636d0-d142-4931-96c1-8a32e3f6aa3f .property-list__item{background-color:transparent!important;}#section-5fa636d0-d142-4931-96c1-8a32e3f6aa3f div.container>ul.property-list .property-list__text{padding:40px;}@media only screen and (max-width: 768px){#section-5fa636d0-d142-4931-96c1-8a32e3f6aa3f ul.property-list button.btn{border:1px solid #fff!important;color:#792617!important;background-color:#FFF!important;}#section-5fa636d0-d142-4931-96c1-8a32e3f6aa3f ul.property-list button.btn:hover{border:1px solid #fff!important;color:#FFF!important;background-color:transparent!important;}}#section-5fa636d0-d142-4931-96c1-8a32e3f6aa3f div.property-list-section{padding-top:77px;padding-bottom:88px;}@media only screen and (max-width: 768px){#section-5fa636d0-d142-4931-96c1-8a32e3f6aa3f div.property-list-section{padding-top:50px;padding-bottom:64px;}}#section-5fa636d0-d142-4931-96c1-8a32e3f6aa3f div.redesign ul.property-list{margin-top:0px;}#section-5fa636d0-d142-4931-96c1-8a32e3f6aa3f .property-list__text p:nth-of-type(2){dis
34play:none;}#section-5fa636d0-d142-4931-96c1-8a32e3f6aa3f .property-list__item h5{display:none;}#section-5fa636d0-d142-4931-96c1-8a32e3f6aa3f ul.property-list .property-list__img{height:415px!important;}@media (max-width: 768px){#section-5fa636d0-d142-4931-96c1-8a32e3f6aa3f .btn{width:100%;}}#section-5fa636d0-d142-4931-96c1-8a32e3f6aa3f .redesign .feature h4{text-transform:initial;}#section-5fa636d0-d142-4931-96c1-8a32e3f6aa3f .property-list-section{padding-bottom:140px;}@media (max-width: 991px){#section-5fa636d0-d142-4931-96c1-8a32e3f6aa3f .property-list-section{padding-bottom:100px;}}@media (max-width: 768px){#section-5fa636d0-d142-4931-96c1-8a32e3f6aa3f .property-list-section{padding-bottom:40px;}}#section-5fa636d0-d142-4931-96c1-8a32e3f6aa3f .property-list-section h2{text-align:center;margin-bottom:0;}#section-5fa636d0-d142-4931-96c1-8a32e3f6aa3f .property-list-section .title-container{padding-top:100px;}@media (max-width: 768px){#section-5fa636d0-d142-4931-96c1-8a32e3f6aa3f .property-list-section .title-container{padding-top:60px;}}#section-5fa636d0-d142-4931-96c1-8a32e3f6aa3f .property-list-section .title-container +.search-container{margin-top:40px;}#section-5fa636d0-d142-4931-96c1-8a32e3f6aa3f .property-list-section .description-container{padding-top:32px;max-width:70%;margin:0 auto;text-align:center;}@media (max-width: 768px){#section-5fa636d0-d142-4931-96c1-8a32e3f6aa3f .property-list-section .description-container{max-width:100%;}}#section-5fa636d0-d142-4931-96c1-8a32e3f6aa3f .property-list-section .search-container{color:black;padding:25px 30px;background-color:white;display:-ms-grid;display:grid;-ms-grid-columns:1fr 1fr 1fr auto;grid-template-columns:1fr 1fr 1fr auto;-ms-grid-rows:1fr;grid-template-rows:1fr;gap:0px 15px;grid-template-areas:". . . . .";}#section-5fa636d0-d142-4931-96c1-8a32e3f6aa3f .property-list-section .search-container.show-neighborhood-select{-ms-grid-columns:1fr 1fr 1fr 1fr auto;grid-template-columns:1fr 1fr 1fr 1fr auto;}@media(max-width: 950px){#section-5fa636d0-d142-4931-96c1-8a32e3f6aa3f .property-list-section .search-container.show-neighborhood-select{-ms-grid-columns:1fr;grid-template-columns:1fr;-ms-grid-rows:auto auto auto auto;grid-template-rows:auto auto auto auto;grid-template-areas:"." "." "." ".";gap:25px;}}@media(max-width: 950px){#section-5fa636d0-d142-4931-96c1-8a32e3f6aa3f .property-list-section .search-container{-ms-grid-columns:1fr;grid-template-columns:1fr;-ms-grid-rows:auto auto auto auto;grid-template-rows:auto auto auto auto;grid-template-areas:"." "." "." ".";gap:25px;}}#section-5fa636d0-d142-4931-96c1-8a32e3f6aa3f .property-list-section .search-container input[name="area-slider"],#section-5fa636d0-d142-4931-96c1-8a32e3f6aa3f .property-list-section .search-container input[name="price-slider"]{position:absolute!important;display:block!important;top:0!important;left:0!important;width:0!important;height:0!important;font-size:0!important;line-height:0!important;padding:0!important;margin:0!important;overflow:hidden;outline:none!important;z-index:-9999!important;background:none!important;border-style:solid!important;border-color:transparent!important;}#section-5fa636d0-d142-4931-96c1-8a32e3f6aa3f .property-list-section .search-container select{line-height:1.2!important;width:100%;border:none;border-bottom:1px solid;padding:5px 0;-webkit-appearance:none;-moz-appearance:none;-ms-appearance:none;appearance:none;border-radius:0px;background-color:transparent;outline:none;background:url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9Ii01NDAgLTMyMCA4MDAgODAwIj48cGF0aCBkPSJNMjI1LjgxMyA0OC45MDdMMTI4IDE0Ni43MiAzMC4xODcgNDguOTA3IDAgNzkuMDkzbDEyOCAxMjggMTI4LTEyOHoiLz48L3N2Zz4K) no-repeat 100% 50%;}#section-5fa636d0-d142-4931-96c1-8a32e3f6aa3f .property-list-section .search-container .text-search-input{border:none;border-bottom:1px solid;padding:5px 0;width:100%;border-radius:0;}#section-5fa636d0-d142-4931-96c1-8a32e3f6aa3f .property-list-section .search-container .irs--round{height:38px;}@media(max-width: 950px){#section-5fa636d0-d142-4931-96c1-8a32e3f6aa3f .property-list-section .search-container .irs--round{height:50px;}}
34#section-5fa636d0-d142-4931-96c1-8a32e3f6aa3f .property-list-section .search-container .irs--round .irs-handle{width:10px;height:10px;border-width:1px;border-color:black;top:32px;box-shadow:none;}#section-5fa636d0-d142-4931-96c1-8a32e3f6aa3f .property-list-section .search-container .irs--round .irs-bar{background-color:black;height:1px;}#section-5fa636d0-d142-4931-96c1-8a32e3f6aa3f .property-list-section .search-container .irs--round .irs-line{height:1px;}#section-5fa636d0-d142-4931-96c1-8a32e3f6aa3f .property-list-section .search-container .irs--round .irs-min,#section-5fa636d0-d142-4931-96c1-8a32e3f6aa3f .property-list-section .search-container .irs--round .irs-max{display:none;}#section-5fa636d0-d142-4931-96c1-8a32e3f6aa3f .property-list-section .search-container .irs--round .irs-from:before,#section-5fa636d0-d142-4931-96c1-8a32e3f6aa3f .property-list-section .search-container .irs--round .irs-to:before,#section-5fa636d0-d142-4931-96c1-8a32e3f6aa3f .property-list-section .search-container .irs--round .irs-single:before{display:none;}#section-5fa636d0-d142-4931-96c1-8a32e3f6aa3f .property-list-section .search-container .irs--round .irs-from,#section-5fa636d0-d142-4931-96c1-8a32e3f6aa3f .property-list-section .search-container .irs--round .irs-to,#section-5fa636d0-d142-4931-96c1-8a32e3f6aa3f .property-list-section .search-container .irs--round .irs-single{font-size:13px;}#section-5fa636d0-d142-4931-96c1-8a32e3f6aa3f .property-list-section .search-container .irs--round .irs-from{left:0!important;visibility:visible!important;}#section-5fa636d0-d142-4931-96c1-8a32e3f6aa3f .property-list-section .search-container .irs--round .irs-to{right:0!important;left:auto!important;visibility:visible!important;}#section-5fa636d0-d142-4931-96c1-8a32e3f6aa3f .property-list-section .search-container .irs--round .irs-single{display:none;}#section-5fa636d0-d142-4931-96c1-8a32e3f6aa3f .property-list-section .search-container .irs--round .irs-from,#section-5fa636d0-d142-4931-96c1-8a32e3f6aa3f .property-list-section .search-container .irs--round .irs-to,#section-5fa636d0-d142-4931-96c1-8a32e3f6aa3f .property-list-section .search-container .irs--round .irs-single{background-color:transparent;color:gray;}#section-5fa636d0-d142-4931-96c1-8a32e3f6aa3f .property-list-section .search-container .irs-from,#section-5fa636d0-d142-4931-96c1-8a32e3f6aa3f .property-list-section .search-container .irs-to,#section-5fa636d0-d142-4931-96c1-8a32e3f6aa3f .property-list-section .search-container .irs-single{top:10px;}#section-5fa636d0-d142-4931-96c1-8a32e3f6aa3f .property-list-section .search-container .search-item{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:justify;-webkit-justify-content:space-between;justify-content:space-between;}#section-5fa636d0-d142-4931-96c1-8a32e3f6aa3f .property-list-section .search-container .search-item .search-title{font-weight:700;}#section-5fa636d0-d142-4931-96c1-8a32e3f6aa3f .property-list-section .search-container .btn-item{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:flex-end;-webkit-box-align:flex-end;-ms-flex-align:flex-end;align-items:flex-end;}@media(max-width: 950px){#section-5fa636d0-d142-4931-96c1-8a32e3f6aa3f .property-list-section .search-container .btn-item{display:none;}}#section-5fa636d0-d142-4931-96c1-8a32e3f6aa3f ul.property-list{display:-ms-grid;display:grid;-ms-grid-columns:1fr 1fr;grid-template-columns:1fr 1fr;-ms-grid-rows:1fr;grid-template-rows:1fr;gap:55px 80px;grid-template-areas:". .";padding:0;color:#000;list-style:none;}@media (max-width: 991px){#section-5fa636d0-d142-4931-96c1-8a32e3f6aa3f ul.property-list{gap:55px 25px;}}@media (max-width: 768px){#section-5fa636d0-d142-4931-96c1-8a32e3f6aa3f ul.property-list{-ms-grid-columns:1fr;grid-template-columns:1fr;grid-template-areas:".";gap:35px 25px;justify-items:center;}}#section-5fa636d0-d142-4931-96c1-8a32e3f6aa3f ul.property-list.three-items{-ms-grid-columns:1fr 1fr 1fr;grid-template-columns:1fr 1fr 1fr;grid-template-areas:". . .";gap:55px 40px;}@media (max-width: 1200px){#section-5fa636d0-d142-4931-96c1-8a32e3f6aa3f ul.property-list.three-items{-ms-grid-columns:1fr 1fr;grid-template-columns:1fr 1fr;grid-template-areas:". .";gap:55px 80px;}}@media (max-width: 991px){#section-5fa636d0-d142-4931-96c1-8a32e3f6aa3f ul.property-list.three-items{gap:55px 25px;}}@media (max-width: 768px){#section-5fa636d0-d142-4931-96c1-8a32e3f6aa3f ul.property-list.three-items{-ms-grid-columns:1fr;grid-template-columns:1fr;grid-template-areas:".";gap:35px 25px;justify-items:center;}}#section-5fa636d0-d142-4931-96c1-8a32e3f6aa3f ul.property-list.property-list--share .property-list__share{display:inline-block;}#section-5fa636d0-d142-4931-96c1-8a32e3f6aa3f ul.property-list .property-list__item{background-color:#fff;text-align:center;font-weight:bold;position:relative;min-height:500px;}@media (max-width: 768px){#section-5fa636d0-d142-4931-96c1-8a32e3f6aa3f ul.property-list .property-list__item{min-height:1px;height:calc(100% - 1px);max-width:325px;width:99%;}}#section-5fa636d0-d142-4931-96c1-8a32e3f6aa3f ul.property-list .property-list__item:hover .property-list__hover{opacity:1;}#section-5fa636d0-d142-4931-96c1-8a32e3f6aa3f ul.property-list .property-list__item h4{margin:0 0 7px;}#section-5fa636d0-d142-4931-96c1-8a32e3f6aa3f ul.property-list .property-list__item p{white-space:normal;margin:0 0 7px;}@media (max-width: 768px){#section-5fa636d0-d142-4931-96c1-8a32e3f6aa3f ul.property-list .property-list__item p{margin-bottom:3px;}}#section-5fa636d0-d142-4931-96c1-8a32e3f6aa3f ul.property-list .property-list__item h5{text-transform:none;margin:0;font-family:var(--global-secondary-font-family);}#section-5fa636d0-d142-4931-96c1-8a32e3f6aa3f ul.property-list .property-list__item-link{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;height:100%;width:100%;}@media (max-width: 768px){#section-5fa636d0-d142-4931-96c1-8a32e3f6aa3f ul.property-list .property-list__item-link{height:auto;}}#section-5fa636d0-d142-4931-96c1-8a32e3f6aa3f ul.property-list .property-list__img{width:100%;height:315px;vertical-align:top;background-color:gray;position:relative;}@media (max-width: 768px){#section-5fa636d0-d142-4931-96c1-8a32e3f6aa3f ul.property-list .property-list__img{height:200px;}}#section-5fa636d0-d142-4931-96c1-8a32e3f6aa3f ul.property-list .property-list__img img{width:100%;height:100%;object-fit:cover;}#section-5fa636d0-d142-4931-96c1-8a32e3f6aa3f ul.property-list .property-list__text{background-color:#fff;padding:25px 15px 15px;-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;}@media (max-width: 768px){#section-5fa636d0-d142-4931-96c1-8a32e3f6aa3f ul.property-list .property-list__text{margin-bottom:15px;}}#section-5fa636d0-d142-4931-96c1-8a32e3f6aa3f ul.property-list .property-list__label{position:absolute;top:0;right:0;background:#000;color:#fff;
34padding:4px 35px;z-index:2;}#section-5fa636d0-d142-4931-96c1-8a32e3f6aa3f ul.property-list .hover-link{position:absolute;top:0;left:0;width:100%;height:100%;}@media (max-width: 768px){#section-5fa636d0-d142-4931-96c1-8a32e3f6aa3f ul.property-list .hover-link{display:none;}}#section-5fa636d0-d142-4931-96c1-8a32e3f6aa3f ul.property-list .property-list__hover{position:absolute;top:0;left:0;width:100%;height:100%;background-color:rgba(255, 255, 255, 0.75);opacity:0;-webkit-transition:opacity .2s linear;transition:opacity .2s linear;z-index:3;cursor:pointer;}@media (max-width: 768px){#section-5fa636d0-d142-4931-96c1-8a32e3f6aa3f ul.property-list .property-list__hover{opacity:1;background-color:var(--bgColor);position:static;padding:15px 0 0;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;height:auto;margin:0 -2px;width:calc(100% + 4px);}}#section-5fa636d0-d142-4931-96c1-8a32e3f6aa3f ul.property-list .property-list__hover h4{text-transform:none;}@media(max-width: 768px){#section-5fa636d0-d142-4931-96c1-8a32e3f6aa3f ul.property-list .property-list__hover h4{display:none;}}@media (min-width: 769px){#section-5fa636d0-d142-4931-96c1-8a32e3f6aa3f ul.property-list .property-list__buttons{position:absolute;top:50%;left:50%;width:100%;-webkit-transform:translate(-50%, -50%);-moz-transform:translate(-50%, -50%);-ms-transform:translate(-50%, -50%);transform:translate(-50%, -50%);}}#section-5fa636d0-d142-4931-96c1-8a32e3f6aa3f ul.property-list .property-list__view .btn{margin-bottom:20px;}@media (max-width: 768px){#section-5fa636d0-d142-4931-96c1-8a32e3f6aa3f ul.property-list .property-list__view .btn{margin-bottom:0;}}#section-5fa636d0-d142-4931-96c1-8a32e3f6aa3f ul.property-list .btn{vertical-align:top;margin:0 10px;display:none;}@media(max-width: 768px){#section-5fa636d0-d142-4931-96c1-8a32e3f6aa3f ul.property-list .btn{margin:0;}}@media(min-width: 769px){#section-5fa636d0-d142-4931-96c1-8a32e3f6aa3f ul.property-list .btn.btn--primary-dark{display:inline-block;}}@media(max-width: 768px){#section-5fa636d0-d142-4931-96c1-8a32e3f6aa3f ul.property-list .btn.btn--primary-light{display:inline-block;}}#section-5fa636d0-d142-4931-96c1-8a32e3f6aa3f ul.property-list .property-list__share{position:relative;display:none;}@media(max-width: 768px){#section-5fa636d0-d142-4931-96c1-8a32e3f6aa3f ul.property-list .property-list__share{margin-bottom:25px;margin-top:15px;width:100%;}}#section-5fa636d0-d142-4931-96c1-8a32e3f6aa3f ul.property-list .property-list__share.property-list__share--opened .socials{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;}#section-5fa636d0-d142-4931-96c1-8a32e3f6aa3f ul.property-list .property-list__share .socials{-webkit-box-flex-wrap:nowrap;-webkit-flex-wrap:nowrap;-ms-flex-wrap:nowrap;flex-wrap:nowrap;position:absolute;top:100%;left:50%;-webkit-transform:translateX(-50%);-moz-transform:translateX(-50%);-ms-transform:translateX(-50%);transform:translateX(-50%);display:none;}#section-5fa636d0-d142-4931-96c1-8a32e3f6aa3f ul.property-list .property-list__share .socials .socials__link{width:70px;}#section-5fa636d0-d142-4931-96c1-8a32e3f6aa3f .is-background-color-light ul.property-list .btn.btn--primary-dark{display:inline-block;}#section-5fa636d0-d142-4931-96c1-8a32e3f6aa3f .is-background-color-light ul.property-list .btn.btn--primary-light{display:none;}#section-5fa636d0-d142-4931-96c1-8a32e3f6aa3f .redesign ul.property-list{margin-bottom:60px;margin-top:60px;margin-left:0;}@media (max-width: 768px){#section-5fa636d0-d142-4931-96c1-8a32e3f6aa3f .redesign ul.property-list{margin-bottom:30px;}}#section-5fa636d0-d142-4931-96c1-8a32e3f6aa3f .empty-result{text-align:center;}#section-5fa636d0-d142-4931-96c1-8a32e3f6aa3f .label-house{bottom:0;position:absolute;width:100%;padding:8px 0;background:rgba(255, 255, 255, 0.7);}@media (max-width: 768px){#section-5fa636d0-d142-4931-96c1-8a32e3f6aa3f .label-house{font-size:12px;}}#section-5fa636d0-d142-4931-96c1-8a32e3f6aa3f ul.property-list .property-list__item .property-list__mls-attribution{text-shadow:none;width:calc(100% - 200px);margin:0;}@media (max-width: 1024px){#section-5fa636d0-d142-4931-96c1-8a32e3f6aa3f ul.property-list .property-list__item .property-list__mls-attribution{width:100%;}}#section-5fa636d0-d142-4931-96c1-8a32e3f6aa3f .property-list__item .property-list__mls-attribution+.property-list__mls-logo{position:absolute!important;right:15px!important;bottom:15px!important;}@media (max-width: 1024px){#section-5fa636d0-d142-4931-96c1-8a32e3f6aa3f .property-list__item .property-list__mls-attribution+.property-list__mls-logo{position:relative!important;right:unset!important;bottom:unset!important;}}@media (max-width: 768px){#section-5fa636d0-d142-4931-96c1-8a32e3f6aa3f .property-list__item .property-list__mls-logo{display:inline-block!important;}}#section-5fa636d0-d142-4931-96c1-8a32e3f6aa3f .property-list__item:has(.mls-compliance-container) .property-list__text{padding-bottom:0;}#section-5fa636d0-d142-4931-96c1-8a32e3f6aa3f .mls-compliance-container{margin-top:auto;padding:0 15px 15px;}#section-5fa636d0-d142-4931-96c1-8a32e3f6aa3f>div:last-child{padding-top:calc(4 / 4 * var(--global-section-padding))!important;padding-bottom:calc(4 / 4 * var(--global-section-padding))!important;}#section-ab7525f1-6dbd-43e3-bba0-6a74ad957c35{color:#FFF;--fontColor:#FFF;--fontColor_H:0;--fontColor_S:0%;--fontColor_L:100%;--fontColor_A:1;--fontColor_darkenDir:-1;--bgColor:#000000;--bgColor_H:0;--bgColor_S:0%;--bgColor_L:0%;--bgColor_A:1;--bgColor_darkenDir:1;--section-padding-top:calc(4 / 4 * var(--global-section-padding));--section-padding-bottom:calc(4 / 4 * var(--global-section-padding));background-color:#000000;}#section-ab7525f1-6dbd-43e3-bba0-6a74ad957c35 .ig-feed{padding:80px 0;}#section-ab7525f1-6dbd-43e3-bba0-6a74ad957c35 .title{margin:0 20px 0 0;}#section-ab7525f1-6dbd-43e3-bba0-6a74ad957c35 .instagram-link{display:block;margin:0 20px 0 0;color:var(--global-primary-font-color);}#section-ab7525f1-6dbd-43e3-bba0-6a74ad957c35 .instagram-link .instagram-name{display:inline;margin:0;}#section-ab7525f1-6dbd-43e3-bba0-6a74ad957c35 .title+.instagram-link{margin-top:5px;}#section-ab7525f1-6dbd-43e3-bba0-6a74ad957c35 .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-ab7525f1-6dbd-43e3-bba0-6a74ad957c35 .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-ab7525f1-6dbd-43e3-bba0-6a74ad957c35 .follow-button{margin:20px 0 0 0;display:block;}#section-ab7525f1-6dbd-43e3-bba0-6a74ad957c35 .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-ab7525f1-6dbd-43e3-bba0-6a74ad957c35 .nav-button.slick-disabled{opacity:0.6;pointer-events:none;cursor:default;}#section-ab7525f1-6dbd-43e3-bba0-6a74ad957c35 .nav-button:not(.slick-disabled):hover{background-color:#1a1a1a;border-color:#1a1a1a;color:#fff;}#section-ab7525f1-6dbd-43e3-bba0-6a74ad957c35 .top-nav-prev{margin-left:30px;}#section-ab7525f1-6dbd-43e3-bba0-6a74ad957c35 .top-nav-next{margin-left:10px;}#section-ab7525f1-6dbd-43e3-bba0-6a74ad957c35 .hidden-control{display:none;}#section-ab7525f1-6dbd-43e3-bba0-6a74ad957c35 .slide-single,#section-ab7525f1-6dbd-43e3-bba0-6a74ad957c35 .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-ab7525f1-6dbd-43e3-bba0-6a74ad957c35 .slide-single:first-child,#section-ab7525f1-6dbd-43e3-bba0-6a74ad957c35 .slide-multi:first-child{margin-left:auto;}#section-ab7525f1-6dbd-43e3-bba0-6a74ad957c35 .slide-single:last-child,#section-ab7525f1-6dbd-43e3-bba0-6a74ad957c35 .slide-multi:last-child{margin-right:auto;}#section-ab7525f1-6dbd-43e3-bba0-6a74ad957c35 .slide-single.type2,#section-ab7525f1-6dbd-43e3-bba0-6a74ad957c35 .slide-multi.type2{width:calc(100% / 5 * 2);}#section-ab7525f1-6dbd-43e3-bba0-6a74ad957c35 .slide-single.type3,#section-ab7525f1-6dbd-43e3-bba0-6a74ad957c35 .slide-multi.type3{width:calc(100% / 2);}#section-ab7525f1-6dbd-43e3-bba0-6a74ad957c35 .slide-single.type4,#section-ab7525f1-6dbd-43e3-bba0-6a74ad957c35 .slide-multi.type4{width:calc(100% / 2);}#section-ab7525f1-6dbd-43e3-bba0-6a74ad957c35 .slide-single.type5,#section-ab7525f1-6dbd-43e3-bba0-6a74ad957c35 .slide-multi.type5{width:100%;}@media (max-width: 440px){#section-ab7525f1-6dbd-43e3-bba0-6a74ad957c35 .ig-feed-container{padding:0;width:100%;}}#section-ab7525f1-6dbd-43e3-bba0-6a74ad957c35 .ig-feed-feed{width:calc(100% + 20px);position:relative;left:-10px;overflow:hidden;}#section-ab7525f1-6dbd-43e3-bba0-6a74ad957c35 .ig-feed-slider{width:100%;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;}#section-ab7525f1-6dbd-43e3-bba0-6a74ad957c35 .ig-feed-item__img{position:absolute;left:-1px;top:-1px;bottom:-1px;right:-1px;background:center/cover no-repeat;}#section-ab7525f1-6dbd-43e3-bba0-6a74ad957c35 .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-ab7525f1-6dbd-43e3-bba0-6a74ad957c35 .ig-feed-item:hover .ig-feed-item__info{opacity:1;}#section-ab7525f1-6dbd-43e3-bba0-6a74ad957c35 .ig-feed-item__caption{text-overflow:ellipsis;-webkit-line-clamp:4;display:-webkit-box;-webkit-box-orient:vertical;overflow:hidden;}#section-ab7525f1-6dbd-43e3-bba0-6a74ad957c35 .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-ab7525f1-6dbd-43e3-bba0-6a74ad957c35 .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-ab7525f1-6dbd-43e3-bba0-6a74ad957c35 .ig-feed-item:hover .video-icon{opacity:0;}#section-ab7525f1-6dbd-43e3-bba0-6a74ad957c35 .slide-single .ig-feed-item__info{padding:15%;}#section-ab7525f1-6dbd-43e3-bba0-6a74ad957c35 .slide-single .ig-feed-item__caption{-webkit-line-clamp:7;}#section-ab7525f1-6dbd-43e3-bba0-6a74ad957c35 .ig-feed-item{background-color:var(--tileColor, #000);display:block;width:100%;padding-bottom:125%;overflow:hidden;position:relative;}#section-ab7525f1-6dbd-43e3-bba0-6a74ad957c35 .slide-multi::before{content:'';display:block;width:100%;padding-bottom:125%;}#section-ab7525f1-6dbd-43e3-bba0-6a74ad957c35 .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-ab7525f1-6dbd-43e3-bba0-6a74ad957c35 .slide-multi-content .ig-feed-item{width:calc(50% - 10px);padding-bottom:calc(62.5% - 12.5px);}#section-ab7525f1-6dbd-43e3-bba0-6a74ad957c35 .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-ab7525f1-6dbd-43e3-bba0-6a74ad957c35 .bottom-controls{width:100%;display:none;-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center;}#section-ab7525f1-6dbd-43e3-bba0-6a74ad957c35 .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-ab7525f1-6dbd-43e3-bba0-6a74ad957c35 .bottom-nav-button.slick-disabled{opacity:0.6;pointer-events:none;cursor:default;}@media (max-width: 767px){#section-ab7525f1-6dbd-43e3-bba0-6a74ad957c35 .top-right,#section-ab7525f1-6dbd-43e3-bba0-6a74ad957c35 .top-left{width:100%;-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center;}#section-ab7525f1-6dbd-43e3-bba0-6a74ad957c35 .title,#section-ab7525f1-6dbd-43e3-bba0-6a74ad957c35 .instagram-link{margin-right:0;text-align:center;}#section-ab7525f1-6dbd-43e3-bba0-6a74ad957c35 .top-nav-prev,#section-ab7525f1-6dbd-43e3-bba0-6a74ad957c35 .top-nav-next{display:none;}#section-ab7525f1-6dbd-43e3-bba0-6a74ad957c35 .bottom-controls{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;}}#section-ab7525f1-6dbd-43e3-bba0-6a74ad957c35 .ig-feed{display:none;}#section-ab7525f1-6dbd-43e3-bba0-6a74ad957c35 .has-data .ig-feed{display:block;}#section-ab7525f1-6dbd-43e3-bba0-6a74ad957c35.has-data .ig-feed,#section-ab7525f1-6dbd-43e3-bba0-6a74ad957c35#section-temp .ig-feed{display:block;}#section-ab7525f1-6dbd-43e3-bba0-6a74ad957c35>div:last-child{padding-top:calc(4 / 4 * var(--global-section-padding))!important;padding-bottom:calc(4 / 4 * var(--global-section-padding))!important;}#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:rgba(43, 43, 45, 1);color:rgba(255, 255, 255, 1);--fontColor:rgba(255, 255, 255, 1);--fontColor_H:0;--fontColor_S:0%;--fontColor_L:100%;--fontColor_A:1;--fontColor_darkenDir:-1;--bgColor:rgba(43, 43, 45, 1);--bgColor_H:240;--bgColor_S:2%;--bgColor_L:17%;--bgColor_A:1;--bgColor_darkenDir:1;}body>div.sidemenu{background-color:transparent;}body>div.sidemenu .wrapper{--linkColor:hsla( 35 var(--fontColor_H, 0), 36 var(--fontColor_S, 0%), 37 calc(50% + var(--fontColor_darkenDir, -1) * 13%), 38 var(--fontColor_A, 1) 39 );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);}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(--linkColor);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, #fff);border-bottom:2px solid var(--fontColor, #fff);}@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>
39div.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;}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:10000px;}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:rgba(43, 43, 45, 1);color:rgba(255, 255, 255, 1);--fontColor:rgba(255, 255, 255, 1);--fontColor_H:0;--fontColor_S:0%;--fontColor_L:100%;--fontColor_A:1;--fontColor_darkenDir:-1;--bgColor:rgba(43, 43, 45, 1);--bgColor_H:240;--bgColor_S:2%;--bgColor_L:17%;--bgColor_A:1;--bgColor_darkenDir:1;}footer .pre-wrap{white-space:pre-wrap;}footer ul{margin-top:0;margin-bottom:15px;}footer li{margin-bottom:0;}footer ul ul{margin-bottom:0;}footer a{background-color:transparent;color:inherit;-webkit-text-decoration:none;text-decoration:none;}footer a:-webkit-any-link{-webkit-text-decoration:none;text-decoration:none;}footer a:active,footer a:hover{outline:0;}footer a.underlined{-webkit-text-decoration:underline;text-decoration:underline;}footer a.underlined:hover{-webkit-text-decoration:none;text-decoration:none;}footer .container{width:100%;padding-right:16px;padding-left:16px;margin-right:auto;margin-left:auto;}@media (max-width: 576px){footer .container{max-width:100%;padding-right:16px;padding-left:16px;}}@media (min-width: 992px){footer .container{max-width:960px;}}@media (min-width: 1340px){footer .container{padding:0;max-width:1070px;}}footer h1,footer h2,footer h3{font-weight:normal;font-stretch:normal;font-style:normal;letter-spacing:normal;}footer h1{font-size:42px;line-height:1.19;}footer h2{font-size:30px;line-height:1.33;}footer h3{font-size:18px;line-height:1.67;}@media (max-width: 576px){footer h1{font-size:32px;line-height:1.31;}footer h2{font-size:26px;line-height:1.38;}footer h3{font-size:18px;line-height:1.56;}}footer .btn--subscribe{background-color:transparent;border:solid 2px;font-size:14px;line-height:1.5;color:var(--textColor);padding:14px 35px;cursor:pointer;font-weight:700;-webkit-transition:0.2s all;transition:0.2s all;}@media (min-width: 540px){footer .btn--subscribe:hover{color:var(--bgColor);background-color:var(--fontColor);border-color:var(--fontColor);}}footer .btn:disabled{background-color:#f4f4f4;color:#c1c1c1;}footer .btn--white{color:white;border-color:white;}@media (min-width: 540px){footer .btn--white:hover{background-color:#575757;border-color:#575757;color:white;}}footer .btn--white:disabled{background-color:#f4f4f4;color:#c1c1c1;}footer .footer{padding:91px 0 42px 0;}@media (max-width: 768px){footer .footer{padding:46px 0 100px;}}footer .footer .company-logo.light{display:none;}footer .footer.dark .company-logo.light{display:block;}footer .footer.dark .company-logo.dark{display:none;}footer .footer.light .company-logo.light{display:none;}footer .footer.light .company-logo.dark{display:block;}footer .footer .company-logo{display:block;
39max-width:200px;}footer .footer__layout{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: 576px){footer .footer__layout{-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;}}footer .footer__layout__left{-webkit-flex-basis:57%;-ms-flex-preferred-size:57%;flex-basis:57%;-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;}footer .footer__layout__right{font-size:18px;-webkit-flex-basis:40%;-ms-flex-preferred-size:40%;flex-basis:40%;padding-left:15px;-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;}@media (max-width: 576px){footer .footer__layout__right{margin-top:53px;padding-left:0;}}footer .footer .company{padding-right:15px;}@media (max-width: 576px){footer .footer .company{padding-right:0;}}footer .footer .company__info__newsletter{max-width:430px;}footer .footer .company__info__newsletter p{margin-bottom:0;}footer .footer .company__contacts{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;margin:0 -37px;margin-top:100px;-webkit-box-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;}@media (max-width: 768px){footer .footer .company__contacts{margin-top:40px;}}footer .footer .company__contacts>div{padding:0 37px 35px;}footer .footer .company__contacts p{margin-bottom:10px;}@media (max-width: 576px){footer .footer .company__contacts p{margin-bottom:0;}}@media (hover: hover) and (pointer: fine){footer .footer .company__contacts a:hover{-webkit-text-decoration:underline;text-decoration:underline;}}@media (max-width: 576px){footer .footer .company__contacts{-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;}}footer .footer .company__address{max-width:162px;margin-right:75px;}@media (max-width: 576px){footer .footer .company__address{margin-bottom:28px;}}footer .footer .newsletter{margin-bottom:58px;overflow:hidden;}footer .footer .newsletter__info{max-width:280px;}footer .footer .newsletter__subscribe{margin-top:47px;}footer .footer .newsletter__subscribe.hide{display:none;}footer .footer .newsletter__subscribe.success .btn{display:none;}footer .footer .newsletter__subscribe input[name='email']{background:none;border:none;border-bottom:solid 1px;font-size:15px;line-height:1.67;color:var(--fontColor);width:100%;margin-bottom:0;-webkit-transition:0.3s all;transition:0.3s all;border-radius:0;}footer .footer .newsletter__subscribe input[name='email']:focus{outline:none;}footer .footer .newsletter p.success{margin-top:1em;font-style:italic;-webkit-transition:all 0.4s ease;transition:all 0.4s ease;}footer .footer .newsletter p.hide{display:none;}footer .footer__middle{-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;}@media (max-width: 576px){footer .footer__middle{-webkit-align-items:flex-start;-webkit-box-align:flex-start;-ms-flex-align:flex-start;align-items:flex-start;-webkit-flex-direction:column-reverse;-ms-flex-direction:column-reverse;flex-direction:column-reverse;}}footer .footer .logos{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;}@media (max-width: 576px){footer .footer .logos{margin-bottom:30px;margin-top:36px;}}footer .footer .logos__logo{width:50px;height:50px;margin-right:45px;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;}footer .footer .logos__logo img{max-width:100%;max-height:100%;}footer .footer .socials{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;font-size:12px;gap:15px;}@media (max-width: 576px){footer .footer .socials{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;width:100%;}}footer .footer .socials>li{padding:0;margin:0;}footer .footer .socials__item{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;
39-webkit-justify-content:center;justify-content:center;font-size:unset;position:relative;background-color:var(--fontColor, #000);color:var(--bgColor, #fff);}footer .footer .socials__item svg{width:1em;height:1em;}footer .footer .socials__item:hover{background-color:hsla(var(--fontColor_H, 0), var(--fontColor_S, 0%), var(--fontColor_L, 0%), .7);}footer .footer__bottom{margin-top:55px;padding-bottom:24px;}footer .footer__bottom-copyrights{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;}@media (max-width: 768px){footer .footer__bottom-copyrights{-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;-webkit-align-items:flex-start;-webkit-box-align:flex-start;-ms-flex-align:flex-start;align-items:flex-start;}}footer .h-pot{height:0;width:0;overflow:hidden;visibility:hidden;}footer .img-wrap{max-width:100px;width:100%;}@media (min-width: 769px){footer .img-wrap{margin:0 20px 0 0;}}footer .img-wrap img{width:100%;object-fit:cover;}footer .logo-powered{font-size:18px;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;}@media (max-width: 768px){footer .logo-powered{-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;-webkit-align-items:flex-start;-webkit-box-align:flex-start;-ms-flex-align:flex-start;align-items:flex-start;}}@media (max-width: 768px){footer .copyright-box{margin:5px 0 0 0;padding:0;}}footer .luxury-link{white-space:nowrap;position:relative;display:inline-block;}footer .luxury-link:after{content:"";position:absolute;display:block;width:100%;height:1px;bottom:0;left:0;-webkit-transition:.3s all linear;transition:.3s all linear;background:currentColor;}footer .luxury-link:hover:after{width:0;}footer .footer__disclaimers{padding-top:24px;padding-bottom:24px;}footer .footer .newsletter__subscribe input[name='email']::-webkit-input-placeholder{color:var(--fontColor);}footer .footer .newsletter__subscribe input[name='email']::-moz-placeholder{color:var(--fontColor);}footer .footer .newsletter__subscribe input[name='email']:-ms-input-placeholder{color:var(--fontColor);}footer .footer .newsletter__subscribe input[name='email']::placeholder{color:var(--fontColor);}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
39ox='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
39699 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
3971 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;
39-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;
39height: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);}} 40 </style> 41 <style id="custom-style-css">.hyperlink-style-1{color:rgba(0, 0, 0, 1)!important;}.hyperlink-style-1:hover{color:rgba(26, 26, 26, 1)!important;}.button-style-1{color:rgba(121, 38, 23, 1)!important;background-color:rgba(0, 0, 0, 0)!important;border-color:rgba(121, 38, 23, 1)!important;}.button-style-1:hover{color:rgba(255,255,255,1)!important;background-color:rgba(121, 38, 23, 1)!important;border-color:rgba(121, 38, 23, 1)!important;}.social_icons-style-1 a{border-color:rgba(121, 38, 23, 1)!important;background-color:rgba(121, 38, 23, 1)!important;color:rgba(255, 255, 255, 1)!important;}.social_icons-style-1 a:hover{border-color:rgba(121, 38, 23, 1)!important;background-color:rgba(0, 0, 0, 0)!important;color:rgba(121, 38, 23, 1)!important;}.social_icons-style-1 a i{color:inherit!important;}
41.social_icons-style-1 a svg,.social_icons-style-1 a svg path{fill:currentColor!important;}.pagination-style-1 li a{color:rgba(121, 38, 23, 1)!important;background-color:rgba(0, 0, 0, 0)!important;border-color:rgba(0, 0, 0, 0)!important;}.pagination-style-1 li a:hover{color:rgba(255, 255, 255, 1)!important;background-color:rgba(121, 38, 23, 1)!important;border-color:rgba(121, 38, 23, 1)!important;}.pagination-style-1 li.active a{color:rgba(255, 255, 255, 1)!important;background-color:rgba(121, 38, 23, 1)!important;border-color:rgba(121, 38, 23, 1)!important;}.hyperlink-style-2{color:rgba(255, 255, 255, 1)!important;}.hyperlink-style-2:hover{color:rgba(255, 255, 255, 0.7)!important;}.social_icons-style-2 a{border-color:rgba(255, 255, 255, 1)!important;background-color:rgba(255, 255, 255, 1)!important;color:rgba(121, 38, 23, 1)!important;}.social_icons-style-2 a:hover{border-color:rgba(255, 255, 255, 1)!important;background-color:rgba(255, 255, 255, 0)!important;color:rgba(255, 255, 255, 1)!important;}.social_icons-style-2 a i{color:inherit!important;}
41.social_icons-style-2 a svg,.social_icons-style-2 a svg path{fill:currentColor!important;}.pagination-style-2 li a{color:rgba(255, 255, 255, 1)!important;background-color:rgba(0, 0, 0, 0)!important;border-color:rgba(0, 0, 0, 0)!important;}.pagination-style-2 li a:hover{color:rgba(121, 38, 23, 1)!important;background-color:rgba(255, 255, 255, 1)!important;border-color:rgba(255,255,255,1)!important;}.pagination-style-2 li.active a{color:rgba(121, 38, 23, 1)!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:rgba(121, 38, 23, 1)!important;background-color:rgba(255, 255, 255, 1)!important;border-color:rgba(255, 255, 255, 1)!important;}.button-style-5{color:rgba(255, 255, 255, 1)!important;background-color:rgba(121, 38, 23, 1)!important;border-color:rgba(121, 38, 23, 1)!important;}.button-style-5:hover{color:rgba(121, 38, 23, 1)!important;background-color:rgba(0, 0, 0, 0.01)!important;border-color:rgba(121, 38, 23, 1)!important;}.button-style-6{color:rgba(121, 38, 23, 1)!important;background-color:#FFFFFF!important;border-color:rgba(255, 255, 255, 1)!important;}.button-style-6:hover{color:#FFFFFF!important;background-color:rgba(0, 0, 0, 0)!important;border-color:#FFFFFF!important;}</style> 42 <!-- LP Consent bootstrap: blocking; resolves consent state, pushes Consent Mode 43 defaults, and dynamically loads the locale + main (and banner if needed). --> 44
44<script src="https://cdn.luxurypresence.com/scripts/lp-consent/latest/lp-consent-boot.js" data-website-id="ff06f655-0c64-45c8-9c55-e8468b4e5303"></script>
44 45 46 47
47<script> 48 (function utmParse() { 49 const url = new URL(window.location.href); 50 if (url.search) { 51 const utm = url.search.split(/\?|&/g).reduce((acc, current) => { 52 const matched = current.match(/utm_(content|campaign|medium|source|term|id)|gclid/g); 53 if (matched) { 54 acc[matched[0]] = current.replace(`${matched[0]}=`, ''); 55 } 56 return acc; 57 }, {}); 58 if (Object.keys(utm).length) { 59 window.localStorage.setItem('utm_vars', JSON.stringify(utm)); 60 } else { 61 // Remove old utm vars 62 window.localStorage.removeItem('utm_vars'); 63 } 64 } 65 // Set referrer in local storage 66 // This is meant to be stored once to avoid self-referrals and to have the first referrer only. 67 if (!window.localStorage.getItem('referrer')) { 68 // Capture the Referrer URL 69 const referrer = document.referrer; 70 if (referrer) { 71 // Only store the referrer if it comes from outside the current domain (to avoid self-referrals) 72 const currentDomain = window.location.hostname; 73 const referrerDomain = new URL(referrer).hostname; 74 75 if (referrerDomain !== currentDomain) { 76 // Store it in localStorage 77 localStorage.setItem('referrer', referrer); 78 } 79 } 80 } 81 })(); 82 </script>
82 83 <!-- Bing Webmaster Tools Verification -->
84<script> 85 // Check if on the homepage before the body loads 86 if (window.location.pathname === '/' || window.location.pathname === '/index.html') { 87 document.write('<meta name="msvalidate.01" content="1E5445451A7B3C43718A1C599CEBE653" />'); 88 } 89</script>
89 90 91 92<!-- Google tag (gtag.js) -->
vendor: 65 bytes, lines 92-93
92 93<script async src="https://www.googletagmanager.com/gtag/js?id=
93G-FY363TT7G6
vendor: 13 bytes, line 93
93"></script>
94<script>
vendor: 130 bytes, lines 95-98
95window.dataLayer = window.dataLayer || []; 96function gtag(){dataLayer.push(arguments);} 97gtag('js', new Date()); 98gtag('config', '
98G-FY363TT7G6
vendor: 5 bytes, line 98
98');
99</script>
99 100 <!-- GOOGLE TRANSLATE STYLES are moved to external CSS --> 101</head> 102<body> 103 <div id="google_translate_element" style="display: none"></div> 104 105 <div id="global-loader" style="height:100%;width:100%;position:fixed;z-index:9999;left:0;top:0;background-color:rgba(43, 43, 45, 1);overflow-x:hidden;transition:1s;"> 106 <div style="position:absolute;height:100vh;text-align:center;bottom:0;left:0;right: 0;display:flex;align-items:center;"> 107 <img style="margin:0 auto;" src="https://media-production.lp-cdn.com/cdn-cgi/image/format=auto,quality=85/https://media-production.lp-cdn.com/media/3d3c6319-f7f9-41fd-bc4d-d3c27b2149fb" /> 108 </div> 109 </div> 110
110<script> 111 if (window.sessionStorage.getItem('global_loading_displayed') === 'yes') { 112 (function () { 113 document.getElementById('global-loader').remove(); 114 })(); 115 } 116 </script>
116 117 118 <nav id="global-navbar" data-el-id="43e7a874-fb1e-4cdd-91fe-eb6bf5b9179b"> 119 <div class="redesign"> 120 <div class="content-container header"> 121 <div class="container header__container"> 122 <div class="navbar"> 123 <div class="logo"> 124 <a href="/" class="logo__link"> 125 <img src="https://media-production.lp-cdn.com/cdn-cgi/image/format=auto,quality=85/https://media-production.lp-cdn.com/media/124e6fd1-c91a-4767-8aec-b87e6e6b1291" 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/124e6fd1-c91a-4767-8aec-b87e6e6b1291 320w, https://media-production.lp-cdn.com/cdn-cgi/image/format=auto,quality=85/https://media-production.lp-cdn.com/media/124e6fd1-c91a-4767-8aec-b87e6e6b1291 598w" class="logo__img light" alt=""> 126 <img src="https://media-production.lp-cdn.com/cdn-cgi/image/format=auto,quality=85/https://media-production.lp-cdn.com/media/514fa9af-ef72-414f-b660-8b8edb538dab" 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/514fa9af-ef72-414f-b660-8b8edb538dab 320w, https://media-production.lp-cdn.com/cdn-cgi/image/format=auto,quality=85/https://media-production.lp-cdn.com/media/514fa9af-ef72-414f-b660-8b8edb538dab 598w" class="logo__img dark" alt=""> 127 </a> 128 </div> 129 <div class="navigation"> 130 <ul> 131 <li class="navigation__item"> 132 <a href="/" class="navigation__link wow fadeInUp" data-wow-delay="2.0"><span>Home</span></a> 133 </li> 134 <li class="navigation__item"> 135 <a href="/properties/sale" class="navigation__link wow fadeInUp" data-wow-delay="2.1"><span>Listings</span></a> 136 </li> 137 <li class="navigation__item sub-nav-container"> 138 <a href="#" class="navigation__link wow fadeInUp">Solds</a> 139 <div class="sub-nav"> 140 <ul> 141 <li class="sub-nav__item"><a href="/recent-sales" class="nav-link sub-nav__link feature"><span>RECENT SALES</span></a></li> 142 <li class="sub-nav__item"><a href="/high-end-sales" class="nav-link sub-nav__link feature"><span>HIGH END SALES</span></a></li> 143 </ul> 144 </div> 145 </li> 146 <li class="navigation__item"> 147 <a href="/team" class="navigation__link wow fadeInUp" data-wow-delay="2.3"><span>About</span></a> 148 </li> 149 <li class="navigation__item"> 150 <a href="/contact-us" class="navigation__link wow fadeInUp" data-wow-delay="2.4"><span>CONTACT</span></a> 151 </li> 152 <li class="navigation__item"> 153 <a target="_blank" href="https://www.instagram.com/muskokacottagesforsale/" class="navigation__link wow fadeInUp" data-wow-delay="2.5"><span>IG</span></a> 154 </li> 155 </ul> 156 </div> 157 <div class="buttons-wrapper"> 158 <button type="button" class="hamburger-component hamburger"> 159 <span class="hamburger__bars"></span> 160 </button> 161 </div> 162 </div> 163 </div> 164 </div> 165</div> 166 167 </nav> 168 <div id="global-sidemenu" class="sidemenu" data-el-id="744a0561-da45-4129-9fa6-398537851996"> 169 <div class="wrapper"> 170 <div class="holder"> 171 <div class="title">RICHARD SCULLY & ASSOCIATES</div> 172 <ul class="section-options"> 173 <li class="option"><a href="/">Home</a></li> 174 <li class="option"><a href="/properties/sale">Listings</a></li> 175 <li class="option sub-nav-container"> 176 <a href="#" class="link sub-nav-heading">Solds</a> 177 <div class="sub-nav"> 178 <ul> 179 <li><a href="/recent-sales" class="link sub-nav-link">Recent Sales</a></li> 180 <li><a href="/high-end-sales" class="link sub-nav-link">High End Sales</a></li> 181 </ul> 182 </div> 183 </li> 184 <li class="option"><a href="/team">About</a></li> 185 <li class="option"><a href="/Vlog">Video Gallery</a></li> 186 <li class="option"><a href="/contact-us">Contact</a></li> 187 </ul> 188 </div> 189 <button class="toggle sidemenu-close"></button> 190</div> 191 192 </div> 193 <div id="global-mobile-contact" class="mobile-contact-wrapper" data-el-id="befe5af2-a6ca-4119-924a-a85d96d36b51"> 194 <div class="btn-holder" 195style=" 196--backgroundColor: rgba(43, 43, 45, 1); 197--textColor: rgba(255, 255, 255, 1); 198--pillTextColor: rgba(121, 38, 23, 1);
199--pillBackgroundColor: rgba(255, 255, 255, 1);"> 200 201 <button type="button" class="connect-btn lp-ico lp-ico-arrow-top visible">Contact Us</button> 202</div> 203 204 205<div class="pop-up" style="--backgroundColor: rgba(43, 43, 45, 1); --textColor: rgba(255, 255, 255, 1);"> 206 <div class="lp-container"> 207 <form data-type="contact-form" class="contact-form"> 208 <div class="contact-form__container"> 209 <h3 class="lp-h3">Leave a Message</h3> 210 211 <div class="contact-form__content"> 212 <div class="contact-form__inputs-container"> 213 <div class="contact-form__item"> 214 <input 215 id="__FullName" 216 type="text" name="name" 217 class="lp-input lp-input--light" 218 required 219 placeholder="Full Name"> 220 </div> 221 <div class="contact-form__item"> 222 <input 223 id="__Email" 224 type="email" name="email" 225 class="lp-input js-email-input lp-input--light" 226 required 227 placeholder="Email"> 228 </div> 229 <div class="contact-form__item"> 230 <input 231 class="lp-input lp-input--light" 232 type="tel" 233 placeholder="Phone" 234 id="__Phone" 235 name="phone" 236 required> 237 </div> 238 239 <div class="contact-form__item input-group-select"> 240 <select name="interest" id="-field-interest" placeholder="Interest" 241 class="lp-input dropdown-select js-select js-form-element lp-input--light" required> 242 <option value="" disabled selected data-label="Interest">Interested in...</option> 243 <option value="Selling & Buying">Selling & Buying</option> 244 <option value="Selling">Selling</option> 245 <option value="Buying">Buying</option> 246 <option value="Renting">Renting</option> 247 <option value="Other">Other</option> 248 </select> 249 <label for="-field-interest" class="lp-label sr-only">Interest</label> 250 </div> 251 252 <div class="contact-form__item"> 253 <textarea 254 name="message" 255 rows="4" 256 id="__Message" 257 class="lp-input lp-input--light" 258 placeholder="Message" 259 required></textarea> 260 </div> 261 <div class="lp-disclaimer"> <label style='display: none;' for='-termsAccepted'>Opt In/Disclaimer Consent:</label> 262 <label class='lp-tcr-content'> 263 <span class='lp-tcr-checkbox'> 264 <input 265 type='checkbox' 266 id='-termsAccepted' 267 name='termsAccepted' 268 oninvalid="this.setCustomValidity('Please accept the terms and conditions')" 269 oninput="this.setCustomValidity('')" 270 required 271 /></span> 272 <span class='lp-tcr-message'> 273 274 I agree to be contacted by 275 Richard Scully & Associates 276 via call, email, and text for real estate services. To opt out, you can reply 'stop' at any time or reply 'help' for assistance. 277 You can also click the unsubscribe link in the emails. Message and data rates may apply. Message frequency may vary. 278 <a href='/terms-and-conditions' target='_blank'>Privacy Policy</a>. 279 </span> 280 </label> 281 282</div> 283 <button type="submit" class="lp-btn lp-btn--filled lp-btn--dark submit contact-form__item">Submit</button> 284 285 <div class="lp-h-pot"> 286 <input id="__newsSignMiddleName" name="middleName" value="" autocomplete="off" tabindex="-1"> 287 </div> 288 289 <input style="display: none;" type="text" name="source" value="CONTACT_INQUIRY" /> 290 <input type="hidden" name="button_text" value="Contact Us"> 291 </div> 292 </div> 293 </div> 294 295 296 <div class="success-block"> 297 <h3 class="lp-h3 success-message">Thank you for your message. We will be in touch with you shortly.</h3> 298 299 </div> 300 </form> 301 302 <button type="button" class="close-btn lp-ico lp-ico-close"></button> 303 304 305 </div> 306</div> 307 308 309 </div> 310 <section class="image-section is-font-color-light is-background-color-light" id="section-4071ae2a-c2c0-4fd1-a1c3-241c4cc001a0" data-el-id="e6c6941b-dd32-4d6b-b4aa-56593f2d58bb"> 311 <div class="redesign custom-intro"> 312 <div class="container"> 313 <h1 class="custom-intro__title">High End Sales</h1> 314 315 </div> 316</div> 317 318</section> 319<section id="section-5fa636d0-d142-4931-96c1-8a32e3f6aa3f" class="solid-section is-font-color-dark is-background-color-dark" data-el-id="aeaf061e-5cc8-4b4a-9963-23f50ba3820f">
320<script type="text/x-handlebars-template" class="gridItem pagination-script"><li class="property-list__item feature"> 321 <a class="property-list__item-link" href="{{#if fromMLS}}/home-search/listings/{{id}}{{^}}/properties/{{slug}}{{/if}}" {{#if fromMLS}} data-turbolinks="false" {{/if}}> 322 <div class="property-list__img"> 323 {{{mediaImage media.[0]}}} 324 {{#if openHouseHours}} 325 <div class="open-house label-house bf1">Open House: {{openHouseHours}}</div> 326 {{/if}} 327 </div> 328 <span class="property-list__label"> 329 {{formatPropertyStatus status false (hbFormatDate soldDate)}} 330 </span> 331 <div class="property-list__text"> 332 <h4 class="serif">{{name}}</h4> 333 {{#if privateAddress}} 334 <p> 335 Call for Address 336 </p> 337 {{else}} 338 {{#if fullAddress}} 339 <p> 340 {{fullAddress}} 341 </p> 342 {{else}} 343 <p> 344 Call For Address 345 </p> 346 {{/if}} 347 {{/if}} 348 <p> 349 {{#if bedroomCount}} 350 {{bedroomCount}} BD | 351 {{else}} 352 {{#ifIn "daf8aaa2-8b6f-4f2d-a324-754e0316d2b6" (JSONstringify types)}} 353 {{#ifEquals bedroomCount 0}} 354 Studio | 355 {{/ifEquals}} 356 {{else}} 357 {{#ifIn "dea9daeb-4eb9-4bd8-8380-1a5c9384e817" (JSONstringify types)}} 358 {{#ifEquals bedroomCount 0}} 359 Studio | 360 {{/ifEquals}} 361 {{else}} 362 {{#ifIn "d6b17d8b-a7a2-4de5-95c0-c2783b26de7a" (JSONstringify types)}} 363 {{#ifEquals bedroomCount 0}} 364 Studio | 365 {{/ifEquals}} 366 {{else}} 367 {{#ifIn "9ac67b4b-bf76-4e0d-999e-701908f8f9ab" (JSONstringify types)}} 368 {{#ifEquals bedroomCount 0}} 369 Studio | 370 {{/ifEquals}} 371 {{else}} 372 {{#ifIn "9a70fec3-5946-4d04-9acb-74d98781f636" (JSONstringify types)}} 373 {{#ifEquals bedroomCount 0}} 374 Studio | 375 {{/ifEquals}} 376 {{else}} 377 {{#ifIn "c68279bc-2904-4ab8-9e84-42ecf6af008c" (JSONstringify types)}} 378 {{#ifEquals bedroomCount 0}} 379 Studio | 380 {{/ifEquals}} 381 {{/ifIn}} 382 {{/ifIn}} 383 {{/ifIn}} 384 {{/ifIn}} 385 {{/ifIn}} 386 {{/ifIn}} 387 {{/if}} 388 {{#if bathCount}} 389 {{bathCount}} BA 390 {{#if livingSpaceSize}} 391 | 392 {{/if}} 393 {{/if}} 394 {{#ifIn "2c63593e-4869-41f8-bc78-03fa80e24580" (JSONstringify types)}} 395 {{#if lotAreaSize}} {{lpFormatNumber lotAreaSize}} {{formatAreaUnit lotAreaUnits}}{{/if}} 396 {{else}} 397 {{#if livingSpaceSize}} {{lpFormatNumber livingSpaceSize}} {{formatAreaUnit livingSpaceUnits}}{{/if}} 398 {{/ifIn}} 399 </p> 400 <h5 style="text-transform: capitalize"> 401 {{formatPropertyPrice this}} 402 </h5> 403 </div> 404 </a> 405 406 407 <div class="property-list__hover"> 408 <a href="{{#if fromMLS}}/home-search/listings/{{id}}{{^}}/properties/{{slug}}{{/if}}" {{#if fromMLS}} data-turbolinks="false" {{/if}} class="hover-link"></a> 409 <div class="property-list__buttons"> 410 <a class="property-list__view" href="{{#if fromMLS}}/home-search/listings/{{id}}{{^}}/properties/{{slug}}{{/if}}" {{#if fromMLS}} data-turbolinks="false" {{/if}}> 411 <button class="btn btn--primary-dark button-style-5">VIEW PROPERTY</button> 412 <button class="btn btn--primary-light button-style-5">VIEW PROPERTY</button> 413 </a> 414 <div class="property-list__share"> 415 <a class="btn btn--primary-dark button-style-5">SHARE PROPERTY</a> 416 <a class="btn btn--primary-light button-style-5">SHARE PROPERTY</a> 417 <ul class="socials socials--block-dark"> 418 <li><a href="https://www.facebook.com/sharer/sharer.php?u=https://muskokacottagesforsale.com/properties/{{slug}}" target="_blank" class="socials__link"><i class="lp-i lp-i--facebook"></i></a></li> 419 <li><a href="https://twitter.com/intent/tweet?url=https://muskokacottagesforsale.com/properties/{{slug}}&text={{name}}" target="_blank" class="socials__link"><i class="lp-i lp-i--twitter"></i></a></li> 420 <li><a href="mailto:?subject={{name}}&body={{name}} - https://muskokacottagesforsale.com/properties/{{slug}}" class="socials__link" target="_blank"><i class="lp-i lp-i--envelope"></i></a></li> 421 </ul> 422 </div> 423 </div> 424 </div> 425</li> 426</script>
426 427<div class="redesign property-list-section"> 428 <div> 429 <div class="container"> 430 <ul class="property-list data-container"> 431 <li class="property-list__item feature"> 432 <a class="property-list__item-link" href="/properties/lake-muskoka-mortimers-point" > 433 <div class="property-list__img"> 434 <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/40773907-f6e9-44cf-a1c1-28bf3dcc2423" 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/40773907-f6e9-44cf-a1c1-28bf3dcc2423 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/40773907-f6e9-44cf-a1c1-28bf3dcc2423 1280w, https://media-production.lp-cdn.com/cdn-cgi/image/format=auto,quality=85/https://media-production.lp-cdn.com/media/40773907-f6e9-44cf-a1c1-28bf3dcc2423 1800w" alt="" loading="lazy"> 435 </div> 436 <span class="property-list__label"> 437 Sold 438 </span> 439 <div class="property-list__text"> 440 <h4 class="serif">Mortimer's Point*</h4> 441 <p> 442 Lake Muskoka 443 </p> 444 <p> 445 446 </p> 447 <h5 style="text-transform: capitalize"> 448 $16,995,000 449 </h5> 450 </div> 451 </a> 452 453 454 <div class="property-list__hover"> 455 <a href="/properties/lake-muskoka-mortimers-point" class="hover-link"></a> 456 <div class="property-list__buttons"> 457 <a class="property-list__view" href="/properties/lake-muskoka-mortimers-point" > 458 <button class="btn btn--primary-dark button-style-5">VIEW PROPERTY</button> 459 <button class="btn btn--primary-light button-style-5">VIEW PROPERTY</button> 460 </a> 461 <div class="property-list__share"> 462 <a class="btn btn--primary-dark button-style-5">SHARE PROPERTY</a> 463 <a class="btn btn--primary-light button-style-5">SHARE PROPERTY</a> 464 <ul class="socials socials--block-dark"> 465 <li><a href="https://www.facebook.com/sharer/sharer.php?u=https://muskokacottagesforsale.com/properties/lake-muskoka-mortimers-point" target="_blank" class="socials__link"><i class="lp-i lp-i--facebook"></i></a></li> 466 <li><a href="https://twitter.com/intent/tweet?url=https://muskokacottagesforsale.com/properties/lake-muskoka-mortimers-point&text=Mortimer's Point*" target="_blank" class="socials__link"><i class="lp-i lp-i--twitter"></i></a></li> 467 <li><a href="/cdn-cgi/l/email-protection#78470b0d1a121d1b0c4535170a0c11151d0a5e5b004a4f430b58281711160c525e1a171c014535170a0c11151d0a5e5b004a4f430b58281711160c52585558100c0c080b425757150d0b131713191b170c0c191f1d0b1e170a0b19141d561b171557080a17081d0a0c111d0b571419131d55150d0b131713195515170a0c11151d0a0b55081711160c" class="socials__link" target="_blank"><i class="lp-i lp-i--envelope"></i></a></li> 468 </ul> 469 </div> 470 </div> 471 </div> 472 </li> 473 <li class="property-list__item feature"> 474 <a class="property-list__item-link" href="/properties/port-sandfield" > 475 <div class="property-list__img"> 476 <img src="https://media-production.lp-cdn.com/cdn-cgi/image/format=auto,quality=85/https://media-production.lp-cdn.com/media/342a74c8-6867-46d5-9d9b-a4fd79cd091a" 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/342a74c8-6867-46d5-9d9b-a4fd79cd091a 960w, https://media-production.lp-cdn.com/cdn-cgi/image/format=auto,quality=85/https://media-production.lp-cdn.com/media/342a74c8-6867-46d5-9d9b-a4fd79cd091a 1024w" alt="" loading="lazy"> 477 </div>
478 <span class="property-list__label"> 479 Sold 480 </span> 481 <div class="property-list__text"> 482 <h4 class="serif">Port Sandfield</h4> 483 <p> 484 Lake Joseph 485 </p> 486 <p> 487 488 </p> 489 <h5 style="text-transform: capitalize"> 490 $14,995,000 491 </h5> 492 </div> 493 </a> 494 495 496 <div class="property-list__hover"> 497 <a href="/properties/port-sandfield" class="hover-link"></a> 498 <div class="property-list__buttons"> 499 <a class="property-list__view" href="/properties/port-sandfield" > 500 <button class="btn btn--primary-dark button-style-5">VIEW PROPERTY</button> 501 <button class="btn btn--primary-light button-style-5">VIEW PROPERTY</button> 502 </a> 503 <div class="property-list__share"> 504 <a class="btn btn--primary-dark button-style-5">SHARE PROPERTY</a> 505 <a class="btn btn--primary-light button-style-5">SHARE PROPERTY</a> 506 <ul class="socials socials--block-dark"> 507 <li><a href="https://www.facebook.com/sharer/sharer.php?u=https://muskokacottagesforsale.com/properties/port-sandfield" target="_blank" class="socials__link"><i class="lp-i lp-i--facebook"></i></a></li> 508 <li><a href="https://twitter.com/intent/tweet?url=https://muskokacottagesforsale.com/properties/port-sandfield&text=Port Sandfield" target="_blank" class="socials__link"><i class="lp-i lp-i--twitter"></i></a></li> 509 <li><a href="/cdn-cgi/l/email-protection#ba85c9cfd8d0dfd9ce87ead5c8ce9ae9dbd4dedcd3dfd6de9cd8d5dec387ead5c8ce9ae9dbd4dedcd3dfd6de9a979ad2cececac9809595d7cfc9d1d5d1dbd9d5cecedbdddfc9dcd5c8c9dbd6df94d9d5d795cac8d5cadfc8ced3dfc995cad5c8ce97c9dbd4dedcd3dfd6de" class="socials__link" target="_blank"><i class="lp-i lp-i--envelope"></i></a></li> 510 </ul> 511 </div> 512 </div> 513 </div> 514 </li> 515 <li class="property-list__item feature"> 516 <a class="property-list__item-link" href="/properties/north-lake-joseph" > 517 <div class="property-list__img"> 518 <img src="https://media-production.lp-cdn.com/cdn-cgi/image/format=auto,quality=85/https://media-production.lp-cdn.com/media/10ff24bd-a236-4445-a3d5-db3933078aeb" 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/10ff24bd-a236-4445-a3d5-db3933078aeb 960w, https://media-production.lp-cdn.com/cdn-cgi/image/format=auto,quality=85/https://media-production.lp-cdn.com/media/10ff24bd-a236-4445-a3d5-db3933078aeb 1200w" alt="" loading="lazy"> 519 </div> 520 <span class="property-list__label"> 521 Sold 522 </span> 523 <div class="property-list__text"> 524 <h4 class="serif">North Lake Joseph*</h4> 525 <p> 526 Lake Joseph 527 </p> 528 <p> 529 530 </p> 531 <h5 style="text-transform: capitalize"> 532 $14,700,000 533 </h5> 534 </div> 535 </a> 536 537 538 <div class="property-list__hover"> 539 <a href="/properties/north-lake-joseph" class="hover-link"></a> 540 <div class="property-list__buttons"> 541 <a class="property-list__view" href="/properties/north-lake-joseph" > 542 <button class="btn btn--primary-dark button-style-5">VIEW PROPERTY</button> 543 <button class="btn btn--primary-light button-style-5">VIEW PROPERTY</button> 544 </a> 545 <div class="property-list__share"> 546 <a class="btn btn--primary-dark button-style-5">SHARE PROPERTY</a> 547 <a class="btn btn--primary-light button-style-5">SHARE PROPERTY</a> 548 <ul class="socials socials--block-dark"> 549 <li><a href="https://www.facebook.com/sharer/sharer.php?u=https://muskokacottagesforsale.com/properties/north-lake-joseph" target="_blank" class="socials__link"><i class="lp-i lp-i--facebook"></i></a></li> 550 <li><a href="https://twitter.com/intent/tweet?url=https://muskokacottagesforsale.com/properties/north-lake-joseph&text=North Lake Joseph*" target="_blank" class="socials__link"><i class="lp-i lp-i--twitter"></i></a></li> 551 <li><a href="/cdn-cgi/l/email-protection#83bcf0f6e1e9e6e0f7becdecf1f7eba3cfe2e8e6a3c9ecf0e6f3eba9a5e1ece7fabecdecf1f7eba3cfe2e8e6a3c9ecf0e6f3eba9a3aea3ebf7f7f3f0b9acaceef6f0e8ece8e2e0ecf7f7e2e4e6f0e5ecf1f0e2efe6ade0eceeacf3f1ecf3e6f1f7eae6f0acedecf1f7ebaeefe2e8e6aee9ecf0e6f3eb" class="socials__link" target="_blank"><i class="lp-i lp-i--envelope"></i></a></li> 552 </ul> 553 </div> 554 </div> 555 </div> 556 </li> 557 <li class="property-list__item feature"> 558 <a class="property-list__item-link" href="/properties/winterberry" > 559 <div class="property-list__img"> 560 <img src="https://media-production.lp-cdn.com/cdn-cgi/image/format=auto,quality=85/https://media-production.lp-cdn.com/media/b89f0d19-075e-4d30-a774-226347b70bf7" 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/b89f0d19-075e-4d30-a774-226347b70bf7 960w, https://media-production.lp-cdn.com/cdn-cgi/image/format=auto,quality=85/https://media-production.lp-cdn.com/media/b89f0d19-075e-4d30-a774-226347b70bf7 1024w" alt="" loading="lazy"> 561 </div>
562 <span class="property-list__label"> 563 Sold 564 </span> 565 <div class="property-list__text"> 566 <h4 class="serif">Winterberry</h4> 567 <p> 568 Lake Joseph 569 </p> 570 <p> 571 572 </p> 573 <h5 style="text-transform: capitalize"> 574 $14,700,000 575 </h5> 576 </div> 577 </a> 578 579 580 <div class="property-list__hover"> 581 <a href="/properties/winterberry" class="hover-link"></a> 582 <div class="property-list__buttons"> 583 <a class="property-list__view" href="/properties/winterberry" > 584 <button class="btn btn--primary-dark button-style-5">VIEW PROPERTY</button> 585 <button class="btn btn--primary-light button-style-5">VIEW PROPERTY</button> 586 </a> 587 <div class="property-list__share"> 588 <a class="btn btn--primary-dark button-style-5">SHARE PROPERTY</a> 589 <a class="btn btn--primary-light button-style-5">SHARE PROPERTY</a> 590 <ul class="socials socials--block-dark"> 591 <li><a href="https://www.facebook.com/sharer/sharer.php?u=https://muskokacottagesforsale.com/properties/winterberry" target="_blank" class="socials__link"><i class="lp-i lp-i--facebook"></i></a></li> 592 <li><a href="https://twitter.com/intent/tweet?url=https://muskokacottagesforsale.com/properties/winterberry&text=Winterberry" target="_blank" class="socials__link"><i class="lp-i lp-i--twitter"></i></a></li> 593 <li><a href="/cdn-cgi/l/email-protection#e0df9395828a858394ddb7898e9485928285929299c6828f8499ddb7898e9485928285929299c0cdc08894949093dacfcf8d95938b8f8b81838f949481878593868f9293818c85ce838f8dcf90928f90859294898593cf97898e9485928285929299" class="socials__link" target="_blank"><i class="lp-i lp-i--envelope"></i></a></li> 594 </ul> 595 </div> 596 </div> 597 </div> 598 </li> 599 <li class="property-list__item feature"> 600 <a class="property-list__item-link" href="/properties/windrush" > 601 <div class="property-list__img"> 602 <img src="https://media-production.lp-cdn.com/cdn-cgi/image/format=auto,quality=85/https://media-production.lp-cdn.com/media/f22eb155-5e32-4fc4-9d9a-01b97bba1441" 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/f22eb155-5e32-4fc4-9d9a-01b97bba1441 960w, https://media-production.lp-cdn.com/cdn-cgi/image/format=auto,quality=85/https://media-production.lp-cdn.com/media/f22eb155-5e32-4fc4-9d9a-01b97bba1441 1024w" alt="" loading="lazy"> 603 </div> 604 <span class="property-list__label"> 605 Sold 606 </span> 607 <div class="property-list__text"> 608 <h4 class="serif">âWindrushâ**</h4> 609 <p> 610 Lake Rosseau 611 </p> 612 <p> 613 614 </p> 615 <h5 style="text-transform: capitalize"> 616 $13,779,000 617 </h5> 618 </div> 619 </a> 620 621 622 <div class="property-list__hover"> 623 <a href="/properties/windrush" class="hover-link"></a> 624 <div class="property-list__buttons"> 625 <a class="property-list__view" href="/properties/windrush" > 626 <button class="btn btn--primary-dark button-style-5">VIEW PROPERTY</button> 627 <button class="btn btn--primary-light button-style-5">VIEW PROPERTY</button> 628 </a> 629 <div class="property-list__share"> 630 <a class="btn btn--primary-dark button-style-5">SHARE PROPERTY</a> 631 <a class="btn btn--primary-light button-style-5">SHARE PROPERTY</a> 632 <ul class="socials socials--block-dark"> 633 <li><a href="https://www.facebook.com/sharer/sharer.php?u=https://muskokacottagesforsale.com/properties/windrush" target="_blank" class="socials__link"><i class="lp-i lp-i--facebook"></i></a></li> 634 <li><a href="https://twitter.com/intent/tweet?url=https://muskokacottagesforsale.com/properties/windrush&text=âWindrushâ**" target="_blank" class="socials__link"><i class="lp-i lp-i--twitter"></i></a></li> 635 <li><a href="/cdn-cgi/l/email-protection#f6c98583949c939582cb14766aa19f98928483859e14766bdcdcd09499928fcb
63514766aa19f98928483859e14766bdcdcd6dbd69e82828685ccd9d99b83859d999d97959982829791938590998485979a93d895999bd9868499869384829f9385d9819f98928483859e" class="socials__link" target="_blank"><i class="lp-i lp-i--envelope"></i></a></li> 636 </ul> 637 </div> 638 </div> 639 </div> 640 </li> 641 <li class="property-list__item feature"> 642 <a class="property-list__item-link" href="/properties/brackenrig" > 643 <div class="property-list__img"> 644 <img src="https://media-production.lp-cdn.com/cdn-cgi/image/format=auto,quality=85/https://media-production.lp-cdn.com/media/cdf156f5-fb26-4f52-97ff-bd8dd0aae452" 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/cdf156f5-fb26-4f52-97ff-bd8dd0aae452 960w, https://media-production.lp-cdn.com/cdn-cgi/image/format=auto,quality=85/https://media-production.lp-cdn.com/media/cdf156f5-fb26-4f52-97ff-bd8dd0aae452 1024w" alt="" loading="lazy"> 645 </div> 646 <span class="property-list__label"> 647 Sold 648 </span> 649 <div class="property-list__text"> 650 <h4 class="serif">Brackenrig</h4> 651 <p> 652 Lake Rosseau 653 </p> 654 <p> 655 656 </p> 657 <h5 style="text-transform: capitalize"> 658 $12,999,000 659 </h5> 660 </div> 661 </a> 662 663 664 <div class="property-list__hover"> 665 <a href="/properties/brackenrig" class="hover-link"></a> 666 <div class="property-list__buttons"> 667 <a class="property-list__view" href="/properties/brackenrig" > 668 <button class="btn btn--primary-dark button-style-5">VIEW PROPERTY</button> 669 <button class="btn btn--primary-light button-style-5">VIEW PROPERTY</button> 670 </a> 671 <div class="property-list__share"> 672 <a class="btn btn--primary-dark button-style-5">SHARE PROPERTY</a> 673 <a class="btn btn--primary-light button-style-5">SHARE PROPERTY</a> 674 <ul class="socials socials--block-dark"> 675 <li><a href="https://www.facebook.com/sharer/sharer.php?u=https://muskokacottagesforsale.com/properties/brackenrig" target="_blank" class="socials__link"><i class="lp-i lp-i--facebook"></i></a></li> 676 <li><a href="https://twitter.com/intent/tweet?url=https://muskokacottagesforsale.com/properties/brackenrig&text=Brackenrig" target="_blank" class="socials__link"><i class="lp-i lp-i--twitter"></i></a></li> 677 <li><a href="/cdn-cgi/l/email-protection#6b54181e09010e081f5629190a08000e0519020c4d09040f125629190a08000e0519020c4b464b031f1f1b18514444061e180004000a08041f1f0a0c0e180d0419180a070e45080406441b19041b0e191f020e184409190a08000e0519020c" class="socials__link" target="_blank"><i class="lp-i lp-i--envelope"></i></a></li> 678 </ul> 679 </div> 680 </div> 681 </div> 682 </li> 683 <li class="property-list__item feature"> 684 <a class="property-list__item-link" href="/properties/hemlock-point" > 685 <div class="property-list__img"> 686 <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/9b2f56e5-8745-4bc6-b29a-b4ca30b9306c" 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/9b2f56e5-8745-4bc6-b29a-b4ca30b9306c 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/9b2f56e5-8745-4bc6-b29a-b4ca30b9306c 1280w, https://media-production.lp-cdn.com/cdn-cgi/image/format=auto,quality=85,fit=scale-down,width=1920/https://media-production.lp-cdn.com/media/9b2f56e5-8745-4bc6-b29a-b4ca30b9306c 1920w, https://media-production.lp-cdn.com/cdn-cgi/image/format=auto,quality=85,fit=scale-down,width=2560/https://media-production.lp-cdn.com/media/9b2f56e5-8745-4bc6-b29a-b4ca30b9306c 2560w, https://media-production.lp-cdn.com/cdn-cgi/image/format=auto,quality=85,fit=scale-down,width=3456/https://media-production.lp-cdn.com/media/9b2f56e5-8745-4bc6-b29a-b4ca30b9306c 3456w" alt="" loading="lazy"> 687 </div>
688 <span class="property-list__label"> 689 Sold 690 </span> 691 <div class="property-list__text"> 692 <h4 class="serif">Hemlock Point</h4> 693 <p> 694 Lake Joseph 695 </p> 696 <p> 697 698 </p> 699 <h5 style="text-transform: capitalize"> 700 $12,900,000 701 </h5> 702 </div> 703 </a> 704 705 706 <div class="property-list__hover"> 707 <a href="/properties/hemlock-point" class="hover-link"></a> 708 <div class="property-list__buttons"> 709 <a class="property-list__view" href="/properties/hemlock-point" > 710 <button class="btn btn--primary-dark button-style-5">VIEW PROPERTY</button> 711 <button class="btn btn--primary-light button-style-5">VIEW PROPERTY</button> 712 </a> 713 <div class="property-list__share"> 714 <a class="btn btn--primary-dark button-style-5">SHARE PROPERTY</a> 715 <a class="btn btn--primary-light button-style-5">SHARE PROPERTY</a> 716 <ul class="socials socials--block-dark"> 717 <li><a href="https://www.facebook.com/sharer/sharer.php?u=https://muskokacottagesforsale.com/properties/hemlock-point" target="_blank" class="socials__link"><i class="lp-i lp-i--facebook"></i></a></li> 718 <li><a href="https://twitter.com/intent/tweet?url=https://muskokacottagesforsale.com/properties/hemlock-point&text=Hemlock Point" target="_blank" class="socials__link"><i class="lp-i lp-i--twitter"></i></a></li> 719 <li><a href="/cdn-cgi/l/email-protection#2f105c5a4d454a4c5b12674a4243404c440f7f4046415b094d404b5612674a4243404c440f7f4046415b0f020f475b5b5f5c150000425a5c4440444e4c405b5b4e484a5c49405d5c4e434a014c4042005f5d405f4a5d5b464a5c00474a4243404c44025f4046415b" class="socials__link" target="_blank"><i class="lp-i lp-i--envelope"></i></a></li> 720 </ul> 721 </div> 722 </div> 723 </div> 724 </li> 725 <li class="property-list__item feature"> 726 <a class="property-list__item-link" href="/properties/mcleod-road" > 727 <div class="property-list__img"> 728 <img src="https://media-production.lp-cdn.com/cdn-cgi/image/format=auto,quality=85/https://media-production.lp-cdn.com/media/ffb7d2aa-4491-4fc9-a739-4c4257bedb45" 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/ffb7d2aa-4491-4fc9-a739-4c4257bedb45 960w, https://media-production.lp-cdn.com/cdn-cgi/image/format=auto,quality=85/https://media-production.lp-cdn.com/media/ffb7d2aa-4491-4fc9-a739-4c4257bedb45 1024w" alt="" loading="lazy"> 729 </div> 730 <span class="property-list__label"> 731 Sold 732 </span> 733 <div class="property-list__text"> 734 <h4 class="serif">McLeod Rd**</h4> 735 <p> 736 Lake Rosseau 737 </p> 738 <p> 739 740 </p> 741 <h5 style="text-transform: capitalize"> 742 $12,790,000 743 </h5> 744 </div> 745 </a> 746 747 748 <div class="property-list__hover"> 749 <a href="/properties/mcleod-road" class="hover-link"></a> 750 <div class="property-list__buttons"> 751 <a class="property-list__view" href="/properties/mcleod-road" > 752 <button class="btn btn--primary-dark button-style-5">VIEW PROPERTY</button> 753 <button class="btn btn--primary-light button-style-5">VIEW PROPERTY</button> 754 </a> 755 <div class="property-list__share"> 756 <a class="btn btn--primary-dark button-style-5">SHARE PROPERTY</a> 757 <a class="btn btn--primary-light button-style-5">SHARE PROPERTY</a> 758 <ul class="socials socials--block-dark"> 759 <li><a href="https://www.facebook.com/sharer/sharer.php?u=https://muskokacottagesforsale.com/properties/mcleod-road" target="_blank" class="socials__link"><i class="lp-i lp-i--facebook"></i></a></li> 760 <li><a href="https://twitter.com/intent/tweet?url=https://muskokacottagesforsale.com/properties/mcleod-road&text=McLeod Rd**" target="_blank" class="socials__link"><i class="lp-i lp-i--twitter"></i></a></li> 761 <li><a href="/cdn-cgi/l/email-protection#f0cf8385929a959384cdbd93bc959f94d0a294dadad6929f9489cdbd93bc959f94d0a294dadad0ddd09884848083cadfdf9d85839b9f9b91939f848491979583969f8283919c95de939f9ddf80829f80958284999583df9d939c959f94dd829f9194" class="socials__link" target="_blank"><i class="lp-i lp-i--envelope"></i></a></li> 762 </ul> 763 </div> 764 </div> 765 </div> 766 </li> 767 <li class="property-list__item feature"> 768 <a class="property-list__item-link" href="/properties/hemlock-point-1" > 769 <div class="property-list__img"> 770 <img src="https://media-production.lp-cdn.com/cdn-cgi/image/format=auto,quality=85/https://media-production.lp-cdn.com/media/aefabff9-213f-404c-9b93-e338399477fa" 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/aefabff9-213f-404c-9b93-e338399477fa 960w, https://media-production.lp-cdn.com/cdn-cgi/image/format=auto,quality=85/https://media-production.lp-cdn.com/media/aefabff9-213f-404c-9b93-e338399477fa 1024w" alt="" loading="lazy"> 771 </div>
772 <span class="property-list__label"> 773 Sold 774 </span> 775 <div class="property-list__text"> 776 <h4 class="serif">Hemlock Point*</h4> 777 <p> 778 Lake Joseph 779 </p> 780 <p> 781 782 </p> 783 <h5 style="text-transform: capitalize"> 784 $12,500,000 785 </h5> 786 </div> 787 </a> 788 789 790 <div class="property-list__hover"> 791 <a href="/properties/hemlock-point-1" class="hover-link"></a> 792 <div class="property-list__buttons"> 793 <a class="property-list__view" href="/properties/hemlock-point-1" > 794 <button class="btn btn--primary-dark button-style-5">VIEW PROPERTY</button> 795 <button class="btn btn--primary-light button-style-5">VIEW PROPERTY</button> 796 </a> 797 <div class="property-list__share"> 798 <a class="btn btn--primary-dark button-style-5">SHARE PROPERTY</a> 799 <a class="btn btn--primary-light button-style-5">SHARE PROPERTY</a> 800 <ul class="socials socials--block-dark"> 801 <li><a href="https://www.facebook.com/sharer/sharer.php?u=https://muskokacottagesforsale.com/properties/hemlock-point-1" target="_blank" class="socials__link"><i class="lp-i lp-i--facebook"></i></a></li> 802 <li><a href="https://twitter.com/intent/tweet?url=https://muskokacottagesforsale.com/properties/hemlock-point-1&text=Hemlock Point*" target="_blank" class="socials__link"><i class="lp-i lp-i--twitter"></i></a></li> 803 <li><a href="/cdn-cgi/l/email-protection#ebd4989e89818e889fd6a38e8687848880cbbb8482859fc1cd89848f92d6a38e8687848880cbbb8482859fc1cbc6cb839f9f9b98d1c4c4869e988084808a88849f9f8a8c8e988d8499988a878ec5888486c49b99849b8e999f828e98c4838e8687848880c69b8482859fc6da" class="socials__link" target="_blank"><i class="lp-i lp-i--envelope"></i></a></li> 804 </ul> 805 </div> 806 </div> 807 </div> 808 </li> 809 <li class="property-list__item feature"> 810 <a class="property-list__item-link" href="/properties/arthurlie-bay" > 811 <div class="property-list__img"> 812 <img src="https://media-production.lp-cdn.com/cdn-cgi/image/format=auto,quality=85/https://media-production.lp-cdn.com/media/5624488d-248e-4d2e-b4c8-76c87753565e" 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/5624488d-248e-4d2e-b4c8-76c87753565e 960w, https://media-production.lp-cdn.com/cdn-cgi/image/format=auto,quality=85/https://media-production.lp-cdn.com/media/5624488d-248e-4d2e-b4c8-76c87753565e 1024w" alt="" loading="lazy"> 813 </div> 814 <span class="property-list__label"> 815 Sold 816 </span> 817 <div class="property-list__text"> 818 <h4 class="serif">Arthurlie Bay*</h4> 819 <p> 820 Lake Rosseau 821 </p> 822 <p> 823 824 </p> 825 <h5 style="text-transform: capitalize"> 826 $11,999,000 827 </h5> 828 </div> 829 </a> 830 831 832 <div class="property-list__hover"> 833 <a href="/properties/arthurlie-bay" class="hover-link"></a> 834 <div class="property-list__buttons"> 835 <a class="property-list__view" href="/properties/arthurlie-bay" > 836 <button class="btn btn--primary-dark button-style-5">VIEW PROPERTY</button> 837 <button class="btn btn--primary-light button-style-5">VIEW PROPERTY</button> 838 </a> 839 <div class="property-list__share"> 840 <a class="btn btn--primary-dark button-style-5">SHARE PROPERTY</a> 841 <a class="btn btn--primary-light button-style-5">SHARE PROPERTY</a> 842 <ul class="socials socials--block-dark"> 843 <li><a href="https://www.facebook.com/sharer/sharer.php?u=https://muskokacottagesforsale.com/properties/arthurlie-bay" target="_blank" class="socials__link"><i class="lp-i lp-i--facebook"></i></a></li> 844 <li><a href="https://twitter.com/intent/tweet?url=https://muskokacottagesforsale.com/properties/arthurlie-bay&text=Arthurlie Bay*" target="_blank" class="socials__link"><i class="lp-i lp-i--twitter"></i></a></li> 845 <li><a href="/cdn-cgi/l/email-protection#84bbf7f1e6eee1e7f0b9c5f6f0ecf1f6e8ede1a4c6e5fdaea2e6ebe0fdb9c5f6f0ecf1f6e8ede1a4c6e5fdaea4a9a4ecf0f0f4f7beababe9f1f7efebefe5e7ebf0f0e5e3e1f7e2ebf6f7e5e8e1aae7ebe9abf4f6ebf4e1f6f0ede1f7abe5f6f0ecf1f6e8ede1a9e6e5fd" class="socials__link" target="_blank"><i class="lp-i lp-i--envelope"></i></a></li> 846 </ul> 847 </div> 848 </div> 849 </div> 850 </li> 851 <li class="property-list__item feature"> 852 <a class="property-list__item-link" href="/properties/north-lake-joseph-1" > 853 <div class="property-list__img"> 854 <img src="https://media-production.lp-cdn.com/cdn-cgi/image/format=auto,quality=85/https://media-production.lp-cdn.com/media/f9b75312-e689-457a-b641-e5f6594da771" alt="" loading="lazy"> 855 </div>
856 <span class="property-list__label"> 857 Sold 858 </span> 859 <div class="property-list__text"> 860 <h4 class="serif">North Lake Joseph*</h4> 861 <p> 862 Lake Joseph 863 </p> 864 <p> 865 866 </p> 867 <h5 style="text-transform: capitalize"> 868 $10,900,000 869 </h5> 870 </div> 871 </a> 872 873 874 <div class="property-list__hover"> 875 <a href="/properties/north-lake-joseph-1" class="hover-link"></a> 876 <div class="property-list__buttons"> 877 <a class="property-list__view" href="/properties/north-lake-joseph-1" > 878 <button class="btn btn--primary-dark button-style-5">VIEW PROPERTY</button> 879 <button class="btn btn--primary-light button-style-5">VIEW PROPERTY</button> 880 </a> 881 <div class="property-list__share"> 882 <a class="btn btn--primary-dark button-style-5">SHARE PROPERTY</a> 883 <a class="btn btn--primary-light button-style-5">SHARE PROPERTY</a> 884 <ul class="socials socials--block-dark"> 885 <li><a href="https://www.facebook.com/sharer/sharer.php?u=https://muskokacottagesforsale.com/properties/north-lake-joseph-1" target="_blank" class="socials__link"><i class="lp-i lp-i--facebook"></i></a></li> 886 <li><a href="https://twitter.com/intent/tweet?url=https://muskokacottagesforsale.com/properties/north-lake-joseph-1&text=North Lake Joseph*" target="_blank" class="socials__link"><i class="lp-i lp-i--twitter"></i></a></li> 887 <li><a href="/cdn-cgi/l/email-protection#92ade1e7f0f8f7f1e6afdcfde0e6fab2def3f9f7b2d8fde1f7e2fab8b4f0fdf6ebafdcfde0e6fab2def3f9f7b2d8fde1f7e2fab8b2bfb2fae6e6e2e1a8bdbdffe7e1f9fdf9f3f1fde6e6f3f5f7e1f4fde0e1f3fef7bcf1fdffbde2e0fde2f7e0e6fbf7e1bdfcfde0e6fabffef3f9f7bff8fde1f7e2fabfa3" class="socials__link" target="_blank"><i class="lp-i lp-i--envelope"></i></a></li> 888 </ul> 889 </div> 890 </div> 891 </div> 892 </li> 893 <li class="property-list__item feature"> 894 <a class="property-list__item-link" href="/properties/brackenrig-1" > 895 <div class="property-list__img"> 896 <img src="https://media-production.lp-cdn.com/cdn-cgi/image/format=auto,quality=85/https://media-production.lp-cdn.com/media/e3d7ad76-eeb8-482f-ac66-456aa3a10346" 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/e3d7ad76-eeb8-482f-ac66-456aa3a10346 960w, https://media-production.lp-cdn.com/cdn-cgi/image/format=auto,quality=85/https://media-production.lp-cdn.com/media/e3d7ad76-eeb8-482f-ac66-456aa3a10346 1024w" alt="" loading="lazy"> 897 </div> 898 <span class="property-list__label"> 899 Sold 900 </span> 901 <div class="property-list__text"> 902 <h4 class="serif">Brackenrig**</h4> 903 <p> 904 Lake Rosseau 905 </p> 906 <p> 907 908 </p> 909 <h5 style="text-transform: capitalize"> 910 $10,795,000 911 </h5> 912 </div> 913 </a> 914 915 916 <div class="property-list__hover"> 917 <a href="/properties/brackenrig-1" class="hover-link"></a> 918 <div class="property-list__buttons"> 919 <a class="property-list__view" href="/properties/brackenrig-1" > 920 <button class="btn btn--primary-dark button-style-5">VIEW PROPERTY</button> 921 <button class="btn btn--primary-light button-style-5">VIEW PROPERTY</button> 922 </a> 923 <div class="property-list__share"> 924 <a class="btn btn--primary-dark button-style-5">SHARE PROPERTY</a> 925 <a class="btn btn--primary-light button-style-5">SHARE PROPERTY</a> 926 <ul class="socials socials--block-dark"> 927 <li><a href="https://www.facebook.com/sharer/sharer.php?u=https://muskokacottagesforsale.com/properties/brackenrig-1" target="_blank" class="socials__link"><i class="lp-i lp-i--facebook"></i></a></li> 928 <li><a href="https://twitter.com/intent/tweet?url=https://muskokacottagesforsale.com/properties/brackenrig-1&text=Brackenrig**" target="_blank" class="socials__link"><i class="lp-i lp-i--twitter"></i></a></li> 929 <li><a href="/cdn-cgi/l/email-protection#81bef2f4e3ebe4e2f5bcc3f3e0e2eae4eff3e8e6ababa7e3eee5f8bcc3f3e0e2eae4eff3e8e6ababa1aca1e9f5f5f1f2bbaeaeecf4f2eaeeeae0e2eef5f5e0e6e4f2e7eef3f2e0ede4afe2eeecaef1f3eef1e4f3f5e8e4f2aee3f3e0e2eae4eff3e8e6acb0" class="socials__link" target="_blank"><i class="lp-i lp-i--envelope"></i></a></li> 930 </ul> 931 </div> 932 </div> 933 </div> 934 </li> 935 <li class="property-list__item feature"> 936 <a class="property-list__item-link" href="/properties/hemlock-point-2" > 937 <div class="property-list__img"> 938 <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/8c57ccb0-033d-4ef8-90cf-c155b2ddcff0" 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/8c57ccb0-033d-4ef8-90cf-c155b2ddcff0 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/8c57ccb0-033d-4ef8-90cf-c155b2ddcff0 1280w, https://media-production.lp-cdn.com/cdn-cgi/image/format=auto,quality=85/https://media-production.lp-cdn.com/media/8c57ccb0-033d-4ef8-90cf-c155b2ddcff0 1856w" alt="" loading="lazy"> 939 </div>
940 <span class="property-list__label"> 941 Sold 942 </span> 943 <div class="property-list__text"> 944 <h4 class="serif">Hemlock Point</h4> 945 <p> 946 Lake Joseph 947 </p> 948 <p> 949 950 </p> 951 <h5 style="text-transform: capitalize"> 952 $9,893,000 953 </h5> 954 </div> 955 </a> 956 957 958 <div class="property-list__hover"> 959 <a href="/properties/hemlock-point-2" class="hover-link"></a> 960 <div class="property-list__buttons"> 961 <a class="property-list__view" href="/properties/hemlock-point-2" > 962 <button class="btn btn--primary-dark button-style-5">VIEW PROPERTY</button> 963 <button class="btn btn--primary-light button-style-5">VIEW PROPERTY</button> 964 </a> 965 <div class="property-list__share"> 966 <a class="btn btn--primary-dark button-style-5">SHARE PROPERTY</a> 967 <a class="btn btn--primary-light button-style-5">SHARE PROPERTY</a> 968 <ul class="socials socials--block-dark"> 969 <li><a href="https://www.facebook.com/sharer/sharer.php?u=https://muskokacottagesforsale.com/properties/hemlock-point-2" target="_blank" class="socials__link"><i class="lp-i lp-i--facebook"></i></a></li> 970 <li><a href="https://twitter.com/intent/tweet?url=https://muskokacottagesforsale.com/properties/hemlock-point-2&text=Hemlock Point" target="_blank" class="socials__link"><i class="lp-i lp-i--twitter"></i></a></li> 971 <li><a href="/cdn-cgi/l/email-protection#be81cdcbdcd4dbddca83f6dbd3d2d1ddd59eeed1d7d0ca98dcd1dac783f6dbd3d2d1ddd59eeed1d7d0ca9e939ed6cacacecd849191d3cbcdd5d1d5dfddd1cacadfd9dbcdd8d1cccddfd2db90ddd1d391ceccd1cedbcccad7dbcd91d6dbd3d2d1ddd593ced1d7d0ca938c" class="socials__link" target="_blank"><i class="lp-i lp-i--envelope"></i></a></li> 972 </ul> 973 </div> 974 </div> 975 </div> 976 </li> 977 <li class="property-list__item feature"> 978 <a class="property-list__item-link" href="/properties/lake-joseph-2" > 979 <div class="property-list__img"> 980 <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/27c5d4f4-8444-4967-8360-4c5548135b1d" 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/27c5d4f4-8444-4967-8360-4c5548135b1d 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/27c5d4f4-8444-4967-8360-4c5548135b1d 1280w, https://media-production.lp-cdn.com/cdn-cgi/image/format=auto,quality=85,fit=scale-down,width=1920/https://media-production.lp-cdn.com/media/27c5d4f4-8444-4967-8360-4c5548135b1d 1920w, https://media-production.lp-cdn.com/cdn-cgi/image/format=auto,quality=85,fit=scale-down,width=2560/https://media-production.lp-cdn.com/media/27c5d4f4-8444-4967-8360-4c5548135b1d 2560w, https://media-production.lp-cdn.com/cdn-cgi/image/format=auto,quality=85,fit=scale-down,width=3456/https://media-production.lp-cdn.com/media/27c5d4f4-8444-4967-8360-4c5548135b1d 3456w" alt="" loading="lazy"> 981 </div> 982 <span class="property-list__label"> 983 Sold 984 </span> 985 <div class="property-list__text"> 986 <h4 class="serif">South Lake Joseph</h4> 987 <p> 988 Lake Joseph 989 </p> 990 <p> 991 8 BD | 992 7 BA 993 | 994 3,936 Sq.Ft. 995 </p> 996 <h5 style="text-transform: capitalize"> 997 $9,890,000 998 </h5> 999 </div> 1000 </a> 1001 1002 1003 <div class="property-list__hover"> 1004 <a href="/properties/lake-joseph-2" class="hover-link"></a> 1005 <div class="property-list__buttons"> 1006 <a class="property-list__view" href="/properties/lake-joseph-2" > 1007 <button class="btn btn--primary-dark button-style-5">VIEW PROPERTY</button> 1008 <button class="btn btn--primary-light button-style-5">VIEW PROPERTY</button> 1009 </a> 1010 <div class="property-list__share"> 1011 <a class="btn btn--primary-dark button-style-5">SHARE PROPERTY</a> 1012 <a class="btn btn--primary-light button-style-5">SHARE PROPERTY</a> 1013 <ul class="socials socials--block-dark"> 1014 <li><a href="https://www.facebook.com/sharer/sharer.php?u=https://muskokacottagesforsale.com/properties/lake-joseph-2" target="_blank" class="socials__link"><i class="lp-i lp-i--facebook"></i></a></li> 1015 <li><a href="https://twitter.com/intent/tweet?url=https://muskokacottagesforsale.com/properties/lake-joseph-2&text=South Lake Joseph" target="_blank" class="socials__link"><i class="lp-i lp-i--twitter"></i></a></li> 1016 <li><a href="/cdn-cgi/l/email-protection#a39cd0d6c1c9c6c0d79ef0ccd6d7cb83efc2c8c683e9ccd0c6d3cb85c1ccc7da9ef0ccd6d7cb83efc2c8c683e9ccd0c6d3cb838e83cbd7d7d3d0998c8cced6d0c8ccc8c2c0ccd7d7c2c4c6d0c5ccd1d0c2cfc68dc0ccce8cd3d1ccd3c6d1d7cac6d08ccfc2c8c68ec9ccd0c6d3cb8e91" class="socials__link" target="_blank"><i class="lp-i lp-i--envelope"></i></a></li> 1017 </ul> 1018 </div> 1019 </div> 1020 </div> 1021 </li> 1022 <li class="property-list__item feature"> 1023 <a class="property-list__item-link" href="/properties/ranwood" > 1024 <div class="property-list__img"> 1025 <img src="https://media-production.lp-cdn.com/cdn-cgi/image/format=auto,quality=85/https://media-production.lp-cdn.com/media/a99b8585-70b9-4fca-9dc6-f8124b7cc0a7" 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/a99b8585-70b9-4fca-9dc6-f8124b7cc0a7 960w, https://media-production.lp-cdn.com/cdn-cgi/image/format=auto,quality=85/https://media-production.lp-cdn.com/media/a99b8585-70b9-4fca-9dc6-f8124b7cc0a7 1024w" alt="" loading="lazy"> 1026 </div>
1027 <span class="property-list__label"> 1028 Sold 1029 </span> 1030 <div class="property-list__text"> 1031 <h4 class="serif">Ranwood</h4> 1032 <p> 1033 Lake Muskoka 1034 </p> 1035 <p> 1036 1037 </p> 1038 <h5 style="text-transform: capitalize"> 1039 $9,850,000 1040 </h5> 1041 </div> 1042 </a> 1043 1044 1045 <div class="property-list__hover"> 1046 <a href="/properties/ranwood" class="hover-link"></a> 1047 <div class="property-list__buttons"> 1048 <a class="property-list__view" href="/properties/ranwood" > 1049 <button class="btn btn--primary-dark button-style-5">VIEW PROPERTY</button> 1050 <button class="btn btn--primary-light button-style-5">VIEW PROPERTY</button> 1051 </a> 1052 <div class="property-list__share"> 1053 <a class="btn btn--primary-dark button-style-5">SHARE PROPERTY</a> 1054 <a class="btn btn--primary-light button-style-5">SHARE PROPERTY</a> 1055 <ul class="socials socials--block-dark"> 1056 <li><a href="https://www.facebook.com/sharer/sharer.php?u=https://muskokacottagesforsale.com/properties/ranwood" target="_blank" class="socials__link"><i class="lp-i lp-i--facebook"></i></a></li> 1057 <li><a href="https://twitter.com/intent/tweet?url=https://muskokacottagesforsale.com/properties/ranwood&text=Ranwood" target="_blank" class="socials__link"><i class="lp-i lp-i--twitter"></i></a></li> 1058 <li><a href="/cdn-cgi/l/email-protection#3f004c4a5d555a5c4b026d5e514850505b195d505b46026d5e514850505b1f121f574b4b4f4c051010524a4c5450545e5c504b4b5e585a4c59504d4c5e535a115c5052104f4d504f5a4d4b565a4c104d5e514850505b" class="socials__link" target="_blank"><i class="lp-i lp-i--envelope"></i></a></li> 1059 </ul> 1060 </div> 1061 </div> 1062 </div> 1063 </li> 1064 <li class="property-list__item feature"> 1065 <a class="property-list__item-link" href="/properties/wildcat-point" > 1066 <div class="property-list__img"> 1067 <img src="https://media-production.lp-cdn.com/cdn-cgi/image/format=auto,quality=85/https://media-production.lp-cdn.com/media/fde2648e-dfde-45bb-ac10-52c12b39fc33" alt="" loading="lazy"> 1068 </div> 1069 <span class="property-list__label"> 1070 Sold 1071 </span> 1072 <div class="property-list__text"> 1073 <h4 class="serif">Wildcat Point**</h4> 1074 <p> 1075 Lake Rosseau 1076 </p> 1077 <p> 1078 1079 </p> 1080 <h5 style="text-transform: capitalize"> 1081 $9,395,000 1082 </h5> 1083 </div> 1084 </a> 1085 1086 1087 <div class="property-list__hover"> 1088 <a href="/properties/wildcat-point" class="hover-link"></a> 1089 <div class="property-list__buttons"> 1090 <a class="property-list__view" href="/properties/wildcat-point" > 1091 <button class="btn btn--primary-dark button-style-5">VIEW PROPERTY</button> 1092 <button class="btn btn--primary-light button-style-5">VIEW PROPERTY</button> 1093 </a> 1094 <div class="property-list__share"> 1095 <a class="btn btn--primary-dark button-style-5">SHARE PROPERTY</a> 1096 <a class="btn btn--primary-light button-style-5">SHARE PROPERTY</a> 1097 <ul class="socials socials--block-dark"> 1098 <li><a href="https://www.facebook.com/sharer/sharer.php?u=https://muskokacottagesforsale.com/properties/wildcat-point" target="_blank" class="socials__link"><i class="lp-i lp-i--facebook"></i></a></li> 1099 <li><a href="https://twitter.com/intent/tweet?url=https://muskokacottagesforsale.com/properties/wildcat-point&text=Wildcat Point**" target="_blank" class="socials__link"><i class="lp-i lp-i--twitter"></i></a></li> 1100 <li><a href="/cdn-cgi/l/email-protection#39064a4c5b535c5a4d046e50555d5a584d19695650574d13131f5b565d40046e50555d5a584d19695650574d1313191419514d4d494a031616544c4a
1100525652585a564d4d585e5c4a5f564b4a58555c175a565416494b56495c4b4d505c4a164e50555d5a584d14495650574d" class="socials__link" target="_blank"><i class="lp-i lp-i--envelope"></i></a></li> 1101 </ul> 1102 </div> 1103 </div> 1104 </div> 1105 </li> 1106 <li class="property-list__item feature"> 1107 <a class="property-list__item-link" href="/properties/roberts-bay" > 1108 <div class="property-list__img"> 1109 <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/c266079a-1ea9-4295-a60f-9d07bcba6b87" 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/c266079a-1ea9-4295-a60f-9d07bcba6b87 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/c266079a-1ea9-4295-a60f-9d07bcba6b87 1280w, https://media-production.lp-cdn.com/cdn-cgi/image/format=auto,quality=85,fit=scale-down,width=1920/https://media-production.lp-cdn.com/media/c266079a-1ea9-4295-a60f-9d07bcba6b87 1920w, https://media-production.lp-cdn.com/cdn-cgi/image/format=auto,quality=85,fit=scale-down,width=2560/https://media-production.lp-cdn.com/media/c266079a-1ea9-4295-a60f-9d07bcba6b87 2560w, https://media-production.lp-cdn.com/cdn-cgi/image/format=auto,quality=85,fit=scale-down,width=3456/https://media-production.lp-cdn.com/media/c266079a-1ea9-4295-a60f-9d07bcba6b87 3456w" alt="" loading="lazy"> 1110 </div> 1111 <span class="property-list__label"> 1112 Sold 1113 </span> 1114 <div class="property-list__text"> 1115 <h4 class="serif">Robertâs Bay*</h4> 1116 <p> 1117 Lake Joseph 1118 </p> 1119 <p> 1120 1121 </p> 1122 <h5 style="text-transform: capitalize"> 1123 $9,295,000 1124 </h5> 1125 </div> 1126 </a> 1127 1128 1129 <div class="property-list__hover"> 1130 <a href="/properties/roberts-bay" class="hover-link"></a> 1131 <div class="property-list__buttons"> 1132 <a class="property-list__view" href="/properties/roberts-bay" > 1133 <button class="btn btn--primary-dark button-style-5">VIEW PROPERTY</button> 1134 <button class="btn btn--primary-light button-style-5">VIEW PROPERTY</button> 1135 </a> 1136 <div class="property-list__share"> 1137 <a class="btn btn--primary-dark button-style-5">SHARE PROPERTY</a> 1138 <a class="btn btn--primary-light button-style-5">SHARE PROPERTY</a> 1139 <ul class="socials socials--block-dark"> 1140 <li><a href="https://www.facebook.com/sharer/sharer.php?u=https://muskokacottagesforsale.com/properties/roberts-bay" target="_blank" class="socials__link"><i class="lp-i lp-i--facebook"></i></a></li> 1141 <li><a href="https://twitter.com/intent/tweet?url=https://muskokacottagesforsale.com/properties/roberts-bay&text=Robertâs Bay*" target="_blank" class="socials__link"><i class="lp-i lp-i--twitter"></i></a></li> 1142 <li><a href="/cdn-cgi/l/email-protection#714e0204131b1412054c231e1314030593f1e802513310085b57131e15084c231e1314030593f1e802513310085b515c5119050501024b5e5e1c04021a1e1a10121e050510161402171e0302101d145f121e1c5e01031e011403051814025e031e13140305025c131008" class="socials__link" target="_blank"><i class="lp-i lp-i--envelope"></i></a></li> 1143 </ul> 1144 </div> 1145 </div> 1146 </div> 1147 </li> 1148 <li class="property-list__item feature"> 1149 <a class="property-list__item-link" href="/properties/hemlock-point-3" > 1150 <div class="property-list__img"> 1151 <img src="https://media-production.lp-cdn.com/cdn-cgi/image/format=auto,quality=85/https://media-production.lp-cdn.com/media/75e6457e-8a94-4251-b453-c4fa0cf09c1c" alt="" loading="lazy"> 1152 </div>
1153 <span class="property-list__label"> 1154 Sold 1155 </span> 1156 <div class="property-list__text"> 1157 <h4 class="serif">Hemlock Point</h4> 1158 <p> 1159 Lake Joseph 1160 </p> 1161 <p> 1162 1163 </p> 1164 <h5 style="text-transform: capitalize"> 1165 $8,999,000 1166 </h5> 1167 </div> 1168 </a> 1169 1170 1171 <div class="property-list__hover"> 1172 <a href="/properties/hemlock-point-3" class="hover-link"></a> 1173 <div class="property-list__buttons"> 1174 <a class="property-list__view" href="/properties/hemlock-point-3" > 1175 <button class="btn btn--primary-dark button-style-5">VIEW PROPERTY</button> 1176 <button class="btn btn--primary-light button-style-5">VIEW PROPERTY</button> 1177 </a> 1178 <div class="property-list__share"> 1179 <a class="btn btn--primary-dark button-style-5">SHARE PROPERTY</a> 1180 <a class="btn btn--primary-light button-style-5">SHARE PROPERTY</a> 1181 <ul class="socials socials--block-dark"> 1182 <li><a href="https://www.facebook.com/sharer/sharer.php?u=https://muskokacottagesforsale.com/properties/hemlock-point-3" target="_blank" class="socials__link"><i class="lp-i lp-i--facebook"></i></a></li> 1183 <li><a href="https://twitter.com/intent/tweet?url=https://muskokacottagesforsale.com/properties/hemlock-point-3&text=Hemlock Point" target="_blank" class="socials__link"><i class="lp-i lp-i--twitter"></i></a></li> 1184 <li><a href="/cdn-cgi/l/email-protection#211e5254434b4442551c69444c4d4e424a01714e484f5507434e45581c69444c4d4e424a01714e484f55010c0149555551521b0e0e4c54524a4e4a40424e555540464452474e5352404d440f424e4c0e51534e514453554844520e49444c4d4e424a0c514e484f550c12" class="socials__link" target="_blank"><i class="lp-i lp-i--envelope"></i></a></li> 1185 </ul> 1186 </div> 1187 </div> 1188 </div> 1189 </li> 1190 <li class="property-list__item feature"> 1191 <a class="property-list__item-link" href="/properties/lake-muskoka" > 1192 <div class="property-list__img"> 1193 <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/2be9f20c-0927-4123-aff4-ff9720d1b1e6" 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/2be9f20c-0927-4123-aff4-ff9720d1b1e6 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/2be9f20c-0927-4123-aff4-ff9720d1b1e6 1280w, https://media-production.lp-cdn.com/cdn-cgi/image/format=auto,quality=85,fit=scale-down,width=1920/https://media-production.lp-cdn.com/media/2be9f20c-0927-4123-aff4-ff9720d1b1e6 1920w, https://media-production.lp-cdn.com/cdn-cgi/image/format=auto,quality=85,fit=scale-down,width=2560/https://media-production.lp-cdn.com/media/2be9f20c-0927-4123-aff4-ff9720d1b1e6 2560w, https://media-production.lp-cdn.com/cdn-cgi/image/format=auto,quality=85,fit=scale-down,width=3456/https://media-production.lp-cdn.com/media/2be9f20c-0927-4123-aff4-ff9720d1b1e6 3456w" alt="" loading="lazy"> 1194 </div> 1195 <span class="property-list__label"> 1196 Sold 1197 </span> 1198 <div class="property-list__text"> 1199 <h4 class="serif">Acton Island**</h4> 1200 <p> 1201 Lake Muskoka 1202 </p> 1203 <p> 1204 5 BD | 1205 6 BA 1206 | 1207 4,743 Sq.Ft. 1208 </p> 1209 <h5 style="text-transform: capitalize"> 1210 $8,989,000 1211 </h5> 1212 </div> 1213 </a> 1214 1215 1216 <div class="property-list__hover"> 1217 <a href="/properties/lake-muskoka" class="hover-link"></a> 1218 <div class="property-list__buttons"> 1219 <a class="property-list__view" href="/properties/lake-muskoka" > 1220 <button class="btn btn--primary-dark button-style-5">VIEW PROPERTY</button> 1221 <button class="btn btn--primary-light button-style-5">VIEW PROPERTY</button> 1222 </a> 1223 <div class="property-list__share"> 1224 <a class="btn btn--primary-dark button-style-5">SHARE PROPERTY</a> 1225 <a class="btn btn--primary-light button-style-5">SHARE PROPERTY</a> 1226 <ul class="socials socials--block-dark"> 1227 <li><a href="https://www.facebook.com/sharer/sharer.php?u=https://muskokacottagesforsale.com/properties/lake-muskoka" target="_blank" class="socials__link"><i class="lp-i lp-i--facebook"></i></a></li> 1228 <li><a href="https://twitter.com/intent/tweet?url=https://muskokacottagesforsale.com/properties/lake-muskoka&text=Acton Island**" target="_blank" class="socials__link"><i class="lp-i lp-i--twitter"></i></a></li> 1229 <li><a href="/cdn-cgi/l/email-protection#e3dc90968189868097dea280978c8dc3aa908f828d87c9c9c5818c879adea280978c8dc3aa908f828d87c9c9c3cec38b97979390d9cccc8e9690888c8882808c979782848690858c9190828f86cd808c8ecc93918c938691978a8690cc8f828886ce8e9690888c8882" class="socials__link" target="_blank"><i class="lp-i lp-i--envelope"></i></a></li> 1230 </ul> 1231 </div> 1232 </div> 1233 </div> 1234 </li> 1235 <li class="property-list__item feature"> 1236 <a class="property-list__item-link" href="/properties/lake-rosseau" > 1237 <div class="property-list__img"> 1238 <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/897fd82c-2c97-4af0-838a-b6c1864cdce7" 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/897fd82c-2c97-4af0-838a-b6c1864cdce7 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/897fd82c-2c97-4af0-838a-b6c1864cdce7 1280w, https://media-production.lp-cdn.com/cdn-cgi/image/format=auto,quality=85,fit=scale-down,width=1920/https://media-production.lp-cdn.com/media/897fd82c-2c97-4af0-838a-b6c1864cdce7 1920w, https://media-production.lp-cdn.com/cdn-cgi/image/format=auto,quality=85,fit=scale-down,width=2560/https://media-production.lp-cdn.com/media/897fd82c-2c97-4af0-838a-b6c1864cdce7 2560w, https://media-production.lp-cdn.com/cdn-cgi/image/format=auto,quality=85,fit=scale-down,width=3456/https://media-production.lp-cdn.com/media/897fd82c-2c97-4af0-838a-b6c1864cdce7 3456w" alt="" loading="lazy"> 1239 </div>
1240 <span class="property-list__label"> 1241 Sold 1242 </span> 1243 <div class="property-list__text"> 1244 <h4 class="serif">Shamrock Road**</h4> 1245 <p> 1246 Lake Rosseau 1247 </p> 1248 <p> 1249 5 BD | 1250 6 BA 1251 | 1252 4,509 Sq.Ft. 1253 </p> 1254 <h5 style="text-transform: capitalize"> 1255 $8,989,000 1256 </h5> 1257 </div> 1258 </a> 1259 1260 1261 <div class="property-list__hover"> 1262 <a href="/properties/lake-rosseau" class="hover-link"></a> 1263 <div class="property-list__buttons"> 1264 <a class="property-list__view" href="/properties/lake-rosseau" > 1265 <button class="btn btn--primary-dark button-style-5">VIEW PROPERTY</button> 1266 <button class="btn btn--primary-light button-style-5">VIEW PROPERTY</button> 1267 </a> 1268 <div class="property-list__share"> 1269 <a class="btn btn--primary-dark button-style-5">SHARE PROPERTY</a> 1270 <a class="btn btn--primary-light button-style-5">SHARE PROPERTY</a> 1271 <ul class="socials socials--block-dark"> 1272 <li><a href="https://www.facebook.com/sharer/sharer.php?u=https://muskokacottagesforsale.com/properties/lake-rosseau" target="_blank" class="socials__link"><i class="lp-i lp-i--facebook"></i></a></li> 1273 <li><a href="https://twitter.com/intent/tweet?url=https://muskokacottagesforsale.com/properties/lake-rosseau&text=Shamrock Road**" target="_blank" class="socials__link"><i class="lp-i lp-i--twitter"></i></a></li> 1274 <li><a href="/cdn-cgi/l/email-protection#96a9e5e3f4fcf3f5e2abc5fef7fbe4f9f5fdb6c4f9f7f2bcbcb0f4f9f2efabc5fef7fbe4f9f5fdb6c4f9f7f2bcbcb6bbb6fee2e2e6e5acb9b9fbe3e5fdf9fdf7f5f9e2e2f7f1f3e5f0f9e4e5f7faf3b8f5f9fbb9e6e4f9e6f3e4e2fff3e5b9faf7fdf3bbe4f9e5e5f3f7e3" class="socials__link" target="_blank"><i class="lp-i lp-i--envelope"></i></a></li> 1275 </ul> 1276 </div> 1277 </div> 1278 </div> 1279 </li> 1280 <li class="property-list__item feature"> 1281 <a class="property-list__item-link" href="/properties/hemlock-point-4" > 1282 <div class="property-list__img"> 1283 <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/91e02b7e-5040-4376-bb82-718de74d1aaf" 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/91e02b7e-5040-4376-bb82-718de74d1aaf 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/91e02b7e-5040-4376-bb82-718de74d1aaf 1280w, https://media-production.lp-cdn.com/cdn-cgi/image/format=auto,quality=85/https://media-production.lp-cdn.com/media/91e02b7e-5040-4376-bb82-718de74d1aaf 1886w" alt="" loading="lazy"> 1284 </div> 1285 <span class="property-list__label"> 1286 Sold 1287 </span> 1288 <div class="property-list__text"> 1289 <h4 class="serif">Hemlock Point*</h4> 1290 <p> 1291 Lake Muskoka 1292 </p> 1293 <p> 1294 1295 </p> 1296 <h5 style="text-transform: capitalize"> 1297 $8,895,000 1298 </h5> 1299 </div> 1300 </a> 1301 1302 1303 <div class="property-list__hover"> 1304 <a href="/properties/hemlock-point-4" class="hover-link"></a> 1305 <div class="property-list__buttons"> 1306 <a class="property-list__view" href="/properties/hemlock-point-4" > 1307 <button class="btn btn--primary-dark button-style-5">VIEW PROPERTY</button> 1308 <button class="btn btn--primary-light button-style-5">VIEW PROPERTY</button> 1309 </a> 1310 <div class="property-list__share"> 1311 <a class="btn btn--primary-dark button-style-5">SHARE PROPERTY</a> 1312 <a class="btn btn--primary-light button-style-5">SHARE PROPERTY</a> 1313 <ul class="socials socials--block-dark"> 1314 <li><a href="https://www.facebook.com/sharer/sharer.php?u=https://muskokacottagesforsale.com/properties/hemlock-point-4" target="_blank" class="socials__link"><i class="lp-i lp-i--facebook"></i></a></li> 1315 <li><a href="https://twitter.com/intent/tweet?url=https://muskokacottagesforsale.com/properties/hemlock-point-4&text=Hemlock Point*" target="_blank" class="socials__link"><i class="lp-i lp-i--twitter"></i></a></li> 1316 <li><a href="/cdn-cgi/l/email-protection#4f703c3a2d252a2c3b72072a2223202c246f1f2026213b65692d202b3672072a2223202c246f1f2026213b656f626f273b3b3f3c756060223a3c2420242e2c203b3b2e282a3c29203d3c2e232a612c2022603f3d203f2a3d3b262a3c60272a2223202c24623f2026213b627b" class="socials__link" target="_blank"><i class="lp-i lp-i--envelope"></i></a></li> 1317 </ul> 1318 </div> 1319 </div> 1320 </div> 1321 </li> 1322 <li class="property-list__item feature"> 1323 <a class="property-list__item-link" href="/properties/mortimers-point" > 1324 <div class="property-list__img"> 1325 <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/b9fa2d84-cf46-4580-b38c-3b7f17195b43" 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/b9fa2d84-cf46-4580-b38c-3b7f17195b43 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/b9fa2d84-cf46-4580-b38c-3b7f17195b43 1280w, https://media-production.lp-cdn.com/cdn-cgi/image/format=auto,quality=85,fit=scale-down,width=1920/https://media-production.lp-cdn.com/media/b9fa2d84-cf46-4580-b38c-3b7f17195b43 1920w, https://media-production.lp-cdn.com/cdn-cgi/image/format=auto,quality=85,fit=scale-down,width=2560/https://media-production.lp-cdn.com/media/b9fa2d84-cf46-4580-b38c-3b7f17195b43 2560w, https://media-production.lp-cdn.com/cdn-cgi/image/format=auto,quality=85,fit=scale-down,width=3456/https://media-production.lp-cdn.com/media/b9fa2d84-cf46-4580-b38c-3b7f17195b43 3456w" alt="" loading="lazy"> 1326 </div>
1327 <span class="property-list__label"> 1328 Sold 1329 </span> 1330 <div class="property-list__text"> 1331 <h4 class="serif">Mortimerâs Point**</h4> 1332 <p> 1333 Lake Muskoka 1334 </p> 1335 <p> 1336 1337 </p> 1338 <h5 style="text-transform: capitalize"> 1339 $8,595,000 1340 </h5> 1341 </div> 1342 </a> 1343 1344 1345 <div class="property-list__hover"> 1346 <a href="/properties/mortimers-point" class="hover-link"></a> 1347 <div class="property-list__buttons"> 1348 <a class="property-list__view" href="/properties/mortimers-point" > 1349 <button class="btn btn--primary-dark button-style-5">VIEW PROPERTY</button> 1350 <button class="btn btn--primary-light button-style-5">VIEW PROPERTY</button> 1351 </a> 1352 <div class="property-list__share"> 1353 <a class="btn btn--primary-dark button-style-5">SHARE PROPERTY</a> 1354 <a class="btn btn--primary-light button-style-5">SHARE PROPERTY</a> 1355 <ul class="socials socials--block-dark"> 1356 <li><a href="https://www.facebook.com/sharer/sharer.php?u=https://muskokacottagesforsale.com/properties/mortimers-point" target="_blank" class="socials__link"><i class="lp-i lp-i--facebook"></i></a></li> 1357 <li><a href="https://twitter.com/intent/tweet?url=https://muskokacottagesforsale.com/properties/mortimers-point&text=Mortimerâs Point**" target="_blank" class="socials__link"><i class="lp-i lp-i--twitter"></i></a></li> 1358 <li><a href="/cdn-cgi/l/email-protection#724d010710181711064f3f1d00061b1f170090f2eb0152221d1b1c06585854101d160b4f3f1d00061b1f170090f2eb0152221d1b1c065858525f521a06060201485d5d1f0701191d1913111d060613151701141d0001131e175c111d1f5d02001d021700061b17015d1f1d00061b1f1700015f021d1b1c06" class="socials__link" target="_blank"><i class="lp-i lp-i--envelope"></i></a></li> 1359 </ul> 1360 </div> 1361 </div> 1362 </div> 1363 </li> 1364 <li class="property-list__item feature"> 1365 <a class="property-list__item-link" href="/properties/lake-joseph-1" > 1366 <div class="property-list__img"> 1367 <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/c6bfa57e-07a3-4598-b889-83079d5b9b43" 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/c6bfa57e-07a3-4598-b889-83079d5b9b43 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/c6bfa57e-07a3-4598-b889-83079d5b9b43 1280w, https://media-production.lp-cdn.com/cdn-cgi/image/format=auto,quality=85,fit=scale-down,width=1920/https://media-production.lp-cdn.com/media/c6bfa57e-07a3-4598-b889-83079d5b9b43 1920w, https://media-production.lp-cdn.com/cdn-cgi/image/format=auto,quality=85,fit=scale-down,width=2560/https://media-production.lp-cdn.com/media/c6bfa57e-07a3-4598-b889-83079d5b9b43 2560w, https://media-production.lp-cdn.com/cdn-cgi/image/format=auto,quality=85,fit=scale-down,width=3456/https://media-production.lp-cdn.com/media/c6bfa57e-07a3-4598-b889-83079d5b9b43 3456w" alt="" loading="lazy"> 1368 </div> 1369 <span class="property-list__label"> 1370 Sold 1371 </span> 1372 <div class="property-list__text"> 1373 <h4 class="serif">Avon Bay</h4> 1374 <p> 1375 Lake Joseph 1376 </p> 1377 <p> 1378 6 BD | 1379 5 BA 1380 1381 </p> 1382 <h5 style="text-transform: capitalize"> 1383 $8,539,000 1384 </h5> 1385 </div> 1386 </a> 1387 1388 1389 <div class="property-list__hover"> 1390 <a href="/properties/lake-joseph-1" class="hover-link"></a> 1391 <div class="property-list__buttons"> 1392 <a class="property-list__view" href="/properties/lake-joseph-1" > 1393 <button class="btn btn--primary-dark button-style-5">VIEW PROPERTY</button> 1394 <button class="btn btn--primary-light button-style-5">VIEW PROPERTY</button> 1395 </a> 1396 <div class="property-list__share"> 1397 <a class="btn btn--primary-dark button-style-5">SHARE PROPERTY</a> 1398 <a class="btn btn--primary-light button-style-5">SHARE PROPERTY</a> 1399 <ul class="socials socials--block-dark"> 1400 <li><a href="https://www.facebook.com/sharer/sharer.php?u=https://muskokacottagesforsale.com/properties/lake-joseph-1" target="_blank" class="socials__link"><i class="lp-i lp-i--facebook"></i></a></li> 1401 <li><a href="https://twitter.com/intent/tweet?url=https://muskokacottagesforsale.com/properties/lake-joseph-1&text=Avon Bay" target="_blank" class="socials__link"><i class="lp-i lp-i--twitter"></i></a></li> 1402 <li><a href="/cdn-cgi/l/email-protection#3a05494f58505f594e077b4c55541a785b431c58555e43077b4c55541a785b431a171a524e4e4a49
1402001515574f495155515b59554e4e5b5d5f495c5548495b565f14595557154a48554a5f484e535f4915565b515f175055495f4a52170b" class="socials__link" target="_blank"><i class="lp-i lp-i--envelope"></i></a></li> 1403 </ul> 1404 </div> 1405 </div> 1406 </div> 1407 </li> 1408 <li class="property-list__item feature"> 1409 <a class="property-list__item-link" href="/properties/north-side-of-4-mile-point" > 1410 <div class="property-list__img"> 1411 <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/fad4f3db-076e-4024-9045-9abb20cc5da1" 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/fad4f3db-076e-4024-9045-9abb20cc5da1 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/fad4f3db-076e-4024-9045-9abb20cc5da1 1280w, https://media-production.lp-cdn.com/cdn-cgi/image/format=auto,quality=85,fit=scale-down,width=1920/https://media-production.lp-cdn.com/media/fad4f3db-076e-4024-9045-9abb20cc5da1 1920w, https://media-production.lp-cdn.com/cdn-cgi/image/format=auto,quality=85,fit=scale-down,width=2560/https://media-production.lp-cdn.com/media/fad4f3db-076e-4024-9045-9abb20cc5da1 2560w, https://media-production.lp-cdn.com/cdn-cgi/image/format=auto,quality=85,fit=scale-down,width=3456/https://media-production.lp-cdn.com/media/fad4f3db-076e-4024-9045-9abb20cc5da1 3456w" alt="" loading="lazy"> 1412 </div> 1413 <span class="property-list__label"> 1414 Sold 1415 </span> 1416 <div class="property-list__text"> 1417 <h4 class="serif">North Side of 4 Mile Point**</h4> 1418 <p> 1419 Lake Rosseau 1420 </p> 1421 <p> 1422 1423 </p> 1424 <h5 style="text-transform: capitalize"> 1425 $8,495,000 1426 </h5> 1427 </div> 1428 </a> 1429 1430 1431 <div class="property-list__hover"> 1432 <a href="/properties/north-side-of-4-mile-point" class="hover-link"></a> 1433 <div class="property-list__buttons"> 1434 <a class="property-list__view" href="/properties/north-side-of-4-mile-point" > 1435 <button class="btn btn--primary-dark button-style-5">VIEW PROPERTY</button> 1436 <button class="btn btn--primary-light button-style-5">VIEW PROPERTY</button> 1437 </a> 1438 <div class="property-list__share"> 1439 <a class="btn btn--primary-dark button-style-5">SHARE PROPERTY</a> 1440 <a class="btn btn--primary-light button-style-5">SHARE PROPERTY</a> 1441 <ul class="socials socials--block-dark"> 1442 <li><a href="https://www.facebook.com/sharer/sharer.php?u=https://muskokacottagesforsale.com/properties/north-side-of-4-mile-point" target="_blank" class="socials__link"><i class="lp-i lp-i--facebook"></i></a></li> 1443 <li><a href="https://twitter.com/intent/tweet?url=https://muskokacottagesforsale.com/properties/north-side-of-4-mile-point&text=North Side of 4 Mile Point**" target="_blank" class="socials__link"><i class="lp-i lp-i--twitter"></i></a></li> 1444 <li><a href="/cdn-cgi/l/email-protection#023d717760686761763f4c6d70766a22516b6667226d642236224f6b6e6722526d6b6c76282824606d667b3f4c6d70766a22516b6667226d642236224f6b6e6722526d6b6c762828222f226a76767271382d2d6f7771696d6963616d767663656771646d7071636e672c616d6f2d72706d726770766b67712d6c6d70766a2f716b66672f6d642f362f6f6b6e672f726d6b6c76" class="socials__link" target="_blank"><i class="lp-i lp-i--envelope"></i></a></li> 1445 </ul> 1446 </div> 1447 </div> 1448 </div> 1449 </li> 1450 </ul> 1451 <div class="empty-result" style="display: none"> 1452 <h3>No Results Found. Please Try Another Search.</h3> 1453 </div> 1454 <div class="lp-pagination pagination-container pagination-style-2"></div> 1455 </div> 1456 </div> 1457</div> 1458 1459</section> 1460<section id="section-ab7525f1-6dbd-43e3-bba0-6a74ad957c35" class="solid-section is-font-color-light is-background-color-dark" data-el-id="5db65d6a-01e9-4ee3-babf-2748e074a284">
vendor: 111 bytes, lines 1460-1461
1460 1461 <script data-cfasync="false" src="/cdn-cgi/scripts/5c5dd728/cloudflare-static/email-decode.min.js"></script>
1461<script type="text/x-handlebars-template" class="jsIGItem"> 1462 <a href="{{permalink}}" target="_blank" class="ig-feed-item insta-type-{{mediaType}}"> 1463 <div class="ig-feed-item__img" style="background-image: url('{{#ifEquals mediaType 'VIDEO'}}{{thumbnailUrl}}{{^}}{{mediaUrl}}{{/ifEquals}}');"></div> 1464 <div class="ig-feed-item__info"><div class="ig-feed-item__caption">{{caption}}</div></div> 1465 {{#ifEquals mediaType 'VIDEO'}}<div class="video-icon"></div>{{/ifEquals}} 1466 </a> 1467</script>
1467 1468<div class="ig-feed redesign"> 1469 <div class="ig-feed-top lp-container"> 1470 <div class="top-wrapper"> 1471 <div class="top-left"> 1472 <h3 class="lp-h3 title">Follow Us on Instagram</h3> 1473 <a href="#" target="_blank" class="instagram-link jsIGLink"><h4 class="lp-h4 instagram-name jsIGName"></h4></a> 1474 </div> 1475 <div class="top-right"> 1476 <a href="#" target="_blank" class="lp-btn lp-btn--dark lp-btn--outline lp-btn--mob-full-width follow-button jsIGLink button-style-6">Follow Us</a> 1477 <a class="nav-button top-nav-prev hidden-control button-style-6"> 1478 <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> 1479 </a> 1480 <a class="nav-button top-nav-next hidden-control button-style-6"> 1481 <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> 1482 </a> 1483 </div> 1484 </div> 1485 </div> 1486 <div class="lp-container ig-feed-container "> 1487 <div class="ig-feed-feed" data-limit="33"> 1488 </div> 1489 </div> 1490 <div class="bottom-controls"> 1491 <a class="bottom-nav-button bottom-nav-prev button-style-6"> 1492 <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> 1493 </a> 1494 <a class="bottom-nav-button bottom-nav-next button-style-6"> 1495 <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> 1496 </a> 1497 </div> 1498</div> 1499 1500</section> 1501 1502 <div id="modals" class="modals"></div> 1503 <footer id="global-footer" class="is-font-color-light is-background-color-dark" data-el-id="bf83e0d0-0a3d-4cf5-a94c-daba8415ab49"> 1504 <div class="footer redesign"> 1505 <div class="footer__layout container"> 1506 <div class="footer__layout__left company"> 1507 <div class="company__info__newsletter"> 1508 <h2> 1509 Richard Scully & Associates 1510 </h2> 1511 <p class="pre-wrap"></p> 1512 </div> 1513 <div class="company__contacts"> 1514 <div> 1515 <p><b>RICHARD SCULLY & ASSOCIATES</b></p> 1516 <div><div> 1517<p class="contact_title"><a class="ft-link" href="/cdn-cgi/l/email-protection#e89a9b8b9d848491a8859d9b83878389c68b8785"><span class="__cf_email__" data-cfemail="aad8d9c9dfc6c6d3eac7dfd9c1c5c1cb84c9c5c7">[email protected]</span></a><br><a class="ft-link" href="tel:7056449393">(705) 644-9393</a></p> 1518</div> 1519<style>* { box-sizing: border-box; } body {margin: 0;}ul{list-style:inherit;}</style></div> 1520 </div> 1521 <div> 1522 <p><b>ADDRESS</b></p> 1523 <div><div> 1524<div> 1525<p class="contact_title">1A Lee Valley Dr<br>Port Carling ON P0B 1J0</p> 1526</div> 1527</div> 1528<style>* { box-sizing: border-box; } body {margin: 0;}ul{list-style:inherit;}</style> 1529<p> </p> 1530<style>* { box-sizing: border-box; } body {margin: 0;}ul{list-style:inherit;}</style></div> 1531 </div> 1532 <div> 1533 <p><b></b></p> 1534 <div><p style="font-size: 12px;">All information is deemed reliable but not guaranteed and should be independently reviewed and verified.</p> 1535<p style="opacity: 1;"><img style="width: 60px; height: auto; filter: invert(1); margin-left: -10px; margin-top: 10px;" src="https://res.cloudinary.com/luxuryp/image/upload/v1675453847/Single_Realtor_Black_hwazek.png"></p></div> 1536 </div> 1537 </div> 1538 </div> 1539 1540 <div class="footer__layout__right"> 1541 <div class="newsletter"> 1542 <div class="newsletter__info"> 1543 <h2>NEWSLETTER</h2> 1544 <p class="pre-wrap">Sign up to be the first to know about our new listings.</p> 1545 </div> 1546 <form class="newsletter__subscribe" data-type="contact-form"> 1547 <div class="h-pot"> 1548 <label for="-middleName">Middle Name</label> 1549 <input id="-middleName" name="middleName" value="" autocomplete="off" tabindex="-1"> 1550 </div> 1551 <input type="hidden" name="source" value="NEWSLETTER_SIGNUP" /> 1552 <input required placeholder="Email Address" name="email" type="email" /> 1553 <div class="lp-disclaimer"> <label style='display: none;' for='-termsAccepted'>Opt In/Disclaimer Consent:</label> 1554 <label class='lp-tcr-content'> 1555 <span class='lp-tcr-checkbox'> 1556 <input 1557 type='checkbox' 1558 id='-termsAccepted' 1559 name='termsAccepted' 1560 oninvalid="this.setCustomValidity('Please accept the terms and conditions')"
1561 oninput="this.setCustomValidity('')" 1562 required 1563 /></span> 1564 <span class='lp-tcr-message'> 1565 1566 I agree to be contacted by 1567 Richard Scully & Associates 1568 via call, email, and text for real estate services. To opt out, you can reply 'stop' at any time or reply 'help' for assistance. 1569 You can also click the unsubscribe link in the emails. Message and data rates may apply. Message frequency may vary. 1570 <a href='/terms-and-conditions' target='_blank'>Privacy Policy</a>. 1571 </span> 1572 </label> 1573 1574</div> 1575 <input type="submit" value="SUBSCRIBE" class="btn btn--subscribe button-style-6" /> 1576 <p class="success hide">Email Submitted!</p> 1577 </form> 1578 1579 </div> 1580 </div> 1581 1582 1583 </div> 1584 <div class="container footer__layout footer__middle"> 1585 <div class="footer__layout__left"> 1586 <ul class="lp-socials social_icons-style-2 footer__socials socials"> 1587 1588 <li> 1589 <a 1590 href="https://www.instagram.com/muskokacottagesforsale/" 1591 class="lp-socials__link socials__item wow fadeInUp" 1592 data-wow-delay="0s" 1593 target="_blank" 1594 aria-label="INSTAGRAM" 1595 > 1596 <span class="lp-i lp-i--instagram" aria-hidden="true"></span> 1597 </a> 1598 </li> 1599 <li> 1600 <a 1601 href="https://www.youtube.com/@muskokacottagesforsale" 1602 class="lp-socials__link socials__item wow fadeInUp" 1603 data-wow-delay="0.1s" 1604 target="_blank" 1605 aria-label="YOUTUBE" 1606 > 1607 <span class="lp-i lp-i--youtube" aria-hidden="true"></span> 1608 </a> 1609 </li> 1610 </ul> </div> 1611 <div class="footer__layout__right"> 1612 <div class="logos"> 1613 </div> 1614 </div> 1615 </div> 1616 <div class="footer__bottom"> 1617 <div class="container"> 1618 <div class="footer__bottom-copyrights footer__layout"> 1619 <div class="footer__layout__left logo-powered"> 1620 <div class="img-wrap"> 1621 <img src="https://media-production.lp-cdn.com/media/b517d231-d9f5-4e15-870d-852a977c9204" alt=""> 1622 </div> 1623 <div> 1624 Real Estate Website Design by <a href="https://www.luxurypresence.com/real-estate-website-design/" target="_blank" class="luxury-link hyperlink-style-2">Luxury Presence</a> 1625 </div> 1626 </div> 1627 <div class="footer__layout__right copyright-box"> 1628 Copyright <span class="auto-year-update">2026</span> | <a href="/terms-and-conditions" class="hyperlink-style-2">Privacy Policy</a> 1629 </div> 1630 </div> 1631 </div> 1632 </div> 1633</div> 1634 1635 </footer> 1636 1637 <div id="modal-global-contact-us" class="modal " 1638 data-el-id="" 1639 style="background-color: ;" 1640 > 1641 <div class="modal-content"> 1642 <div class="contact-form redesign " style="background-image: url('')"> 1643 <div class="container"> 1644 <div class="section-details" style="--colorTxt: #ffffff"> 1645 <h2>Contact Details</h2> 1646 1647 <div class="info-zone"> 1648 1649 <div class="info-zone_contact type_user"> 1650 <h4 class="serif">RICHARD SCULLY & ASSOCIATES</h4> 1651 <div class="info-zone_contact_cell"> 1652 <i> 1653 <svg width="30" height="25" viewBox="0 0 30 25" fill="none" xmlns="http://www.w3.org/2000/svg"> 1654 <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.48
165415 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"/> 1655 </svg> 1656 </i> 1657 <p class="contact_title">Phone</p> 1658 <a href="tel:(705) 644-9393" class="lp-link info-zone_contact_link link hyperlink-style-2">(705) 644-9393</a> 1659 </div> 1660 <div class="info-zone_contact_cell"> 1661 <i> 1662 <svg width="30" height="19" viewBox="0 0 30 19" fill="none" xmlns="http://www.w3.org/2000/svg"> 1663 <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"/> 1664 </svg> 1665 </i> 1666 <p class="contact_title">Email</p> 1667 <a href="/cdn-cgi/l/email-protection#cbb9b8a8bea7a7b28ba6beb8a0a4a0aae5a8a4a6" class="lp-link info-zone_contact_link link hyperlink-style-2"><span class="__cf_email__" data-cfemail="88fafbebfde4e4f1c8e5fdfbe3e7e3e9a6ebe7e5">[email protected]</span></a> 1668 </div> 1669 </div> 1670 <div class="info-zone_contact"> 1671 <div class="info-zone_contact_cell"> 1672 <i> 1673 <svg width="31" height="30" viewBox="0 0 31 30" fill="none" xmlns="http://www.w3.org/2000/svg"> 1674 <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"/> 1675 <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"/> 1676 <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"/> 1677 </svg> 1678 </i> 1679 <p class="info-wrap-contact_title">Address</p> 1680 <p class="info-zone_contact_link pre-line">1A Lee Valley Dr 1681 Port Carling ON P0B 1J0</p> 1682 </div> 1683 </div> 1684 <div class="info-zone_contact"> 1685 <div class="info-zone_contact_cell"> 1686 <p class="pre-line"><div></div><style>* { box-sizing: border-box; } body {margin: 0;}ul{list-style:inherit;}</style></p> 1687 </div> 1688 </div> 1689 <ul class="lp-socials social_icons-style-2 socials socials--grey socials_zone footer__c
1689ontact-column"> 1690 1691 <li> 1692 <a 1693 href="https://www.instagram.com/muskokacottagesforsale/" 1694 class="lp-socials__link socials__item wow fadeInUp socials__link" 1695 data-wow-delay="0s" 1696 target="_blank" 1697 aria-label="INSTAGRAM" 1698 > 1699 <span class="lp-i lp-i--instagram" aria-hidden="true"></span> 1700 </a> 1701 </li> 1702 <li> 1703 <a 1704 href="https://www.youtube.com/@muskokacottagesforsale" 1705 class="lp-socials__link socials__item wow fadeInUp socials__link" 1706 data-wow-delay="0.1s" 1707 target="_blank" 1708 aria-label="YOUTUBE" 1709 > 1710 <span class="lp-i lp-i--youtube" aria-hidden="true"></span> 1711 </a> 1712 </li> 1713 </ul> </div> 1714 </div> 1715 <div class="section-message"> 1716 <form data-type="contact-form"> 1717 <h2>Submit a Message</h2> 1718 <div class="h-pot"> 1719 <label for="-middleName">Middle Name</label> 1720 <input id="-middleName" name="middleName" value="" autocomplete="off" tabindex="-1"> 1721 </div> 1722 1723 1724 <div class="lp-input-group"> 1725 <label for="prod-name" class="lp-label">Name</label> 1726 <input id="prod-name" name="name" value="" required="" class="lp-input lp-input--light"> 1727 </div> 1728 <div class="lp-input-group"> 1729 <label for="prod-email" class="lp-label">Email</label> 1730 <input id="prod-email" type="email" name="email" value="" required="" class="lp-input lp-input--light"> 1731 </div> 1732 <div class="lp-input-group"> 1733 <label for="prod-phone" class="lp-label">Phone</label> 1734 <input id="prod-phone" type="tel" name="phoneNumber" value="" required="" class="lp-input lp-input--light"> 1735 </div> 1736 <div class="lp-input-group m16"> 1737 <label for="prod-message" class="lp-label">Message</label> 1738 <textarea id="prod-message" name="message" value="" required="" class="lp-input"></textarea> 1739 </div> 1740 1741 <div class="lp-disclaimer"> <label style='display: none;' for='-termsAccepted'>Opt In/Disclaimer Consent:</label> 1742 <label class='lp-tcr-content'> 1743 <span class='lp-tcr-checkbox'> 1744 <input 1745 type='checkbox' 1746 id='-termsAccepted' 1747 name='termsAccepted' 1748 oninvalid="this.setCustomValidity('Please accept the terms and conditions')" 1749 oninput="this.setCustomValidity('')" 1750 required 1751 /></span> 1752 <span class='lp-tcr-message'> 1753 1754 I agree to be contacted by 1755 Richard Scully & Associates 1756 via call, email, and text for real estate services. To opt out, you can reply 'stop' at any time or reply 'help' for assistance. 1757 You can also click the unsubscribe link in the emails. Message and data rates may apply. Message frequency may vary. 1758 <a href='/terms-and-conditions' target='_blank'>Privacy Policy</a>. 1759 </span> 1760 </label> 1761 1762 </div> 1763 1764 <input style="display: none;" type="text" name="source" value="CONTACT_INQUIRY" /> 1765 1766 1767 <button type="submit" class="submitButton lp-btn button-style-2">
1768 <span class="label-initial">Submit</span> 1769 <span class="label-loading">Submitting</span> 1770 <span class="label-success">Submitted</span> 1771 <span class="submit-icon lp-i lp-i--circle-notch lp-i--spin"></span> 1772 </button> 1773 <p class="success-message success hide"> 1774 Message sent successfully! 1775 </p> 1776 </form> 1777 1778 1779 </div> 1780 </div> 1781 </div> 1782 1783 </div> 1784 <button class="close lp-close" type="button" aria-label="close modal"> 1785 <span class="lp-close-icon" aria-hidden="true"></span> 1786 </button> 1787 </div> 1788 <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;"> 1789 <style> 1790 #qualifying-questions-modal .custom-select-toggle { 1791 border: 1px solid #848484; 1792 border-radius: 8px; 1793 padding: 12px 16px; 1794 } 1795 1796 #qualifying-questions-modal .custom-select-toggle.is-placeholder { 1797 color: #848484; 1798 } 1799 1800 #qualifying-questions-modal #qualifying-questions-modal-phoneNumber::placeholder { 1801 color: #848484; 1802 opacity: 1; 1803 } 1804 1805 #qualifying-questions-modal .disclaimer-more { 1806 display: none; 1807 } 1808 1809 #qualifying-questions-modal #qualifying-questions-modal-disclaimer-text:not(.collapsed) .disclaimer-more { 1810 display: inline; 1811 } 1812 1813 #qualifying-questions-modal #qualifying-questions-modal-disclaimer-text:not(.collapsed) .disclaimer-ellipsis { 1814 display: none; 1815 } 1816 </style>
vendor: 119 bytes, lines 1816-1817
1816 1817 <script data-cfasync="false" src="/cdn-cgi/scripts/5c5dd728/cloudflare-static/email-decode.min.js"></script>
1817<script> 1818 function toggleDisclaimerQualifyingQuestionsModal() { 1819 const disclaimerText = document.getElementById('qualifying-questions-modal-disclaimer-text'); 1820 const toggleButton = document.getElementById('qualifying-questions-modal-toggle-disclaimer'); 1821 1822 if (disclaimerText.classList.contains('collapsed')) { 1823 disclaimerText.classList.remove('collapsed'); 1824 toggleButton.textContent = 'Read less'; 1825 toggleButton.setAttribute('aria-expanded', 'true'); 1826 } else { 1827 disclaimerText.classList.add('collapsed'); 1828 toggleButton.textContent = 'Read more'; 1829 toggleButton.setAttribute('aria-expanded', 'false'); 1830 } 1831 } 1832 </script>
1832 1833 <div style="max-width: 400px; width: 95%; margin: 0 auto;"> 1834 <div style="background: #fff; border: none; border-radius: 16px; color: black; box-shadow: none; position: relative;"> 1835 <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;"> 1836 <span aria-hidden="true">×</span> 1837 </button> 1838 <div style="padding: 40px 30px 32px;"> 1839 <div style="text-align: left; margin-bottom: 32px;"> 1840 <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;"> 1841 Thanks, please provide more information to help serve you 1842 </h2> 1843 </div> 1844 <form id="qualifying-questions-modal-form" data-type="contact-form"> 1845 <input type="hidden" name="source" value="PROFILE_UPDATE" /> 1846 <input type="hidden" name="email" value="" id="qualifying-questions-modal-email" /> 1847 <input type="hidden" name="triggerSource" id="qualifying-questions-modal-triggerSource" value="" /> 1848 <label for="qualifying-questions-modal-email" style="display:none;"> 1849 Email 1850 </label> 1851 <label for="qualifying-questions-modal-triggerSource" style="display:none;"> 1852 Trigger Source 1853 </label> 1854 1855 <div style="margin-bottom: 20px;"> 1856 <label for="qualifying-questions-modal-phoneNumber" style="display:none;"> 1857 Phone Number 1858 </label> 1859 <input 1860 type="tel" 1861 id="qualifying-questions-modal-phoneNumber" 1862 name="phoneNumber" 1863 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;" 1864 pattern="^\+?1?[-.\s]?\(?[0-9]{3}\)?[-.\s]?[0-9]{3}[-.\s]?[0-9]{4}$" 1865 required 1866 placeholder="Phone" 1867 aria-label="Phone Number" 1868 inputmode="tel" 1869 autocomplete="tel" 1870 onfocus="this.style.borderColor='black';" 1871 onblur="this.style.borderColor='#848484';" 1872 /> 1873 </div> 1874 1875 <div style="margin-bottom: 20px;"> 1876 <label for="qualifying-questions-modal-interest" style="display:none;"> 1877 Interest 1878 </label> 1879 <select 1880 id="qualifying-questions-modal-interest" 1881 name="interest" 1882 required 1883 data-label="Interest" 1884 aria-label="Interest" 1885 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;" 1886 onfocus="this.style.borderColor='black'; this.style.color='black';" 1887 onblur="this.style.borderColor='#848484'; if(this.value === '') this.style.color='#848484'; else this.style.color='black';" 1888 > 1889 <option value="" style="background: #fff; color: #848484;" disabled selected>Interested in...</option> 1890 <option value="Selling & Buying" style="background: #fff; color: black;">Selling & Buying</option> 1891 <option value="Selling" style="background: #fff; color: black;">Selling</option> 1892 <option value="Buying" style="background: #fff; color: black;">Buying</option> 1893 <option value="Renting" style="background: #fff; color: black;">Renting</option> 1894 <option value="Other" style="background: #fff; color: black;">Other</option> 1895 </select> 1896 </div> 1897 1898 <div style="margin-bottom: 32px; font-size: 12px; line-height: 1.2;"> 1899 <label style='display: none;' for='qualifying-questions-modal-qualifying-questions-termsAccepted'>Opt In/Disclaimer Consent:</label> 1900 <label class='lp-tcr-content'>
1901 <span class='lp-tcr-checkbox'> 1902 <input 1903 type='checkbox' 1904 id='qualifying-questions-modal-qualifying-questions-termsAccepted' 1905 name='termsAccepted' 1906 aria-describedby='qualifying-questions-modal-disclaimer-text' 1907 oninvalid="this.setCustomValidity('Please accept the terms and conditions')" 1908 oninput="this.setCustomValidity('')" 1909 required 1910 /></span> 1911 <span class='lp-tcr-message'> 1912 <div id="qualifying-questions-modal-disclaimer-text" class="collapsed" style="color: #848484;"> 1913 1914 I agree to be contacted by 1915 <strong>Richard Scully & Associates</strong> 1916 via call, email, and text <span class="disclaimer-more">for real estate services. 1917 To opt out, you can reply 'stop' at any time or reply 'help' for assistance. 1918 You can also click the unsubscribe link in the emails. 1919 Message and data rates may apply. Message frequency may vary.</span> 1920 <span class="disclaimer-ellipsis">...</span> 1921 <a href='/terms-and-conditions' target='_blank' rel='noopener noreferrer' style='text-decoration: underline;'>Privacy Policy</a>. 1922 </div> 1923 <button 1924 id="qualifying-questions-modal-toggle-disclaimer" 1925 type="button" 1926 style="background: none; border: none; color: #848484; font-size: inherit; font-weight: bold; padding: 0; margin-top: 4px; cursor: pointer;" 1927 aria-expanded="false" 1928 onclick="toggleDisclaimerQualifyingQuestionsModal()" 1929 > 1930 Read more 1931 </button> 1932 </span> 1933 </label> 1934 </div> 1935 1936 <div> 1937 <button 1938 type="submit" 1939 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;" 1940 onmouseover="this.style.background='transparent'; this.style.color='black';" 1941 onmouseout="this.style.background='black'; this.style.color='white';" 1942 > 1943 Submit 1944 </button> 1945 </div> 1946 </form> 1947 </div> 1948 </div> 1949 </div> 1950 </div> 1951 1952
1952<script> 1953 (function() { 1954 var lazyVideos = [].slice.call(document.querySelectorAll("video.lazy")); 1955 1956 if ("IntersectionObserver" in window && lazyVideos.length > 0) { 1957 var lazyVideoObserver = new IntersectionObserver(function(entries, observer) { 1958 entries.forEach(function(video) { 1959 if (video.isIntersecting) { 1960 for (var source in video.target.children) { 1961 var videoSource = video.target.children[source]; 1962 if (typeof videoSource.tagName === "string" && videoSource.tagName === "SOURCE") { 1963 videoSource.src = videoSource.dataset.src; 1964 } 1965 } 1966 1967 video.target.load(); 1968 video.target.classList.remove("lazy"); 1969 lazyVideoObserver.unobserve(video.target); 1970 } 1971 }); 1972 }); 1973 1974 lazyVideos.forEach(function(lazyVideo) { 1975 lazyVideoObserver.observe(lazyVideo); 1976 }); 1977 } 1978 })(); 1979 </script>
1979 1980 1981 <!-- Global site tag (gtag.js) - Google Analytics --> 1982
1982<script defer src="https://www.googletagmanager.com/gtag/js"></script>
1982 1983 1984 <!-- Google Tag Manager --> 1985
1985<script>(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start': 1986 new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0], 1987 j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.defer=true;j.async=false;j.src= 1988 'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f); 1989 })(window,document,'script','dataLayer','GTM-T9SFQGHZ');</script>
1989 1990 <!-- End Google Tag Manager --> 1991 1992 1993 <!-- LP Tracker (divolte.js) - LP Divolte --> 1994
1994<script>window.divolteLp=window.divolteLp||function(){(divolteLp.q=divolteLp.q||[]).push(arguments)}</script>
1994 1995 <!-- LP Tracker (eventBus) - LP EventBus --> 1996
1996<script>window.eventBusLp=window.eventBusLp||function(){(eventBusLp.q=eventBusLp.q||[]).push(arguments)}</script>
1996 1997 1998
1998<script> 1999 window.dataLayer = window.dataLayer || []; 2000 document.sendGoogleTagManagerEvent = function() { 2001 /* Honor GPC-enabled browsers and prevent GTM event if GPC is enabled. More details: https://global-privacy-control.glitch.me/ */ 2002 if (window.navigator.globalPrivacyControl) { 2003 return; 2004 } 2005 2006 dataLayer.push(arguments); 2007 } 2008 2009 document.sendGoogleTagManagerEvent('js', new Date()); 2010 document.sendGoogleTagManagerEvent('config', 'G-RP3QBYL2WD', { page: location.pathname, location: location.href }); 2011 document.sendGoogleAnalyticsEvent = function(googleEvent) { 2012 document.sendGoogleTagManagerEvent('event', googleEvent.eventAction || googleEvent.hitType, { 2013 event_category: googleEvent.eventCategory, 2014 event_label: googleEvent.eventLabel, 2015 value: googleEvent.eventValue, 2016 page: googleEvent.page, 2017 location: googleEvent.location 2018 }) 2019 }; 2020 2021 document.addEventListener("DOMContentLoaded", function() { 2022 (function() { 2023 //If the page has an element with ID of auto-year-update the element will be populated with the current year. 2024 var date = new Date(); 2025 var elements = document.getElementsByClassName('auto-year-update'); 2026 var i; 2027 for (i = 0; i < elements.length; i++) { 2028 elements[i].innerText = date.getFullYear(); 2029 } 2030 })(); 2031 if (window.divolteLp) { 2032 window.divolteLp('sendLpPageView', {}); 2033 } 2034 if (window.eventBusLp) { 2035 window.eventBusLp('sendLpPageView', {}); 2036 } 2037 }); 2038 </script>
2038 2039 2040 2041
2041<script> 2042 // Function to dynamically load a script 2043 function loadScript(url, callback) { 2044 var script = document.createElement('script'); 2045 script.type = 'text/javascript'; 2046 script.src = url; 2047 script.defer = true; 2048 script.async = true; 2049 script.onload = callback; 2050 document.head.appendChild(script); 2051 } 2052 2053 // Function to dynamically load CSS file 2054 function loadCSS(url) { 2055 var link = document.createElement("link"); 2056 link.rel = "stylesheet"; 2057 link.href = url; 2058 document.head.appendChild(link); 2059 } 2060 2061 // Global methods / variables that can be accessed by element js 2062 window.luxuryPresence = { 2063 libs: { 2064 loadJs: loadScript, 2065 loadCss: loadCSS, 2066 jsLibsMap: { 2067 paroller: { 2068 jsSrc: 'https://d1e1jt2fj4r8r.cloudfront.net/javascript/jquery.paroller.min.js', 2069 isLoaded: false, 2070 }, 2071 ionRangeSlider: { 2072 jsSrc: 'https://cdnjs.cloudflare.com/ajax/libs/ion-rangeslider/2.3.1/js/ion.rangeSlider.min.js', 2073 cssSrc: 'https://cdnjs.cloudflare.com/ajax/libs/ion-rangeslider/2.3.1/css/ion.rangeSlider.min.css', 2074 isLoaded: false, 2075 requires: ['jquery'], 2076 }, 2077 splide: { 2078 jsSrc: 'https://cdnjs.cloudflare.com/ajax/libs/splidejs/4.1.4/js/splide.min.js', 2079 cssSrc: 'https://cdnjs.cloudflare.com/ajax/libs/splidejs/4.1.4/css/splide-core.min.css', 2080 isLoaded: false, 2081 }, 2082 wow: { 2083 jsSrc: 'https://cdnjs.cloudflare.com/ajax/libs/wow/1.1.2/wow.min.js', 2084 isLoaded: false, 2085 }, 2086 jquery: { 2087 jsSrc: 'https://cdnjs.cloudflare.com/ajax/libs/jquery/3.7.1/jquery.min.js', 2088 isLoaded: false, 2089 }, 2090 slick: { 2091 jsSrc: 'https://cdnjs.cloudflare.com/ajax/libs/slick-carousel/1.8.1/slick.min.js', 2092 isLoaded: false, 2093 requires: ['jquery'], 2094 }, 2095 libphonenumber: { 2096 jsSrc: 'https://cdnjs.cloudflare.com/ajax/libs/libphonenumber-js/1.11.8/libphonenumber-js.min.js', 2097 isLoaded: false, 2098 }, 2099 }, 2100 }, 2101 }; 2102 </script>
2102 2103
2103<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>
2103 2104
2104<script defer src="https://cdnjs.cloudflare.com/ajax/libs/handlebars.js/4.7.8/handlebars.min.js"></script>
2104 2105
2105<script defer src="https://cdn.jsdelivr.net/npm/[email protected]/dist/handlebars-intl.min.js"></script>
2105 2106
2106<script defer src="https://cdnjs.cloudflare.com/ajax/libs/superagent/4.1.0/superagent.min.js"></script>
2106 2107
2107<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>
2107 2108
2108<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>
2108 2109
2109<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>
2109 2110 2111 <!-- GOOGLE TRANSLATE SCRIPT --> 2112
2112<script> 2113 function googleTranslateElementInit() { 2114 // list of languages can be overridden by setting window.customLanguages in the head JS. example `window.customLanguages = 'en,de,fr,ro,sk,pl'` 2115 // Language codes can be taken from here https://cloud.google.com/translate/docs/languages 2116 const DEFAULT_LANGUAGES = 'en,es,zh-CN,zh-TW,tl,vi,ar,ko,ru,de,fr,hi,pt'; 2117 document.querySelectorAll('[data-type="TRANSLATE"]').forEach(function(translate){ 2118 translate.innerText = ''; 2119 new google.translate.TranslateElement({ 2120 pageLanguage: 'en', 2121 layout: google.translate.TranslateElement.InlineLayout.SIMPLE, 2122 includedLanguages: window.customLanguages || DEFAULT_LANGUAGES, 2123 }, translate); 2124 }); 2125 } 2126 </script>
2126 2127
2127<script defer src="//translate.google.com/translate_a/element.js?cb=googleTranslateElementInit"></script>
2127 2128
2128<script defer src="https://accounts.google.com/gsi/intermediate"></script>
2128 2129 2130 <!-- GOOGLE TRANSLATE SCRIPT END--> 2131
2131<script> 2132 2133 // UI helpers 2134 (function () { 2135 2136 function getSideMenu () { 2137 return document.querySelector('body > div.sidemenu'); 2138 } 2139 2140 function sideMenuHide (instant) { 2141 var sideMenu = getSideMenu(); 2142 if (!sideMenu || !sideMenu.classList.contains('visible')) { 2143 return; 2144 } 2145 sideMenu.classList.remove('visible'); 2146 sideMenu.dispatchEvent(new CustomEvent('lpui-hide', { detail: { instant: !!instant } })); 2147 window.dispatchEvent(new CustomEvent('lpui-sidemenu-hide', { detail: {instant: !!instant} })); 2148 } 2149 2150 function sideMenuShow () { 2151 var sideMenu = getSideMenu(); 2152 if (!sideMenu || sideMenu.classList.contains('visible')) { 2153 return; 2154 } 2155 sideMenu.classList.add('visible'); 2156 sideMenu.dispatchEvent(new Event('lpui-show')); 2157 window.dispatchEvent(new Event('lpui-sidemenu-show')); 2158 } 2159 2160 function sideMenuToggle () { 2161 var sideMenu = getSideMenu(); 2162 if (!sideMenu) { 2163 return; 2164 } 2165 var isSideMenuVisible = sideMenu.classList.contains('visible'); 2166 if (isSideMenuVisible) { 2167 sideMenuHide(); 2168 } else { 2169 sideMenuShow(); 2170 } 2171 } 2172 2173 var scrollLockRequests = {}; 2174 window.__debug_scrollLockRequests = scrollLockRequests; 2175 var hideScrollStyles = ''+ 2176 'body {'+ 2177 'overflow: hidden;' + 2178 '}'; 2179 var hideScrollId = 'hide-body-scroll-style'; 2180 2181 function scrollLock () { 2182 var style = document.createElement('style'); 2183 style.id = hideScrollId; 2184 style.textContent = hideScrollStyles; 2185 document.head.appendChild(style); 2186 window.dispatchEvent(new Event('lpui-scroll-locked')); 2187 } 2188 2189 function scrollUnlock () { 2190 document.getElementById(hideScrollId)?.remove(); 2191 window.dispatchEvent(new Event('lpui-scroll-unlocked')); 2192 } 2193 2194 function requestScrollLock (lockId) { 2195 var wasLocked = Object.keys(scrollLockRequests).length > 0; 2196 scrollLockRequests[lockId || '__anonymous_lock'] = true; 2197 if (!wasLocked) { 2198 scrollLock(); 2199 } 2200 } 2201 2202 function releaseScrollLock (lockId) { 2203 if (lockId) { 2204 delete scrollLockRequests[lockId]; 2205 if (!Object.keys(scrollLockRequests).length) { 2206 scrollUnlock(); 2207 } 2208 } else { 2209 scrollLockRequests = {}; 2210 window.__debug_scrollLockRequests = scrollLockRequests; 2211 scrollUnlock(); 2212 } 2213 } 2214 2215 function showModal (modalId, options) { 2216 var modal = document.getElementById(modalId); 2217 if (!modal) { 2218 return; 2219 } 2220 2221 if (!modal.classList.contains('visible')) { 2222 modal.classList.add('visible'); 2223 if (options && options.scrollLock) { 2224 window.lpUI.requestScrollLock(modalId); 2225 } 2226 modal.dispatchEvent(new Event('lpui-show')); 2227 window.dispatchEvent(new CustomEvent('lpui-modal-show', { detail: { id: modalId } })); 2228 } 2229 2230 const visibleModals = document.querySelectorAll('.modal.visible'); 2231 2232 if (visibleModals.length > 1) { 2233 2234 const maxZIndex = Array.from(visibleModals).reduce((maxZIndex, modal) => { 2235 const zIndex = window.getComputedStyle(modal).zIndex; 2236 const parsedZIndex = zIndex !== 'auto' ? parseInt(zIndex) : 0; 2237 return Math.max(maxZIndex, parsedZIndex); 2238 }, 0); 2239 2240 modal.style.zIndex = maxZIndex + 1; 2241 } 2242 2243 } 2244 2245 function _hideModal (modalEl) { 2246 if (!modalEl) { 2247 return; 2248 } 2249 if (!modalEl.classList.contains('visible')) { 2250 return; 2251 } 2252 modalEl.classList.remove('visible'); 2253 modalEl.style.zIndex = '';
2254 modalEl.dispatchEvent(new Event('lpui-hide')); 2255 var modalId = modalEl.getAttribute('id'); 2256 if (modalId) { 2257 window.lpUI.releaseScrollLock(modalId); 2258 window.dispatchEvent(new CustomEvent('lpui-modal-hide', { detail: { id: modalId } })); 2259 } 2260 } 2261 2262 function hideModal (modalId) { 2263 _hideModal(document.getElementById(modalId)); 2264 } 2265 2266 function hideClosestModal (el) { 2267 const modal = el?.closest('.modal'); 2268 if (!modal) { 2269 return; 2270 } 2271 if (modal.classList) { 2272 _hideModal(modal); 2273 return; 2274 } 2275 if (modal.length && modal[0].classList) { 2276 _hideModal(modal[0]); 2277 } 2278 } 2279 2280 window.lpUI = { 2281 sideMenuHide: sideMenuHide, 2282 sideMenuShow: sideMenuShow, 2283 sideMenuToggle: sideMenuToggle, 2284 requestScrollLock: requestScrollLock, 2285 releaseScrollLock: releaseScrollLock, 2286 showModal: showModal, 2287 hideModal: hideModal, 2288 hideClosestModal: hideClosestModal 2289 } 2290 })(); 2291 2292 var stringifyPrimitive = function(v) { 2293 switch (typeof v) { 2294 case 'string': 2295 return v; 2296 2297 case 'boolean': 2298 return v ? 'true' : 'false'; 2299 2300 case 'number': 2301 return isFinite(v) ? v : ''; 2302 2303 default: 2304 return ''; 2305 } 2306 }; 2307 2308 function objectToQuerystring(obj, sep, eq, name) { 2309 // https://github.com/Gozala/querystring/blob/master/encode.js 2310 sep = sep || '&'; 2311 eq = eq || '='; 2312 if (obj === null) { 2313 obj = undefined; 2314 } 2315 2316 if (typeof obj === 'object') { 2317 return Object.keys(obj).map(function(k) { 2318 var ks = encodeURIComponent(stringifyPrimitive(k)) + eq; 2319 if (Array.isArray(obj[k])) { 2320 return obj[k].map(function(v) { 2321 return ks + encodeURIComponent(stringifyPrimitive(v)); 2322 }).join(sep); 2323 } else { 2324 return ks + encodeURIComponent(stringifyPrimitive(obj[k])); 2325 } 2326 }).filter(Boolean).join(sep); 2327 2328 } 2329 2330 if (!name) return ''; 2331 return encodeURIComponent(stringifyPrimitive(name)) + eq + 2332 encodeURIComponent(stringifyPrimitive(obj)); 2333 } 2334 2335 function getPath(url, options) { 2336 var parser = document.createElement('a'); 2337 parser.href = url || ''; 2338 var path = parser.pathname || ''; 2339 if (path[0] !== '/') { 2340 // IE does not return path starting with a slash 2341 path = '/' + path; 2342 } 2343 2344 if (options && options.queryString) { 2345 path += parser.search; 2346 } 2347 2348 return path; 2349 } 2350 2351 function getMLSAutocomplete(keyword) { 2352 var searchURL = window.location.protocol + '//' + window.location.hostname + '/home-search/auto_complete'; 2353 var query = { 2354 kind: 'listings', 2355 query: keyword 2356 }; 2357 2358 return superagent 2359 .get(searchURL) 2360 .query(query) 2361 .then(function(res) { 2362 var data = res.body || []; 2363 // Array of listing_auto_complete documents: id, display_address, city, state, 2364 // price, sold_price, status, status_modified_at, photo_urls (array of URLs). 2365 2366 return data; 2367 }); 2368 } 2369 2370 function getMLSAutocompleteWithFilters(keyword, filters = {}) { 2371 var searchURL = window.location.protocol + '//' + window.location.hostname + '/home-search/auto_complete'; 2372 2373 return superagent 2374 .get(searchURL) 2375 .query({ kind: 'listings', query: keyword, ...filters }) 2376 .then(function(res) { 2377 // Same response shape as getMLSAutocomplete. 2378 return res.body || []; 2379 }); 2380 } 2381 2382 function makeMlsLink(data) { 2383 // Code Dupe from utils/googlePlace 2384 // mapping of google data type to mls data type 2385 var mapping = { 2386 neighborhood: 'neighborhood', 2387 locality: 'place', 2388 administrative_area_level_2: 'county', 2389 administrative_area_level_1: 'state', 2390 postal_code: 'postalcode', 2391 }; 2392 2393 function _filterTypes(types) { 2394 return types.filter(function(type) { return type !== 'political' }); 2395 } 2396 2397 if (!data || !Object.keys(data).length) { 2398 return '/home-search/listings'; 2399 } 2400 2401 var newData = {};
2402 _filterTypes(data.types).forEach(function(type) { 2403 if (mapping[type]) { 2404 newData.search_type = mapping[type]; 2405 } 2406 }); 2407 newData.omnibox = data.formatted_address; 2408 data.address_components.forEach(function(component) { 2409 _filterTypes(component.types).forEach(function(type) { 2410 if (mapping[type]) { 2411 newData[mapping[type]] = component.long_name; 2412 } 2413 }); 2414 }); 2415 var bounds = data.geometry.bounds; 2416 var convertedData = Object.assign(bounds, newData); 2417 2418 return '/home-search/listings?' + objectToQuerystring(convertedData); 2419 } 2420 2421 function debounce(func, wait) { 2422 let timeout; 2423 return function(...args) { 2424 const context = this; 2425 clearTimeout(timeout); 2426 timeout = setTimeout(() => func.apply(context, args), wait) 2427 } 2428 } 2429 2430 // Global methods / variables that can be accessed by element js 2431 window.luxuryPresence = { 2432 ...window.luxuryPresence, 2433 defaults: { 2434 companyId: 'c3076ecb-c2d7-457b-a426-bcf036133f1f', 2435 apiGatewayUrl: '/api-gw', 2436 routerUrl: '/api-nv', 2437 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\
2437n }\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
2437s: 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"}, 2438 propertyPlaceholderImage: {"id":"20c18a72-fa66-4e51-9f6a-0ab3003403c5","alt":null,"bytes":43683,"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/c7438ea9-abb7-47be-b004-8d4abcf471e0","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/c7438ea9-abb7-47be-b004-8d4abcf471e0","authorUrl":null,"createdAt":"2025-04-17T18:38:20.808Z","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/c7438ea9-abb7-47be-b004-8d4abcf471e0","sourceUrl":null,"updatedAt":"2025-04-17T18:38:20.808Z","xLargeUrl":"https://media-production.lp-cdn.com/cdn-cgi/image/format=auto,quality=85/https://media-production.lp-cdn.com/media/c7438ea9-abb7-47be-b004-8d4abcf471e0","__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/c7438ea9-abb7-47be-b004-8d4abcf471e0","de
2438scription":null,"displayName":"property_richard-scully-and-associates","originalUrl":"https://media-production.lp-cdn.com/cdn-cgi/image/format=auto,quality=85/https://media-production.lp-cdn.com/media/c7438ea9-abb7-47be-b004-8d4abcf471e0","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/c7438ea9-abb7-47be-b004-8d4abcf471e0","originalFileName":"Property_Richard Scully & Associates","cloudinaryPublicId":"c7438ea9-abb7-47be-b004-8d4abcf471e0"} 2439 }, 2440 objectToQuerystring: objectToQuerystring, 2441 getPath: getPath, 2442 getMLSAutocomplete: getMLSAutocomplete, 2443 getMLSAutocompleteWithFilters: getMLSAutocompleteWithFilters, 2444 makeMlsLink: makeMlsLink, 2445 debounce: debounce, 2446 }; 2447 2448 var wowOffset = 100; 2449 </script>
2449 2450
2450<script> 2451 (()=>{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)];
2451let 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;
2451i&&(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())),`
2451<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}
2451return 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
2451ontact 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
2451ourceResource,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=([^;
2451]+)/);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=` 2452 query PropertyDisclaimers($input: PropertyDisclaimersInput!) { 2453 propertyDisclaimers(input: $input) { 2454 feedId 2455 listingId 2456 resolvedFromListing 2457 listingCardAttribution 2458 listingDetailCourtesy 2459 listingDetailFooter 2460 logo 2461 } 2462 } 2463`;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 >
2463 .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=)
2463)|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=` 2464 <div id="modal-${i.id}" class="modal visible"> 2465 <div class="modal-content"> 2466 <div class="lightbox-video"> 2467 <div class="video-player"> 2468 <div class="embed-container"> 2469 ${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>`} 2470 </div> 2471 </div> 2472 </div> 2473 </div> 2474 <button class="close lp-close" type="button" aria-label="close modal"><span class="lp-close-icon" aria-hidden="true"></span></button> 2475 </div> 2476 `;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
2476=>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");
2476let 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
2476URIComponent(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=` 2477 <button class="lp-lightbox__close" aria-label="close modal"></button> 2478 <div class="lp-lightbox__content"> 2479 <div class="lp-lightbox__carousel splide" role="group" aria-label="Image Gallery"> 2480 <div class="splide__arrows"> 2481 <button class="splide__arrow splide__arrow--prev lp-lightbox-arrow lp-lightbox-arrow--prev"></button> 2482 <button class="splide__arrow splide__arrow--next lp-lightbox-arrow lp-lightbox-arrow--next"></button> 2483 </div> 2484 <div class="splide__track"> 2485 <ul class="splide__list"></ul> 2486 </div> 2487 </div> 2488 </div> 2489 `,"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
2489h(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=` 2490 <button class="lp-lightbox__close" aria-label="close modal"></button> 2491 <div class="lp-lightbox__content"> 2492 <div class="lp-lightbox__carousel"></div> 2493 </div> 2494 `,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"}
2494)),(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"];
2494return 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=` 2495 query { 2496 validSession { 2497 success 2498 } 2499 } 2500 `;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","
2500spaceTypeIds","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})}})(); 2501//# sourceMappingURL=lp-sdk.js.map 2502 2503 </script>
2503 2504 2505
2505<script> 2506 var lpGlobalInitialized = false; 2507 2508 function lpGlobalInit () { 2509 if (lpGlobalInitialized) { 2510 return; 2511 } 2512 lpGlobalInitialized = true; 2513 // Initialize wow animation plugin only according to turbolinks 2514 var wow; 2515 if (window.WOW) { 2516 wow = new WOW({ 2517 animateClass: 'animated', 2518 offset: wowOffset, 2519 live: false, 2520 callback: function(box) {} 2521 }); 2522 } 2523 // Initialize handlebar helpers only once 2524 function handlebarsInit() { 2525 if (!window.Handlebars) { 2526 return; 2527 } 2528 HandlebarsIntl.registerWith(Handlebars); 2529 Handlebars.registerHelper(window.luxuryPresence.handlebarsHelpersFactory(Handlebars)); 2530 } 2531 2532 handlebarsInit(); 2533 2534 /* Initialize Luxury Presence SDK */ 2535 try { 2536 window.luxuryPresence.config.setCompany("c3076ecb-c2d7-457b-a426-bcf036133f1f", {}); 2537 window.luxuryPresence.config.setWebsite("ff06f655-0c64-45c8-9c55-e8468b4e5303", { 2538 myhomeDashboardEnabled: false, 2539 mlsEnabled: false, 2540 hstValuationRedirectEnabled: true, 2541 hvStepTwoCaptureEnabled: false 2542 }); 2543 const url = new URL(window.location.href); 2544 const shareId = url.searchParams.get('shareId'); 2545 window.luxuryPresence.config.setPage("2d46362d-489a-4c58-9705-c249398d1c9c", { 2546 sourceResource: "", 2547 pageElementId: "", 2548 pageQueryVariables: {}, 2549 shareId: "", 2550 }); 2551 window.luxuryPresence.config.setWebsiteApiGatewayUrl("https://wgw.luxurypresence.com", {}); 2552 window.luxuryPresence.config.setBuyerSellerServiceUrl("https://bss.luxurypresence.com", {}); 2553 window.luxuryPresence.config.setDivolteServiceUrl("https://t.luxurypresence.com", {}); 2554 window.luxuryPresence.config.setEventBusUrl("https://cdn.luxurypresence.com/scripts/event-bus-js", {}); 2555 window.luxuryPresence.config.setEventBus({ 2556 enabled: true, 2557 apiKey: "phc_PMYT31xlmXBaTCwpIRx1v6RrpLVZIuP47N3mOT6KLnr", 2558 url: "https://p.luxurypresence.com", 2559 }); 2560 window.luxuryPresence.config.setTemplateId("0c2b9641-6f2a-40f2-a2e0-dabc022eb278", {}); 2561 window.luxuryPresence.config.setLeadIngesterUrl("https://leads.luxurypresence.com", {}); 2562 window.luxuryPresence.buttons.initialize({}); 2563 window.luxuryPresence.consent.initialize({ provider: 'lp-consent' }); 2564 window.luxuryPresence.contactForms.initialize({}); 2565 window.luxuryPresence.validation.initialize({}); 2566 window.luxuryPresence.expandSliders.initialize({}); 2567 window.luxuryPresence.oauth.initialize({ googleSignOnEnabled: true, iframe: false }); 2568 window.luxuryPresence.qualifyingQuestionsModal.initialize({ qualifyingQuestionsModalEnabled: true }); 2569 } catch (e) { 2570 console.log(e); 2571 } 2572 2573 /* Inject Section Specific Javascript */ 2574 try { 2575(function init(sectionDomId) { 2576 const disclaimerLabel = document.querySelector('#' + sectionDomId + ' .lp-tcr-content'); 2577 if (disclaimerLabel) { 2578 const input = disclaimerLabel.querySelector('input'); 2579 if (input) { 2580 input.setAttribute('id', `${sectionDomId}-termsAccepted`); 2581 input.value = 'true'; 2582 const label = document.createElement('label'); 2583 label.setAttribute('for', `${sectionDomId}-termsAccepted`); 2584 label.classList.add('lp-visually-hidden'); 2585 label.textContent = 'Opt in/Disclaimer Consent:'; 2586 disclaimerLabel.prepend(label); 2587 } 2588 } 2589 function setHttp(link) { 2590 if (link.search(/^http[s]?\:\/\/|\//) == -1) { 2591 link = 'https://' + link; 2592 } 2593 return link; 2594 } 2595 const socialLinks = document.querySelectorAll('#' + sectionDomId + ' .socials__link, #' + sectionDomId + ' .lp-socials__link'); 2596 socialLinks.forEach(linkElement => { 2597 const href = linkElement.getAttribute('href'); 2598 if (href) { 2599 linkElement.setAttribute('href', setHttp(href)); 2600 } 2601 }); 2602 const redirectLink = $('#' + sectionDomId + ' .redirect-link'); 2603 if (redirectLink.length) { 2604 const rawHref = setHttp(redirectLink.attr('href')); 2605 let formEvent; 2606 if (rawHref) { 2607 formEvent = redirectLink.data('redirect') ? 'formsubmitted' : 'reset'; 2608 $('#' + sectionDomId + ' .contact-form').find('form').on(formEvent, function () { 2609 redirectLink.attr('href', rawHref); 2610 redirectLink[0].click(); 2611 }); 2612 } 2613 } 2614})('modal-global-contact-us'); 2615} catch(e) { 2616console.log(e); 2617} 2618 2619 try { 2620(function init(sectionDomId) { 2621 const $section = $('#' + sectionDomId); 2622 const $hamburger = $section.find('.hamburger-component'); 2623 function onSideMenuShow() { 2624 if (!$hamburger.hasClass('active')) { 2625 $hamburger.addClass('active'); 2626 } 2627 } 2628 function onSideMenuHide() { 2629 $hamburger.removeClass('active'); 2630 } 2631 const $window = $(window); 2632 $window.on('lpui-sidemenu-show.lpui-auto-clean', onSideMenuShow); 2633 $window.on('lpui-sidemenu-hide.lpui-auto-clean', onSideMenuHide); 2634 const $subContainers = $section.find('.navigation__item.sub-nav-container'); 2635 $subContainers.hover(function () { 2636 $(this).find('.sub-nav').addClass('visible'); 2637 }, function () { 2638 $(this).find('.sub-nav').removeClass('visible'); 2639 }); 2640 $window.on('click.lpui-auto-clean', function () { 2641 $('.sub-nav-container.visible-dropdown').removeClass('visible-dropdown'); 2642 }); 2643 let fixedWidth = 0; 2644 const rightPad = 20; 2645 function fixSubsPosition() { 2646 const wWidth = window.innerWidth; 2647 if (innerWidth === fixedWidth) { 2648 return; 2649 } 2650 fixedWidth = wWidth; 2651 $subContainers.each(function () { 2652 const $sub = $(this).find('.sub-nav'); 2653 $sub[0].style.right = '';
2654 const sRect = $sub[0].getBoundingClientRect(); 2655 const sRight = sRect.left + sRect.width; 2656 if (sRight > wWidth - rightPad) { 2657 const parentRect = $sub[0].offsetParent.getBoundingClientRect(); 2658 const parentRight = parentRect.left + parentRect.width; 2659 $sub[0].style.right = `${parentRight - wWidth + rightPad}px`; 2660 } 2661 }); 2662 } 2663 var debouncer; 2664 $window.on('resize.lpui-auto-clean', function () { 2665 clearTimeout(debouncer); 2666 debouncer = setTimeout(fixSubsPosition, 500); 2667 }); 2668 fixSubsPosition(); 2669 if ($('.property-intro').length || $('.property-intro-2').length) { 2670 $('nav').addClass('dark-opening'); 2671 $("#global-navbar").css({ 2672 "background-color": "rgb(26, 26, 26)", 2673 "color": "rgb(255, 255, 255)" 2674 }); 2675 } 2676 function initAutoTruncateMenu() { 2677 const $navbar = $section.find('.navbar'); 2678 const $navList = $section.find('.navigation > ul'); 2679 if (!$navbar.length || !$navList.length) { 2680 return; 2681 } 2682 const $logo = $section.find('.logo'); 2683 const $buttonsWrapper = $section.find('.buttons-wrapper'); 2684 const $allItems = $navList.children('.navigation__item'); 2685 const $phoneItem = $allItems.filter(function () { 2686 return $(this).find('a[href^="tel:"]').length > 0; 2687 }); 2688 const $menuItems = $allItems.not($phoneItem); 2689 if (!$menuItems.length) { 2690 return; 2691 } 2692 const buffer = 8; 2693 function measureFixedWidth() { 2694 let width = buffer; 2695 if ($logo.length) { 2696 width += $logo.outerWidth(true) || 0; 2697 } 2698 if ($buttonsWrapper.length) { 2699 width += $buttonsWrapper.outerWidth(true) || 0; 2700 } 2701 if ($phoneItem.length) { 2702 width += $phoneItem.outerWidth(true) || 0; 2703 } 2704 return width; 2705 } 2706 function truncateMenu() { 2707 if (!$navList.is(':visible')) { 2708 return; 2709 } 2710 $menuItems.css('display', ''); 2711 const availableWidth = $navbar[0].getBoundingClientRect().width - measureFixedWidth(); 2712 let widthSoFar = 0; 2713 let overflowed = false; 2714 $menuItems.each(function () { 2715 const $item = $(this); 2716 if (overflowed) { 2717 $item.css('display', 'none'); 2718 return; 2719 } 2720 widthSoFar += $item.outerWidth(true); 2721 if (widthSoFar > availableWidth) { 2722 $item.css('display', 'none'); 2723 overflowed = true; 2724 } 2725 }); 2726 } 2727 let truncateFrame; 2728 function scheduleTruncate() { 2729 if (truncateFrame) { 2730 return; 2731 } 2732 truncateFrame = window.requestAnimationFrame(function () { 2733 truncateFrame = null; 2734 truncateMenu(); 2735 }); 2736 } 2737 scheduleTruncate(); 2738 if (window.ResizeObserver) { 2739 const resizeObserver = new ResizeObserver(scheduleTruncate); 2740 resizeObserver.observe($navbar[0]); 2741 } else { 2742 $(window).on('resize.lpui-auto-truncate', scheduleTruncate); 2743 } 2744 $section.find('img').on('load.lpui-auto-truncate', scheduleTruncate); 2745 $(window).on('load.lpui-auto-truncate', scheduleTruncate); 2746 if (document.fonts && document.fonts.ready) { 2747 document.fonts.ready.then(scheduleTruncate); 2748 } 2749 } 2750 initAutoTruncateMenu(); 2751})('global-navbar'); 2752} catch(e) { 2753console.log(e); 2754} 2755 try { 2756(function init(sectionDomId, options) { 2757 var elementSelector = options.elementSelector || 'nav'; 2758 var element = document.querySelector(elementSelector); 2759 var sections = document.querySelectorAll('body > section'); 2760 var subNavContainers = element.querySelectorAll('.sub-nav'); 2761 var initialBackgroundColor = options.initialBackgroundColor || element.style.backgroundColor; 2762 var backgroundColorScroll = options.backgroundColorScroll || '#191919'; 2763 var fontColor = options.fontColor || '#fff'; 2764 var fontColorScroll = options.fontColorScroll || '#000'; 2765 var didScroll = false; 2766 var lastScrollTop = 0; 2767 var delta = 5; 2768 2769 // eslint-disable-next-line sonarjs/no-collapsible-if 2770 if (wow) { 2771 // Wowjs might not trigger for position fixed elements 2772 if (window.scrollY > 0) { 2773 element.querySelectorAll('.wow').forEach(el => wow.show(el)); 2774 } 2775 } 2776 function adjustNavPinState() { 2777 // Remove 'visible' class from all subNavContainers 2778 for (let i = 0; i < subNavContainers.length; i++) { 2779 subNavContainers[i].classList.remove('visible'); 2780 } 2781 if (window.scrollY > 0) { 2782 element.style.backgroundColor = backgroundColorScroll; 2783 element.style.color = fontColorScroll; 2784 element.classList.add('scroll'); 2785 } else {
2786 element.style.backgroundColor = initialBackgroundColor; 2787 element.style.color = fontColor; 2788 element.classList.remove('scroll'); 2789 } 2790 } 2791 adjustNavPinState(); 2792 function onScroll() { 2793 didScroll = true; 2794 } 2795 window.addEventListener('scroll', onScroll); 2796 2797 // eslint-disable-next-line 2798 var debounceInterval = setInterval(() => { 2799 if (didScroll) { 2800 // eslint-disable-next-line 2801 hasScrolled(); 2802 didScroll = false; 2803 } 2804 }, 250); 2805 function hasScrolled() { 2806 adjustNavPinState(); 2807 // eslint-disable-next-line 2808 var navbarHeight = element.offsetHeight; 2809 // eslint-disable-next-line 2810 var st = window.scrollY; 2811 2812 // Make sure they scroll more than delta 2813 if (Math.abs(lastScrollTop - st) <= delta) { 2814 return; 2815 } 2816 if (st > lastScrollTop && st > navbarHeight) { 2817 // Scroll Down 2818 element.style.transform = `translateY(-${navbarHeight}px) scaleY(0)`; 2819 document.documentElement.style.setProperty('--global-header-height', '0px'); 2820 2821 // Some sections "follow" the navbar with class sticky (i.e. Producer search) 2822 sections.forEach(section => { 2823 if (section.classList.contains('sticky')) { 2824 section.style.top = '0px'; 2825 } 2826 }); 2827 } else { 2828 // Scroll Up 2829 // eslint-disable-next-line 2830 if (st + window.innerHeight < document.documentElement.scrollHeight) { 2831 element.style.transform = `translateY(0) scaleY(1)`; 2832 document.documentElement.style.setProperty('--global-header-height', `${navbarHeight}px`); 2833 sections.forEach(section => { 2834 if (section.classList.contains('sticky')) { 2835 section.style.top = `${navbarHeight}px`; 2836 } 2837 }); 2838 } 2839 } 2840 lastScrollTop = st; 2841 } 2842})('NAVBAR', JSON.parse("{\"fontColor\":\"#fff\",\"elementSelector\":\"nav\",\"fontColorScroll\":\"#fff\",\"initialFontColor\":\"#fff\",\"backgroundColorScroll\":\"#1a1a1a\",\"initialBackgroundColor\":\"rgba(0,0,0,0)\"}")); 2843} catch(e) { 2844console.log(e); 2845} 2846 try { 2847(function init(sectionDomId) { 2848 var $sidemenu = $('#' + sectionDomId); 2849 var shown = false; 2850 function onShow() { 2851 if (shown) { 2852 return; 2853 } 2854 shown = true; 2855 window.lpUI.requestScrollLock(sectionDomId); 2856 } 2857 function onHide() { 2858 if (!shown) { 2859 return; 2860 } 2861 shown = false; 2862 window.lpUI.releaseScrollLock(sectionDomId); 2863 $('body').removeClass('locked'); 2864 $('.hamburger.active').removeClass('active'); 2865 } 2866 $sidemenu.on('lpui-show', onShow); 2867 $sidemenu.on('lpui-hide', onHide); 2868 $sidemenu.find('a:not(.sub-nav-heading)').click(function () { 2869 onHide(); 2870 window.lpUI.sideMenuHide(true); 2871 }); 2872})('global-sidemenu'); 2873} catch(e) { 2874console.log(e); 2875} 2876 2877 try { 2878(function init(sectionDomId) { 2879 function getNums(str) { 2880 return str.match(/^rgba?\((\d+),\s*(\d+),\s*(\d+)(?:,\s*(\d+))?\)$/); 2881 } 2882 function getLightness(rgbaString) { 2883 let r = getNums(rgbaString)[1]; 2884 let g = getNums(rgbaString)[2]; 2885 let b = getNums(rgbaString)[3]; 2886 r /= 255; 2887 g /= 255; 2888 b /= 255; 2889 let cmin = Math.min(r, g, b), 2890 cmax = Math.max(r, g, b), 2891 delta = cmax - cmin, 2892 l = 0; 2893 l = (cmax + cmin) / 2; 2894 l = +(l * 100).toFixed(1); 2895 return l; 2896 } 2897 const $footer = $('.footer'); 2898 let footerBackgroundColor = $('footer').css('background-color'); 2899 if (getLightness(footerBackgroundColor) >= 50) { 2900 $footer.addClass('light'); 2901 } else { 2902 $footer.addClass('dark'); 2903 } 2904 var $footerWrap = $('.footer').closest("footer"); 2905 if ($footerWrap.length === 0) { 2906 $footerWrap = $('.footer').closest("body"); 2907 } 2908 var footerWrapBackgroundColor = $footerWrap.css('background-color'); 2909 var footerColor = $footerWrap.css('color'); 2910 $footerWrap.css({ 2911 "--fontColor": footerColor, 2912 "--bgColor": footerWrapBackgroundColor 2913 }); 2914 const form = $("#" + sectionDomId).find("form"); 2915 const redirectLink = $('#' + sectionDomId + ' .redirect-link'); 2916 form.on("reset", function () { 2917 redirectPage(redirectLink); 2918 }); 2919 function redirectPage(link) { 2920 if (link.length) { 2921 const rawHref = link.attr('href'); 2922 link.attr('href', setHttp(rawHref)); 2923 link[0].click(); 2924 } 2925 } 2926 function setHttp(link) { 2927 if (link.search(/^http[s]?\:\/\/|\//) == -1) { 2928 link = 'http://' + link; 2929 } 2930 return link; 2931 } 2932})('global-footer'); 2933} catch(e) { 2934console.log(e); 2935} 2936 2937 try { 2938(function init(sectionDomId) { 2939 var _section = $('#' + sectionDomId); 2940 var _footer = document.getElementById('global-footer'); 2941 const redirectLink = _section.find('.js-redirect-link'); 2942 function setHttp(link) { 2943 if (link.search(/^(http[s]?\:\/\/|\/)/) == -1) { 2944 link = 'https://' + link; 2945 } 2946 return link; 2947 } 2948 function redirectPage(link) { 2949 if (link.length) { 2950 window.location.href = setHttp(link.attr('href')); 2951 } 2952 } 2953 const emailInput = _section.find('.js-email-input'); 2954 const emailRegex = /[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~\-]+@[a-zA-Z0-9-]+(?:\.[a-zA-Z0-9-]+)+/; 2955 emailInput.on('input', function () { 2956 if (emailRegex.test(this.value)) { 2957 this.setCustomValidity(''); 2958 } else { 2959 this.setCustomValidity('Please enter a valid email address.'); 2960 } 2961 this.reportValidity(); 2962 }); 2963 _section.find('input[name="name"]').on("keyup", function () { 2964 if (this.value.replaceAll(/\d/g, "").trim().split(" ").length < 2 || this.value.replaceAll(/\d/g, "").trim() === "") { 2965 this.setCustomValidity("Please input your first name and last name."); 2966 } else { 2967 this.setCustomValidity(""); 2968 } 2969 }); 2970 _section.find('form').on("reset", function () { 2971 $(this).addClass("show-success"); 2972 redirectPage(redirectLink); 2973 }); 2974 $(window).scroll(function () { 2975 if ($(this).scrollTop() >= 150) _section.find('.btn-holder').addClass('visible');else _section.find('.btn-holder').removeClass('visible'); 2976 }); 2977 _section.find('.close-btn, .connect-btn').click(function () { 2978 _section.find('.pop-up').toggle(); 2979 _section.find('.btn-holder').toggle(); 2980 }); 2981 if (!_footer) return; 2982 const observer = new IntersectionObserver(entries => {
2983 entries.forEach(entry => { 2984 if (entry.isIntersecting) _section.hide();else _section.show(); 2985 }); 2986 }, { 2987 threshold: 0.1 2988 }); 2989 observer.observe(_footer); 2990 function selectToDropdown(selectItem) { 2991 let customDropdown = ` 2992 <div class="custom-select" role="presentation"> 2993 <button class="custom-select-toggle is-placeholder" type="button" aria-haspopup="true" aria-expanded="false"></button> 2994 <div class="custom-select-menu" style="display: none;max-height: none;"> 2995 <div class="custom-select-content"> 2996 </div> 2997 </div> 2998 </div>`; 2999 $(customDropdown).insertAfter(selectItem); 3000 let $dropdown = $($(selectItem).next()); 3001 let $dropdownToggle = $dropdown.find(".custom-select-toggle"); 3002 let $dropdownMenu = $dropdown.find(".custom-select-menu"); 3003 let $dropdownContent = $dropdown.find(".custom-select-content"); 3004 $dropdownToggle.addClass($(selectItem).attr("class")).removeClass("dropdown-select"); 3005 $dropdownToggle.attr("id", $(selectItem).attr("id") + "custom"); 3006 $dropdownMenu.attr("aria-labelledby", $dropdownToggle.attr("id")); 3007 appendOptionButtons(selectItem, $dropdownContent); 3008 $(selectItem).removeClass().addClass("sr-only"); 3009 var toggleText = $(selectItem).find(":selected").first().text() || $(selectItem).children().first().text(); 3010 $dropdownToggle.html(toggleText); 3011 $dropdown.on("click", ".custom-select-item", function (e) { 3012 if ($(this).hasClass("is-disabled")) return; 3013 let elementNumber = $(this).index(); 3014 let $originalSelect = $(this).closest(".custom-select").siblings("select"); 3015 let $linkedOption = $originalSelect.find("option").eq(elementNumber); 3016 if (!$linkedOption.prop("selected")) { 3017 $linkedOption.prop("selected", true); 3018 $originalSelect.change(); 3019 $(this).addClass("is-selected").siblings(".custom-select-item").removeClass("is-selected"); 3020 $dropdownToggle.html($(this).html()); 3021 closeSelectMenu($(this).closest(".custom-select-menu")); 3022 } 3023 $dropdownToggle.removeClass("is-placeholder"); 3024 }); 3025 function convertOptionToButton(option) { 3026 var optionText = $(option).text(); 3027 var optionValue = $(option).attr("value") || $(option).text(); 3028 var optionIsDisabled = $(option).prop("disabled"); 3029 var outputButton = `<button value="${optionValue}" class="custom-select-item" type="button" ${optionIsDisabled ? "disabled" : ""}>${optionText}</button>`; 3030 return outputButton; 3031 } 3032 function appendOptionButtons(selectItem, appendTarget) { 3033 $(selectItem).find("option").each(function () { 3034 let currentButton = convertOptionToButton(this); 3035 $(appendTarget).append(currentButton); 3036 }); 3037 } 3038 function showSelectMenu(selectMenu) { 3039 var customSelect = $(selectMenu).closest(".custom-select")[0]; 3040 $(customSelect).addClass("open"); 3041 $(selectMenu).slideDown(); 3042 } 3043 function closeSelectMenu(selectMenu) { 3044 var customSelect = $(selectMenu).closest(".custom-select")[0]; 3045 $(customSelect).removeClass("open"); 3046 $(selectMenu).slideUp(); 3047 } 3048 $dropdown.on("click", ".custom-select-toggle", function (e) { 3049 var $customSelect = $(this).closest(".custom-select"); 3050 var selectMenu = $customSelect.find(".custom-select-menu")[0]; 3051 if ($customSelect.hasClass("open")) { 3052 closeSelectMenu(selectMenu); 3053 } else { 3054 showSelectMenu(selectMenu); 3055 } 3056 }); 3057 $(document).on("click", function (e) { 3058 if ($(e.target).closest(".custom-select").length < 1 && $(".custom-select").hasClass("open")) { 3059 $(".custom-select.open").each(function () { 3060 var selectMenu = $(this).find(".custom-select-menu")[0]; 3061 closeSelectMenu(selectMenu); 3062 }); 3063 } 3064 }); 3065 } 3066 $(".pop-up select[name='interest']").each(function () { 3067 selectToDropdown(this); 3068 }); 3069})('global-mobile-contact'); 3070} catch(e) { 3071console.log(e); 3072} 3073 3074 try { 3075(function init(sectionDomId, options) { 3076 let section = null; 3077 switch (sectionDomId) { 3078 case 'NAVBAR': 3079 section = document.querySelector('body > nav, #global-navbar'); 3080 break; 3081 case 'FOOTER': 3082 section = document.querySelector('body > footer, #global-footer'); 3083 break; 3084 case 'SIDEMENU': 3085 section = document.querySelector('body > div.sidemenu, #global-sidemenu'); 3086 break; 3087 case 'CONTACT':
3088 section = document.querySelector('#modal-global-contact-us'); 3089 break; 3090 case 'MOBILE_CONTACT': 3091 section = document.querySelector('body > div.mobile-contact-wrapper, #global-mobile-contact'); 3092 break; 3093 case 'SUBSCRIBE': 3094 // Subscribe Not Implemented 3095 section = null; 3096 break; 3097 case 'ACCOUNT': 3098 // Account Not Implemented 3099 section = null; 3100 break; 3101 default: 3102 section = document.querySelector('#' + sectionDomId); 3103 } 3104 if (!section) { 3105 return; 3106 } 3107 3108 // Where content / items are rendered 3109 const dataContainer = section.querySelector('.data-container'); 3110 if (!dataContainer) { 3111 // no place to render items = no need to query server or do anything else 3112 return; 3113 } 3114 let variables = options.variables || {}; 3115 3116 // Some variables in options may not have been injected - remove 3117 Object.keys(variables).forEach(function (variableName) { 3118 if (typeof variables[variableName] === 'string' && variables[variableName].match(/^{{.*}}$/)) { 3119 delete variables[variableName]; 3120 } 3121 }); 3122 3123 // Merge page query variables 3124 if (options.usePageResource) { 3125 variables = { 3126 ...variables, 3127 ...window.luxuryPresence.config.pageMeta.pageQueryVariables[options.resource] 3128 }; 3129 } 3130 3131 // ROUTER-CLEANUP: keep router branch, drop legacy when API retired. Callers 3132 // resolve the flag â fetchData reads the section stamp, aux fetches read 3133 // their own resource's stamp (auxUsesRouter). 3134 function apiUrl(useRouter) { 3135 return options.url || (useRouter ? window.luxuryPresence.defaults.routerUrl : window.luxuryPresence.defaults.apiGatewayUrl); 3136 } 3137 3138 // ROUTER-CLEANUP: aux resources roll out on their own flag, not the section's 3139 // (options.routerApiAux is stamped per aux resource server-side). 3140 function auxUsesRouter(resource) { 3141 return !!(options.routerApiAux && options.routerApiAux[resource]); 3142 } 3143 3144 // Pagination Executes on a Numbered Pagination Container 3145 // Or via a load more button 3146 let mode = 'BUTTONLESS_PAGINATION'; 3147 const container = section.querySelector('.pagination-container');
3148 const loadMoreButton = section.querySelector(options?.loadMoreSelector); 3149 if (container) { 3150 mode = 'NUMBERED_PAGINATION'; 3151 } 3152 if (loadMoreButton) { 3153 mode = 'LOAD_MORE_BUTTON'; 3154 } 3155 let searchContainer = section.querySelector('.search-container'); 3156 const hidePaginationOnFirstPage = options.hidePaginationOnFirstPage || false; 3157 const eventPrefix = '__pagination-'; 3158 const searchFormParams = options.searchFormParams || (options.resource === 'properties' ? [{ 3159 param: 'neighborhoodId', 3160 urlKey: 'neighborhood' 3161 }, { 3162 param: 'search', 3163 urlKey: 'search' 3164 }, { 3165 param: 'salesPriceGTE', 3166 urlKey: 'pricemin', 3167 formKey: 'priceMin', 3168 type: 'int' 3169 }, { 3170 param: 'salesPriceLTE', 3171 urlKey: 'pricemax', 3172 formKey: 'priceMax', 3173 type: 'int' 3174 }, { 3175 param: 'livingSpaceSizeGTE', 3176 urlKey: 'areamin', 3177 formKey: 'areaMin', 3178 type: 'int' 3179 }, { 3180 param: 'livingSpaceSizeLTE', 3181 urlKey: 'areamax', 3182 formKey: 'areaMax', 3183 type: 'int' 3184 }] : []); 3185 3186 // Total entries - initialized in first render 3187 let totalNumber = 0; 3188 const DefaultSearchParams = { 3189 page: 1 3190 }; 3191 searchFormParams.forEach(function (formParam) { 3192 DefaultSearchParams[formParam.formKey || formParam.param] = null; 3193 }); 3194 let searchParams = { 3195 ...DefaultSearchParams 3196 }; 3197 const offset = options.variables?.offset || 0; 3198 let scrollTarget = options.scrollTargetSelector ? section.querySelector(options.scrollTargetSelector) || section : section; 3199 let scrollOffset = (parseInt(options.scrollOffset, 10) || 0) ?? 100; 3200 3201 // entries of per page 3202 // when query variables for a given section would't be filled options.pageSize can store 3203 // template string, ex: "{{variables.limit}}", below code handles that case and set 9 as a default value 3204 let pageSize = parseInt(options.pageSize, 10) || 9; 3205 3206 // Adding mobile pageRange support 3207 var NARROW_BREAKPOINT = 600; 3208 var mobileBreakpoint = options.mobileBreakpoint > 0 ? options.mobileBreakpoint : NARROW_BREAKPOINT; 3209 var paginationMql = window.matchMedia(`(max-width: ${mobileBreakpoint}px)`); 3210 3211 // Page range (pages on both sides of the current page) 3212 var mobilePageRange = options.mobilePageRange > 0 ? options.mobilePageRange : 0; 3213 var desktopPageRange = options.pageRange >= 0 ? options.pageRange : 2; 3214 var pageRange = paginationMql.matches ? mobilePageRange : desktopPageRange; 3215 3216 // Whether to display the 'Previous' button 3217 var showPrevious = true; 3218 3219 // Whether to display the 'Next' button 3220 var showNext = true; 3221 3222 // Whether to display the page buttons 3223 var showPageNumbers = true; 3224 3225 // 'Previous' text 3226 var prevText = options.prevText || '«'; 3227 3228 // 'Next' text 3229 var nextText = options.nextText || '»'; 3230 3231 // Ellipsis text 3232 var ellipsisText = '…'; 3233 var classPrefix = 'paginationjs'; 3234 3235 // Default active class 3236 var activeClassName = 'active'; 3237 3238 // Default disable class 3239 var disableClassName = 'disabled'; 3240 3241 // Pagination element's position in the container 3242 var position = 'bottom'; 3243 3244 // Whether to trigger pagination at initialization 3245 var triggerPagingOnInit = !options.skipInitialLoad; 3246 var showFirstOnEllipsisShow = true; 3247 var showLastOnEllipsisShow = true; 3248 3249 // Instantiated in init() 3250 var el = null; 3251 3252 // Controls scrollTop logic 3253 var firstRender = true; 3254 var renderBySearch = false; 3255 var disabled = false; 3256 3257 // Pagination script class selector 3258 var paginationScriptSelector = options.paginationPartialName ? `.${options.paginationPartialName}` : '.pagination-script'; 3259 3260 // Property Specific Image Override if No Image 3261 var propertyPlaceholderImage = window.luxuryPresence.defaults.propertyPlaceholderImage; 3262 3263 // Construct template 3264 var templateHTML = section.querySelector(`script${paginationScriptSelector}`)?.innerHTML || ''; 3265 var template = Handlebars.compile(templateHTML); 3266 3267 // Initialize 3268 init(); 3269 function init() { 3270 Object.assign(searchParams, window.luxuryPresence.pagination.deserializeParams(searchFormParams, sectionDomId)); 3271 3272 // Append/prepend pagination element to the pagination container 3273 if (mode === 'NUMBERED_PAGINATION') { 3274 el = document.createElement('div'); 3275 el.className = 'paginationjs';
3276 container[position === 'bottom' ? 'append' : 'prepend'](el); 3277 } 3278 if (searchContainer) { 3279 initSearchContainer({ 3280 fetchNeighborhoods: searchContainer.dataset.fetchNeighborhoods === 'true', 3281 fetchPostCategories: searchContainer.dataset.fetchPostCategories === 'true', 3282 fetchOffices: searchContainer.dataset.fetchOffices === 'true', 3283 fetchRentalRates: searchContainer.dataset.fetchRentalRates === 'true' 3284 }, function () { 3285 syncSearchFormState(searchParams); 3286 }); 3287 } 3288 3289 // Bind events 3290 observer(); 3291 } 3292 function syncSearchFormState(params) { 3293 searchContainer.dispatchEvent(new CustomEvent('sync', { 3294 detail: params 3295 })); 3296 } 3297 function initSearchContainer(options, done) { 3298 var promises = []; 3299 if (options.fetchNeighborhoods) { 3300 promises.push(fetchAllNeighborhoods(function (neighborhoods) { 3301 searchContainer.dispatchEvent(new CustomEvent('neighborhoods-data', { 3302 detail: { 3303 data: neighborhoods.map(function (item) { 3304 return { 3305 value: item.id, 3306 label: item.name 3307 }; 3308 }) 3309 } 3310 })); 3311 })); 3312 } 3313 if (options.fetchPostCategories) { 3314 promises.push(fetchPostCategories(function (categories) { 3315 searchContainer.dispatchEvent(new CustomEvent('post-categories-data', { 3316 detail: { 3317 data: categories 3318 } 3319 })); 3320 })); 3321 } 3322 if (options.fetchOffices) { 3323 promises.push(fetchOffices(function (offices) { 3324 searchContainer.dispatchEvent(new CustomEvent('offices-data', { 3325 detail: { 3326 data: offices 3327 } 3328 })); 3329 })); 3330 } 3331 if (options.fetchRentalRates) { 3332 promises.push(fetchAllRentalRates(function (rentalRates) { 3333 searchContainer.dispatchEvent(new CustomEvent('rental-rates-data', { 3334 detail: { 3335 data: rentalRates 3336 } 3337 })); 3338 })); 3339 } 3340 if (promises.length > 0) { 3341 Promise.all(promises).then(function () { 3342 done(); 3343 }); 3344 } else { 3345 // element's custom code is not executed yet, so we're scheduling callback to after element's code 3346 setTimeout(done); 3347 } 3348 } 3349 function fetchAllNeighborhoods(done) { 3350 var useRouter = auxUsesRouter('neighborhoods'); 3351 // ROUTER-CLEANUP: keep router branch, drop legacy when API retired. Same 3352 // args on both APIs (the federated neighborhoods field accepts 3353 // withProperties/withBlogPosts); only the selection set differs. 3354 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') + '}}'; 3355 var payload = {}; 3356 payload.offset = 0; 3357 payload.limit = 100; 3358 payload.companyId = variables.companyId; 3359 if (options.resource === 'properties') { 3360 payload.withProperties = { 3361 active: true 3362 }; 3363 ['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) { 3364 if (variables[field] !== undefined && variables[field] !== null) { 3365 payload.withProperties[field] = variables[field]; 3366 } 3367 }); 3368 } 3369 if (options.resource === 'posts') { 3370 payload.withBlogPosts = { 3371 active: true 3372 }; 3373 ['search', 'postStatusId', 'featured', 'categoryId', 'categoryIds', 'neighborhoodId', 'slug'].forEach(function (field) { 3374 if (variables[field] !== undefined && variables[field] !== null) { 3375 payload.withBlogPosts[field] = variables[field]; 3376 } 3377 }); 3378 } 3379 3380 // ROUTER-CLEANUP: keep router branch, drop legacy when API retired 3381 if (useRouter) { 3382 payload = window.luxuryPresence.routerApi.transformVariables('neighborhoods', payload); 3383 } 3384 superagent.post(apiUrl(useRouter) + '/graphql').withCredentials().send({ 3385 query: gqlQuery, 3386 variables: payload 3387 }).then(function (res) { 3388 var value = res.body.data && res.body.data.neighborhoods || {}; 3389 // ROUTER-CLEANUP: keep router branch, drop legacy when API retired 3390 var items = useRouter ? window.luxuryPresence.routerApi.transformPage(value).items : value || []; 3391 done(items, items.length); 3392 }); 3393 } 3394 function fetchPostCategories(done) { 3395 var featured = options.resource === 'posts' && !!variables.featured; 3396 var useRouter = auxUsesRouter('postCategories'); 3397 // ROUTER-CLEANUP: keep router branch, drop legacy when API retired. Only the 3398 // selection set differs ({ items {...} } on the router). 3399 var selection = 'id, name, publishedCount, featuredPublishedCount'; 3400 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) + '}}'; 3401 var payload = {}; 3402 payload.offset = 0; 3403 payload.limit = 100; 3404 payload.companyId = variables.companyId; 3405 superagent.post(apiUrl(useRouter) + '/graphql').withCredentials().send({ 3406 query: gqlQuery, 3407 variables: payload 3408 }).then(function (res) { 3409 var value = res.body.data && res.body.data.postCategories || {}; 3410 // ROUTER-CLEANUP: keep router branch, drop legacy when API retired 3411 var items = useRouter ? window.luxuryPresence.routerApi.transformPage(value).items : value || []; 3412 done(items.map(function (item) { 3413 item.count = featured ? item.featuredPublishedCount : item.publishedCount; 3414 return item; 3415 }), items.length); 3416 }); 3417 } 3418 function fetchOffices(done) { 3419 var useRouter = auxUsesRouter('offices'); 3420 // ROUTER-CLEANUP: keep router branch, drop legacy when API retired. Only the 3421 // selection set differs ({ items {...} } on the router). 3422 var selection = 'id, name, tags'; 3423 // ROUTER-CLEANUP: keep router branch, drop legacy when API retired. The two 3424 // APIs differ in more than the items wrapper: federated offices takes 3425 // companyId: ID! (legacy gateway: String), so each branch builds its whole doc. 3426 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 + '}}'; 3427 var payload = { 3428 offset: 0, 3429 limit: 100, 3430 companyId: variables.companyId 3431 }; 3432 3433 // ROUTER-CLEANUP: keep router branch, drop legacy when API retired 3434 if (useRouter) { 3435 payload = window.luxuryPresence.routerApi.transformVariables('office
3435s', payload); 3436 } 3437 superagent.post(apiUrl(useRouter) + '/graphql').withCredentials().send({ 3438 query: gqlQuery, 3439 variables: payload 3440 }).then(function (res) { 3441 var value = res.body.data && res.body.data.offices || {}; 3442 // ROUTER-CLEANUP: keep router branch, drop legacy when API retired 3443 var items = useRouter ? window.luxuryPresence.routerApi.transformPage(value).items : value || []; 3444 done(items, items.length); 3445 }); 3446 } 3447 3448 // ROUTER-CLEANUP: no rentalRates field on the federated router â legacy only. 3449 function fetchAllRentalRates(done) { 3450 var url = options.url || window.luxuryPresence.defaults.apiGatewayUrl; 3451 var gqlQuery = 'query ($companyId: String, $offset: Int, $limit: Int) {' + 'rentalRates (companyId: $companyId, offset: $offset, limit: $limit) {rentalRateId, label}}'; 3452 var payload = { 3453 offset: 0, 3454 limit: 100, 3455 companyId: variables.companyId 3456 }; 3457 superagent.post(url + '/graphql').withCredentials().send({ 3458 query: gqlQuery, 3459 variables: payload 3460 }).then(function (res) { 3461 var items = res.body.data && res.body.data.rentalRates || []; 3462 done(items, items.length); 3463 }).catch(function (err) { 3464 console.error('Error fetching rental rates:', err); 3465 done([], 0); 3466 }); 3467 } 3468 function fetchData(params, done) { 3469 var resource = options.resource; 3470 var gqlQuery = options.query || window.luxuryPresence.defaults.gql[resource]; 3471 var payload = {}; 3472 try { 3473 payload = JSON.parse(JSON.stringify(variables)); 3474 } catch (e) { 3475 Object.keys(variables).forEach(function (variableName) { 3476 payload[variableName] = variables[variableName]; 3477 }); 3478 } 3479 payload.offset = (params.page - 1) * pageSize + offset; 3480 payload.limit = pageSize; 3481 payload.companyId = options.companyId; 3482 searchFormParams.forEach(function (formParam) { 3483 var val = params[formParam.formKey || formParam.param]; 3484 if (val !== null && val !== undefined) { 3485 objSet(payload, formParam.param, val); 3486 } 3487 }); 3488 3489 // ROUTER-CLEANUP: keep router branch, drop legacy when API retired 3490 if (options.useRouterApi) { 3491 payload = window.luxuryPresence.routerApi.transformVariables(resource, payload); 3492 } 3493 3494 // TODO: Disabled loading due to jarring effect 3495 // dataContainer.html('Loading...'); 3496 superagent.post(apiUrl(options.useRouterApi) + '/graphql').withCredentials().send({ 3497 query: gqlQuery, 3498 variables: payload 3499 }).then(function (res) { 3500 if (res.body.errors) { 3501 done(res.body.errors); 3502 return; 3503 } 3504 var data = res.body.data || {}; 3505 // ROUTER-CLEANUP: keep router branch, drop legacy when API retired 3506 var resources; 3507 var resourceCount; 3508 if (options.useRouterApi) { 3509 var page = window.luxuryPresence.routerApi.transformPage(data[resource]); 3510 resources = window.luxuryPresence.routerApi.transformResponse(resource, page.items); 3511 resourceCount = page.count; 3512 } else { 3513 resources = data[resource] || []; 3514 resourceCount = data[resource + 'Count'] && data[resource + 'Count'].count ? data[resource + 'Count'].count : 0; 3515 } 3516 const finish = function (items) { 3517 if (resource === 'properties' && propertyPlaceholderImage?.id) { 3518 items = items.map(item => { 3519 if (item.media?.length === 0) { 3520 return Object.assign(item, { 3521 media: [propertyPlaceholderImage] 3522 }); 3523 } 3524 return item; 3525 }); 3526 } 3527 done(null, items, resourceCount); 3528 }; 3529 3530 // ROUTER-CLEANUP: client half of PLAT-4073 â resolve the requested 3531 // disclaimers before rendering; older SDKs skip (keys stay unset). 3532 if (options.useRouterApi && resource === 'properties' && options.routerPropertyDisclaimers && options.routerPropertyDisclaimers.length && window.luxuryPresence.routerApi && typeof window.luxuryPresence.routerApi.applyPropertyDisclaimers === 'function') { 3533 window.luxuryPresence.routerApi.applyPropertyDisclaimers(resources, options.routerPropertyDisclaimers).then(finish); 3534 return; 3535 } 3536 finish(resources); 3537 }); 3538 } 3539 function getTotalPage() { 3540 return Math.ceil(totalNumber / pageSize); 3541 } 3542 function renderPaginationList() { 3543 var totalPages = getTotalPage(); 3544 var rangeStart = searchParams.page - pageRange; 3545 var rangeEnd = searchParams.page + pageRange; 3546 if (rangeEnd > totalPages) { 3547 rangeEnd = totalPages; 3548 rangeStart = totalPages - pageRange * 2; 3549 rangeStart = rangeStart < 1 ? 1 : rangeStart; 3550 } 3551 if (rangeStart <= 1) { 3552 rangeStart = 1; 3553 rangeEnd = Math.min(pageRange * 2 + 1, totalPages); 3554 } 3555 3556 // Making sure that 1 more page button is shown in edge positions 3557 if (pageRange === 0) { 3558 if (searchParams.page === totalPages) { 3559 rangeStart = totalPages <= 1 ? 1 : totalPages - 1; 3560 } 3561 if (searchParams.page === 1) { 3562 rangeEnd = Math.min(2, totalPages); 3563 } 3564 } 3565 3566 // Render pagination list 3567 if (mode === 'NUMBERED_PAGINATION') { 3568 el.innerHTML = generateHTML({ 3569 currentPage: searchParams.page, 3570 pageRange: pageRange, 3571 rangeStart: rangeStart, 3572 rangeEnd: rangeEnd 3573 }); 3574 if (totalPages < 2 && hidePaginationOnFirstPage) { 3575 container.style.display = 'none'; 3576 } else { 3577 container.style.display = ''; 3578 } 3579 } else if (mode === 'LOAD_MORE_BUTTON') { 3580 if (searchParams.page >= totalPages) {
3581 loadMoreButton.style.display = 'none'; 3582 } else { 3583 loadMoreButton.style.display = ''; 3584 } 3585 } 3586 } 3587 function render(data) { 3588 renderPaginationList(); 3589 3590 // Render new content with handlebars 3591 var html = ''; 3592 if (mode === 'LOAD_MORE_BUTTON' && searchParams.page > 1) { 3593 // If using load more, append search results to existing results 3594 html = dataContainer.innerHTML; 3595 } 3596 for (var i = 0; i < data.length; i++) { 3597 var itemData = recursivelyParse(data[i]); 3598 itemData.sectionIndex = options.sectionIndex; 3599 itemData.renderOptions = options.renderOptions; 3600 html += template(itemData); 3601 } 3602 dataContainer.innerHTML = html; 3603 3604 // Scroll Top 3605 if (!firstRender && mode === 'NUMBERED_PAGINATION' && (!renderBySearch || !options.skipScrollOnSearch)) { 3606 // Only animate to the top if we replace dataContainer (numbered pagination) 3607 setTimeout(() => { 3608 const scrollTargetOffsetTop = scrollTarget.getBoundingClientRect().top + window.scrollY - scrollOffset; 3609 window.scrollTo({ 3610 top: scrollTargetOffsetTop, 3611 behavior: 'smooth' 3612 }); 3613 }, 250); 3614 } 3615 return true; 3616 } 3617 function generateHTML(args) { 3618 const totalPages = getTotalPage(); 3619 const { 3620 rangeStart, 3621 rangeEnd 3622 } = args; 3623 const makeLnk = page => window.luxuryPresence.pagination.serializeParams(searchFormParams, sectionDomId, { 3624 ...searchParams, 3625 page 3626 }); 3627 let html = ''; 3628 if (showPrevious || showPageNumbers || showNext) { 3629 html += '<div class="paginationjs-pages"><ul>'; 3630 3631 // Previous button 3632 if (showPrevious) { 3633 if (searchParams.page <= 1) { 3634 html += `<li class="${classPrefix}-prev ${disableClassName}"><a>${prevText}</a></li>`; 3635 } else { 3636 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>`; 3637 } 3638 } 3639 3640 // Pages 3641 if (showPageNumbers) { 3642 if (rangeStart <= 3) { 3643 for (let i = 1; i < rangeStart; i++) { 3644 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>`; 3645 } 3646 } else { 3647 if (showFirstOnEllipsisShow) { 3648 html += `<li class="${classPrefix}-page ${classPrefix}-first J-paginationjs-page" data-num="1"><a href="${makeLnk(1)}">1</a></li>`; 3649 } 3650 html += `<li class="${classPrefix}-ellipsis ${disableClassName}"><a>${ellipsisText}</a></li>`; 3651 } 3652 for (let i = rangeStart; i <= rangeEnd; i++) { 3653 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>`; 3654 } 3655 if (rangeEnd < totalPages - 2) { 3656 html += `<li class="${classPrefix}-ellipsis ${disableClassName}"><a>${ellipsisText}</a></li>`; 3657 if (showLastOnEllipsisShow) { 3658 html += `<li class="${classPrefix}-page ${classPrefix}-last J-paginationjs-page" data-num="${totalPages}"><a href="${makeLnk(totalPages)}">${totalPages}</a></li>`; 3659 } 3660 } else { 3661 for (let i = rangeEnd + 1; i <= totalPages; i++) { 3662 html += `<li class="${classPrefix}-page J-paginationjs-page" data-num="${i}"><a href="${makeLnk(i)}">${i}</a></li>`; 3663 } 3664 } 3665 } 3666 3667 // Next button 3668 if (showNext) { 3669 if (searchParams.page >= totalPages) { 3670 html += `<li class="${classPrefix}-next ${disableClassName}"><a>${nextText}</a></li>`; 3671 } else { 3672 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>`; 3673 } 3674 } 3675 html += '</ul></div>'; 3676 } 3677 return html; 3678 } 3679 function go(newSearchParams, callback, restorationVisit) { 3680 if (disabled) return; 3681 var goToPageNumber = newSearchParams.page; 3682 3683 // Page number is out of bounds 3684 if (!goToPageNumber || goToPageNumber < 1) return; 3685 var totalPage = getTotalPage(); 3686 3687 // Page number is out of bounds 3688 if (!restorationVisit && totalNumber > 0) { 3689 if (goToPageNumber > totalPage) return; 3690 } 3691 if (!options.skipSerialization && (mode === 'NUMBERED_PAGINATION' || searchContainer)) {
3692 var newURL = window.luxuryPresence.pagination.serializeParams(searchFormParams, sectionDomId, { 3693 ...newSearchParams, 3694 page: goToPageNumber !== 1 && mode === 'NUMBERED_PAGINATION' ? newSearchParams.page : null 3695 }); 3696 if (!areQueryParamsEqual(newSearchParams, searchParams) && !restorationVisit) { 3697 window.history.pushState({}, '', window.luxuryPresence.getPath(newURL, { 3698 queryString: true 3699 })); 3700 } 3701 } 3702 3703 // Fetch and update page 3704 fetchData(newSearchParams, renderWithData); 3705 disabled = true; 3706 function renderWithData(err, data, count) { 3707 if (err) { 3708 dataContainer.dispatchEvent(new Event('error')); 3709 } else { 3710 searchParams = { 3711 ...newSearchParams 3712 }; 3713 totalNumber = count - offset; 3714 if (data.length === 0) { 3715 dataContainer.dispatchEvent(new Event('no-data')); 3716 } else { 3717 dataContainer.dispatchEvent(new Event('data')); 3718 } 3719 render(data); 3720 firstRender = false; 3721 } 3722 disabled = false; 3723 renderBySearch = false; 3724 } 3725 } 3726 function areQueryParamsEqual(first, second) { 3727 var differ = Object.keys(first).find(function (key) { 3728 return first[key] !== undefined && first[key] !== null && first[key] !== second[key]; 3729 }); 3730 if (differ) { 3731 return false; 3732 } 3733 differ = Object.keys(second).find(function (key) { 3734 return second[key] !== undefined && second[key] !== null && second[key] !== first[key]; 3735 }); 3736 return !differ; 3737 } 3738 function next(callback) { 3739 go({ 3740 ...searchParams, 3741 page: searchParams.page + 1 3742 }, callback); 3743 } 3744 function previous(callback) { 3745 go({ 3746 ...searchParams, 3747 page: searchParams.page - 1 3748 }, callback); 3749 } 3750 function refresh(callback) { 3751 go(searchParams, callback); 3752 } 3753 function update(params, callback) { 3754 renderBySearch = true; 3755 go(params, callback); 3756 } 3757 function observer() { 3758 if (searchContainer) { 3759 searchContainer.addEventListener('search', function (event, newSearchParams) { 3760 newSearchParams = event.detail || newSearchParams; 3761 update({ 3762 ...searchParams, 3763 ...newSearchParams, 3764 page: 1 3765 }); 3766 }); 3767 searchContainer.addEventListener('clear-search', function () { 3768 const defaultSearchParams = { 3769 ...DefaultSearchParams 3770 }; 3771 const isCurrentSearchFormStateDefault = areQueryParamsEqual({ 3772 ...defaultSearchParams, 3773 page: null 3774 }, { 3775 ...searchParams, 3776 page: null 3777 }); 3778 3779 // if mode is LOAD_MORE_BUTTON we should't make anything on clear 3780 // when search form have default state 3781 if (isCurrentSearchFormStateDefault && mode !== 'NUMBERED_PAGINATION') { 3782 return; 3783 } 3784 3785 // if someone initially go to some page and click 'Clear' on search from 3786 // we should't navigate to first page. We should preserve page value 3787 if (isCurrentSearchFormStateDefault) { 3788 defaultSearchParams.page = searchParams.page; 3789 } 3790 syncSearchFormState(defaultSearchParams); 3791 update(defaultSearchParams); 3792 }); 3793 } 3794 if (mode === 'LOAD_MORE_BUTTON') { 3795 loadMoreButton.addEventListener('click', function (event) { 3796 go({ 3797 ...searchParams, 3798 page: searchParams.page + 1 3799 }); 3800 return false; 3801 }); 3802 } 3803 if (mode === 'LOAD_MORE_BUTTON' || mode === 'BUTTONLESS_PAGINATION') { 3804 // Do initial render 3805 go(Object.assign({}, searchParams, { 3806 page: 1 3807 })); 3808 return; 3809 } 3810 if (mode === 'NUMBERED_PAGINATION') { 3811 // Go to specified page number 3812 container.addEventListener(eventPrefix + 'go', function (event) { 3813 let { 3814 pageNumber, 3815 done 3816 } = event.detail || {}; 3817 pageNumber = parseInt(pageNumber, 10); 3818 if (!pageNumber) { 3819 return; 3820 } 3821 go({ 3822 ...searchParams, 3823 page: pageNumber 3824 }, done); 3825 }); 3826 3827 // Page number button click 3828 el.addEventListener('click', function (event) { 3829 let clickTarget = event.target; 3830 let current = clickTarget.closest('.J-paginationjs-page, .J-paginationjs-previous, .J-paginationjs-next'); 3831 let pageNumber = current?.getAttribute('data-num'); 3832 if (!pageNumber || current.classList.contains(disableClassName) || current.classList.contains(activeClassName)) { 3833 return; 3834 } else { 3835 go({ 3836 ...searchParams, 3837 page: parseInt(pageNumber, 10) 3838 }); 3839 } 3840 event.preventDefault(); 3841 }); 3842 3843 // Whether to load the default page 3844 var defaultPageNumber = searchParams.page; 3845 if (triggerPagingOnInit) {
3846 container.dispatchEvent(new CustomEvent(eventPrefix + 'go', { 3847 detail: { 3848 pageNumber: defaultPageNumber 3849 } 3850 })); 3851 } 3852 } 3853 window.addEventListener('popstate', function (event) { 3854 var newParams = Object.assign({}, DefaultSearchParams, window.luxuryPresence.pagination.deserializeParams(searchFormParams, sectionDomId)); 3855 if (!areQueryParamsEqual(newParams, searchParams)) { 3856 go(newParams, null, true); 3857 if (searchContainer) { 3858 syncSearchFormState(newParams); 3859 } 3860 } 3861 }); 3862 } 3863 function replaceVariables(template, variables) { 3864 var formattedString; 3865 for (var key in variables) { 3866 var value = variables[key]; 3867 var regexp = new RegExp('<%=\\s*' + key + '\\s*%>', 'img'); 3868 formattedString = (formattedString || template).replace(regexp, value); 3869 } 3870 return formattedString; 3871 } 3872 function isTextEditorValue(obj) { 3873 return 'raw' in obj || 'gjs' in obj; 3874 } 3875 function getTextEditorValue(obj) { 3876 if (!obj.html) { 3877 return ''; 3878 } 3879 var data = obj.html; 3880 var css = (obj.raw || obj.gjs || {}).css; 3881 if (css) { 3882 data = data + '<style>' + css + '</style>'; 3883 } 3884 return data; 3885 } 3886 3887 /** 3888 * check rendered resources for html and raw properties that could indicate if resource is from an advanced text editor. 3889 * strips out raw proprties and returns only HTML if it exists. 3890 * @param {Object} resources a collection retrieved from the database 3891 * @return {Object} the newly modified object. 3892 */ 3893 function recursivelyParse(resources) { 3894 forEach(resources, function (value, key) { 3895 if (!value) { 3896 return; 3897 } 3898 if (value instanceof Object) { 3899 if (isTextEditorValue(value)) { 3900 resources[key] = getTextEditorValue(value); 3901 return; 3902 } else { 3903 return recursivelyParse(value); 3904 } 3905 } 3906 try { 3907 var parsedData = JSON.parse(value); 3908 if (isTextEditorValue(parsedData)) { 3909 resources[key] = getTextEditorValue(parsedData); 3910 } 3911 } catch (e) { 3912 // do nothing if we failed to parse value as JSON 3913 } 3914 }); 3915 return resources; 3916 } 3917 function forEach(collection, iteratee) { 3918 var func = Array.isArray(collection) ? arrayEach : baseFor; 3919 return func(collection, iteratee); 3920 } 3921 function baseFor(object, iteratee) { 3922 if (!object) { 3923 return; 3924 } 3925 var iterable = Object(object); 3926 var props = Object.keys(object); 3927 var length = props.length; 3928 var index = -1; 3929 while (length--) { 3930 var key = props[++index]; 3931 if (iteratee(iterable[key], key, iterable) === false) { 3932 break; 3933 } 3934 } 3935 return object; 3936 } 3937 function objSet(obj, path, value) { 3938 const pathArray = Array.isArray(path) ? path : path.match(/([^[.\]])+/g); 3939 pathArray.reduce((acc, key, i) => { 3940 if (acc[key] === undefined) acc[key] = {}; 3941 if (i === pathArray.length - 1) acc[key] = value; 3942 return acc[key]; 3943 }, obj); 3944 } 3945 function arrayEach(array, iteratee) { 3946 var index = -1; 3947 var length = array.length; 3948 while (++index < length) { 3949 if (iteratee(array[index], index, array) === false) { 3950 break; 3951 } 3952 } 3953 return array; 3954 } 3955 function selectPageRangeMode(e) { 3956 pageRange = e.matches ? mobilePageRange : desktopPageRange; 3957 renderPaginationList(); 3958 } 3959 paginationMql.addEventListener('change', selectPageRangeMode); 3960})('section-5fa636d0-d142-4931-96c1-8a32e3f6aa3f', JSON.parse("{\"pageSize\":\"24\",\"resource\":\"properties\",\"pageRange\":0,\"variables\":{\"limit\":24,\"order\":\"salesPrice\",\"offset\":0,\"sortDir\":\"DESC\",\"statusId\":\"{{variables.statusId}}\",\"companyId\":\"c3076ecb-c2d7-457b-a426-bcf036133f1f\",\"categoryId\":\"{{pageElement.categoryId}}\",\"sort\":\"salesPrice\",\"statusIds\":[\"b0e88b38-7437-438d-a6fd-b13f135e1683\"],\"salesPriceGTE\":1000000,\"advancedFilters\":{\"query\":{\"statusIds\":{\"in\":[\"b0e88b38-7437-438d-a6fd-b13f135e1683\"]}}},\"websiteId\":\"ff06f655-0c64-45c8-9c55-e8468b4e5303\"},\"searchFormParams\":[{\"param\":\"neighborhoodId\",\"urlKey\":\"neighborhood\"},{\"param\":\"search\",\"urlKey\":\"search\"},{\"type\":\"int\",\"param\":\"salesPriceGTE\",\"urlKey\":\"pricemin\",\"formKey\":\"priceMin\"},{\"type\":\"int\",\"param\":\"salesPriceLTE\",\"urlKey\":\"pricemax\",\"formKey\":\"priceMax\"},{\"type\":\"int\",\"param\":\"leasePriceGTE\",\"urlKey\":\"lpricemin\",\"formKey\":\"lpriceMin\"},{\"type\":\"int\",\"param\":\"leasePriceLTE\",\"urlKey\":\"lpricemax\",\"formKey\":\"lpriceMax\"},{\"type\":\"int\",\"param\":\"livingSpaceSizeGTE\",\"urlKey\":\"areamin\",\"formKey\":\"areaMin\"},{\"type\":\"int\",\"param\":\"livingSpaceSizeLTE\",\"urlKey\":\"areamax\",\"formKey\":\"areaMax\"}],\"resourceQueryOption\":\"query\",\"hidePaginationOnFirstPage\":true,\"query\":\"query Properties($agentIds: [ID!], $teamIds: [ID!], $neighborhoodIds: [ID!], $officeIds: [ID!], $propertyId: ID, $companyId: String, $networkId: String, $network: Boolean, $statusId: String, $propertyIds: [ID!], $prioritizeIds: Boolean, $statusIds: [String!], $excludeStatusId: [String!], $neighborhoodId: String, $addressState: [String!], $addressCity: [String!], $relatedNeighborhoodPropertyId: String, $developmentId: String, $featuredListing: Boolean, $leaseProperty: Boolean, $search: String, $searchTermMode: SearchTermModeEnum, $globalProperty: Boolean, $archived: Boolean, $salesPriceGTE: Float, $salesPriceLTE: Float, $leasePriceGTE: Float, $leasePriceLTE: Float, $livingSpaceSizeGTE: Float, $livingSpaceSizeLTE: Float, $bathCountGTE: Float, $bathCountLTE: Float, $bedroomCountGTE: Float, $bedroomCountLTE: Float, $architectureStyle: String, $lifestyle: String, $propertyTypeId: String, $propertyTypeIds: [String!], $spaceTypeIds: [ID!], $tag: String, $backfillMLSResults: Boolean, $displayMLSListings: String, $hostname: String, $websiteId: ID, $backfillProviders: [String!], $backfillMLSListingIds: [String!], $backfillMLSAgentIds: [String!], $backfillMLSOfficeIds: [String!], $backfillBoundary: JSON, $openHouse: Boolean, $withGeo: Boolean, $advancedFilters: JSON, $seasonalPriceId: ID, $offset: Int, $limit: Int, $sort: String, $sortDir: SortDirectionEnum) {\\n properties(\\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 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 slug\\n name\\n status\\n priceUponRequest\\n currency\\n salesPrice\\n reducedPrice\\n isPasswordProtected\\n leaseProperty\\n leasePrice\\n leasePeriod\\n privateAddress\\n fromMLS\\n mlsId\\n mlsLogo\\n mlsAttribution\\n openHouseHours\\n fullAddress\\n lotAreaSize\\n lotAreaUnits\\n media {\\n smallUrl\\n mediumUrl\\n largeUrl\\n xLargeUrl\\n xxLargeUrl\\n width\\n height\\n altTagText\\n }\\n bedroomCount\\n bathCount\\n soldDate\\n livingSpaceSize\\n livingSpaceUnits\\n types {\\n id\\n name\\n }\\n }\\n propertiesCount(\\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 count\\n }\\n}\",\"routerPropertyDisclaimers\":[\"mlsAttribution\",\"mlsLogo\"],\"companyId\":\"c3076ecb-c2d7-457b-a426-bcf036133f1f\",\"usePageResource\":false,\"sectionIndex\":2,\"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}}")); 3961} catch(e) { 3962console.log(e); 3963} 3964 try { 3965(function init(sectionDomId) { 3966 $(document).on("click", '#' + sectionDomId + ' .property-list__share .btn', function () { 3967 if ($(this).parent().hasClass('property-list__share--opened')) { 3968 $(this).parent().removeClass('property-list__share--opened'); 3969 } else { 3970 $('#' + sectionDomId + ' .property-list__share').removeClass('property-list__share--opened'); 3971 $(this).parent().addClass('property-list__share--opened'); 3972 } 3973 }); 3974 const emptyResultElement = $('#' + sectionDomId + ' .empty-result'); 3975 const searchContainer = $('#' + sectionDomId + ' .search-container'); 3976 const dataContainer = $('#' + sectionDomId + ' .data-container'); 3977 const paginationContainer = $(`#${sectionDomId} .pagination-container`); 3978 const priceSlider = searchContainer.find('input[name="price-slider"]');
3979 const areaSlider = searchContainer.find('input[name="area-slider"]'); 3980 const neighborhoodSelect = searchContainer.find('select[name="neighborhood-select"]'); 3981 const searchInput = searchContainer.find('input[name="search-input"]'); 3982 const clearBtn = searchContainer.find('.clear'); 3983 const priceMin = parseInt(priceSlider.attr('data-min')); 3984 const priceMax = parseInt(priceSlider.attr('data-max')); 3985 const areaMin = parseInt(areaSlider.attr('data-min')); 3986 const areaMax = parseInt(areaSlider.attr('data-max')); 3987 const rangeSliderInitialized = $(`#${sectionDomId} .search-item .irs`).length >= 1; 3988 const filterLease = searchContainer.data('filter-lease'); 3989 function onSearch() { 3990 const params = window.luxuryPresence.getSearchFormValues({ 3991 queryElement: searchInput[0], 3992 priceSliderElement: priceSlider[0], 3993 areaSliderElement: areaSlider[0], 3994 neighborhoodSelect: neighborhoodSelect[0] 3995 }); 3996 if (filterLease) { 3997 params.lpriceMin = params.priceMin; 3998 params.lpriceMax = params.priceMax; 3999 delete params.priceMin; 4000 delete params.priceMax; 4001 } 4002 if (!areaSlider.attr('data-min')) params.areaMin = null; 4003 if (!areaSlider.attr('data-max')) params.areaMax = null; 4004 searchContainer[0]?.dispatchEvent(new CustomEvent('search', { 4005 detail: params 4006 })); 4007 } 4008 searchContainer.on('neighborhoods-data', function (ev, neighborhoods) { 4009 neighborhoods = ev.detail || neighborhoods; 4010 neighborhoodSelect.append(neighborhoods.data.map(item => `<option value="${item.value}">${item.label}</option>`).join('\n')); 4011 }); 4012 searchContainer.on('sync', function (ev, params) { 4013 params = ev.detail || params; 4014 searchInput.val(params.search); 4015 neighborhoodSelect.val(params.neighborhoodId); 4016 priceSlider.data('ionRangeSlider').update({ 4017 from: filterLease ? params.lpriceMin : params.priceMin, 4018 to: filterLease ? params.lpriceMax : params.priceMax 4019 }); 4020 areaSlider.data('ionRangeSlider').update({ 4021 from: params.areaMin, 4022 to: params.areaMax 4023 }); 4024 }); 4025 dataContainer.on('no-data', function () { 4026 emptyResultElement.show(); 4027 }); 4028 dataContainer.on('data', function () { 4029 emptyResultElement.hide(); 4030 }); 4031 clearBtn.click(function () { 4032 searchContainer[0]?.dispatchEvent(new Event('clear-search')); 4033 }); 4034 searchInput.on('input', window.luxuryPresence.debounce(onSearch, 1000)); 4035 neighborhoodSelect.change(onSearch); 4036 if (rangeSliderInitialized) { 4037 if (!priceSlider.destroy) { 4038 $(`#${sectionDomId} .search-item.price >.irs`).remove(); 4039 initPriceSlider(); 4040 } 4041 if (!areaSlider.destroy) { 4042 $(`#${sectionDomId} .search-item.area >.irs`).remove(); 4043 initAreaSlider(); 4044 } 4045 } else { 4046 initPriceSlider(); 4047 initAreaSlider(); 4048 } 4049 function initPriceSlider() { 4050 priceSlider.ionRangeSlider({ 4051 type: "double", 4052 skin: 'round', 4053 grid: false, 4054 force_edges: false, 4055 hide_min_max: false, 4056 hide_from_to: false, 4057 block: false, 4058 prettify: function (val) { 4059 return window.luxuryPresence.formatSliderPriceRange(val, { 4060 min: priceMin, 4061 max: priceMax 4062 }, "$", { 4063 lowPrefix: "<", 4064 highSuffix: "+" 4065 }); 4066 }, 4067 onFinish: onSearch 4068 }); 4069 } 4070 function initAreaSlider() { 4071 areaSlider.ionRangeSlider({ 4072 type: "double", 4073 skin: 'round', 4074 grid: false, 4075 force_edges: false, 4076 hide_min_max: false, 4077 hide_from_to: false, 4078 block: false, 4079 prettify: function (val) { 4080 return window.luxuryPresence.formatSliderAreaRange(val, { 4081 min: areaMin, 4082 max: areaMax 4083 }, "sqft", { 4084 lowPrefix: "<", 4085 highSuffix: "+" 4086 }); 4087 }, 4088 onFinish: onSearch 4089 }); 4090 } 4091})('section-5fa636d0-d142-4931-96c1-8a32e3f6aa3f', JSON.parse("{\"resource\":\"properties\",\"useRouterApi\":false,\"companyId\":\"c3076ecb-c2d7-457b-a426-bcf036133f1f\",\"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}}")); 4092} catch(e) { 4093console.log(e); 4094} 4095 try { 4096(function init(sectionDomId, options) { 4097 let section = null; 4098 switch (sectionDomId) { 4099 case 'NAVBAR': 4100 section = document.querySelector('body > nav, #global-navbar'); 4101 break; 4102 case 'FOOTER': 4103 section = document.querySelector('body > footer, #global-footer'); 4104 break; 4105 case 'SIDEMENU': 4106 section = document.querySelector('body > div.sidemenu, #global-sidemenu'); 4107 break; 4108 case 'CONTACT':
4109 section = document.querySelector('#modal-global-contact-us'); 4110 break; 4111 case 'MOBILE_CONTACT': 4112 section = document.querySelector('body > div.mobile-contact-wrapper, #global-mobile-contact'); 4113 break; 4114 case 'SUBSCRIBE': 4115 // Subscribe Not Implemented 4116 section = null; 4117 break; 4118 case 'ACCOUNT': 4119 // Account Not Implemented 4120 section = null; 4121 break; 4122 default: 4123 section = document.querySelector('#' + sectionDomId); 4124 } 4125 if (!section) { 4126 return; 4127 } 4128 var url = window.luxuryPresence.defaults.routerUrl; 4129 var companyId = window.luxuryPresence.defaults.companyId; 4130 var limit = options.limit || 8; 4131 if (typeof limit === 'string') { 4132 limit = parseInt(limit, 10) || 8; // this NaN protection also filters out 0 - this is expected 4133 } 4134 var templateSelector = options.templateSelector || '.jsIGTemplate'; 4135 var containerSelector = options.containerSelector || '.jsIGContainer'; 4136 var hasDataClass = options.hasDataClass || 'has-data'; 4137 var hideActivateMessage = options.hasDataClass || false; 4138 var payload = { 4139 companyId: companyId, 4140 limit: limit 4141 }; 4142 if (options.resourceId && typeof options.resourceId === 'string' && !options.resourceId.match(/^{{.*}}$/)) { 4143 payload.resourceId = options.resourceId; 4144 // Federated enum values are uppercase (AGENT/TEAM); element configs carry lowercase 4145 payload.resource = String(options.resource || 'agent').toUpperCase(); 4146 payload.fallbackToNoResource = options.fallbackToNoResource === 'true' || options.fallbackToNoResource === true; 4147 } 4148 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'; 4149 var templateHTML = section.querySelector(templateSelector)?.innerHTML || ''; 4150 var template = Handlebars.compile(templateHTML); 4151 var container = section.querySelector(containerSelector); 4152 if (options.variables) { 4153 Object.keys(options.variables).forEach(function (key) { 4154 if (options.variables.hasOwnProperty(key) && (typeof options.variables[key] !== 'string' || !options.variables[key].match(/^{{.*}}$/))) { 4155 payload[key] = options.variables[key]; 4156 } 4157 }); 4158 } 4159 function getData() { 4160 var feed = { 4161 error: true 4162 }; 4163 if (payload.companyId == null || payload.companyId === '') { 4164 // instagramContentFeed requires companyId (ID!) â nothing to fetch without it. 4165 // Checked after the options.variables merge, which may override the default. 4166 // Deferred so element listeners (attached after this template runs) still receive it. 4167 setTimeout(function () { 4168 section.dispatchEvent(new CustomEvent('ig-data', { 4169 detail: feed 4170 })); 4171 }, 0); 4172 return; 4173 } 4174 superagent.post(url + '/graphql').send({ 4175 query: query, 4176 variables: payload 4177 }).then(res => { 4178 try { 4179 if (!res.body.errors) { 4180 feed = res.body.data.instagramContentFeed; 4181 if (!feed.active) { 4182 if (!hideActivateMessage && sectionDomId === 'section-temp' && container) { 4183 if (payload.resourceId) { 4184 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>'; 4185 } else { 4186 container.innerHTML = '<div style="text-align: center">Instagram account is not connected.<br /> Connect it on <a href="/profile">Profile page</a></div>'; 4187 } 4188 } 4189 } else { 4190 if (feed.items.length) { 4191 if (hasDataClass) { 4192 section.classList.add(hasDataClass); 4193 } 4194 const feedName = feed.username; 4195 section.querySelectorAll('.jsIGLink').forEach(link => link.setAttribute('href', feed.feedUrl)); 4196 section.querySelectorAll('.jsIGName').forEach(name => { 4197 name.textContent = '@' + feedName; 4198 name.setAttribute('title', '@' + feedName); 4199 }); 4200 if (container && template) { 4201 container.innerHTML = template(feed); 4202 } 4203 } 4204 } 4205 } 4206 } catch (e) {} 4207 section.dispatchEvent(new CustomEvent('ig-data', { 4208 detail: feed 4209 })); 4210 }).catch(e => { 4211 console.log('err', e); 4212 section.dispatchEvent(new CustomEvent('ig-data', { 4213 detail: feed 4214 })); 4215 }); 4216 } 4217 getData(); 4218})('section-ab7525f1-6dbd-43e3-bba0-6a74ad957c35', JSON.parse("{\"limit\":33,\"resource\":\"agent\",\"resourceId\":\"\",\"fallbackToNoResource\":\"true\",\"companyId\":\"c3076ecb-c2d7-457b-a426-bcf036133f1f\",\"usePageResource\":false,\"sectionIndex\":3,\"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}}")); 4219} catch(e) { 4220console.log(e); 4221} 4222 try { 4223(function init(sectionDomId) { 4224 const $section = $('#' + sectionDomId); 4225 var templateHTML = $section.find('.jsIGItem').html(); 4226 var itemTemplate = templateHTML && Handlebars.compile(templateHTML); 4227 const $container = $section.find('.ig-feed-feed'); 4228 const $topPrev = $section.find('.top-nav-prev'); 4229 const $topNext = $section.find('.top-nav-next'); 4230 const $bottomPrev = $section.find('.bottom-nav-prev'); 4231 const $bottomNext = $section.find('.bottom-nav-next'); 4232 let limit = 33; 4233 try { 4234 limit = parseInt($container[0].dataset['limit']); 4235 } catch (e) {} 4236 if (!limit) { 4237 limit = 33; 4238 } 4239 let igFeed = {}; 4240 let usedWidth = 0; 4241 let slider = null; 4242 $section.on('ig-data', function (ev, feed) { 4243 feed = ev.detail || feed; 4244 igFeed = feed; 4245 if (feed.active && feed.items.length) { 4246 buildSlider(); 4247 } 4248 }); 4249 $(window).on('resize.lpui-auto-clean', onResize); 4250 let timer = null; 4251 function onResize() { 4252 clearTimeout(timer); 4253 timer = window.setTimeout(buildSlider, 50); 4254 } 4255 function getLayout(w, n) { 4256 if (w > 1100) { 4257 if (n > 7) { 4258 return { 4259 type: 'type1', 4260 single: 1, 4261 multi: n, 4262 slides: 3, 4263 slider: n > 9 4264 }; 4265 } 4266 if (n > 5) { 4267 return { 4268 type: 'type1', 4269 single: 2, 4270 multi: n, 4271 slides: 3, 4272 slider: false 4273 }; 4274 } 4275 return { 4276 type: 'type1', 4277 single: n, 4278 multi: n, 4279 slides: 3, 4280 slider: n > 3 4281 }; 4282 } else if (w > 880) { 4283 if (n > 4) { 4284 return { 4285 type: 'type2', 4286 single: 1, 4287 multi: n, 4288 slides: 2.5, 4289 slider: n > 7 4290 }; 4291 } 4292 return { 4293 type: 'type1', 4294 single: n, 4295 multi: n, 4296 slides: 3, 4297 slider: n > 3 4298 }; 4299 } else if (w > 767) { 4300 if (n > 4) { 4301 return { 4302 type: 'type3', 4303 single: 1, 4304 multi: n, 4305 slides: 2, 4306 slider: n > 5 4307 }; 4308 } 4309 return { 4310 type: 'type4', 4311 single: n, 4312 multi: n, 4313 slides: 2, 4314 slider: n > 2 4315 }; 4316 } else if (w > 460) { 4317 return { 4318 type: 'type4', 4319 single: n, 4320 multi: n, 4321 slides: 2, 4322 slider: n > 2 4323 }; 4324 } 4325 return { 4326 type: 'type5', 4327 single: n, 4328 multi: n, 4329 slides: 1, 4330 slider: n > 1 4331 }; 4332 } 4333 function ensureClass($el, className) { 4334 if ($el.hasClass(className)) { 4335 return; 4336 } 4337 $el.addClass(className); 4338 } 4339 function makeSquare($el) { 4340 const el = $el[0]; 4341 el.style.width = ''; 4342 el.style.height = ''; 4343 const rect = el.getBoundingClientRect(); 4344 if (rect.width !== rect.height) { 4345 el.style.width = rect.height + 'px'; 4346 } 4347 } 4348 function buildSlider() { 4349 const cWidth = $container[0].getBoundingClientRect().width; 4350 if (cWidth === usedWidth) { 4351 return; 4352 } 4353 $container.empty();
4354 slider = $('<div class="ig-feed-slider"></div>'); 4355 const items = igFeed.items.slice(0, limit); 4356 const layout = getLayout(cWidth, items.length); 4357 let i = 0; 4358 let slide = null; 4359 while (i < layout.single) { 4360 slide = $(`<div class="slide-single ${layout.type}"></div>`).append(itemTemplate(items[i])).appendTo(slider); 4361 i++; 4362 } 4363 while (i < layout.multi) { 4364 slide = $(`<div class="slide-multi ${layout.type}"></div>`).appendTo(slider); 4365 let slideContent = $('<div class="slide-multi-content"></div>').appendTo(slide); 4366 const lim = i + 4; 4367 while (i < lim && i < layout.multi) { 4368 slideContent.append(itemTemplate(items[i])); 4369 i++; 4370 } 4371 } 4372 $container.append(slider); 4373 if (layout.slider) { 4374 $topPrev.removeClass('hidden-control'); 4375 $topNext.removeClass('hidden-control'); 4376 $bottomPrev.removeClass('hidden-control'); 4377 $bottomNext.removeClass('hidden-control'); 4378 let prev, next; 4379 if ($bottomPrev.parent()[0].getBoundingClientRect().width) { 4380 prev = $bottomPrev; 4381 next = $bottomNext; 4382 } else { 4383 prev = $topPrev; 4384 next = $topNext; 4385 makeSquare($topPrev); 4386 makeSquare($topNext); 4387 } 4388 slider.children().each(function () { 4389 this.style.width = this.getBoundingClientRect().width + 'px'; 4390 }); 4391 slider.slick({ 4392 dots: false, 4393 prevArrow: prev, 4394 nextArrow: next, 4395 slidesToScroll: 1, 4396 infinite: false, 4397 slidesToShow: layout.slides 4398 }); 4399 } else { 4400 ensureClass($topPrev, 'hidden-control'); 4401 ensureClass($topNext, 'hidden-control'); 4402 ensureClass($bottomPrev, 'hidden-control'); 4403 ensureClass($bottomNext, 'hidden-control'); 4404 } 4405 } 4406})('section-ab7525f1-6dbd-43e3-bba0-6a74ad957c35', JSON.parse("{\"resource\":\"agent\",\"useRouterApi\":false,\"companyId\":\"c3076ecb-c2d7-457b-a426-bcf036133f1f\",\"usePageResource\":false,\"sectionIndex\":3,\"routerApiAux\":{\"testimonials\":true,\"agents\":false,\"neighborhoods\":false,\"developments\":false,\"properties\":false,\"posts\":true,\"pressReleases\":true,\"offices\":true,\"teams\":true,\"pois\":true,\"postCategories\":true}}")); 4407} catch(e) { 4408console.log(e); 4409} 4410 4411 var { body } = document; 4412 var globalNav = body.querySelector(':scope > nav'); 4413 var globalSideMenu = body.querySelector(':scope > div.sidemenu'); 4414 4415 document.querySelectorAll('body > .modal .close').forEach(modalCloseBtn => { 4416 modalCloseBtn.addEventListener('click', function() { 4417 window.lpUI.hideClosestModal(modalCloseBtn); 4418 }); 4419 }); 4420 4421 window.addEventListener('click', function() { 4422 document.querySelectorAll('.share-popup').forEach(sharedPopup => { 4423 sharedPopup.style.display = 'none' ; 4424 }); 4425 }); 4426 4427 /* Misc Partials / Addons */ 4428 function initWOW() { 4429 if (wow) { 4430 wow.init(); 4431 wow.scrollHandler(); 4432 setTimeout(function () { 4433 const wowHideStyle = document.getElementById('wow-hide-elements'); 4434 if(wowHideStyle) { 4435 wowHideStyle.disabled = true; 4436 } 4437 }, 1); 4438 } 4439 } 4440 4441 const wowHideElements = document.getElementById('wow-hide-elements'); 4442 if (wowHideElements) { 4443 wowHideElements.disabled = false; 4444 } 4445 4446 var globalLoader = document.getElementById('global-loader'); 4447 if (globalLoader) { 4448 setTimeout(function() { 4449 globalLoader.style.height = "0px"; 4450 window.sessionStorage.setItem('global_loading_displayed', 'yes'); 4451 4452 // Remove global-loader to prevent caching issues with turbolinks 4453 globalLoader.addEventListener('transitionend', 4454 function(e) { 4455 globalLoader.remove(); 4456 initWOW(); 4457 }); 4458 }, 1000); 4459 } else { 4460 initWOW(); 4461 } 4462 4463 /* Generic Navbar Handling */ 4464 globalNav?.querySelectorAll('.hamburger-component').forEach(hamburgerComponent => { 4465 hamburgerComponent.addEventListener('click', function() { 4466 window.lpUI.sideMenuToggle(); 4467 }); 4468 }); 4469 globalSideMenu?.querySelectorAll('.toggle').forEach(toggleEl => { 4470 toggleEl.addEventListener('click', function() { 4471 window.lpUI.sideMenuToggle(); 4472 }); 4473 }); 4474 4475 document.querySelectorAll('body > nav .sub-nav-container > a, body > div.sidemenu .sub-nav-container > a').forEach(linkEl => { 4476 linkEl.addEventListener('click', function(e) { 4477 e.preventDefault(); 4478 e.stopPropagation();
4479 var subNav = linkEl.parentElement.querySelector(':scope > .sub-nav'); 4480 if (subNav && subNav.classList.contains('visible')){ 4481 subNav.classList.remove('visible'); 4482 } else { 4483 globalNav?.querySelectorAll('.sub-nav-container .sub-nav').forEach(globalSubNav => { 4484 globalSubNav.classList.remove('visible'); 4485 }); 4486 globalSideMenu?.querySelectorAll('.sub-nav').forEach(sideMenuSubNav => { 4487 sideMenuSubNav.classList.remove('visible'); 4488 }); 4489 subNav?.classList.add('visible'); 4490 } 4491 }); 4492 }); 4493 window.addEventListener('click', function() { 4494 document.querySelectorAll('nav .sub-nav.visible, .sidemenu .sub-nav.visible').forEach(subNavEl => { 4495 subNavEl.classList.remove('visible'); 4496 }); 4497 }); 4498 4499 } 4500 4501 document.addEventListener('DOMContentLoaded', lpGlobalInit); 4502 4503 </script>
4503 4504 4505
4505<script type="module"> 4506 function selectorExists(selector) { 4507 return document.querySelector(selector) !== null; 4508 } 4509 4510 // Function to initialize the third-party library 4511 function initParoller(selector = '.my-paroller') { 4512 var $parollerElements = $(selector); 4513 if ($parollerElements.length > 0 && typeof $parollerElements.paroller === 'function') { 4514 $parollerElements.paroller(); 4515 } 4516 } 4517 4518 const parollerSelector = '.my-paroller'; 4519 4520 if (selectorExists(parollerSelector)) { 4521 window.luxuryPresence.libs.loadJs(window.luxuryPresence.libs.jsLibsMap.paroller.jsSrc, function() { 4522 initParoller(parollerSelector); 4523 window.luxuryPresence.libs.jsLibsMap.paroller.isLoaded = true; 4524 }); 4525 } 4526 </script>
4526 4527 4528 <!-- Google Tag Manager (noscript) -->
vendor: 80 bytes, lines 4528-4529
4528 4529 <noscript><iframe src="https://www.googletagmanager.com/ns.html?id=
4529GTM-T9SFQGHZ
vendor: 107 bytes, lines 4529-4531
4529" 4530 height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript> 4531
4531<!-- End Google Tag Manager --> 4532 4533
4533<script 4534 src="https://cdn.luxurypresence.com/scripts/a11y-widget/latest/widget.js" 4535 data-website-id="ff06f655-0c64-45c8-9c55-e8468b4e5303" 4536 4537 defer></script>
vendor: 1 bytes, line 4537
4537
4538<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:'a45fb3cc0aade417',t:'MTc5MTIzNzY1OQ=='};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>
4538<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>
4538 4539</body> 4540</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.