1<!DOCTYPE html> 2�<html lang="en"><head><meta content="null" property="og:site_name"/><meta content="http://maestroitalian.com/" property="og:url"/><meta content="website" property="og:type"/><meta content="Maestro Pasta was founded by Alessandro Morani, who moved to the United States from Parma Italy, a Unesco Heritage site for gastronomy. Since 2019 Alessandro and his team started to show New..." property="og:description"/><meta content="Maestro - New York, NY" property="og:title"/><!-- Google tag (gtag.js) -->
vendor: 71 bytes, line 2
2<script async="async" src="https://www.googletagmanager.com/gtag/js?id=
2G-VG24VK2VKT
vendor: 11 bytes, line 2
2"></script>
2<script> 3 window.dataLayer = window.dataLayer || []; 4 function gtag(){dataLayer.push(arguments);} 5 gtag('set', 'linker', {'domains': ['tmt.spotapps.co','spothopperapp.com']}); 6 gtag('js', new Date()); 7 gtag('config', 'G-3WJ11RG5VL'); 8 gtag('config', 'G-VG24VK2VKT'); 9 </script>
9<!-- wcache 2026-10-09 11:40:35.143163Z --><!-- 10smart_footer: true, 11smart_footer_version: 2, 12scripting_active: false 13--><link href="https://maestroitalian.com/" rel="canonical"/><meta charset="utf-8"/><meta content="IE=edge" http-equiv="X-UA-Compatible"/><meta content="width=device-width, initial-scale=1" name="viewport"/><meta content="Maestro Pasta was founded by Alessandro Morani, who moved to the United States from Parma Italy, a Unesco Heritage site for gastronomy. Since 2019 Alessandro and his team started to show New Yorkers the art of pasta-making." name="description"/><meta content="" name="author"/><meta content="https://static.spotapps.co/website_images/ab_websites/119296_website_v1/share_image.jpg" property="og:image"/><meta content="Maestro image" property="og:image:alt"/><meta content="image/png" property="og:image:type"/><meta content="633659449836251" property="fb:app_id"/><meta content="summary_large_image" name="twitter:card"/><meta content="Maestro - New York, NY" name="twitter:title"/><meta content="Maestro Pasta was founded by Alessandro Morani, who moved to the United States from Parma Italy, a Unesco Heritage site for gastronomy. Since 2019 Alessandro and his team started to show New..." name="twitter:description"/><meta content="https://static.spotapps.co/website_images/ab_websites/119296_website_v1/share_image.jpg" name="twitter:image"/><title>Authentic Italian Restaurant in New York, NY | Maestro</title>
13<script>document.cookie='resolution='+Math.max(screen.width,screen.height)+("devicePixelRatio" in window ? ","+devicePixelRatio : ",1")+'; path=/';</script>
13<link href="https://static.spotapps.co/website_images/ab_websites/119296_website_v1/favicon/favicon-96x96.png" rel="icon" sizes="96x96" type="image/png"/><link href="https://static.spotapps.co/website_images/ab_websites/119296_website_v1/favicon/favicon.svg" rel="icon" type="image/svg+xml"/><link href="https://static.spotapps.co/website_images/ab_websites/119296_website_v1/favicon/favicon.ico" rel="shortcut icon"/><link href="https://static.spotapps.co/website_images/ab_websites/119296_website_v1/favicon/apple-touch-icon.png" rel="apple-touch-icon" sizes="180x180"/><meta content="Maestro" name="apple-mobile-web-app-title"/><link href="https://static.spotapps.co/website_images/ab_websites/119296_website_v1/favicon/site.webmanifest" rel="manifest"/><link href="https://static.spotapps.co/web/maestroitalian--com/lib/bootstrap/css/bootstrap.min.css" rel="stylesheet"/><link href="https://static.spotapps.co/web/maestroitalian--com/lib/gallery/gallery.css" rel="stylesheet"/><link href="https://static.spotapps.co/web/maestroitalian--com/lib/fancybox/source/jquery.fancybox.css" media="screen" rel="stylesheet" type="text/css"/><link href="https://static.spotapps.co/web/maestroitalian--com/lib/fancybox/source/helpers/jquery.fancybox-thumbs.css" rel="stylesheet" type="text/css"/><link href="//static.spotapps.co/web-lib/leaflet/[email protected]/dist/leaflet-gesture-handling.min.css" rel="stylesheet" type="text/css"/><link href="https://static.spotapps.co/web/maestroitalian--com/lib/uikit/css/uikit.docs.min.css" rel="stylesheet"/><link href="https://static.spotapps.co/web/maestroitalian--com/lib/uikit/css/slidenav.css" rel="stylesheet"/><link href="https://static.spotapps.co/web/maestroitalian--com/lib/font-awesome-4.7.0/css/font-awesome.min.css" rel="stylesheet"/><link href="https://static.spotapps.co/web/maestroitalian--com/lib/hover_css/css/hover-min.css" rel="stylesheet"/><link href="https://static.spotapps.co/web/maestroitalian--com/lib/owlcarousel/owl.carousel.min.css" rel="stylesheet"/><link href="https://static.spotapps.co/web/maestroitalian--com/lib/owlcarousel/owl.theme.default.min.css" rel="stylesheet"/><link href="https://static.spotapps.co/web-lib/leaflet/[email protected]/dist/leaflet.css" rel="stylesheet"/><link href="https://static.spotapps.co/web/maestroitalian--com/css/style.css?version2" id="mainCSS" rel="stylesheet"/><link href="https://static.spotapps.co/web/maestroitalian--com/css/bottom_navigation_v1.css?v1768481803" rel="stylesheet"/><link href="css/custom.css?v1768481803&domain=maestroitalian.com" rel="stylesheet"/><link href="https://static.spotapps.co/web/maestroitalian--com/lib/icons_font/css/social_icons.css" rel="stylesheet"/><!--[if IE 7]><link rel="stylesheet" href="lib/icons_font/css/social_icons-ie7.css"><![endif]--><link href="https://static.spotapps.co/web/maestroitalian--com/lib/twitter_x_font_icon/css/twitter_x.css" rel="stylesheet"/><!--[if IE 7]><link rel="stylesheet" href="lib/twitter_x_font_icon/css/twitter_x-ie7.css"><![endif]--><!--[if lt IE 9]> 14
14<script src="//oss.maxcdn.com/libs/html5shiv/3.7.0/html5shiv.js"></script>
14 15
15<script src="//oss.maxcdn.com/libs/respond.js/1.4.2/respond.min.js"></script>
15 16 <![endif]--><style> 17 18#accessibility-footer { 19 padding: 20px 5px; 20 background-color: #353638; 21 color: #fff; 22 text-align: center; 23} 24#accessibility-footer p { 25 margin: 0; 26 padding: 0; 27 font-family: inherit; 28 font-size: initial; 29 color: #fff; 30} 31#accessibility-footer .accessibility-link { 32 display: inline-block; 33 color: inherit; 34 text-decoration: underline; 35 font-weight: 600; 36} 37 38@media (max-width: 767px) { 39 #accessibility-footer .accessibility-link { 40 display: block; 41 } 42 43 /* additionl css in case that there is a CTA mobile bar (id="bottom-navbar") on the website */ 44 #accessibility-footer { 45 position: relative; 46 top: -60px; 47 padding-bottom: 70px; 48 } 49} 50 51</style>
51<script src="https://static.spotapps.co/websites/lib/lazysizes/lazysizes.min.js" async=""></script>
51<script> 52function ga_check(){ 53 return true; 54} 55</script>
55<script> 56function universal_ga(action, type, category, ev_action, label){ 57 if(typeof ga === 'function') 58 { 59 if(!(action && label)) 60 ga(action, type, category) 61 else 62 ga(action, type, category, ev_action, label) 63 } 64 65 if(typeof gtag === 'function') 66 { 67 if(!(action && label)) 68 { 69 hash = category 70 ev_label = hash["eventLabel"] 71 var splits = ev_label.match(/.{1,100}/g) ?? []; 72 delete(hash["eventLabel"]) 73 74 if(splits.length <= 1) 75 hash["eventLabel"] = ev_label 76 else 77 { 78 for (let i = 0; i < splits.length; i++) { 79 var key = "eventLabel_"+i 80 hash[key] = splits[i] 81 } 82 } 83 console.log(hash) 84 gtag("event", hash["eventCategory"], hash); 85 } 86 else 87 { 88 var hash = { 89 eventCategory: category, 90 eventAction: ev_action 91 } 92 93 var splits = label.match(/.{1,100}/g) ?? []; 94 if(splits.length <= 1) 95 hash["eventLabel"] = label 96 else 97 { 98 for (let i = 0; i < splits.length; i++) { 99 var key = "eventLabel_"+i 100 hash[key] = splits[i] 101 } 102 } 103 gtag("event", hash["eventCategory"], hash); 104 } 105 } 106} 107</script>
107<script> function getPromotionUrlParams(){ 108 var params_str = sessionStorage.getItem('shUrlParams'); 109 if (params_str != null){ 110 return JSON.parse(params_str); 111 }else{ 112 return {}; 113 } 114 } 115 116 function getPromotionSourceDetails(){ 117 var params_str = localStorage.getItem('promotionSourceDetails'); 118 if (params_str != null){ 119 return JSON.parse(params_str); 120 }else{ 121 return {}; 122 } 123 } 124 125 function getLastEmailVisitInDays(){ 126 var promotionSourceDetails = getPromotionSourceDetails(); 127 if (!promotionSourceDetails['last_visit_email'] ){ 128 return null; 129 } 130 return Math.floor((new Date() - new Date(promotionSourceDetails['last_visit_email'])) / (1000 * 60 * 60 * 24)); 131 } 132 133 function getLastSocialVisitInDays(){ 134 var promotionSourceDetails = getPromotionSourceDetails(); 135 if (!promotionSourceDetails['last_visit_social'] ){ 136 return null; 137 } 138 return Math.floor((new Date() - new Date(promotionSourceDetails['last_visit_social'])) / (1000 * 60 * 60 * 24)); 139 } 140 141 var shUrlParams = getPromotionUrlParams(); 142 var promotionSourceDetails = getPromotionSourceDetails(); 143 144 new URL(document.location).searchParams.forEach(function(value, paramName){ 145 146 shUrlParams[paramName] = value; 147 148 if (paramName == 'source' && value =='social' ){ 149 promotionSourceDetails['last_visit_social'] = new Date(); 150 localStorage.setItem('promotionSourceDetails', JSON.stringify(promotionSourceDetails)); 151 } 152 153 if (paramName == 'source' && value =='email' ){ 154 promotionSourceDetails['last_visit_email'] = new Date(); 155 localStorage.setItem('promotionSourceDetails', JSON.stringify(promotionSourceDetails)); 156 } 157 158 }); 159 160 sessionStorage.setItem('shUrlParams', JSON.stringify(shUrlParams)) 161</script>
161<style>a:focus:not(:focus-visible){outline:none;box-shadow:none;} 162a.get-directions-footer-link{display:inline-block;transform-origin:left center;transition:transform .2s ease;} 163a.get-directions-footer-link:hover{transform:scale(1.08);} 164@media (prefers-reduced-motion:reduce){a.get-directions-footer-link{transition:none;transform:none;}} 165a.get-directions-footer-link,a.get-directions-footer-link:hover{color:inherit!important;}</style></head><body class="home-page" data-spot-id="119296"><style>.promotion-pop-up .modal-dialog { 166 margin: 0 auto; 167 top: 0; 168 transition: none; 169} 170.promotion-pop-up.fade .modal-dialog { 171 transform: none !important; 172} 173 174.promotion-pop-up .modal-content { 175 display: none; 176 border-radius: 6px; 177 background-color: #fff; 178 background-image: none; 179} 180.promotion-pop-up .modal-header { 181 border: none; 182 margin-bottom: 8px; 183} 184.promotion-pop-up .close { 185 position: absolute; 186 top: 15px; 187 right: 15px; 188 font-size: 3em; 189 font-weight: normal; 190 line-height: 0.8em; 191 color: #000; 192 opacity: 0.8; 193} 194.promotion-pop-up .modal-body { 195 margin: 20px 20px 10px 20px; 196 padding-top: 5px; 197 text-align: center; 198 color: initial; 199} 200.promotion-pop-up .modal-footer { 201 padding-bottom: 40px; 202 border-top: none; 203 text-align: center; 204} 205 206.promotion-pop-up .btn { 207 display: inline-block; 208 max-width: 90%; 209 padding: 10px 50px; 210 font-size: 1.2em; 211 background-color: #000000; 212 color: #fff; 213 transform: scale(1); 214 -webkit-transition: all 0.3s ease; 215 -moz-transition: all 0.3s ease; 216 -o-transition: all 0.3s ease; 217 transition: all 0.3s ease; 218} 219.promotion-pop-up .btn:hover { 220 background-color: #1a1a1a; 221 color: #e0e0e0; 222 box-shadow: 1px 3px 6px rgba(0, 0, 0, 0.3); 223 transform: scale(0.98); 224} 225 226.promotion-pop-up .btn:active { 227 background-color: #0f0f0f; 228 color: #cccccc; 229 box-shadow: 230 inset 0 2px 4px rgba(255, 255, 255, 0.08), 231 inset 0 -2px 2px rgba(0, 0, 0, 0.4); 232 transform: scale(0.94); 233} 234 235.promotion-pop-up h2 { 236 margin: 5px 5px 10px 5px; 237 font-size: 2.1em; 238 line-height: 1.3; 239 color: inherit; 240 /*font-family: unset;*/ 241} 242.promotion-pop-up h3 { 243 font-size: 1.5em; 244 margin: 5px 5px 15px 5px; 245 font-family: unset; 246 text-transform: inherit; 247} 248.promotion-pop-up p { 249 margin-top: 30px; 250} 251.promotion-pop-up .modal-body a { 252 color: initial; 253} 254 255.promotion-pop-up .modal-plain-text h3 { 256 padding-top: 10px; 257} 258 259.promotion-pop-up .modal-body.modal-image-and-button { 260 overflow: auto; 261 margin: 20px; 262 padding-top: 0; 263 padding-bottom: 0; 264} 265.promotion-pop-up .modal-body.modal-image-and-button img { 266 max-height: 60vh; 267 max-width: 100%; 268} 269.promotion-pop-up .modal-body.modal-image-and-button p { 270 margin-top: 15px; 271 margin-bottom: 10px; 272} 273 274@media only screen and (max-width: 1024px) { 275 .promotion-pop-up .modal-body.modal-image-and-button { 276 margin-bottom: 10px; 277 } 278 .promotion-pop-up h2 { 279 font-size: 1.9em; 280 } 281 .promotion-pop-up h3 { 282 font-size: 1.4em; 283 } 284 .promotion-pop-up .modal-body.modal-image-and-button img { 285 max-height: 65vh; 286 } 287} 288 289@media only screen and (max-width: 767px) { 290 .promotion-pop-up .modal-dialog { 291 margin: 0 10px; 292 } 293 .promotion-pop-up .modal-body { 294 margin-top: 18px; 295 } 296 .promotion-pop-up .modal-body.modal-image-and-button img { 297 max-height: 55vh; 298 } 299 .promotion-pop-up h2 { 300 font-size: 1.8em; 301 } 302 .promotion-pop-up h3 { 303 font-size: 1.3em; 304 } 305 .promotion-pop-up .modal-body.modal-image-and-button p { 306 font-size: 1.1em; 307 } 308} 309@media only screen and (max-width: 500px) { 310 .promotion-pop-up .modal-footer { 311 padding-top: 10px; 312 padding-bottom: 35px; 313 } 314 .promotion-pop-up .modal-body { 315 margin: 17px 15px 5px 15px; 316 } 317 .promotion-pop-up .btn { 318 padding: 9px 40px; 319 font-size: 1.1em; 320 } 321 .promotion-pop-up .modal-body.modal-image-and-button img { 322 max-height: 50vh; 323 } 324} 325@media only screen and (max-width: 400px) { 326 .promotion-pop-up h2 { 327 font-size: 1.7em; 328 } 329 .promotion-pop-up h3 { 330 font-size: 1.2em; 331 } 332 .promotion-pop-up .btn { 333 padding: 8px 35px; 334 font-size: 1.1em; 335 } 336}</style><div aria-label="Promotion" class="modal fade promotion-pop-up" id="promotion-pop-up" role="dialog" tabindex="-1"><div class="modal-dialog" role="document"><div class="modal-content promotion_pop_up_content" data-has-image="" data-internalname="order_online" data-is-custom-link="false" data-is-template-image-and-button="false" data-link-url="https://www.getsauce.com/order/mae
336stro-pasta/menu?source=pop_up&spot_id=119296&destination=order&promotion=order_online" id="4684999"><!-- Modal Header --><div class="modal-header"><button aria-label="Close" class="close" data-dismiss="modal" type="button"><span aria-hidden="true">Ã</span></button></div><!-- Modal body --><div class="modal-body modal-plain-text"><p>Order your favorite dishes in seconds!</p></div><div class="modal-footer"><a class="btn btn-modal" data-href="https://www.getsauce.com/order/maestro-pasta/menu?source=pop_up&spot_id=119296&destination=order&promotion=order_online" href="https://www.getsauce.com/order/maestro-pasta/menu?source=pop_up&spot_id=119296&destination=order&promotion=order_online">Order Online</a></div></div><div class="modal-content promotion_pop_up_content" data-has-image="" data-internalname="private_parties" data-is-custom-link="false" data-is-template-image-and-button="false" data-link-url="https://maestroitalian.com/-party?source=pop_up&spot_id=119296&destination=private_parties&promotion=private_parties" id="4684965"><!-- Modal Header --><div class="modal-header"><button aria-label="Close" class="close" data-dismiss="modal" type="button"><span aria-hidden="true">Ã</span></button></div><!-- Modal body --><div class="modal-body modal-plain-text"><h2 class="section-header">Turn moments into memories!</h2><h3>Choose us for your next special occasion or get-together.</h3><p>Got a birthday party, rehearsal dinner, corporate or other event coming up? We're a great option for your gathering! Inquire today and let us know how we can make your special occasion perfect!</p></div><div class="modal-footer"><a class="btn btn-modal" data-href="https://maestroitalian.com/-party?source=pop_up&spot_id=119296&destination=private_parties&promotion=private_parties" href="https://maestroitalian.com/-party?source=pop_up&spot_id=119296&destination=private_parties&promotion=private_parties">Book your party</a></div></div><div class="modal-content promotion_pop_up_content" data-has-image="" data-internalname="reservations" data-is-custom-link="false" data-is-template-image-and-button="false" data-link-url="https://www.opentable.com/r/maestro-pasta-new-york-2?ref=1068&source=pop_up&spot_id=119296&destination=reservations&promotion=reservations" id="4684981"><!-- Modal Header --><div class="modal-header"><button aria-label="Close" class="close" data-dismiss="modal" type="button"><span aria-hidden="true">Ã</span></button></div><!-- Modal body --><div class="modal-body modal-plain-text"><h2 class="section-header">We are taking online reservations!</h2><h3>Letâs ensure you get a great table: Book today!</h3><p>We recommend making a reservation ahead of time. Book your table today!</p></div><div class="modal-footer"><a class="btn btn-modal" data-href="https://www.opentable.com/r/maestro-pasta-new-york-2?ref=1068&source=pop_up&spot_id=119296&destination=reservations&promotion=reservations" href="https://www.opentable.com/r/maestro-pasta-new-york-2?ref=1068&source=pop_up&spot_id=119296&destination=reservations&promotion=reservations">Book Table</a></div></div><div class="modal-content promotion_pop_up_content" data-has-image="" data-internalname="catering" data-is-custom-link="false" data-is-template-image-and-button="false" data-link-url="https://maestroitalian.com/-catering?source=pop_up&spot_id=119296&destination=catering&promotion=catering" id="4684977"><!-- Modal Header --><div class="modal-header"><button aria-label="Close" class="close" data-dismiss="modal" type="button"><span aria-hidden="true">Ã</span></button></div><!-- Modal body --><div class="modal-body modal-plain-text"><h2 class="section-header">Did you know we do catering?</h2><h3>Whatever your occasion, however big or small, we have the perfect options to choose from.</h3><p>Cater your birthday party, holiday party, corporate events, wedding festivities and more!</p></div><div class="modal-footer"><a class="btn btn-modal" data-href="https://maestroitalian.com/-catering?source=pop_up&spot_id=119296&destination=catering&promotion=catering" href="https://maestroitalian.com/-catering?source=pop_up&spot_id=119296&destination=catering&promotion=catering">Catering Packages</a></div></div></div></div><style> 337 338 339.navbar.nav-v6 .container { 340 padding-top: 10px; 341 padding-bottom: 10px; 342} 343.navbar.nav-v6.nav-scroll .container { 344 padding-top: 0px; 345 padding-bottom: 0px; 346} 347.navbar.nav-v6 .header-logo img { 348 max-width: 100%; 349} 350.navbar.nav-v6.nav-scroll .header-logo img { 351 max-width: 80%; 352} 353 354@media (max-width: 767px) { 355 /* DO NOT change mobile nav height on page scroll */ 356 .navbar.nav-v6 .navbar-header, 357 .navbar.nav-v6.nav-scroll .navbar-header { 358 padding-top: 10px; 359 padding-bottom: 10px; 360 } 361 .navbar.nav-v6 .socialnav, 362 .navbar.nav-v6.nav-scroll .socialnav { 363 margin-top: 10px; 364 } 365 .navbar.nav-v6 .container, 366 .navbar.nav-v6.nav-scroll .container { 367 padding-top: 0; 368 padding-bottom: 0; 369 } 370 .navbar.nav-v6 .header-logo, 371 .navbar.nav-v6.nav-scroll .header-logo { 372 height: 70px; 373 } 374 .navbar.nav-v6 .header-logo img { 375 max-height: 100%; 376 } 377 .navbar.nav-v6.nav-scroll .header-logo img { 378 max-width: 100%; 379 } 380 /* HOME page CHANGE mobile nav height on page scroll */ 381 /* Remove body.home-page from below code if there should be mobile nav height change on ALL pages */ 382 body.home-page .navbar.nav-v6 .navbar-header { 383 padding-top: 10px; 384 padding-bottom: 10px; 385 } 386 body.home-page .navbar.nav-v6.nav-scroll .navbar-header{ 387 padding-top: 0px; 388 padding-bottom: 0px; 389 } 390 body.home-page .navbar.nav-v6 .socialnav { 391 margin-top: 10px; 392 } 393 body.home-page .navbar.nav-v6.nav-scroll .socialnav { 394 margin-top: 0px; 395 } 396 body.home-page .navbar.nav-v6 .container{ 397 padding-top: 0; 398 padding-bottom: 0; 399 } 400 body.home-page .navbar.nav-v6.nav-scroll .container { 401 padding-top: 0; 402 padding-bottom: 0; 403 } 404 body.home-page .navbar.nav-v6 .header-logo { 405 height: 70px; 406 } 407 body.home-page .navbar.nav-v6.nav-scroll .header-logo { 408 height: 50px; 409 } 410 body.home-page .navbar.nav-v6 .header-logo img { 411 max-height: 100%; 412 max-width: 100%; 413 } 414 body.home-page .navbar.nav-v6.nav-scroll .header-logo img { 415 max-width: 80%; 416 } 417} 418 419 420.navbar-regular .navbar-collapse.collapse.in { 421 background-color: transparent; 422 width: 100%; 423} 424.navbar.nav-v6{ 425 background-color: #fff; 426 -webkit-box-shadow: 0px 2px 5px 0px rgba(0,0,0,0); 427 -moz-box-shadow: 0px 2px 5px 0px rgba(0,0,0,0); 428 box-shadow: 0px 2px 5px 0px rgba(0,0,0,0); 429 -moz-transition: all 0.3s ease-in-out; 430 -webkit-transition: all 0.3s ease-in-out; 431 -o-transition: all 0.3s ease-in-out; 432 transition: all 0.3s ease-in-out; 433} 434.navbar.nav-v6.nav-scroll{ 435 background-color: #fff; 436 -webkit-box-shadow: 0px 2px 5px 0px rgba(0,0,0,0.2); 437 -moz-box-shadow: 0px 2px 5px 0px rgba(0,0,0,0.2); 438 box-shadow: 0px 2px 5px 0px rgba(0,0,0,0.2); 439} 440.drink-menu .navbar.nav-v6{ 441 background-color: #fff; 442 -webkit-box-shadow: 0px 2px 5px 0px rgba(0,0,0,0); 443 -moz-box-shadow: 0px 2px 5px 0px rgba(0,0,0,0); 444 box-shadow: 0px 2px 5px 0px rgba(0,0,0,0); 445 -moz-transition: all 0.3s ease-in-out; 446 -webkit-transition: all 0.3s ease-in-out; 447 -o-transition: all 0.3s ease-in-out; 448 transition: all 0.3s ease-in-out; 449} 450.drink-menu .navbar.nav-v6.nav-scroll{ 451 background-color: #fff; 452 -webkit-box-shadow: 0px 2px 5px 0px rgba(0,0,0,0.2); 453 -moz-box-shadow: 0px 2px 5px 0px rgba(0,0,0,0.2); 454 box-shadow: 0px 2px 5px 0px rgba(0,0,0,0.2); 455} 456.navbar-regular.nav-v6 .navbar-nav>li>a, 457.navbar-regular.nav-v6 .navbar-nav>li>a:hover, 458.navbar-regular.nav-v6 .navbar-nav>.active>a, 459.navbar-regular.nav-v6 .navbar-nav>.active>a:focus, 460.navbar-regular.nav-v6 .navbar-nav>.active>a:hover{ 461 border: none; 462 border-right: 1px solid #000; 463 background-color: transparent; 464 color: #000; 465 -moz-transition: all 0.3s ease-in-out; 466 -webkit-transition: all 0.3s ease-in-out; 467 -o-transition: all 0.3s ease-in-out; 468 transition: all 0.3s ease-in-out; 469} 470.navbar-regular.nav-v6 .navbar-nav>li>a { 471 color: #000; 472} 473.drink-menu .navbar.nav-v6 .navbar-nav>li>a { 474 color: #000; 475 border-right: 1px solid #000; 476} 477.drink-menu .navbar-regular.nav-v6 .navbar-nav>li>a:hover, 478.drink-menu .navbar-regular.nav-v6 .navbar-nav>.active>a, 479.drink-menu .navbar-regular.nav-v6 .navbar-nav>.active>a:focus, 480.drink-menu .navbar-regular.nav-v6 .navbar-nav>.active>a:hover{ 481 color: #000; 482} 483li.drop-down-link .sub-menu { 484 background-color: #fff; 485 color: #000; 486 } 487.nav-scroll li.drop-down-link .sub-menu { 488 background-color: #fff; 489 color: #000; 490} 491.drink-menu li.drop-down-link .sub-menu { 492 background-color: #fff; 493 color: #000; 494 } 495.drink-menu .nav-scroll li.drop-down-link .sub-menu { 496 background-color: #fff; 497 color: #000; 498} 499li.drop-down-link .sub-menu a, 500li.drop-down-link div.drop-down { 501 color: #000; 502} 503.nav-scroll li.drop-down-link .sub-menu a, 504.nav-scroll li.drop-down-link li.drop-down-link div.drop-down { 505 color: #000; 506} 507.drink-menu li.drop-down-link .sub-menu a, 508.drink-menu li.drop-down-link div.drop-down { 509 color: #000; 510} 511.drink-menu .nav-scroll li.drop-down-link .sub-menu a, 512.drink-menu .nav-scroll li.drop-down-link div.drop-down { 513 color: #000; 514} 515 516li.drop-down-link .sub-menu a:hover, 517li.drop-down-link .sub-menu a:focus { 518 color: #000; 519} 520.drink-menu li.drop-down-link .sub-menu a:hover, 521.drink-menu li.drop-down-link .sub-menu a:focus { 522 color: #000; 523} 524
525.navbar-regular.nav-v6 .navbar-toggle .icon-bar { 526 background-color: #000; 527 -moz-transition: all 0.3s ease-in-out; 528 -webkit-transition: all 0.3s ease-in-out; 529 -o-transition: all 0.3s ease-in-out; 530 transition: all 0.3s ease-in-out; 531} 532.drink-menu .navbar-regular.nav-v6 .navbar-toggle .icon-bar { 533 background-color: #000; 534} 535.navbar-regular.nav-v6 [aria-expanded="true"].navbar-toggle .icon-bar { 536 background-color: #000; 537} 538.drink-menu .navbar-regular.nav-v6 [aria-expanded="true"].navbar-toggle .icon-bar{ 539 background-color: #000; 540} 541.navbar-regular.nav-v6.nav-scroll .navbar-nav>li>a, 542.navbar-regular.nav-v6.nav-scroll .navbar-nav>li>a:hover, 543.navbar-regular.nav-v6.nav-scroll .navbar-nav>.active>a, 544.navbar-regular.nav-v6.nav-scroll .navbar-nav>.active>a:focus, 545.navbar-regular.nav-v6.nav-scroll .navbar-nav>.active>a:hover{ 546 border: none; 547 border-right: 1px solid #000; 548 color: #000; 549} 550.navbar-regular.nav-v6.nav-scroll .navbar-nav>li>a { 551 color: #000; 552} 553.drink-menu .navbar.nav-v6.nav-scroll .navbar-nav>li>a { 554 color: #000; 555 border-right: 1px solid #000; 556} 557.drink-menu .navbar-regular.nav-v6.nav-scroll .navbar-nav>li>a:hover, 558.drink-menu .navbar-regular.nav-v6.nav-scroll .navbar-nav>.active>a, 559.drink-menu .navbar-regular.nav-v6.nav-scroll .navbar-nav>.active>a:focus, 560.drink-menu .navbar-regular.nav-v6.nav-scroll .navbar-nav>.active>a:hover{ 561 color: #000; 562} 563 564.nav-scroll li.drop-down-link .sub-menu a:hover, 565.nav-scroll li.drop-down-link .sub-menu a:focus { 566 color: #000; 567} 568.drink-menu .nav-scroll li.drop-down-link .sub-menu a:hover, 569.drink-menu .nav-scroll li.drop-down-link .sub-menu a:focus { 570 color: #000; 571} 572 573.navbar-regular.nav-v6.nav-scroll .navbar-toggle .icon-bar { 574 background-color: #000; 575} 576.drink-menu .navbar-regular.nav-v6.nav-scroll .navbar-toggle .icon-bar { 577 background-color: #000; 578} 579.navbar-regular.nav-v6.nav-scroll [aria-expanded="true"].navbar-toggle .icon-bar { 580 background-color: #000; 581} 582.drink-menu .navbar-regular.nav-v6.nav-scroll [aria-expanded="true"].navbar-toggle .icon-bar{ 583 background-color: #000; 584} 585.navbar.nav-v6 .header-logo-text{ 586 color: #000; 587 -moz-transition: all 0.3s ease-in-out; 588 -webkit-transition: all 0.3s ease-in-out; 589 -o-transition: all 0.3s ease-in-out; 590 transition: all 0.3s ease-in-out; 591} 592.navbar.nav-v6.nav-scroll .header-logo-text{ 593 color: #000; 594} 595.navbar.nav-v6 .social-icon{ 596 color: #000; 597 -moz-transition: all 0.3s ease-in-out; 598 -webkit-transition: all 0.3s ease-in-out; 599 -o-transition: all 0.3s ease-in-out; 600 transition: all 0.3s ease-in-out; 601} 602.navbar.nav-v6.nav-scroll .social-icon{ 603 color: #000; 604} 605.navbar.nav-v6 .social-square .contact-icon:hover { 606 color: #000; 607 background-color: #000; 608} 609.navbar.nav-v6.nav-scroll .social-square .contact-icon:hover { 610 color: #000; 611 background-color: #000; 612} 613 614.drink-menu .navbar.nav-v6 .header-logo-text{ 615 color: #000; 616} 617.drink-menu .navbar.nav-v6.nav-scroll .header-logo-text{ 618 color: #000; 619} 620.drink-menu .navbar.nav-v6 .social-icon{ 621 color: #000; 622} 623.drink-menu .navbar.nav-v6.nav-scroll .social-icon{ 624 color: #000; 625} 626.drink-menu .navbar.nav-v6 .social-square .contact-icon:hover { 627 color: #000; 628 background-color: #000; 629} 630.drink-menu .navbar.nav-v6.nav-scroll .social-square .contact-icon:hover { 631 color: #000; 632 background-color: #000; 633} 634.navbar.nav-v6 .container { 635 border-bottom: 1px solid transparent; 636 -moz-transition: all 0.3s ease-in-out; 637 -webkit-transition: all 0.3s ease-in-out; 638 -o-transition: all 0.3s ease-in-out; 639 transition: all 0.3s ease-in-out; 640} 641.navbar.nav-v6.nav-scroll .container { 642 border-bottom: 1px solid transparent; 643} 644.drink-menu .navbar.nav-v6 .container { 645 border-bottom: 1px solid transparent; 646} 647.drink-menu .navbar.nav-v6.nav-scroll .container { 648 border-bottom: 1px solid transparent; 649} 650@media(min-width: 768px) { 651 .nav-v6 .navbar-collapse { 652 display: flex !important; 653 justify-content: end; 654 } 655 .nav-v6 .navbar-nav, 656 .nav-v6 .socialnav.hidden-xs { 657 float: none !important; 658 } 659} 660@media (max-width: 767px) { 661 .navbar.nav-v6 .container, 662 .navbar.nav-v6.nav-scroll .container, 663 .drink-menu .navbar.nav-v6 .container, 664 .drink-menu .navbar.nav-v6.nav-scroll .container { 665 border-bottom: none; 666 } 667 .navbar.nav-v6 .navbar-header { 668 border-bottom: 2px solid transparent; 669 } 670 .navbar.nav-v6.nav-scroll .navbar-header { 671 border-bottom: 2px solid transparent; 672 } 673 .drink-menu .navbar.nav-v6 .navbar-header { 674 border-bottom: 2px solid transparent; 675 } 676 .drink-menu .navbar.nav-v6.nav-scroll .navbar-header { 677 border-bottom: 2px solid transparent; 678 } 679 li.drop-down-link .sub-menu, 680 .drink-menu li.drop-down-link .sub-menu { 681 width: 100% !important; 682 background-color: transparent; 683 } 684 .nav-scroll li.drop-down-link .sub-menu, 685 .drink-menu .nav-scroll li.drop-down-link .sub-menu { 686 background-color: transparent; 687 } 688 .navbar-regular.nav-v6 .navbar-nav>li>a:hover, 689 .navbar-regular.nav-v6 .navbar-nav>.active>a, 690 .navbar-regular.nav-v6 .navbar-nav>.active>a:focus, 691 .navbar-regular.nav-v6 .navbar-nav>.active>a:hover{ 692 background-color: #000; 693 color: #000; 694 } 695 .navbar-regular.nav-v6.nav-scroll .navbar-nav>li>a:hover, 696 .navbar-regular.nav-v6.nav-scroll .navbar-nav>.active>a, 697 .navbar-regular.nav-v6.nav-scroll .navbar-nav>.active>a:focus, 698 .navbar-regular.nav-v6.nav-scroll .navbar-nav>.active>a:hover{ 699 background-color: #000; 700 color: #000; 701 } 702 .drink-menu .navbar-regular.nav-v6 .navbar-nav>li>a:hover, 703 .drink-menu .navbar-regular.nav-v6 .navbar-nav>.active>a, 704 .drink-menu .navbar-regular.nav-v6 .navbar-nav>.active>a:focus, 705 .drink-menu .navbar-regular.nav-v6 .navbar-nav>.active>a:hover{ 706 background-color: #000; 707 color: #000; 708 } 709 .drink-menu .navbar-regular.nav-v6.nav-scroll .navbar-nav>li>a:hover, 710 .drink-menu .navbar-regular.nav-v6.nav-scroll .navbar-nav>.active>a, 711 .drink-menu .navbar-regular.nav-v6.nav-scroll .navbar-nav>.active>a:focus, 712 .drink-menu .navbar-regular.nav-v6.nav-scroll .navbar-nav>.active>a:hover{ 713 background-color: #000; 714 color: #000; 715 } 716 717 .navbar-regular.nav-v6 li.drop-down-link.active .drop-down .fa.fa-angle-up { 718 color: #000; 719 } 720 .navbar-regular.nav-v6.nav-scroll li.drop-down-link.active .drop-down .fa.fa-angle-up { 721 color: #000; 722 } 723 724 .drink-menu .navbar-regular.nav-v6 li.drop-down-link.active .drop-down .fa.fa-angle-up { 725 color: #000; 726 } 727 .drink-menu .navbar-regular.nav-v6.nav-scroll li.drop-down-link.active .drop-down .fa.fa-angle-up { 728 color: #000; 729 } 730 731} 732</style><!-- nav --><nav class="navbar nav-v4 nav-v6 nav-v6-drop navbar-regular navbar-fixed-top" id="navbar" role="navigation"><div id="skip"><a class="visuallyhidden skip-content" href="#content">Skip to main content</a></div><div class="container"><a class="header-logo logo-top" href="/#"><img alt="Maestro logo top - Homepage" aria-label="Homepage" class="img-responsive logo-top" src="https://static.spotapps.co/website_images/ab_websites/119296_website_v1/logo_new.png"/></a><a class="header-logo logo-scroll" href="/"><img alt="Maestro logo scroll - Homepage" aria-label="Homepage" class="img-responsive logo-scroll" src="https://static.spotapps.co/website_images/ab_websites/119296_website_v1/logo_new.png"/></a><ul class="socialnav visible-xs">
732<li class="social-links social-icons-holder social-square"><a class="pull-left contact-icon" href="https://www.facebook.com/633659449836251" target="_blank"><i class="social-icon fa fa-facebook"></i><span>Facebook page</span></a></li><li class="social-links social-icons-holder social-square"><a class="pull-left contact-icon" href="https://www.instagram.com/maestro_pasta" target="_blank"><i class="social-icon fa fa-instagram"></i><span>Instagram page</span></a></li><li class="social-links social-icons-holder social-square"><a class="pull-left contact-icon" href="https://www.google.com/search?client=firefox-b-d&q=Maestro+102+MacDougal+Street%2C+New+York%2C+NY#lrd=0x89c2592e64ff30af:0xcab4c7475ba08a9f,1,,,," target="_blank"><i aria-hidden="true" class="social-icon fa fa-google"></i><span>Google page</span></a></li></ul><div class="navbar-header"><button class="navbar-toggle" data-target="#navbar-collapse-1" data-toggle="collapse" type="button"><span class="sr-only">Toggle navigation</span><span class="icon-bar"></span><span class="icon-bar"></span><span class="icon-bar"></span></button></div><div class="collapse navbar-collapse" id="navbar-collapse-1"><ul class="nav navbar-nav navbar-right"><li class=" nav-menu-page"><a class="" href="/new-york-maestro-food-menu" id="nav_tab_1_link" target="_self"> 733 734 Menu 735 736 </a></li><li class=" "><a class="" href="/new-york-maestro-happy-hours-specials" id="nav_tab_2_link" target="_self"> 737 738 Specials 739 740 </a></li><li class=" "><a class="" href="/new-york-maestro-events" id="nav_tab_3_link" target="_self"> 741 742 Events 743 744 </a></li><li class=" nav-parties-link"><a class="link-parties-sh" href="/new-york-maestro-party#" id="nav_tab_4_link" target="_self"> 745 746 Parties 747 748 </a></li><li class=" nav-catering-link"><a class="link-catering-sh" href="/new-york-maestro-catering#" id="nav_tab_5_link" target="_self"> 749 750 Catering 751 752 </a></li><li class=" nav-jobs-link"><a class="link-jobs-sh" href="https://tmt.spotapps.co/job-listings?spot_id=119296&callback_url=http://maestroitalian.com/#" id="nav_tab_6_link" target="_self"> 753 754 Jobs 755 756 </a></li><li class=" nav-order-link"><a class="link-order-sh order-highlight-btn" href="https://www.getsauce.com/order/maestro-pasta/menu#" id="nav_tab_7_link" target="_self"> 757 758 Order Online 759 760 </a></li><li class=" nav-reservations-link"><a class="link-reservations-sh reserve-highlight-btn" href="https://www.opentable.com/r/maestro-pasta-new-york-2?ref=1068#" id="nav_tab_8_link" target="_self"> 761 762 Reservations 763 764 </a></li></ul><ul class="socialnav hidden-xs"><li class="social-links social-icons-holder social-square"><a class="pull-left contact-icon" href="https://www.facebook.com/633659449836251" target="_blank"><i class="social-icon fa fa-facebook"></i><span>Facebook page</span></a></li><li class="social-links social-icons-holder social-square"><a class="pull-left contact-icon" href="https://www.instagram.com/maestro_pasta" target="_blank"><i class="social-icon fa fa-instagram"></i><span>Instagram page</span></a></li><li class="social-links social-icons-holder social-square"><a class="pull-left contact-icon" href="https://www.google.com/search?client=firefox-b-d&q=Maestro+102+MacDougal+Street%2C+New+York%2C+NY#lrd=0x89c2592e64ff30af:0xcab4c7475ba08a9f,1,,,," target="_blank"><i aria-hidden="true" class="social-icon fa fa-google"></i><span>Google page</span></a></li></ul></div></div></nav><header class="header cover-type-video" style=" 765 background-image: url(https://static.spotapps.co/website_images/ab_websites/119296_website_v1/video_poster.jpg); 766 background-image: linear-gradient( rgba(0, 0, 0, 0.6), rgba(0, 0, 0, 0.6) ), url(https://static.spotapps.co/website_images/ab_websites/119296_website_v1/video_poster.jpg); 767 background-image: -webkit-linear-gradient(rgba(0, 0, 0, 0.6), rgba(0, 0, 0, 0.6)), url(https://static.spotapps.co/website_images/ab_websites/119296_website_v1/video_poster.jpg); 768 769 background-repeat: no-repeat; 770 background-position: center center fixed; 771 -webkit-background-size: cover; 772 -moz-background-size: cover; 773 -o-background-size: cover; 774 background-size: cover; 775 z-index: 98; position: relative; overflow: hidden; 776 "><div id="home_page_cover" style="height:100%;"><style> 777 778video#coverVideo { 779 z-index: 99; 780 background: url(https://static.spotapps.co/website_images/ab_websites/119296_website_v1/video_poster.jpg) no-repeat; 781 background-size: cover; 782} 783 784@media (min-width: 768px) { 785 786 787 @media (min-width: 1025px) { 788 789 video#coverVideo { 790 position: absolute; 791 top: 50%; 792 left: 50%; 793 min-width: 100%; 794 min-height: 100%; 795 width: auto; 796 height: auto; 797 -ms-transform: translateX(-50%) translateY(-50%); 798 -moz-transform: translateX(-50%) translateY(-50%); 799 -webkit-transform: translateX(-50%) translateY(-50%); 800 transform: translateX(-50%) translateY(-50%); 801 max-width: none; 802 vertical-align: baseline; 803} 804 } 805 806 @media (max-width: 1024px) { 807 808 video#coverVideo { 809 width: 100%; 810} 811.header { 812 max-height: 100vh; 813 background-image: none !important; 814 width: initial; 815 height: initial; 816} 817body.home-page { 818 background-color: transparent; 819} 820 } 821 822 823} 824 825@media (max-width: 767px) { 826 video#coverVideo { 827 width: 100%; 828} 829.header { 830 max-height: 100vh; 831 background-image: none !important; 832 width: initial; 833 height: initial; 834} 835body.home-page { 836 background-color: transparent; 837}} 838 839 .video-volume-btn, .video-controls-btn { 840 color: rgba(255, 255, 255, 0.9); 841 } 842 843</style>
843<video autoplay="autoplay" id="coverVideo" loop="loop" muted="muted" playsinline="playsinline" poster="https://static.spotapps.co/website_images/ab_websites/119296_website_v1/video_poster.jpg"><source src="https://static.spotapps.co/website_videos/Maestro_Pasta_Vimeo720p30.mp4" type="video/mp4"/></video><button aria-label="The decorative video is currently playing, pause the video" class="video-controls-btn" id="cover_video_controls_btn" type="button"><span class="off-screen">The decorative video is currently playing</span><i aria-hidden="true" class="fa fa-play"></i><i aria-hidden="true" class="fa fa-pause"></i></button><button aria-label="The decorative video sound is off, turn it on" class="video-volume-btn" type="button"><span class="off-screen">The decorative video sound is off</span><i aria-hidden="true" class="fa fa-volume-off"></i><i aria-hidden="true" class="fa fa-volume-up"></i></button></div></header><main id="content" role="main"><article class="hide-show-section" data-hidden="no"><style> 844.custom-gallery-wrapper { 845 background-color: #FAB500; 846 color: #000; 847 } 848 849</style><div class="gallery-wrapper custom-gallery-wrapper section-wrapper" id="gallery_custom_tag"><div class="container text-center"><div class="row"><div class="col-lg-12 col-md-12 col-xs-12 col-sm-12"></div></div><button class="visuallyhidden skip-content gallery-toggle gt-off">Skip Photo Gallery</button><div class="row"><div class="col-lg-3 col-md-3 col-xs-6 thumb gallery-item gallery-hover animation_0"><a class="fancybox fancybox.image" href="//static.spotapps.co/spots/11/c8f88eb981474986b298232bc45ac6/full"><div class="img"><img alt="gallery photo number 1" class="img-responsive lazyload" data-sizes="auto" data-src="//static.spotapps.co/spots/11/c8f88eb981474986b298232bc45ac6/medium" data-srcset="//static.spotapps.co/spots/11/c8f88eb981474986b298232bc45ac6/small 200w, //static.spotapps.co/spots/11/c8f88eb981474986b298232bc45ac6/medium 400w, //static.spotapps.co/spots/11/c8f88eb981474986b298232bc45ac6/full 800w" src="https://static.spotapps.co/web/placeholder.png"/></div></a></div><div class="col-lg-3 col-md-3 col-xs-6 thumb gallery-item gallery-hover animation_0"><a class="fancybox fancybox.image" href="//static.spotapps.co/spots/53/054a3cdc134926871188b0261e0326/full"><div class="img"><img alt="gallery photo number 2" class="img-responsive lazyload" data-sizes="auto" data-src="//static.spotapps.co/spots/53/054a3cdc134926871188b0261e0326/medium" data-srcset="//static.spotapps.co/spots/53/054a3cdc134926871188b0261e0326/small 200w, //static.spotapps.co/spots/53/054a3cdc134926871188b0261e0326/medium 400w, //static.spotapps.co/spots/53/054a3cdc134926871188b0261e0326/full 800w" src="https://static.spotapps.co/web/placeholder.png"/></div></a></div><div class="col-lg-3 col-md-3 col-xs-6 thumb gallery-item gallery-hover animation_0"><a class="fancybox fancybox.image" href="//static.spotapps.co/spots/cf/8ffdbe0acb4ed3a25e65e58d6159e5/full"><div class="img"><img alt="gallery photo number 3" class="img-responsive lazyload" data-sizes="auto" data-src="//static.spotapps.co/spots/cf/8ffdbe0acb4ed3a25e65e58d6159e5/medium" data-srcset="//static.spotapps.co/spots/cf/8ffdbe0acb4ed3a25e65e58d6159e5/small 200w, //static.spotapps.co/spots/cf/8ffdbe0acb4ed3a25e65e58d6159e5/medium 400w, //static.spotapps.co/spots/cf/8ffdbe0acb4ed3a25e65e58d6159e5/full 800w" src="https://static.spotapps.co/web/placeholder.png"/></div></a></div><div class="col-lg-3 col-md-3 col-xs-6 thumb gallery-item gallery-hover animation_0"><a class="fancybox fancybox.image" href="//static.spotapps.co/spots/61/f4c9fad693445fae660c62cad79911/full"><div class="img"><img alt="Pineapple screwdriver, close-up." class="img-responsive lazyload" data-sizes="auto" data-src="//static.spotapps.co/spots/61/f4c9fad693445fae660c62cad79911/medium" data-srcset="//static.spotapps.co/spots/61/f4c9fad693445fae660c62cad79911/small 200w, //static.spotapps.co/spots/61/f4c9fad693445fae660c62cad79911/medium 400w, //static.spotapps.co/spots/61/f4c9fad693445fae660c62cad79911/full 800w" src="https://static.spotapps.co/web/placeholder.png"/></div></a></div></div></div></div></article><article class="hide-show-section" data-hidden="no"><style></style><div class="custom_html_1-section section-wrapper" id="custom_html_1"><div class="container"><h1 class="section-header">order online</h1><h2>pick up your favorite food</h2><p>Don't feel like cooking today? We got you covered - order now!</p><br/><p class="custom-par"><a class="custom-temp-btn" href="https://www.getsauce.com/order/mae
849stro-pasta/menu">order</a></p></div></div></article><article class="hide-show-section" data-hidden="no"><style> 850.about-us-v8-wrapper { 851 padding: 5%; 852} 853.about-us-v8-wrapper:before { 854 background-color: #fff; 855 background-image: url('https://static.spotapps.co/website_images/ab_websites/119296_website_v1/menu_parties_catering_back.jpg'); 856 } 857 858 859.about-us-v8-wrapper .container { 860 padding: 0; 861 width: 100%; 862} 863 864 865 866 867 868 #aboutus_v8 .about-us-v8-item-0 .about-us-v8-content .text-content h2 { 869 color: #CECECE; 870 } 871 872 873 874 875 876 877 #aboutus_v8 .about-us-v8-item-1 .about-us-v8-content .text-content h2 { 878 color: #000; 879 } 880 881 882 883 884 885 886 #aboutus_v8 .about-us-v8-item-2 .about-us-v8-content .text-content h2 { 887 color: #000; 888 } 889 890 891 892 893 894 895 #aboutus_v8 .about-us-v8-item-3 .about-us-v8-content .text-content h2 { 896 color: #000; 897 } 898 899 900 901@-webkit-keyframes grow { 902 from { 903 opacity: 0; 904 width: 0px; 905 } 906 to { 907 opacity: 1; 908 width: 80%; 909 } 910} 911@-moz-keyframes grow { 912 from { 913 opacity: 0; 914 width: 0px; 915 } 916 to { 917 opacity: 1; 918 width: 80%; 919 } 920} 921@keyframes grow { 922 from { 923 opacity: 0; 924 width: 0px; 925 } 926 to { 927 opacity: 1; 928 width: 80%; 929 } 930} 931 932.safari-mac .about-us-v8-item .about-us-v8-image-bar { 933 width: 80%; 934} 935 936 937@media (max-width: 767px) { 938 .about-us-v8-wrapper { 939 padding: 0; 940 } 941 .about-us-v8-wrapper .container { 942 padding: 0; 943 width: 100%; 944 } 945 .about-us-v8-item { 946 padding: 0 !important; 947 } 948} 949 950</style><div class="about-us-v8-wrapper section-wrapper" id="aboutus_v8"><div class="container about-us-v8"><section><div class="about-us-v8-item about-us-v8-item-0 about-us-v8-item-center" style="padding: 0 100px 0 100px;"><!-- start About us item --><div class="about-us-v8-image" style="background-image: url('https://static.spotapps.co/website_images/ab_websites/119296_website_v1/about_us_center.png'); width: 100%; 951 "><!-- start Left About us image --></div><!-- end Left About us image --><div class="about-us-v8-content hidden-xs " style="width: ; 952 color: #fff; 953 background: rgba(250, 250, 250, 0); text-align: center;"><div class="text-wrapper" style="padding: ;"><div class="text-content "><div class="text-holder"></div></div></div></div><!-- end Right About us image --></div><!-- end About us item --></section><section><div class="about-us-v8-item about-us-v8-item-1 about-us-v8-item-" style="padding: 0;"><!-- start About us item --><div class="about-us-v8-image about-no-image" style="width: ;"><!-- start Left About us image --></div><!-- end Left About us image --><div class="about-us-v8-content " style="width: 100%; 954 color: #000; 955 background: rgba(250, 250, 250, 0); text-align: center;"><div class="text-wrapper" style="padding: 3% 7% 3% 11%;"><div class="text-content "><h1 style="color: #000;"><span>our menu is a testament to our dedication to the art of pasta-making.</span></h1><div class="text-holder"></div><div class="buttons-holder buttons-row-parent "><div class="buttons-row"><a class="custom-temp-btn hvr-fade" href="/new-york-maestro-food-menu" target="_self"> 956 our menu </a></div></div></div></div></div><!-- end Right About us image --></div><!-- end About us item --></section><section><div class="about-us-v8-item about-us-v8-item-2 about-us-v8-item-left" style="padding: 0;"><!-- start About us item --><div class="about-us-v8-image" style="background-image: url('https://static.spotapps.co/website_images/ab_websites/119296_website_v1/about_us_left_new.png'); width: 50%; 957 "><!-- start Left About us image --></div><!-- end Left About us image --><div class="about-us-v8-content " style="width: 50%; 958 color: #000; 959 background: rgba(250, 250, 250, 0); text-align: center;"><div class="text-wrapper" style="padding: 14% 7% 14% 11%;"><div class="text-content "><h1 style="color: #000;"><span>Groups and Parties</span></h1><div class="text-holder"><h2>Book your next party with us!</h2><p>Need the space for your event? Search no more we have a perfect place for you!</p></div><div class="buttons-holder buttons-row-parent "><div class="buttons-row"><a class="custom-temp-btn hvr-fade" href="/new-york-maestro-party" target="_self"> 960 Parties </a></div></div></div></div></div><!-- end Right About us image --></div><!-- end About us item --></section><section><div class="about-us-v8-item about-us-v8-item-3 about-us-v8-item-right" style="padding: 0;"><!-- start About us item --><div class="about-us-v8-image visible-xs" style="background-image: url('https://static.spotapps.co/website_images/ab_websites/119296_website_v1/about_us_right_new.png'); width: 50%; 961 "><!-- start Left About us image --></div><!-- end Left About us image --><div class="about-us-v8-content " style="width: 50%; 962 color: #000; 963 background: rgba(250, 250, 250, 0); text-align: center;"><div class="text-wrapper" style="padding: 14% 11% 14% 7%;"><div class="text-content "><h1 style="color: #000;"><span>Catering</span></h1><div class="text-holder"><h2>Let us cater your next event</h2><p>Maestro would be honored to provide our services for your next event. Each event is bespoke to your tastes and needs, to provide the best experience possible for you and your guests.</p></div><div class="buttons-holder buttons-row-parent "><div class="buttons-row"><a class="custom-temp-btn hvr-fade" href="/new-york-maestro-catering" target="_self"> 964 Catering </a></div></div></div></div></div><!-- start Right About us image --><div class="about-us-v8-image hidden-xs" style="background-image: url('https://static.spotapps.co/website_images/ab_websites/119296_website_v1/about_us_right_new.png'); width: 50%; 965 "></div><!-- end Right About us image --></div><!-- end About us item --></section></div></div><!-- For mobile devices animate the about_v8 section on page load if the video is on the cover and this section is 1st or 2nd below the cover. --></article><article class="hide-show-section" data-hidden="no"><div class="reservations-tmt-section tmt-section section-wrapper" id="reservations_tmt"><div class="container"><h1 class="section-header">Reservations</h1><h2>Join us today</h2><p>Click the button below to make a reservation.</p><a class="custom-temp-btn hvr-fade" href="https://www.opentable.com/r/maestro-pasta-new-york-2?ref=1068" target="_self">Book A Table</a></div></div></article><article class="hide-show-section" data-hidden="no"><style> 966.about-us-v8-wrapper.custom-about-us-v8-wrapper { 967 padding: 0; 968} 969.about-us-v8-wrapper.custom-about-us-v8-wrapper:before { 970 background-color: #fff; 971 background-image: url('https://static.spotapps.co/website_images/ab_websites/119296_website_v1/menu_parties_catering_back.jpg'); 972 973 -webkit-filter: none; 974 -moz-filter: none; 975 -o-filter: none; 976 -ms-filter: none; 977 filter: none; 978 } 979 980 981.about-us-v8-wrapper.custom-about-us-v8-wrapper .container { 982 padding: 0; 983 width: 100%; 984} 985 986 987 988 989 990 #aboutus_v8_custom .about-us-v8-item-0 .about-us-v8-content .text-content h2 { 991 color: #000; 992 } 993 994
995 996@-webkit-keyframes grow { 997 from { 998 opacity: 0; 999 width: 0px; 1000 } 1001 to { 1002 opacity: 1; 1003 width: 80%; 1004 } 1005} 1006@-moz-keyframes grow { 1007 from { 1008 opacity: 0; 1009 width: 0px; 1010 } 1011 to { 1012 opacity: 1; 1013 width: 80%; 1014 } 1015} 1016@keyframes grow { 1017 from { 1018 opacity: 0; 1019 width: 0px; 1020 } 1021 to { 1022 opacity: 1; 1023 width: 80%; 1024 } 1025} 1026 1027.safari-mac .custom-about-us-v8-wrapper .about-us-v8-item .about-us-v8-image-bar { 1028 width: 80%; 1029} 1030 1031 1032@media (max-width: 767px) { 1033 .about-us-v8-wrapper.custom-about-us-v8-wrapper { 1034 padding: 0; 1035 } 1036 .about-us-v8-wrapper.custom-about-us-v8-wrapper .container { 1037 padding: 0; 1038 width: 100%; 1039 } 1040 .custom-about-us-v8-wrapper .about-us-v8-item { 1041 padding: 0 !important; 1042 } 1043} 1044 1045</style><div class="about-us-v8-wrapper custom-about-us-v8-wrapper section-wrapper" id="aboutus_v8_custom"><div class="container about-us-v8"><section><div class="about-us-v8-item about-us-v8-item-0 about-us-v8-item-left" style="padding: 0;"><!-- start About us item --><div class="about-us-v8-image" style="background-image: url('https://static.spotapps.co/website_images/ab_websites/119296_website_v1/custom_abt_left.jpg'); width: 50%; 1046 "><!-- start Left About us image --></div><!-- end Left About us image --><div class="about-us-v8-content " style="width: 50%; 1047 color: #000; 1048 background: rgba(250, 250, 250, 0); text-align: center;"><div class="text-wrapper" style="padding: 14% 15% 14% 15%;"><div class="text-content "><h1 style="color: #000;"><span>About us</span></h1><div class="text-holder"><h2>Maestro</h2><p style="text-align: center;">Maestro Pasta was founded by Alessandro Morani, who moved to the United States from Parma Italy, a Unesco Heritage site for gastronomy. Since 2019 Alessandro and his team started to show New Yorkers the art of pasta-making.</p></div><div class="buttons-holder buttons-row-parent "><div class="buttons-row"><a class="custom-temp-btn hvr-fade" href="/new-york-maestro-about" target="_self"> 1049 Read More <span class="visuallyhidden"> about us</span></a></div></div></div></div></div><!-- end Right About us image --></div><!-- end About us item --></section></div></div><!-- For mobile devices animate the about_v8 section on page load if the video is on the cover and this section is 1st or 2nd below the cover. --></article><article class="hide-show-section" data-hidden="no"><style> 1050 1051 1052.reviews-v2-wrapper .carousel-controls .carousel-control-btn { 1053 color: #000; 1054} 1055</style><div class="carousel-wrapper reviews-v2-wrapper section-wrapper" id="reviews_v2"><h1 class="section-header">Reviews</h1><div class="container"><div aria-label="reviews carousel" class="row" role="region"><div class="carousel-controls" id="ReviewesCarouselControls"><button aria-label="The Reviews carousel is currently playing, pause the Reviews carousel" class="carousel-control-btn stop-carousel" type="button"><i aria-hidden="true" class="fa fa-pause"></i><i aria-hidden="true" class="fa fa-play"></i><span class="visuallyhidden"> Start stop reviews carousel</span></button></div><ul class="owl-dots"><li class="owl-dot"></li><li class="owl-dot"></li><li class="owl-dot"></li><li class="owl-dot"></li><li class="owl-dot"></li></ul><div class="col-md-12 col-xs-12"><div class="owl-carousel owl-theme"><section><div class="item"><h2>Review by - Google</h2><h3><span class="visuallyhidden">five star review by</span> 1056 Enja K: 1057 <i aria-hidden="true" class="fa fa-star"></i><i aria-hidden="true" class="fa fa-star"></i><i aria-hidden="true" class="fa fa-star"></i><i aria-hidden="true" class="fa fa-star"></i><i aria-hidden="true" class="fa fa-star"></i></h3><div class="review-text"><div aria-hidden="true" class="review-quote quote-left"><i class="fa fa-quote-left"></i></div><div aria-hidden="true" class="review-quote quote-right"><i class="fa fa-quote-right"></i></div><blockquote><p>The homemade pasta was delicious and truly authentic. The Italian staff was super friendly and made the experience even better. Great food, great atmosphere - we loved it!</p></blockquote></div></div></section><section><div class="item"><h2>Review by - Google</h2><h3><span class="visuallyhidden">five star review by</span> 1058 Gina H: 1059 <i aria-hidden="true" class="fa fa-star"></i><i aria-hidden="true" class="fa fa-star"></i><i aria-hidden="true" class="fa fa-star"></i><i aria-hidden="true" class="fa fa-star"></i><i aria-hidden="true" class="fa fa-star"></i></h3><div class="review-text"><div aria-hidden="true" class="review-quote quote-left"><i class="fa fa-quote-left"></i></div><div aria-hidden="true" class="review-quote quote-right"><i class="fa fa-quote-right"></i></div><blockquote><p>
1059This place has the most amazing Italian food I have ever had. The fried bread is to die for! The tartufo is amazing and everything was so fresh and tasty.</p></blockquote></div></div></section><section><div class="item"><h2>Review by - Google</h2><h3><span class="visuallyhidden">five star review by</span> 1060 FAYE L: 1061 <i aria-hidden="true" class="fa fa-star"></i><i aria-hidden="true" class="fa fa-star"></i><i aria-hidden="true" class="fa fa-star"></i><i aria-hidden="true" class="fa fa-star"></i><i aria-hidden="true" class="fa fa-star"></i></h3><div class="review-text"><div aria-hidden="true" class="review-quote quote-left"><i class="fa fa-quote-left"></i></div><div aria-hidden="true" class="review-quote quote-right"><i class="fa fa-quote-right"></i></div><blockquote><p>Great place! My kids had an amazing time there learned how to make pasta with chef. Food is great as well. Will definitely go back with friends again.</p></blockquote></div></div></section><section><div class="item"><h2>Review by - Google</h2><h3><span class="visuallyhidden">five star review by</span> 1062 Jean s: 1063 <i aria-hidden="true" class="fa fa-star"></i><i aria-hidden="true" class="fa fa-star"></i><i aria-hidden="true" class="fa fa-star"></i><i aria-hidden="true" class="fa fa-star"></i><i aria-hidden="true" class="fa fa-star"></i></h3><div class="review-text"><div aria-hidden="true" class="review-quote quote-left"><i class="fa fa-quote-left"></i></div><div aria-hidden="true" class="review-quote quote-right"><i class="fa fa-quote-right"></i></div><blockquote><p>Very tradition-based restaurant! The environment is quite and comfortable, and the food was delicious, recommended.</p></blockquote></div></div></section><section><div class="item"><h2>Review by - Google</h2><h3><span class="visuallyhidden">five star review by</span> 1064 Andrea H: 1065 <i aria-hidden="true" class="fa fa-star"></i><i aria-hidden="true" class="fa fa-star"></i><i aria-hidden="true" class="fa fa-star"></i><i aria-hidden="true" class="fa fa-star"></i><i aria-hidden="true" class="fa fa-star"></i></h3><div class="review-text"><div aria-hidden="true" class="review-quote quote-left"><i class="fa fa-quote-left"></i></div><div aria-hidden="true" class="review-quote quote-right"><i class="fa fa-quote-right"></i></div><blockquote><p>What a wonder little find in the village. Amazing decor, friendly staff, incredible food and wine! A must visit. Not to mention how they cleverly serve the pasta in cooking pans and have swings for seats</p></blockquote></div></div></section></div></div></div></div></div></article><article class="hide-show-section" data-hidden="no"><style> 1066.newsletter-section { 1067 background-color: #fff; 1068} 1069.newsletter-section .newsletter-content-holder:before { 1070 background-image: url('https://static.spotapps.co/website_images/ab_websites/119296_website_v1/news_back_new.jpg'); 1071 } 1072 1073</style><div class="newsletter-section section-wrapper" id="newsletter"><div class="newsletter-content-holder"><h1 class="section-header">Newsletter</h1>
1073<script id="sph-widget-bb6aa32447cba8d0f0728500cebc3a35" type="text/javascript"> 1074 (function() { 1075 function async_load(){ 1076 var s = document.createElement('script'); 1077 s.type = 'text/javascript'; 1078 s.async = true; 1079 s.src = 'https://www.spothopperapp.com/spots/119296/widgets/newsletter.js?template=newsletter_widget1'; 1080 var embedder = document.getElementById('sph-widget-bb6aa32447cba8d0f0728500cebc3a35'); 1081 embedder.parentNode.insertBefore(s, embedder); 1082 1083 //Inject html 1084 setTimeout(function(){ 1085 $( '<span class="bar"></span>' ).insertAfter( '.sph-email-input' ); 1086 $('.sph-submit-button').addClass('custom-temp-btn hvr-fade'); 1087 }, 2000); 1088 1089 } 1090 if (window.attachEvent) 1091 window.attachEvent('onload', async_load); 1092 else 1093 window.addEventListener('load', async_load, false); 1094 })(); 1095 </script>
1095</div></div></article><article class="hide-show-section" data-hidden="no"><div class="googlemap-v2 section-wrapper" id="openstreetmap_v2"><div class="maps-wrapper"><div style="position: relative;"><div aria-label="OpenStreet map" id="map-container" role="region"></div><div class="map-footer text-center"><div class="triangle"></div></div></div></div></div></article><article class="hide-show-section" data-hidden="no"><style></style><div class="custom_html_2-section section-wrapper" id="custom_html_2"><div class="container"><div class="buttons-group-holder"><p><a href="https://tmt.spotapps.co/job-listings?spot_id=119296&callback_url=http://maestroitalian.com/">careers</a></p></div></div></div></article><article class="hide-show-section" data-hidden="no"><div class="footer-v2-wrapper" id="footer_v2"><div class="container"><div class="row"><div class="col-xs-12 col-sm-12 col-md-12 col-lg-12"><p>Powered by: <a aria-label="SpotHopper homepage" class="applicationsLink" href="https://www.spothopperapp.com/" target="_blank"><img alt="SpotHopper logo" class="logoimg" src="https://static.spotapps.co/website_images/default_template_images/spothopper_logo.png"/></a></p></div><div class="col-xs-12 col-sm-12 col-md-12 col-lg-12"><a aria-label="Website design, Social Media marketing, and Email marketing provided by SpotHopper. Contact Us form" class="applicationsLink" href="https://www.spothopperapp.com/contact-us?contact_reason=demo" target="_blank">Website design, Social Media marketing and Email marketing provided by SpotHopper.</a></div></div></div></div></article></main><style type="text/css"> 1096 .navbar-fixed-bottom.nav-v1 { 1097 bottom: -100px; 1098 } 1099 .navbar-fixed-bottom.nav-v1 .nav.navbar-nav.navbar-right { 1100 background-color: #000; 1101 } 1102 .navbar-fixed-bottom.nav-v1 .bottom-svg-border path, 1103 .navbar-fixed-bottom.nav-v1 .bottom-svg-border polygon { 1104 fill: #000; 1105 } 1106 .navbar-fixed-bottom.nav-v1 .bottom-list-item a { 1107 color: #fff; 1108 } 1109 .navbar-fixed-bottom.nav-v1 .bottom-list-item a:hover, 1110 .navbar-fixed-bottom.nav-v1 .bottom-list-item a:focus { 1111 color: #8F8F8F; 1112 } 1113</style><nav aria-label="mobile footer" class="navbar-fixed-bottom nav-v1" id="bottom-navbar"><div><ul class="nav navbar-nav navbar-right"><li class="bottom-list-item "><a class="bottom-link " href="https://www.getsauce.com/order/maestro-pasta/menu" id="bottom_link_4" target="_self"> 1114 Order </a></li><li class="bottom-list-item "><a class="bottom-link " href="https://www.opentable.com/r/maestro-pasta-new-york-2?ref=1068" id="bottom_link_3" target="_self"> 1115 Reserve </a></li><li class="bottom-list-item "><a class="bottom-link " href="/new-york-maestro-party" id="bottom_link_5" target="_self"> 1116 Parties </a></li><li class="bottom-list-item "><a class="bottom-link " href="/new-york-maestro-catering" id="bottom_link_6" target="_self"> 1117 Catering </a></li><li class="bottom-list-item "><a class="bottom-link " href="https://tmt.spotapps.co/job-listings?spot_id=119296&callback_url=http://maestroitalian.com/" id="bottom_link_7" target="_self"> 1118 Jobs </a></li></ul></div></nav><div aria-hidden="true" aria-label="newsletter dialog" class="modal fade custom-modal" id="CustomModal" role="dialog" tabindex="-1"><div class="modal-dialog modal-md" role="document"><div class="modal-content"><div class="custom-modal-close"><button aria-label="Close" class="close" data-dismiss="modal" type="button"><span aria-hidden="true">Ã</span></button></div><div class="modal-body"><div class="row"><div class="col-md-12"><div class="newsletter-popup"><h1 class="section-header">Newsletter</h1>
1118<script id="sph-widget-2ce08bd156a46491d83342eb4a039092" type="text/javascript"> 1119 (function() { 1120 function async_load(){ 1121 var s = document.createElement('script'); 1122 s.type = 'text/javascript'; 1123 s.async = true; 1124 s.src = 'https://www.spothopperapp.com/spots/119296/widgets/newsletter.js?template=newsletter_widget2'; 1125 var embedder = document.getElementById('sph-widget-2ce08bd156a46491d83342eb4a039092'); 1126 embedder.parentNode.insertBefore(s, embedder); 1127 } 1128 if (window.attachEvent) 1129 window.attachEvent('onload', async_load); 1130 else 1131 window.addEventListener('load', async_load, false); 1132 })(); 1133 </script>
1133</div></div></div></div></div></div></div>
1133<script src="https://static.spotapps.co/web/maestroitalian--com/lib/jquery/jquery.min.js"></script>
1133<script src="https://static.spotapps.co/web/maestroitalian--com/lib/jquery/jquery.browser.min.js"></script>
1133<script src="https://static.spotapps.co/web/maestroitalian--com/lib/bootstrap/js/bootstrap.min.js"></script>
1133<script src="https://static.spotapps.co/web/maestroitalian--com/lib/owlcarousel/owl.carousel.min.js"></script>
1133<script src="https://static.spotapps.co/web/maestroitalian--com/lib/masonry/masonry.pkgd.min.js"></script>
1133<script src="https://static.spotapps.co/iframeResizer.js" type="text/javascript"></script>
1133<script src="//static.spotapps.co/web-lib/leaflet/[email protected]/dist/leaflet.js"></script>
1133<script src="//static.spotapps.co/web-lib/leaflet/leaflet-providers.js"></script>
1133<script src="//static.spotapps.co/web-lib/leaflet/[email protected]/dist/leaflet-gesture-handling.min.js"></script>
1133<script src="https://static.spotapps.co/web/maestroitalian--com/lib/fancybox/source/jquery.fancybox.js" type="text/javascript"></script>
1133<script src="https://static.spotapps.co/web/maestroitalian--com/lib/fancybox/source/jquery.fancybox.pack.js" type="text/javascript"></script>
1133<script src="https://static.spotapps.co/web/maestroitalian--com/lib/fancybox/source/helpers/jquery.fancybox-thumbs.js?v=1.0.7" type="text/javascript"></script>
1133<script src="https://static.spotapps.co/web/maestroitalian--com/lib/fancybox/source/helpers/jquery.fancybox-media.js?v=1.0.6" type="text/javascript"></script>
1133<script type="text/javascript"> 1134 1135 1136 1137 $("#bottom_link_4").on("click", function(){ 1138 if (ga_check()) 1139 universal_ga('send', 'event', 'Button', 'Click', 'Order Online'); 1140 }); 1141 $("#bottom_link_3").on("click", function(){ 1142 if (ga_check()) 1143 universal_ga('send', 'event', 'Button', 'Click', 'Reserve'); 1144 }); 1145 $("#bottom_link_5").on("click", function(){ 1146 if (ga_check()) 1147 universal_ga('send', 'event', 'Button', 'Click', 'Private Party'); 1148 }); 1149 $("#bottom_link_6").on("click", function(){ 1150 if (ga_check()) 1151 universal_ga('send', 'event', 'Button', 'Click', 'Catering'); 1152 }); 1153 $("#bottom_link_7").on("click", function(){ 1154 if (ga_check()) 1155 universal_ga('send', 'event', 'Button', 'Click', 'Jobs'); 1156 }); 1157 $('.header-logo, .nav-v2-home-btn').click(function(event) { 1158 if ( window.location.pathname == '/' || window.location.pathname == '/index.php') { 1159 event.preventDefault(); 1160 var windowScrollTop = $(window).scrollTop(); 1161 if(windowScrollTop > 150) { 1162 $('html, body').animate({scrollTop: 0}, 750); 1163 } 1164 } 1165 }); 1166 1167$(".banner-section a.banner-pin").click(function(e) { 1168 // target element id 1169 var id = $(this).attr('href'); 1170 1171 // target element 1172 var section = $(id); 1173 if (section.length === 0) { 1174 return; 1175 } 1176 1177 // prevent standard hash navigation (avoid blinking in IE) 1178 e.preventDefault(); 1179 1180 // top position relative to the document 1181 var pos = section.offset().top - 100 + 10; 1182 1183 // animated top scrolling 1184 $('body, html').animate({scrollTop: pos}, 750); 1185}); 1186 1187$(document).ready(function() { 1188 var navHeight = $('nav.navbar').height(); 1189 $('html').css("scroll-padding-top", navHeight); 1190}); 1191$(document).on('scroll', function (e) { 1192 if($(document).scrollTop() > 0) { 1193 $('.navbar.nav-v6').addClass('nav-scroll'); 1194 }else { 1195 $('.navbar.nav-v6').removeClass('nav-scroll'); 1196 } 1197}); 1198 1199function scrollStop (callback, refresh = 66) { 1200 1201 // Make sure a valid callback was provided 1202 if (!callback || typeof callback !== 'function') return; 1203 1204 // Setup scrolling variable 1205 let isScrolling; 1206 1207 // Listen for scroll events 1208 window.addEventListener('scroll', function (event) { 1209 1210 // Clear our timeout throughout the scroll 1211 window.clearTimeout(isScrolling); 1212 1213 // Set a timeout to run after scrolling ends 1214 isScrolling = setTimeout(callback, refresh); 1215 1216 }, false); 1217 1218} 1219 1220$(function() { 1221 setDropDownMenuWidth(); 1222 1223 // Function to set drop-down menu position (css top property) 1224 setDropDownMenuTop(); 1225 1226 function setDropDownMenuWidth() { 1227 var tabs_list = $('.navbar-collapse .navbar-nav'); 1228 $(tabs_list).find('li.drop-down-link').each(function() { 1229 var sub_menu_width = $(this).outerWidth(true); 1230 if (sub_menu_width < 100) { 1231 sub_menu_width = 100; 1232 } 1233 $(this).find('.sub-menu').css('width', sub_menu_width+'px'); 1234 1235 }); 1236 }; 1237 1238 function setDropDownMenuTop() { 1239 var sub_menu_top = ($('.navbar.nav-v6 .container').outerHeight() + $('.drop-down-link').outerHeight())/2; 1240 $('li.drop-down-link .sub-menu').css('top', sub_menu_top-2 +'px'); 1241 }; 1242 1243 $( window ).resize(function() { 1244 setDropDownMenuWidth(); 1245 setDropDownMenuTop(); 1246 }); 1247 1248 $(window).on('scroll', function (e) { 1249 setDropDownMenuTop(); 1250 }); 1251 1252 scrollStop(function () { 1253 setDropDownMenuTop(); 1254 if($(document).scrollTop() == 0) { 1255 setTimeout(setDropDownMenuTop, 200); 1256 } 1257 }); 1258 1259 $('.nav a:not(.drop-down)').on('click', function () { 1260 $('.navbar-collapse').collapse('hide'); 1261 }); 1262 1263}); 1264 1265$( '.drop-down-link .drop-down' ).click(function(event) { 1266 event.preventDefault(); 1267 event.stopPropagation(); 1268 var drop_down = $(this).closest('.drop-down-link'); 1269 var drop_down_a = $(this); 1270 1271 if($(drop_down_a).attr("aria-expanded") == "true") { 1272 $(drop_down_a).attr("aria-expanded",false) 1273 } else { 1274 $(drop_down_a).attr("aria-expanded",true) 1275 } 1276 1277 var sub_menu = $(this).closest('.drop-down-link').find( '.sub-menu' ); 1278 if ( $(sub_menu).is( ':hidden' ) ) { 1279 $(sub_menu).slideDown(); 1280 $(drop_down).addClass('active'); 1281 } else { 1282 $(sub_menu).slideUp(); 1283 $(drop_down).removeClass('active'); 1284 } 1285}); 1286$('#navbar-collapse-1').on('hide.bs.collapse', function (e) { 1287 var clickedElement = $(event.target); 1288 if (clickedElement.hasClass('drop-down')) { 1289 return false;
1290 } 1291}); 1292$('#navbar-collapse-1').on('hidden.bs.collapse', function () { 1293 closeOpenedDropDownMenus(); 1294 function closeOpenedDropDownMenus() { 1295 var tabs_list = $('.navbar-collapse .navbar-nav'); 1296 $(tabs_list).find('li.drop-down-link').each(function() { 1297 if( $(this).hasClass('active') ) { 1298 var sub_menu = $(this).find('.sub-menu'); 1299 $(sub_menu).slideUp(); 1300 $(this).removeClass('active'); 1301 } 1302 }); 1303 }; 1304}); 1305 $(document).ready(function() { 1306 var video = $("#coverVideo")[0]; 1307 1308 // Cover video Play/pause 1309 $(".video-controls-btn").click(function () { 1310 if (video.paused) { 1311 video.play(); 1312 $(".video-controls-btn").focus(); 1313 $(".video-controls-btn i.fa-play").hide(); 1314 $(".video-controls-btn i.fa-pause").show(); 1315 $(".video-controls-btn").attr("aria-label", "The decorative video is currently playing, pause the video"); 1316 $(".video-controls-btn .off-screen").text("The decorative video is currently playing"); 1317 } else { 1318 video.pause(); 1319 $(".video-controls-btn").focus(); 1320 $(".video-controls-btn i.fa-play").show(); 1321 $(".video-controls-btn i.fa-pause").hide(); 1322 $(".video-controls-btn").attr("aria-label", "The decorative video is currently paused, play the video"); 1323 $(".video-controls-btn .off-screen").text("The decorative video is currently paused"); 1324 } 1325 }); 1326 // Cover video sound on/off 1327 if (video.muted) { 1328 $(".video-volume-btn").addClass('off'); 1329 } 1330 1331 $(".video-volume-btn").click(function () { 1332 if (video.muted) { 1333 video.muted = false; 1334 $(".video-volume-btn").removeClass('off'); 1335 $(".video-volume-btn").addClass('on'); 1336 $(".video-volume-btn").attr("aria-label", "The decorative video sound is on, turn it off"); 1337 $(".video-volume-btn .off-screen").text("The decorative video sound is on"); 1338 } else { 1339 video.muted = true; 1340 $(".video-volume-btn").removeClass('on'); 1341 $(".video-volume-btn").addClass('off'); 1342 $(".video-volume-btn").attr("aria-label", "The decorative video sound is off, turn it on"); 1343 $(".video-volume-btn .off-screen").text("The decorative video sound is off"); 1344 } 1345 }); 1346 });$(document).ready(function() { 1347 var fancyboxSliderCustom = $('#gallery_custom_tag .fancybox'); 1348 1349 fancyboxSliderCustom.attr('rel', 'gallery').fancybox({ 1350 beforeShow : function() { 1351 var alt = this.element.find('img').attr('alt'); 1352 this.inner.find('img').attr('alt', alt); 1353 }, 1354 padding : 15, 1355 margin: 20, 1356 arrows : true, 1357 closeBtn: true, 1358 autoPlay : false, 1359 playSpeed : 3000, 1360 loop : true, 1361 openEffect : 'fade', 1362 closeEffect : 'fade', 1363 nextEffect : 'elastic', 1364 prevEffect : 'elastic', 1365 helpers : { 1366 overlay : { 1367 css : { 1368 'background' : 'rgba(0, 0, 0, 0.5)' 1369 }, 1370 locked: false 1371 } 1372 } 1373 }); 1374 1375 var galleryCToggleBtn = $('#gallery_custom_tag .gallery-toggle'); 1376 var galleryCImages = $('#gallery_custom_tag .gallery-item a'); 1377 var galleryCToggleTextOff = 'The Photo Gallery of ' + galleryCImages.length + ' images can be accessed, hide the Photo Gallery from the Screen Reader'; 1378 var galleryCToggleTextOn = 'The Photo Gallery of ' + galleryCImages.length + ' images is hidden from the Screen Reader, access the Photo Gallery'; 1379 galleryCToggleBtn.attr('aria-label', galleryCToggleTextOff); 1380 1381 galleryCToggleBtn.on('click',function(){ 1382 $(this).toggleClass('gt-off'); 1383 1384 const parentElement = $(this).closest('article'); 1385 const nextElement = $(parentElement).next(); 1386 1387 if ($(this).hasClass('gt-off')) { 1388 $(this).attr('aria-label', galleryCToggleTextOff); 1389 galleryCImages.each(function() { 1390 $(this).attr('aria-hidden', 'false').attr('tabindex', '0'); 1391 }); 1392 } else { 1393 $(this).attr('aria-label', galleryCToggleTextOn); 1394 galleryCImages.each(function() { 1395 $(this).attr('aria-hidden', 'true').attr('tabindex', '-1'); 1396 }); 1397 1398 if (nextElement.length !== 0) { 1399 const scrollTo = $(nextElement).offset().top - 100; 1400 $('html, body').animate({ scrollTop: scrollTo }, 1000); 1401 } 1402 } 1403 }); 1404 1405}); 1406$(document).ready(function() { 1407 1408 if (navigator.userAgent.indexOf('Safari') != -1 && navigator.userAgent.indexOf('Mac') != -1 && navigator.userAgent.indexOf('Chrome') == -1 && $(window).width() > 767) { 1409
1410 // Turn Off animations on Safari browser for Mac desktop 1411 $('html').addClass('safari-mac'); 1412 1413 } 1414 else { 1415 1416 var animation_item_elements = $('.about-us-v8-item'); 1417 var window_var = $(window); 1418 1419 function check_if_item_in_view() { 1420 var window_var_height = window_var.height(); 1421 var window_var_top_position = window_var.scrollTop(); 1422 var window_var_bottom_position = (window_var_top_position + window_var_height/2 + 100); 1423 1424 $.each(animation_item_elements, function() { 1425 var element_var = $(this); 1426 var element_var_height = element_var.outerHeight(); 1427 var element_var_top_position = element_var.offset().top; 1428 var element_var_bottom_position = (element_var_top_position + element_var_height/2 + 100); 1429 1430 //check to see if this current container is within viewport 1431 if ((element_var_bottom_position >= window_var_top_position) && 1432 (element_var_top_position <= window_var_bottom_position)) { 1433 element_var.addClass('animate'); 1434 } else { 1435 // element_var.removeClass('in-view'); 1436 } 1437 }); 1438 } 1439 1440 window_var.on('scroll resize', check_if_item_in_view); 1441 window_var.trigger('scroll'); 1442 1443 } 1444 1445 1446}); 1447 $(document).ready(function() { 1448 1449 if ( $(window).width() < 768 ) { 1450 1451 var home_sections = $('article'); 1452 var home_section_id; 1453 var about_v8_section_position; 1454 1455 for (var i = 0; i < home_sections.length; i++) { 1456 home_section_id = $(home_sections[i]).find(".section-wrapper").attr("id"); 1457 if (home_section_id == "aboutus_v8") { 1458 about_v8_section_position = i; 1459 } 1460 } 1461 1462 if ( (about_v8_section_position == 0) || (about_v8_section_position == 1) ) { 1463 // Turn Off animations 1464 $('html').addClass('safari-mac'); 1465 } 1466 } 1467 1468 }); 1469$(document).ready(function() { 1470 1471 if (navigator.userAgent.indexOf('Safari') != -1 && navigator.userAgent.indexOf('Mac') != -1 && navigator.userAgent.indexOf('Chrome') == -1 && $(window).width() > 767) { 1472 1473 // Turn Off animations on Safari browser for Mac desktop 1474 $('html').addClass('safari-mac'); 1475 1476 } 1477 else { 1478 1479 var animation_item_elements_c = $('.custom-about-us-v8-wrapper .about-us-v8-item'); 1480 var window_var_c = $(window); 1481 1482 function check_if_item_in_view_c() { 1483 var window_var_c_height = window_var_c.height(); 1484 var window_var_c_top_position = window_var_c.scrollTop(); 1485 var window_var_c_bottom_position = (window_var_c_top_position + window_var_c_height/2 + 100); 1486 1487 $.each(animation_item_elements_c, function() { 1488 var element_var_c = $(this); 1489 var element_var_c_height = element_var_c.outerHeight(); 1490 var element_var_c_top_position = element_var_c.offset().top; 1491 var element_var_c_bottom_position = (element_var_c_top_position + element_var_c_height/2 + 100); 1492 1493 //check to see if this current container is within viewport 1494 if ((element_var_c_bottom_position >= window_var_c_top_position) && 1495 (element_var_c_top_position <= window_var_c_bottom_position)) { 1496 element_var_c.addClass('animate'); 1497 } else { 1498 // element_var_c.removeClass('in-view'); 1499 } 1500 }); 1501 } 1502 1503 window_var_c.on('scroll resize', check_if_item_in_view_c); 1504 window_var_c.trigger('scroll'); 1505 1506 } 1507 1508 1509}); 1510 $(document).ready(function() { 1511 1512 if ( $(window).width() < 768 ) { 1513 1514 var home_sections_c = $('article'); 1515 var home_section_c_id; 1516 var about_v8_section_c_position; 1517 1518 for (var i = 0; i < home_sections_c.length; i++) { 1519 home_section_c_id = $(home_sections_c[i]).find(".section-wrapper").attr("id"); 1520 if (home_section_c_id == "aboutus_v8_custom") { 1521 about_v8_section_c_position = i; 1522 } 1523 } 1524 1525 if ( (about_v8_section_c_position == 0) || (about_v8_section_c_position == 1) ) { 1526 // Turn Off animations 1527 $('html').addClass('safari-mac'); 1528 } 1529 } 1530 1531 }); $(document).ready(function() { 1532 1533 var owlReviews = $('#reviews_v2 .owl-carousel'); 1534 owlReviews.owlCarousel({ 1535 onInitialized: function (property) { 1536 //check if show dots is true in config 1537 if(true){ 1538 $('.reviews-v2-wrapper .owl-dot').each(function( index ) { 1539 var i = index + 1; 1540 $(this).html('<button aria-label="Review '+i+'"><span class="visuallyhidden">Review '+i+'</span></button>'); 1541 }); 1542 } 1543 //check if show arrows is true in config 1544 if(true && !true){ 1545 reviewsHandleArrowTabbing(owlReviews); 1546 } 1547 //prevent voiceover from reading hidden content 1548 $('.reviews-v2-wrapper').find('.owl-item').attr('aria-hidden','true'); 1549 $(property.target).find(".owl-item").eq(property.item.index).attr('aria-hidden','false'); 1550 }, 1551 margin: 0, 1552 nav: true, 1553 dots: true, 1554 dotsContainer: '#reviews_v2 .owl-dots', 1555 autoplay: true, 1556 autoplayTimeout: 6000, 1557 autoplayHoverPause: false, 1558 loop: true, 1559 navText: [ '<button aria-label="previous review">‹</button>', '<button aria-label="next review">›</button>' ], 1560 responsive: { 1561 0: { 1562 items: 1 1563 }, 1564 600: { 1565 items: 1 1566 }, 1567 1000: { 1568 items: 1 1569 } 1570 } 1571 }); 1572 1573 function discontinuousReviews(func){ 1574 var timer; 1575 return function(event){ 1576 if(timer) clearTimeout(timer); 1577 timer = setTimeout(func,200,event); 1578 }; 1579 } 1580 1581 $('#reviews_v2 .owl-dot button').attr('aria-current', 'false'); 1582 $('#reviews_v2 .owl-dot:first button').attr('aria-current', 'true'); 1583 1584 function reviewsCarouselStop() { 1585 owlReviews.trigger('stop.owl.autoplay'); 1586 owlReviews.data('owl.carousel').settings.autoplay = false;
1587 $('#reviews_v2 .carousel-control-btn').removeClass('stop-carousel'); 1588 $('#reviews_v2 .carousel-control-btn').addClass('play-carousel'); 1589 $('#reviews_v2 .carousel-control-btn').attr('aria-label', 'The Reviews carousel is currently paused, play the Reviews carousel'); 1590 } 1591 1592 function reviewsCarouselPlay() { 1593 owlReviews.trigger('play.owl.autoplay',[1000]); 1594 owlReviews.data('owl.carousel').settings.autoplay = true; 1595 $('#reviews_v2 .carousel-control-btn').removeClass('play-carousel'); 1596 $('#reviews_v2 .carousel-control-btn').addClass('stop-carousel'); 1597 $('#reviews_v2 .carousel-control-btn').attr('aria-label', 'The Reviews carousel is currently playing, pause the Reviews carousel'); 1598 } 1599 1600 $('#reviews_v2 .carousel-control-btn').on('click',function(){ 1601 if ($(this).hasClass('stop-carousel')) { 1602 reviewsCarouselStop(); 1603 } else if ($(this).hasClass('play-carousel')) { 1604 reviewsCarouselPlay(); 1605 } 1606 }); 1607 1608 $('#reviews_v2 .owl-dot').click(function () { 1609 owlReviews.trigger('to.owl.carousel', [$(this).index(), 300]); 1610 reviewsCarouselStop(); 1611 }); 1612 1613 $('#reviews_v2 .owl-nav').click(function () { 1614 reviewsCarouselStop(); 1615 }); 1616 1617 $(window).on("resize", discontinuousReviews(function() { 1618 if ($('#reviews_v2 .carousel-control-btn').hasClass('play-carousel')) { 1619 setTimeout(() => reviewsCarouselStop(), 500); 1620 } 1621 })); 1622 1623 $(window).on('focus', function() { 1624 if ($('#reviews_v2 .carousel-control-btn').hasClass('stop-carousel')) { 1625 owlReviews.trigger('next.owl.carousel'); 1626 } 1627 }); 1628 1629 //prevent voiceover from reading hidden content 1630 owlReviews.on('changed.owl.carousel',function(property){ 1631 $('.reviews-v2-wrapper').find('.owl-item').attr('aria-hidden','true'); 1632 $(property.target).find(".owl-item").eq(property.item.index).attr('aria-hidden','false'); 1633 $(property.target).find(".owl-dot").find('button').attr('aria-current', 'false'); 1634 $(property.target).find(".owl-dot").filter('.active').find('button').attr('aria-current', 'true'); 1635 }); 1636 1637 //check if show arrows is true in config 1638 if(true && !true){ 1639 reviewsHandleArrowTabbing(owlReviews); 1640 } 1641 1642 function reviewsHandleArrowTabbing(widget){ 1643 widget.on('changed.owl.carousel',function(property){ 1644 //handle tabbing when previous slider button is hidden 1645 if($(property.target).find(".owl-prev").hasClass('disabled')){ 1646 $(property.target).find(".owl-prev").children().attr('tabindex', -1); 1647 $(property.target).find(".owl-prev").attr('aria-hidden','true'); 1648 } 1649 else { 1650 $(property.target).find(".owl-prev").children().attr('tabindex', 0); 1651 $(property.target).find(".owl-prev").attr('aria-hidden','false'); 1652 } 1653 //handle tabbing when next slider button is hidden 1654 if($(property.target).find(".owl-next").hasClass('disabled')){ 1655 $(property.target).find(".owl-next").children().attr('tabindex', -1); 1656 $(property.target).find(".owl-next").attr('aria-hidden','true'); 1657 } 1658 else { 1659 $(property.target).find(".owl-next").children().attr('tabindex', 0); 1660 $(property.target).find(".owl-next").attr('aria-hidden','false'); 1661 } 1662 }); 1663 } 1664 1665 $('.reviews-v2-wrapper .owl-nav').insertBefore($('.reviews-v2-wrapper .owl-stage-outer')); 1666 $('.reviews-v2-wrapper .owl-dots').insertBefore($('.reviews-v2-wrapper .owl-nav')); 1667 1668 });iFrameResize({ 1669 enablePublicMethods: true, 1670 enableInPageLinks: true 1671}); 1672 1673var marker_icon = ""; 1674var additionalPins = ''; 1675if (additionalPins) { 1676 var locationsArray = JSON.parse(''); 1677} 1678 1679var google_map_url = 'https://www.google.com/maps/place/' + ",102 MacDougal Street,New York,NY,10012".split(' ').join('+'); 1680function open_google_map() { 1681 window.open(google_map_url, '_blank') 1682} 1683 1684function discontinuous(func){ 1685 var timer; 1686 return function(event){ 1687 if(timer) clearTimeout(timer); 1688 timer = setTimeout(func,200,event); 1689 }; 1690} 1691 1692function init_open_street_map() { 1693 if (additionalPins) { 1694 var map = L.map('map-container', { 1695 minZoom: 3, 1696 zoomControl: false, 1697 zoomSnap: 1, 1698 gestureHandling: true 1699 }); 1700 1701 var allMarkers = []; 1702 1703 var marker = L.marker([40.7293927, -74.0009164], {title: '102 MacDougal Street, New York', alt: 'View 102 MacDougal Street, New York on Google maps - opens in a new tab'}).addTo(map); 1704 allMarkers.push(marker); 1705 1706 marker.on('click keypress', open_google_map); 1707 1708 locationsArray.forEach(function(element, index) { 1709 var additionalMarker = L.marker([element.lat_coords, element.lng_coords], {title: element.pin_title, alt: 'View ' + element.pin_title + ' on Google maps - opens in a new tab'}).addTo(map); 1710 1711 additionalMarker.on('click keypress', function() { 1712 window.open(element.pin_link, '_blank'); 1713 }); 1714 1715 allMarkers.push(additionalMarker); 1716 1717 }); 1718 1719 function fitBoundsToMarkers(osmap, markers) { 1720 osmap.invalidateSize(); 1721 var group = new L.featureGroup(markers); 1722 osmap.fitBounds(group.getBounds(), {padding: [50, 50]}); 1723 } 1724 1725 fitBoundsToMarkers(map, allMarkers); 1726 1727 document.querySelector('.reset-zoom-btn').addEventListener('click', function () { 1728 fitBoundsToMarkers(map, allMarkers); 1729 }); 1730 1731 window.addEventListener("resize", discontinuous(function(e) { 1732 fitBoundsToMarkers(map, allMarkers); 1733 })); 1734 } else { 1735 var map = L.map('map-container', { 1736 center: [ 40.7293927, -74.0009164], 1737 zoom: 16, 1738 dragging: false, 1739 minZoom: 3, 1740 zoomControl: false, 1741 }); 1742 1743 var marker = L.marker([40.7293927, -74.0009164], {title: '102 MacDougal Street, New York', alt: 'View 102 MacDougal Street, New York on Google maps - opens in a new tab'}).addTo(map); 1744 1745 marker.on('click keypress', open_google_map); 1746 1747 map.scrollWheelZoom.disable(); 1748 } 1749 1750 if (marker_icon.length>0){ 1751 var myIcon = L.icon({ 1752 iconUrl: marker_icon, 1753 iconSize: [35,35] 1754 }); 1755 1756 if(allMarkers) {
1757 allMarkers.forEach(marker => { 1758 marker.setIcon(myIcon); 1759 marker.update(); 1760 }); 1761 } else { 1762 marker.setIcon(myIcon); 1763 marker.update(); 1764 } 1765 } 1766 1767 L.tileLayer.provider('OpenStreetMap.Mapnik').addTo(map); 1768 L.control.zoom({ 1769 position:'bottomleft' 1770 }).addTo(map); 1771 1772 $('.googlemap-v2 #map-container').removeAttr('tabindex'); 1773 $('.leaflet-touch .leaflet-bar a').attr('tabindex', '-1'); 1774 $('.leaflet-container .leaflet-marker-pane img').attr('role', 'link'); 1775} 1776 1777$(document).ready(function() { 1778 init_open_street_map(); 1779}); setTimeout(function(){ 1780 $('.navbar-fixed-bottom.nav-v1').addClass('show-bottom-nav'); triggerShowFooterEvents(); 1781 }, 4000); 1782 1783 var navigation_alpha_starts_from = 0; 1784 var navigation_background_color = "rgba(0, 0, 0,"; 1785 var navigation_darkens_on_scroll = "1"; 1786 var top_nav_new_style = !navigation_darkens_on_scroll && ($(window).width() > 767); 1787 var custom_nav_style = "1"; 1788 if(!custom_nav_style){ 1789 $('.navbar-regular').css('background-color', 'rgba(255, 255, 255,' + navigation_alpha_starts_from + ')'); 1790 $('.navbar-inverse').css('background-color', navigation_background_color + (top_nav_new_style ? 0 : navigation_alpha_starts_from) + ')'); 1791 } 1792 1793 if (navigation_darkens_on_scroll && !custom_nav_style) { 1794 $(document).on('scroll', function (e) { 1795 var alpha = navigation_alpha_starts_from + $(document).scrollTop() / 1950; 1796 $('.navbar-inverse').css('background-color', navigation_background_color + alpha + ')'); 1797 $('.navbar-regular').css('background-color', 'rgba(255, 255, 255,' + alpha + ')'); 1798 }); 1799 } 1800 1801 if (!navigation_darkens_on_scroll && !custom_nav_style) { 1802 $(window).resize(function() { 1803 if ($(window).width() > 767) 1804 $('.navbar-inverse').css('background-color', navigation_background_color + 0 + ')'); 1805 else 1806 $('.navbar-inverse').css('background-color', navigation_background_color + navigation_alpha_starts_from + ')'); 1807 }); 1808 } 1809 1810</script>
1810<script type="text/javascript"> 1811 function openPopUp() { 1812 1813 document.touchmove = function (e) { 1814 e.preventDefault(); 1815 }; 1816 $(function () { 1817 $('body').css('overflow', 'hidden'); 1818 1819 $('#CustomModal').modal({ 1820 show: true 1821 }); 1822 1823 $(document).on('shown.bs.modal', '.modal', function () { 1824 //handle reader focus 1825 focusModal(); 1826 }); 1827 $(document).on("hidden.bs.modal", ".modal", function (event, ui) { 1828 //handle reader focus 1829 focusNavbar(); 1830 $('body').css('overflow', ''); 1831 document.touchmove = function () {}; 1832 }); 1833 }); 1834 } 1835 1836 function focusModal() { 1837 $('.modal-dialog') 1838 .css('outline', 'none') 1839 .attr('tabindex', '-1') 1840 .focus(); 1841 } 1842 1843 function focusNavbar(){ 1844 //handle which header exists 1845 if($(".navbar")){ 1846 var element = $(".navbar"); 1847 }else{ 1848 var element = $(".navbar-normal"); 1849 } 1850 element.css('outline', 'none') 1851 .attr('tabindex', '-1') 1852 .focus(); 1853 } 1854 1855 var showPopupPerSession = false; 1856 // Check if popup is set to show once per session 1857 if (!showPopupPerSession || (showPopupPerSession && !sessionStorage.getItem("newsletter_popup_shown"))) { 1858 var t = setTimeout(openPopUp, 10000); 1859 sessionStorage.setItem("newsletter_popup_shown", "yes"); 1860 } 1861 1862 </script>
1862<script> 1863 var animate_sections = ["banner","aboutus_v2","gallery_v3","aboutus_v7"]; 1864 1865 for (var i = 0; i < animate_sections.length; i++) { 1866 $('#'+animate_sections[i]).addClass('animation-element'); 1867 } 1868 1869 var $animation_elements = $('.animation-element'); 1870 var $window = $(window); 1871 1872 function check_if_in_view() { 1873 var window_height = $window.height(); 1874 var window_top_position = $window.scrollTop(); 1875 var window_bottom_position = (window_top_position + window_height/2); 1876 1877 $.each($animation_elements, function() { 1878 var $element = $(this); 1879 var element_height = $element.outerHeight(); 1880 var element_top_position = $element.offset().top; 1881 var element_bottom_position = (element_top_position + element_height/2); 1882 1883 //check to see if this current container is within viewport 1884 if ((element_bottom_position >= window_top_position) && 1885 (element_top_position <= window_bottom_position)) { 1886 $element.addClass('animate'); 1887 } else { 1888 // $element.removeClass('in-view'); 1889 } 1890 }); 1891 } 1892 1893 $window.on('scroll resize', check_if_in_view); 1894 $window.trigger('scroll'); 1895 </script>
1895<script> 1896$(function () { 1897 //If Newsletter widget (popup or section) is on 1898 if ($('.newsletter-popup').length || $('.map-newsletter').length || $('.newsletter-section').length) { 1899 //Inject html needed for ADA 1900 var waitSPHWidget = setInterval(function(){ 1901 if ($('.sph-email-input').length) { 1902 // 1903 $('.sph-loading-img img').attr('alt', 'Newsletter Loader icon'); 1904 clearInterval(waitSPHWidget) 1905 } 1906 }, 300); 1907 } 1908}); 1909</script>
1909<script> 1910// Functions needed for Newsletter (sh widget) subscription submit (case when texting is Off in SH) 1911function isEmail(email) { 1912 var regex = /^([a-zA-Z0-9_.+-])+\@(([a-zA-Z0-9-])+\.)+([a-zA-Z0-9]{2,4})+$/; 1913 return regex.test(email); 1914} 1915function submitEmail(input_id) { 1916 var shp_email_to_subscribe = $("#sph-newsletter-input-" + input_id); 1917 if (!isEmail(shp_email_to_subscribe.val())) { 1918 alert('Please enter valid email address'); 1919 return; 1920 } 1921 var sph_email_form_div = $(".sph-email-form"); 1922 var sph_loading_img = $(".sph-loading-img"); 1923 var sph_response_message_div = $(".sph-response-message"); 1924 var sph_submit_label = $(".sph-submit-label"); 1925 sph_submit_label.hide(); 1926 sph_loading_img.show(); 1927 var request = $.ajax({ 1928 method: "POST", 1929 url: "https://www.spothopperapp.com/api/spots/119296/contacts/add", 1930 crossDomain: true, 1931 dataType: 'json', 1932 data: { email: shp_email_to_subscribe.val() }, 1933 success: function (data) { 1934 sph_response_message_div.html(data); 1935 sph_email_form_div.hide(); 1936 sph_response_message_div.show(); 1937 }, 1938 error: function (data) { 1939 sph_response_message_div.html("Something went wrong. Please try again later."); 1940 sph_email_form_div.hide(); 1941 sph_response_message_div.show(); 1942 } 1943 }); 1944} 1945</script>
1945<script>(function() { 1946 const MODAL_ID = 'promotion-pop-up'; 1947 const SESSION_KEY = 'promotion-pop-up-container-ids'; 1948 const PADDING = 70; 1949 const RESIZE_DEBOUNCE_MS = 150; 1950 const INITIAL_DELAY = typeof promotion_pop_up_initial_delay === 'undefined' ? 1951 2000 : 1952 promotion_pop_up_initial_delay; 1953 1954 const POP_UP_PRIORITY = ["holiday_party"]; 1955 const _norm = s => (s || "").toString().trim().toLowerCase(); 1956 const PRIORITY_RANK = new Map(POP_UP_PRIORITY.map((n, i) => [_norm(n), i])); 1957 1958 function displayPromotionPopUp() { 1959 const items = document.getElementsByClassName('promotion_pop_up_content'); 1960 1961 // Track shown IDs as a Set (no dups, fast lookups) 1962 const shownIds = new Set( 1963 (sessionStorage.getItem(SESSION_KEY) || '') 1964 .split(',') 1965 .map(s => s.trim()) 1966 .filter(Boolean) 1967 ); 1968 1969 // Hide all; collect items not shown this session 1970 const availableItems = []; 1971 Array.prototype.forEach.call(items, item => { 1972 item.style.display = 'none'; 1973 1974 // --- Exclusion logic --- 1975 // Block popups whose non-custom CTA link is a phone number (tel:) 1976 const isCustomLink = item.getAttribute("data-is-custom-link") ?? "false"; 1977 const linkUrl = item.getAttribute("data-link-url") || ""; 1978 1979 const excludeItem = 1980 isCustomLink === "false" && 1981 linkUrl.trim().toLowerCase().startsWith("tel"); 1982 1983 if (excludeItem) { 1984 return; // Skip this popup entirely 1985 } 1986 1987 if (!shownIds.has(item.id)) { 1988 availableItems.push(item); 1989 } 1990 }); 1991 1992 if (availableItems.length === 0) return false; 1993 1994 // --- Priority logic --- 1995 const norm = s => (s || '').toString().trim().toLowerCase(); 1996 const prioritySource = Array.isArray(POP_UP_PRIORITY) 1997 ? POP_UP_PRIORITY 1998 : Array.isArray(window.pop_up_priority) 1999 ? window.pop_up_priority 2000 : []; 2001 const rank = new Map(prioritySource.map((name, i) => [norm(name), i])); 2002 2003 const records = availableItems.map(el => { 2004 const internal = norm(el.getAttribute('data-internalname')); 2005 const priority = rank.has(internal) ? rank.get(internal) : Infinity; 2006 return { el, priority }; 2007 }); 2008 2009 let selectedItem; 2010 const minPriority = Math.min(...records.map(r => r.priority)); 2011 2012 if (isFinite(minPriority)) { 2013 // Randomize within the highest-priority bucket only 2014 const topBucket = records.filter(r => r.priority === minPriority); 2015 const pick = topBucket[Math.floor(Math.random() * topBucket.length)]; 2016 selectedItem = pick.el; 2017 } else { 2018 // Pure random among all available when no priorities match 2019 selectedItem = availableItems[Math.floor(Math.random() * availableItems.length)]; 2020 } 2021 2022 // Show popup 2023 selectedItem.style.display = 'block'; 2024 2025 // Analytics + persist shown id (unless preview param present) 2026 if (window.location.search.indexOf('spot_promotion_channel_id=') === -1) { 2027 shownIds.add(selectedItem.id); 2028 do_promotion_analytics( 2029 selectedItem.getAttribute('data-internalname'), 2030 selectedItem.id, 2031 selectedItem.getAttribute('data-link-url'), 2032 selectedItem.getAttribute('data-has-image'), 2033 selectedItem.getAttribute('data-is-template-image-and-button') 2034 ); 2035 } 2036 2037 sessionStorage.setItem(SESSION_KEY, Array.from(shownIds).join(',')); 2038 return true; 2039 } 2040 2041 function preloadImages(container, callback) { 2042 const images = container.querySelectorAll('img'); 2043 if (images.length === 0) return callback(); 2044 2045 let loaded = 0; 2046 Array.prototype.forEach.call(images, function(img) { 2047 if (img.complete) { 2048 if (++loaded === images.length) callback(); 2049 } else { 2050 img.addEventListener('load', check); 2051 img.addEventListener('error', check); 2052 } 2053 2054 function check() { 2055 if (++loaded === images.length) callback(); 2056 } 2057 }); 2058 } 2059 2060 function centerModal() { 2061 const modal = document.getElementById(MODAL_ID); 2062 const dialog = modal.querySelector('.promotion-pop-up .modal-dialog'); 2063 if (!dialog) return; 2064 2065 modal.style.display = 'block'; 2066 modal.style.visibility = 'hidden'; 2067 2068 const height = dialog.offsetHeight; 2069 const winHeight = window.innerHeight; 2070 const top = Math.max(0, (winHeight - height) / 2); 2071 dialog.style.top = `${top}px`; 2072 2073 modal.style.visibility = ''; 2074 } 2075 2076 function centerModalVisible() { 2077 const modal = document.getElementById(MODAL_ID); 2078 const dialog = modal.querySelector('.promotion-pop-up .modal-dialog'); 2079 if (!dialog) return; 2080 2081 const height = dialog.offsetHeight; 2082 const winHeight = window.innerHeight; 2083 const top = Math.max(0, (winHeight - height) / 2); 2084 dialog.style.top = `${top}px`; 2085 } 2086 2087 function lockScroll() { 2088 document.body.style.overflow = 'hidden'; 2089 document.ontouchmove = function(e) { 2090 e.preventDefault(); 2091 }; 2092 } 2093 2094 function unlockScroll() { 2095 document.body.style.overflow = ''; 2096 document.ontouchmove = null; 2097 } 2098 2099 function setupModalLayout(modalId) { 2100 const modal = document.getElementById(modalId); 2101 const content = modal?.querySelector('.promotion_pop_up_content[style*="display: block"]'); 2102 if (!content) return; 2103 2104 const header = content.querySelector('.modal-header'); 2105 const footer = content.querySelector('.modal-footer'); 2106 const body = content.querySelector('.modal-body'); 2107 if (!body) return; 2108 2109 const windowHeight = window.innerHeight; 2110 const headerHeight = header?.offsetHeight || 0; 2111 const footerHeight = footer?.offsetHeight || 0;
2112 const maxBodyHeight = windowHeight - headerHeight - footerHeight - PADDING; 2113 2114 body.style.maxHeight = `${maxBodyHeight}px`; 2115 body.style.overflowY = 'auto'; 2116 2117 centerModalVisible(); 2118 } 2119 2120 function prepareModalForDisplay(modalId) { 2121 const modal = document.getElementById(modalId); 2122 const visibleContent = modal?.querySelector('.promotion_pop_up_content[style*="display: block"]'); 2123 if (!visibleContent) return; 2124 2125 modal.style.display = 'block'; 2126 modal.style.visibility = 'hidden'; 2127 2128 preloadImages(visibleContent, function() { 2129 const header = visibleContent.querySelector('.modal-header'); 2130 const footer = visibleContent.querySelector('.modal-footer'); 2131 const body = visibleContent.querySelector('.modal-body'); 2132 2133 if (body) { 2134 const windowHeight = window.innerHeight; 2135 const headerHeight = header?.offsetHeight || 0; 2136 const footerHeight = footer?.offsetHeight || 0;
2137 const maxBodyHeight = windowHeight - headerHeight - footerHeight - PADDING; 2138 2139 body.style.maxHeight = `${maxBodyHeight}px`; 2140 body.style.overflowY = 'auto'; 2141 } 2142 2143 centerModal(); 2144 modal.style.visibility = ''; 2145 lockScroll(); 2146 2147 $('#' + modalId).modal({ 2148 show: true, 2149 focus: true, 2150 backdrop: true 2151 }); 2152 }); 2153 } 2154 2155 // === Main Timer Logic === 2156 setTimeout(function() { 2157 if (displayPromotionPopUp()) { 2158 if (typeof t !== 'undefined') { 2159 clearTimeout(t); 2160 } 2161 2162 const timeoutDuration = INITIAL_DELAY > 500 ? INITIAL_DELAY - 500 : 0; 2163 2164 setTimeout(function() { 2165 prepareModalForDisplay(MODAL_ID); 2166 }, timeoutDuration); 2167 } 2168 }, 500); 2169 2170 // === Cleanup on modal close === 2171 $(document).on('hidden.bs.modal', `#${MODAL_ID}`, function() { 2172 unlockScroll(); 2173 }); 2174 2175 // === Responsive layout recalculation === 2176 let resizeTimeout; 2177 window.addEventListener('resize', function() { 2178 clearTimeout(resizeTimeout); 2179 resizeTimeout = setTimeout(function() { 2180 const modal = document.getElementById(MODAL_ID); 2181 if (modal && $(modal).hasClass('in')) { 2182 void modal.offsetHeight; 2183 setupModalLayout(MODAL_ID); 2184 } 2185 }, RESIZE_DEBOUNCE_MS); 2186 }); 2187 2188 // === Embedded analytics helpers === 2189 function obtain_analytics_function() { 2190 if (typeof sph_widgets_ga === 'function') return sph_widgets_ga; 2191 if (typeof ga === 'function') return ga; 2192 if (typeof gtag === 'function') return gtag; 2193 return null; 2194 } 2195 2196 function do_promotion_analytics(eventLabel, spot_promotion_channel_id, data_link_url, hasImage, is_template_image_and_button) { 2197 analytics = obtain_analytics_function(); 2198 if (!analytics) return null; 2199 2200 var pop_up_template = (is_template_image_and_button == 'true' ? 'text,image&button' : 'text&button'); 2201 var image_enabled_disabled = (hasImage ? 'image_enabled' : 'image_disabled'); 2202 var additional_info = (is_template_image_and_button == 'true' ? '|' + image_enabled_disabled : ''); 2203 2204 universal_ga('send', 'event', 'Pop Up Promotion', 'View', eventLabel + '|||' + data_link_url + '|' + pop_up_template + additional_info); 2205 2206 // universal_ga('send', 'event', 'Pop Up Promotion', 'View', eventLabel); 2207 if (typeof $ === 'function') { 2208 $(".promotion_pop_up_content a").on("click", function(event) { 2209 universal_ga('send', 'event', { 2210 eventCategory: 'Pop Up Promotion Button', 2211 eventAction: 'Click', 2212 eventLabel: eventLabel + '|||' + event.target.href + '|' + pop_up_template + additional_info, 2213 transport: 'beacon' 2214 }); 2215 $("#promotion-pop-up").modal('hide'); 2216 return true; 2217 }); 2218 } 2219 } 2220 2221})();</script>
2221<script>// ALL_PAGES_COMPONENT 2222var smart_footer_active = 'true' == 'true'; 2223var smart_footer_version = '2'; 2224 2225</script>
2225<footer id="accessibility-footer"><p>We strive to make our website accessible to everybody. <a aria-label="Learn More About our website accessibility" class="accessibility-link" href="/accessibility-page-01" target="_self">Learn More.</a></p></footer>
2225<script> 2226(function() { 2227 var name = "Maestro"; 2228 var pid = "ChIJrzD_ZC5ZwokRn4qgW0fHtMo"; 2229 function build_url() { 2230 var q = encodeURIComponent(name).replace(/'/g, "%27"); 2231 return "https://www.google.com/maps/search/?api=1" 2232 + "&query=" + q 2233 + "&query_place_id=" + encodeURIComponent(pid); 2234 } 2235 window.google_map_url = build_url(); 2236 window.open_google_map = function() { 2237 window.open(build_url(), "_blank"); 2238 }; 2239})(); 2240</script>
2240<script> 2241 2242 var spot_id = 119296; 2243 var sh_generic_form_params=JSON.parse('{"generic_contact_form_active":true,"texting_permissions_active":true,"title":"Contact us","instructions":"Please fill out the form and we will be in touch.","reasons":["To host a special event","To get a special event catered","To apply for a job","Other Questions"],"custom_hours":"","hours":"","active_tmt_cta_links":{"cta_private_party":"https://maestroitalian.com/-party","cta_catering":"https://maestroitalian.com/-catering","cta_reservations":null,"cta_jobs":"https://tmt.spotapps.co/job-listings?spot_id=119296"},"spot_name":"Maestro","label_for_texting_permission":"Iâd like to get texts about specials, events, and other exclusive offers and announcements not available to general public"}'); 2244 2245 if (false){ 2246 console.log("Check SpotHopper configuration. Probably there is no 'WEBSITE::DOMAIN_NAME' key for your website"); 2247 } 2248 2249 if (navigator.userAgent.match(/iPhone/i) 2250 || navigator.userAgent.match(/iPad/i) 2251 || navigator.userAgent.match(/iPod/i)){ 2252 $(document).ready(function(){ 2253 document.body.className += " " + "webkit-mobile-body"; 2254 }); 2255 } 2256 2257 var promotion_url_param_domain = getPromotionUrlParams()['domain']; 2258 if ( promotion_url_param_domain && ( new URL(document.location).host == 'localhost:4000' || new URL(document.location).host == 'wcache.spotapps.co' || new URL(document.location).host == 'website-editor.spotapps.co' || new URL(document.location).host == 'website-editor-staging.spotapps.co' || new URL(document.location).host == 'wcache-staging.spotapps.co')){ 2259 $("a[href^='/']").each(function(){ 2260 if (this.href.indexOf('domain=') == -1){ 2261 var sh_internal_url = new URL(this.href); 2262 sh_internal_url.searchParams.set("domain", promotion_url_param_domain); 2263 this.href = sh_internal_url.toString(); 2264 } 2265 }) 2266 } 2267 2268 2269 function cta_link_matches_href(href, url){ 2270 var domain = 'maestroitalian.com'; 2271 if(typeof url === 'undefined'){ 2272 return false; 2273 } 2274 var partsOfURL = url.split(domain); 2275 if (partsOfURL.length != 2){ 2276 return href == url; 2277 }else{ 2278 var urlPath = partsOfURL[1]; 2279 if (urlPath.substring(0,1) == "/"){ 2280 urlPath = urlPath.substring(1,urlPath.length); 2281 } 2282 return href.indexOf(urlPath, domain.length + href.indexOf(domain)-1) !== -1; 2283 } 2284 } 2285 2286 var all_cta_links = [{"id":1352538,"spot_id":119296,"url":"https://tmt.spotapps.co/job-listings?spot_id=119296","cta_link_type":"job_listing","created_at":"2025-04-01T17:57:39+00:00","updated_at":"2026-01-15T13:27:23+00:00","made_of_food":false,"link_name":"Job Listing","target":null,"website_footer_label":"Jobs","position":2},{"id":1352537,"spot_id":119296,"url":"https://maestroitalian.com/-party","cta_link_type":"private_parties","created_at":"2025-04-01T17:57:39+00:00","updated_at":"2026-01-15T13:27:22+00:00","made_of_food":false,"link_name":"Private Parties","target":null,"website_footer_label":"Parties","position":3},{"id":1535029,"spot_id":119296,"url":"https://maestroitalian.com/new-york-maestro-events","cta_link_type":"events","created_at":"2025-08-01T09:53:28+00:00","updated_at":"2026-01-15T13:27:22+00:00","made_of_food":false,"link_name":"","position":null},{"id":1535028,"spot_id":119296,"url":"https://maestroitalian.com/new-york-maestro-happy-hours-specials","cta_link_type":"specials","created_at":"2025-08-01T09:53:28+00:00","updated_at":"2026-01-15T13:27:22+00:00","made_of_food":false,"link_name":"","position":null},{"id":1352536,"spot_id":119296,"url":"https://maestroitalian.com/-catering","cta_link_type":"catering","created_at":"2025-04-01T17:57:39+00:00","updated_at":"2026-01-15T13:27:23+00:00","made_of_food":false,"link_name":"Catering","target":null,"website_footer_label":"Catering","position":4},{"id":1750780,"spot_id":119296,"url":"https://www.opentable.com/r/maestro-pasta-new-york-2?ref=1068","cta_link_type":"reservations","created_at":"2026-01-14T16:19:34+00:00","updated_at":"2026-01-15T13:27:23+00:00","made_of_food":false,"link_name":"","target":null,"website_footer_label":"Reserve","position":1},{"id":1535031,"spot_id":119296,"url":"https://maestroitalian.com/new-york-maestro-food-menu","cta_link_type":"food_menu","created_at":"2025-08-01T09:53:29+00:00","updated_at":"2026-01-15T13:27:23+00:00","made_of_food":false,"link_name":"","position":null},{"id":1719265,"spot_id":119296,"url":"https://www.getsauce.com/order/mae
2286stro-pasta/menu","cta_link_type":"order","created_at":"2025-12-23T21:32:10+00:00","updated_at":"2026-01-15T13:27:23+00:00","made_of_food":false,"link_name":"","target":null,"website_footer_label":"Order","position":0}]; 2287 2288 function find_cta_link(href) { 2289 for (var i=0; i< all_cta_links.length; i++){ 2290 var cta_link = all_cta_links[i]; 2291 if ( cta_link_matches_href(href, cta_link.url)){ 2292 return cta_link; 2293 } 2294 } 2295 } 2296 2297 function find_cta_links(href) { 2298 var cta_links = [] 2299 for (var i=0; i< all_cta_links.length; i++){ 2300 var cta_link = all_cta_links[i]; 2301 if ( cta_link_matches_href(href, cta_link.url)){ 2302 cta_links.push(cta_link); 2303 } 2304 } 2305 return cta_links; 2306 } 2307 2308 2309 function get_current_page_cta_link_types(){ 2310 var types = []; 2311 var cta_links = find_cta_links(document.location.href); 2312 for (var i=0; i<cta_links.length; i++){ 2313 types.push(cta_links[i].cta_link_type); 2314 } 2315 return types; 2316 } 2317 2318 2319 function is_food_menu_page(){ 2320 var cta_link_types = get_current_page_cta_link_types(); 2321 for (var i=0; i<cta_link_types.length; i++){ 2322 if ('food_menu' == cta_link_types[i]) 2323 return true; 2324 } 2325 return false; 2326 } 2327 2328 2329 function get_form_cat_from_cta(){ 2330 var cta_link = find_cta_link(document.location.href); 2331 if (cta_link == null) { 2332 return null; 2333 } 2334 if (cta_link.cta_link_type == 'private_parties'){ 2335 return 'private_party'; 2336 }else if (cta_link.cta_link_type == 'reservations'){ 2337 return 'reservation'; 2338 }else if (cta_link.cta_link_type == 'catering'){ 2339 return 'catering'; 2340 }else if (cta_link.cta_link_type == 'job_listing'){ 2341 return 'job_listings'; 2342 }else if (cta_link.cta_link_type == 'gift_cards'){ 2343 return 'gift_cards'; 2344 } 2345 return null; 2346 } 2347 2348 function element_has_events_defined(elem){ 2349 if ($._data(elem, "events") === undefined){ 2350 return false; 2351 } 2352 return true; 2353 } 2354 2355 function create_ga_events_for_cta_clicks(){ 2356 if (typeof $ === 'function'){ 2357 2358 var cta_link_of_the_page = find_cta_link(location.href); 2359 2360 2361 $("a").each(function(index, elem){ 2362 var href = $(elem).attr('href'); 2363 2364 if (href === undefined ){ 2365 return; 2366 } 2367 2368 if (href.substring(0,4) == 'tel:'){ 2369 if (!element_has_events_defined(elem)){ // not footer links 2370 $(elem).on("click", function(){ 2371 universal_ga('send', 'event', { 2372 eventCategory: 'Button', 2373 eventAction: 'Click', 2374 eventLabel: 'Phone', 2375 transport: 'beacon' 2376 }); 2377 }); 2378 2379 if (cta_link_of_the_page){ 2380 $(elem).on("click", function(){ 2381 universal_ga('send', 'event', { 2382 eventCategory: 'Button', 2383 eventAction: 'Click', 2384 eventLabel: cta_link_of_the_page.cta_link_type + ' page phone', 2385 transport: 'beacon' 2386 }); 2387 }); 2388 } 2389 } else { 2390 if (cta_link_of_the_page){ 2391 $(elem).on("click", function(){ 2392 universal_ga('send', 'event', { 2393 eventCategory: 'Button', 2394 eventAction: 'Click', 2395 eventLabel: cta_link_of_the_page.cta_link_type + ' page phone footer', 2396 transport: 'beacon' 2397 }); 2398 }); 2399 } 2400 } 2401 2402 2403 }else{ 2404 var cta_link = find_cta_link(href); 2405 if (elem.className != null && elem.className.indexOf("bottom-link") > -1){ 2406 // console.log("bottom link detected"); 2407 }else{ 2408 if (cta_link != null){ 2409 $(elem).on("click", function(){ 2410 universal_ga('send', 'event', { 2411 eventCategory: 'Website Link', 2412 eventAction: 'Click', 2413 eventLabel: cta_link.cta_link_type, 2414 transport: 'beacon' 2415 }); 2416 }); 2417 } 2418 } 2419 } 2420 2421 2422 }); 2423 } 2424 } 2425 2426 if (typeof angular === "undefined") { 2427 create_ga_events_for_cta_clicks(); 2428 } else { 2429 angular.element(document).ready(function () { 2430 create_ga_events_for_cta_clicks(); 2431 }); 2432 } 2433 2434 2435 function triggerShowFooterEvents(){
2436 if (window.screen.availWidth < 768){ 2437 universal_ga('send', 'event', { 2438 eventCategory: 'Mobile Footer', 2439 eventAction: 'View', 2440 eventLabel: '', 2441 transport: 'beacon' 2442 }); 2443 } 2444 } 2445 2446 2447 2448 2449 //////////// 2450 function smartFooterV2() 2451 { 2452 var list= document.getElementsByClassName("bottom-list-item"); 2453 if (!list) return; 2454 2455 if (document.getElementById("bottom-navbar") == null){ 2456 return; 2457 } 2458 2459 var bottomNav = document.querySelector('#bottom-navbar .navbar-nav'); 2460 var footerLinkPaddingLeft = $('#bottom-navbar .navbar-nav li a').css('padding-left'); 2461 var footerLinkPaddingRight = $('#bottom-navbar .navbar-nav li a').css('padding-right'); 2462 2463 bottomNav.innerHTML = ''; 2464 var linksWithPosition = all_cta_links.filter(e => e.position != null && e.position >= 0); 2465 linksWithPosition.sort(function(a,b) { 2466 return a.position - b.position; 2467 }); 2468 2469 var footerLinkStyle = (footerLinkPaddingLeft == '0px' || footerLinkPaddingRight == '0px' ? 'style="padding-left: 8px; padding-right: 8px;"' : ''); 2470 2471 linksWithPosition.forEach((e, i) => { 2472 var target = e.target || getUrlTarget(e.url); 2473 bottomNav.insertAdjacentHTML('beforeend', 2474 `<li class="bottom-list-item" style="white-space: nowrap;width: auto;"><a ${footerLinkStyle} class="bottom-link smart-footer-link" data-type="${e.cta_link_type}" data-position="${i}" target="${target}" href="${e.url}">${e.website_footer_label}</a></li>`); 2475 }) 2476 2477 var intervalCount = 0 2478 var interval = setInterval(() => { 2479 if(intervalCount == 50){ 2480 clearInterval(interval); 2481 } 2482 removeOverflowingFooterLinks(); 2483 intervalCount ++; 2484 }, 200); 2485 2486 $('.smart-footer-link').on("click", function(){ 2487 if (typeof shUrlParams !== "undefined" && shUrlParams['source'] === undefined){ 2488 shUrlParams['source'] = 'footer'; 2489 sessionStorage.setItem('shUrlParams', JSON.stringify(shUrlParams)); 2490 } 2491 2492 var visibleLinks = $('.smart-footer-link').map(function (e) { 2493 return $(this).data('type'); 2494 }).toArray().join(','); 2495 2496 universal_ga('send', 'event', { 2497 eventCategory: 'Button', 2498 eventAction: 'Click_footer_2', 2499 eventLabel: "type:" + $(this).data('type') + "|position:" + $(this).data('position') + "|visible:" + visibleLinks, 2500 transport: 'beacon' 2501 }); 2502 }); 2503 } 2504 2505 function removeOverflowingFooterLinks(){ 2506 var bottomNavLinks = document.querySelectorAll('#bottom-navbar .navbar-nav li'); 2507 var width_sum = 0; 2508 2509 bottomNavLinks.forEach(e => { 2510 width_sum += e.getBoundingClientRect().width; 2511 if ((width_sum) > window.innerWidth) { 2512 console.log(`%cLink %c${e.textContent} %cdeleted couldn't fit screen`,"color: #fff;background: #202124;", "background: red;color: #fff", "color: #fff;background: #202124;"); 2513 e.remove(); 2514 } 2515 }); 2516 } 2517 2518 function getUrlTarget(url){ 2519 if(url.startsWith('tel')){ 2520 return '_self'; 2521 } 2522 if(url.startsWith('/') || url.includes('tmt.spotapps.co') || url.includes(window.location.host)){ 2523 return '_self'; 2524 } 2525 return '_blank'; 2526 } 2527 2528 function npb() 2529 { 2530 var list= document.getElementsByClassName("bottom-list-item"); 2531 if (!list) return; 2532 2533 if (document.getElementById("bottom-navbar") == null){ 2534 return; 2535 } 2536 2537 var url = "" 2538 for (var i=0; i < all_cta_links.length; i++) 2539 { 2540 if (all_cta_links[i].cta_link_type == "order"){ 2541 url = all_cta_links[i].url; 2542 } 2543 } 2544 2545 if ( url == ""){ 2546 return; 2547 } 2548 2549 for (i=0; i < list.length; i++) 2550 { 2551 console.log(cta_link_matches_href(list[i].firstChild.href, url)); 2552 if (cta_link_matches_href(list[i].firstChild.href,url)) return; 2553 2554 }; 2555 2556 var item = list[list.length-1] 2557 document.getElementById("bottom-navbar").getElementsByClassName("nav navbar-nav")[0].appendChild(item.cloneNode(true)); 2558 var width_sum = 0; 2559 for (i=0; i < list.length; i++) { 2560 width_sum += list[i].getBoundingClientRect().width; 2561 } 2562 2563 var item = list[list.length-1] 2564 if ((width_sum - 10) > window.innerWidth) { item.parentNode.removeChild(item); console.log("link deleted couldn't fit screen"); return; } 2565 2566 item.firstChild.text = "Order"; 2567 item.firstChild.href = url; 2568 item.firstChild.id = "bottom_link_" + list.length; 2569 2570 $(item.firstChild).on("click", function(){ 2571 2572 if (typeof shUrlParams !== "undefined" && shUrlParams['source'] === undefined){ 2573 shUrlParams['source'] = 'footer'; 2574 sessionStorage.setItem('shUrlParams', JSON.stringify(shUrlParams)); 2575 } 2576 2577 universal_ga('send', 'event', { 2578 eventCategory: 'Button', 2579 eventAction: 'Click', 2580 eventLabel: 'Plan B-2 Order', 2581 transport: 'beacon' 2582 }); 2583 }); 2584 2585 2586 } 2587 2588function activateSmartFooter(){ 2589 var smart_footer_active = true; 2590 var smart_footer_version = 2; 2591 var man_bottom_active = false;
2592 if(window.location.hash == '#smartFooterV2=enabled'){ 2593 smartFooterV2(); 2594 return; 2595 } 2596 if (smart_footer_active && !man_bottom_active){ 2597 if(smart_footer_version == 2 ){ 2598 smartFooterV2(); 2599 }else { 2600 npb(); 2601 } 2602 } 2603 } 2604 2605 activateSmartFooter(); 2606 2607 var corona_config_str = '{"id":465996,"spot_id":119296,"promote_pick_up":true,"promote_gift_cards":true,"promote_happy_hour":true,"promote_events":true,"instructions_on_food_page":false,"food_page_instruction_text":"To place a delivery or curbside pick-up order, please call:","food_page_instruction_phone":"6464846446","created_at":"2025-04-01T16:35:22+00:00","updated_at":"2025-06-26T08:24:53+00:00","food_page_button_color":null,"food_page_button_text_color":null,"food_page_link_color":null,"food_page_text_color":null,"wine_and_beer_to_go_license":false,"all_alcoholic_to_go_lincense":false,"current_operating_status":"Offering To Go and Dine-in with Full Capacity","contact_tracing_active":false,"contact_tracing_text":"In cooperation with health guidelines for contact tracing, please fill out the form below.","contact_tracing_address_required":false,"collapse_all":false,"deliveries_priority_value":5,"pick_ups_priority_value":5,"reservations_priority_value":5,"private_parties_priority_value":5,"catering_priority_value":5,"gift_cards_priority_value":3,"jobs_priority_value":3,"food_and_drinks_priority_value":3,"specials_priority_value":3,"national_days_priority_value":3,"holidays_priority_value":3,"sports_priority_value":3,"walk_ins_priority_value":3,"collecting_emails_priority_value":3,"collecting_phone_numbers_priority_value":3,"growing_social_media_followers_priority_value":3,"increasing_revenue_vs_saving_time_priority_value":3,"events_priority_value":3,"shopping_cart_type":"TMT","shopping_cart_active":false}'; 2608 var corona_config = corona_config_str != '' ? JSON.parse('{"id":465996,"spot_id":119296,"promote_pick_up":true,"promote_gift_cards":true,"promote_happy_hour":true,"promote_events":true,"instructions_on_food_page":false,"food_page_instruction_text":"To place a delivery or curbside pick-up order, please call:","food_page_instruction_phone":"6464846446","created_at":"2025-04-01T16:35:22+00:00","updated_at":"2025-06-26T08:24:53+00:00","food_page_button_color":null,"food_page_button_text_color":null,"food_page_link_color":null,"food_page_text_color":null,"wine_and_beer_to_go_license":false,"all_alcoholic_to_go_lincense":false,"current_operating_status":"Offering To Go and Dine-in with Full Capacity","contact_tracing_active":false,"contact_tracing_text":"In cooperation with health guidelines for contact tracing, please fill out the form below.","contact_tracing_address_required":false,"collapse_all":false,"deliveries_priority_value":5,"pick_ups_priority_value":5,"reservations_priority_value":5,"private_parties_priority_value":5,"catering_priority_value":5,"gift_cards_priority_value":3,"jobs_priority_value":3,"food_and_drinks_priority_value":3,"specials_priority_value":3,"national_days_priority_value":3,"holidays_priority_value":3,"sports_priority_value":3,"walk_ins_priority_value":3,"collecting_emails_priority_value":3,"collecting_phone_numbers_priority_value":3,"growing_social_media_followers_priority_value":3,"increasing_revenue_vs_saving_time_priority_value":3,"events_priority_value":3,"shopping_cart_type":"TMT","shopping_cart_active":false}') : null; 2609 2610 2611 //corona instuctions 2612 function show_corona_instructions(text, phone, btnText){ 2613 //format to US number 2614 var match = phone.match(/^(\d{3})(\d{3})(\d{4})$/); 2615 2616 if(corona_config.shopping_cart_type == "TMT" && corona_config.shopping_cart_active == true) { 2617 var linkLocation = "https://tmt.spotapps.co/ordering-menu/?spot_id="+corona_config.spot_id+"&images=yes&accordion=true"; 2618 var btnLinkLocation = "https://tmt.spotapps.co/ordering-menu/?spot_id="+corona_config.spot_id+"&images=yes&accordion=true"; 2619 }else { 2620 var linkLocation = 'tel:+1'+phone+''; 2621 var btnLinkLocation = 'tel:+1'+ match[1] + '-' + match[2] + '-' + match[3] +'' 2622 } 2623 var appendPhone = 'tel:+1'+phone+''; 2624 //inject html content 2625 if ($('.food-menu-nav').length) { 2626 //new template 2627 var pageEl = $('.food-menu-nav').css('margin','20px auto 10px auto'); 2628 var textColor = rgb2hex($('.section-header').css('color')); 2629 var linkColor = rgb2hex($('.food-menu-nav-item.active').css('background-color')); 2630 var fontSize = parseInt($('.food-menu-nav-item').css('font-size')); 2631 fontSize = fontSize + Math.round(fontSize * 0.25); 2632
2633 // var html = '<div id="show-corona-instructions" style="padding:20px;flex: 0 1 100%;" class="text-center"><p style="color:'+textColor+';">'+text+' <a onclick="ga(\'send\', \'event\', \'Button\', \'Click\', \'Corona Instructions Phone\');" style="color:'+linkColor+';"href="tel:+1'+phone+'">'+ match[1] + '-' + match[2] + '-' + match[3] +'</a></p><a onclick="ga(\'send\', \'event\', \'Button\', \'Click\', \'Corona Instructions Phone\');" style="font-size:'+fontSize+'px" class="food-menu-nav-item custom-temp-btn hvr-fade active" href="tel:+1'+phone+'">'+btnText+'</a></div>'; 2634 var html = '<div id="show-corona-instructions" style="padding:20px;flex: 0 1 100%;" class="text-center"><p style="color:'+textColor+';">'+text+' <a onclick="ga(\'send\', \'event\', \'Button\', \'Click\', \'Corona Instructions Phone\');" style="text-decoration: underline;color:'+textColor+';" href="tel:+1'+phone+'">'+ match[1] + '-' + match[2] + '-' + match[3] +'</a></p><a onclick="ga(\'send\', \'event\', \'Button\', \'Click\', \'Corona Instructions Phone\');" style="display: inline-block !important;font-size:'+fontSize+'px" class="food-menu-nav-item custom-temp-btn hvr-fade active" href="'+btnLinkLocation +'">'+btnText+'</a></div>'; 2635 2636 }else { 2637 //old template 2638 var pageEl = $('.tabnav'); 2639 var textColor = rgb2hex($('.menu-item-name-traditional').css('color')); 2640 var linkColor = rgb2hex($('.style-traditional .tabnav .nav>li.active>a').css('color')); 2641 2642 var linkTextColor = getContrast50(linkColor); 2643 var fontSize = parseInt($('.menu-item-name-traditional').css('font-size')); 2644 fontSize = fontSize + Math.round(fontSize * 0.25); 2645 var textTransform = $('.style-traditional .tabnav .nav>li>a').css('text-transform'); 2646 2647 // var html = '<div id="show-corona-instructions" style="padding:20px;flex: 0 1 100%;" class="text-center"><p style="color:'+textColor+';margin-bottom:20px;">'+text+' <a onclick="ga(\'send\', \'event\', \'Button\', \'Click\', \'Corona Instructions Phone\');" style="color:'+linkColor+';"href="tel:+1'+phone+'">'+ match[1] + '-' + match[2] + '-' + match[3] +'</a></p><a onclick="ga(\'send\', \'event\', \'Button\', \'Click\', \'Corona Instructions Phone\');" style="margin: 20px auto; padding: 10px 50px 10px 30px; cursor: pointer; background-color: '+linkColor+'; background: '+linkColor+'; text-decoration: none; color: '+textColor+'; border: 2px solid '+linkColor+';font-size:'+fontSize+'px;text-transform: '+textTransform+'" href="tel:+1'+phone+'">'+btnText+'</a></div>'; 2648 var html = '<div id="show-corona-instructions" style="padding:20px;flex: 0 1 100%;" class="text-center"><p style="color:'+textColor+';margin-bottom:20px;">'+text+' <a onclick="ga(\'send\', \'event\', \'Button\', \'Click\', \'Corona Instructions Phone\');" style="text-decoration: underline;color:'+textColor+';"href="tel:+1'+phone+'">'+ match[1] + '-' + match[2] + '-' + match[3] +'</a></p><a onclick="ga(\'send\', \'event\', \'Button\', \'Click\', \'Corona Instructions Phone\');" style="margin: 20px auto; padding: 10px 30px 10px 30px; cursor: pointer; background-color: '+linkColor+'; background: '+linkColor+'; text-decoration: none; color: '+linkTextColor+'; border: 2px solid '+linkColor+';font-size:'+fontSize+'px;text-transform: '+textTransform+'" href="'+btnLinkLocation+'">'+btnText+'</a></div>'; 2649 2650 } 2651 //html content 2652 pageEl.prepend(html); 2653 } 2654 2655 function rgb2hex(rgb) { 2656 if(typeof rgb !== "undefined"){ 2657 rgbColor = rgb.match(/^rgb\((\d+),\s*(\d+),\s*(\d+)\)$/); 2658 if (!rgbColor) { 2659 rgba = rgb.match(/^rgba?\((\d+),\s*(\d+),\s*(\d+)(,\s*\d+\.*\d+)?\)$/); 2660 return "#" + hex(rgba[1]) + hex(rgba[2]) + hex(rgba[3]); 2661 } 2662 function hex(x) { 2663 return ("0" + parseInt(x).toString(16)).slice(-2); 2664 } 2665 return "#" + hex(rgbColor[1]) + hex(rgbColor[2]) + hex(rgbColor[3]); 2666 } 2667 return rgb; 2668 } 2669 2670 function getContrast50(hexcolor){ 2671 return (parseInt(hexcolor, 16) > 0xffffff/2) ? '#000':'#fff'; 2672 } 2673 2674 function show_corona_sidebar_instructions(text, phone){ 2675 //format to US number 2676 var match = phone.match(/^(\d{3})(\d{3})(\d{4})$/); 2677 var divWidth = 230; 2678 var top = 50; 2679 var linkSize = '1.6em'; 2680 var pSize = $('p').css('font-size'); 2681 var appendPhone = 'tel:+1'+phone+''; 2682 2683 if ($(window).width() < 1600) 2684 var top = 30; 2685 if ($(window).width() < 1200){ 2686 var divWidth = 180; 2687 var linkSize = '1.4em'; 2688 var pSize ='1.1em'; 2689 } 2690 2691 if($('.food-menu-nav').length){ //new template 2692 var textColor = $('.food-menu-nav-item.active').css('color'); 2693 var linkColor = $('.food-menu-nav-item.active').css('background-color'); 2694 2695 var linkTextColor = $('.food-menu-nav-item.active').css('color'); 2696 var parent = $('.food-menu-page'); 2697 } 2698 else { //old template 2699 var textColor = $('.menu-item-name-traditional').css('color'); 2700 var linkColor = $('.style-traditional .tabnav .nav>
2700li.active>a').css('color'); 2701 var parent = $('.food-menu').length ? $('.food-menu') : $('.drink-menu'); 2702 var linkTextColor = getContrast50(linkColor); 2703 } 2704 2705 // $(parent).append('<div id="corona-instructions-sidebar" style="display:none;position:fixed;width:'+divWidth+'px;top:'+top+'vh;right:0;background-color:'+linkColor+';padding:15px;text-align:center;color:'+textColor+';text-transform:uppercase;"><p style="margin:0 0 5px;font-size:'+pSize+';">'+text+'</p><i class="fa fa-phone" aria-hidden="true"></i> <a onclick="ga(\'send\', \'event\', \'Button\', \'Click\', \'Food Page Side Element Phone\');" style="font-size:'+linkSize+';color:'+textColor+';" href="tel:+1'+phone+'">'+ match[1] + '-' + match[2] + '-' + match[3] +'</a></div>'); 2706 $(parent).append('<div id="corona-instructions-sidebar" style="display:none;position:fixed;width:'+divWidth+'px;top:'+top+'vh;right:0;background-color:'+linkColor+';padding:15px;text-align:center;color:'+linkTextColor+';text-transform:uppercase;"><p style="margin:0 0 5px;font-size:'+pSize+';">'+text+'</p><i class="fa fa-phone" aria-hidden="true"></i> <a onclick="ga(\'send\', \'event\', \'Button\', \'Click\', \'Food Page Side Element Phone\');this.href=\'' + appendPhone + '\';" style="font-size:'+linkSize+';color:'+linkTextColor+';" href="/call-us/'+phone+'">'+ match[1] + '-' + match[2] + '-' + match[3] +'</a></div>'); 2707 2708 //check if resolution is bigger than tablet resolution 2709/* if ($(window).width() > 991) { 2710 //detect scroll 2711 window.onscroll = function (e) { 2712 if ($(window).scrollTop() == 0) { 2713 $('#corona-instructions-sidebar').hide(); 2714 }else { 2715 $('#corona-instructions-sidebar').show(); 2716 } 2717 } 2718 } */ 2719 } 2720 2721 function check_corona_config(config){ 2722 console.log(config) 2723 if (config) { 2724 if (config.instructions_on_food_page && config.food_page_instruction_text && config.food_page_instruction_phone) { 2725 if (!config.promote_deliveries && config.promote_pick_up) { 2726 var btnText = 'Call For Pick Up'; 2727 } 2728 if (config.promote_deliveries && !config.promote_pick_up) { 2729 var btnText = 'Call For Delivery'; 2730 } 2731 if (config.promote_deliveries && config.promote_pick_up) { 2732 var btnText = 'Call For Pick Up Or Delivery'; 2733 } 2734 2735 if(typeof btnText !== "undefined"){ // check if pick up or delivery are true 2736 if(config.shopping_cart_type == "TMT" && config.shopping_cart_active == true) { 2737 var btnText = 'ORDER NOW'; 2738 if($('.food-menu-nav').length){ //new template 2739 var textColor = rgb2hex($('.section-header').css('color')); 2740 var linkColor = rgb2hex($('.food-menu-nav-item.active').css('background-color')); 2741 var fontSize = parseInt($('.food-menu-nav-item').css('font-size')); 2742 fontSize = fontSize + Math.round(fontSize * 0.25); 2743 } 2744 else { //old template 2745 var textColor = rgb2hex($('.menu-item-name-traditional').css('color')); 2746 var linkColor = rgb2hex($('.style-traditional .tabnav .nav>li.active>a').css('color')); 2747 2748 var linkTextColor = getContrast50(linkColor); 2749 var fontSize = parseInt($('.menu-item-name-traditional').css('font-size')); 2750 fontSize = fontSize + Math.round(fontSize * 0.25); 2751 } 2752 show_corona_instructions('For online orders, use our own <a style="text-decoration:underline;color: '+textColor+';" href="https://tmt.spotapps.co/ordering-menu/?spot_id='+config.spot_id+'&images=yes&accordion=true#"> commission free ordering platform! </a> or call:', config.food_page_instruction_phone, btnText); 2753 show_corona_sidebar_instructions(btnText, config.food_page_instruction_phone); 2754 } else { 2755 show_corona_instructions(config.food_page_instruction_text, config.food_page_instruction_phone, btnText); 2756 show_corona_sidebar_instructions(btnText, config.food_page_instruction_phone); 2757 } 2758 2759 } 2760 } 2761 } 2762 } 2763 2764 2765 if (is_food_menu_page() && !window.location.search.includes("contactless=true")){ 2766 $( document ).ready(function() { 2767 setTimeout(function(){ 2768 check_corona_config(corona_config); 2769 }, 300); 2770 }); 2771 } 2772 2773 2774 2775 function isPhone(phone){ 2776 var regex = /^(\+\d{1,2}\s?)?\(?\d{3}\)?[\s.-]?\d{3}[\s.-]?\d{4}$/; 2777 return regex.test(phone); 2778 } 2779 2780 function sendEmail_MT (input_id) { 2781 const $loader = $("[data-id=newsletter-widget-2] .sph-loading-img"); 2782 2783 const $step = { 2784 form: $("[data-id=newsletter-widget-2] .sph-email-form"), 2785 message: $("[data-id=newsletter-widget-2] .sph-response-message"), 2786 } 2787 2788 const $field = { 2789 email: $("[data-id=newsletter-widget-2] #sph-newsletter-input-" + input_id), 2790 phone: $("[data-id=newsletter-widget-2] #sph-newsletter-phone-" + input_id), 2791 consent: $("[data-id=newsletter-widget-2] #sph-newsletter-checkbox-phone-" + input_id), 2792 }; 2793 2794 const $error = { 2795 email: $("[data-id=newsletter-widget-2] #sph-newsletter-email-error-" + input_id), 2796 phone: $("[data-id=newsletter-widget-2] #sph-newsletter-phone-error-" + input_id), 2797 }; 2798 2799 if ($field.email.val().trim() === "") { 2800 $error.email 2801 .html("This field is required") 2802 .show(); 2803 } 2804 else if (!isEmail($field.email.val().trim())) { 2805 $error.email 2806 .html("Please use the format â[email protected]â") 2807 .show(); 2808 } else { 2809 $error.email 2810 .html("") 2811 .hide(); 2812 } 2813 2814 if ($field.consent.is(':checked') && $field.phone.val().trim() === "") { 2815 $error.phone 2816 .html("This field is required") 2817 .show(); 2818 } else if ($field.phone.val().trim().length > 0 && !isPhone($field.phone.val().trim())) { 2819 $error.phone 2820 .html("The phone number must contain 10 digits") 2821 .show(); 2822 } else { 2823 $error.phone 2824 .html("") 2825 .hide(); 2826 } 2827 2828 const errorField = $step.form.find('.sh-form-error:visible'); 2829 2830 if (errorField.length > 0) { 2831 const input = errorField.first().next(); 2832 2833 document.activeElement.blur(); 2834 2835 setTimeout(() => { 2836 input.focus(); 2837 }, 160) 2838 2839 return; 2840 } 2841 2842 $loader 2843 .show() 2844 .prev() 2845 .hide(); 2846 2847 $.ajax({ 2848 method: "POST", 2849 url: "https://www.spothopperapp.com/api/spots/119296/contacts/add_with_texting_permission", 2850 crossDomain: true, 2851 dataType: 'json', 2852 data: { 2853 email: $field.email.val().trim(), 2854 phone: $field.phone.val().trim(), 2855 texting_permission: $field.consent.is(':checked'), 2856 }, 2857 success: function (data) { 2858 afterRequestSubmission(data); 2859 }, 2860 error: function () { 2861 afterRequestSubmission("Something went wrong. Please try again later."); 2862 } 2863 }); 2864 2865 function afterRequestSubmission (data) { 2866 $step.form.hide(); 2867 2868 $step.message 2869 .html(data) 2870 .show() 2871 .trigger('focus'); 2872 } 2873 } 2874</script>
2874<script>function addPromotionParamsToTMTLinks() 2875{ 2876 if (sessionStorage.getItem('shUrlParams')) { 2877 let shParams = JSON.parse(sessionStorage.getItem('shUrlParams')); 2878 if (!Object.keys(shParams).length) 2879 return; 2880 if(!shParams.source) 2881 return; 2882 $('a').each(function () { 2883 if (this.href.includes('tmt.spotapps.co')) { 2884 if(this.href.includes('&source=') || this.href.includes('&destination=') || this.href.includes('&promotion=')) 2885 return; 2886 2887 this.href = this.href + '&source=' + shParams.source; 2888 if(shParams.destination) 2889 this.href = this.href + '&destination=' + shParams.destination; 2890 if(shParams.promotion) 2891 this.href = this.href + '&promotion=' + shParams.promotion; 2892 if(shParams.fb_post_id) 2893 this.href = this.href + '&fb_post_id=' + shParams.fb_post_id; 2894 if(shParams.email_post_id) 2895 this.href = this.href + '&email_post_id=' + shParams.email_post_id; 2896 } 2897 }) 2898 } 2899} 2900setTimeout(function() { 2901 addPromotionParamsToTMTLinks(); 2902 addFooterToSourceParam(); 2903},600) 2904 2905function addFooterToSourceParam() 2906{ 2907 $('.bottom-link').each(function (){ 2908 if(shouldAddSourceParam(this.href)) 2909 this.href = this.href + '&source=footer'; 2910 }) 2911 $('#sh-multiple-links-content-holder a').each(function (){ 2912 if(shouldAddSourceParam(this.href)) 2913 this.href = this.href + '&source=footer'; 2914 }) 2915} 2916function shouldAddSourceParam(link){ 2917 if (link.includes('tmt.spotapps.co') && !link.includes('&source=')){ 2918 return true; 2919 } 2920 return false; 2921} 2922</script>
2922<link href="https://static.spotapps.co/wcache-website-includes/assets/generic-form-BPJPlCcv.css" rel="stylesheet" media="screen"/>
2922<script type="module" crossorigin="crossorigin" src="https://static.spotapps.co/wcache-website-includes/assets/generic-form-CoiH5Vfl.js"></script>
2922<div id="sh-generic-form-widget"></div>
2922<script> 2923;(async () => { 2924if (typeof window.focusTrap === 'undefined') { 2925 await getScript('https://unpkg.com/tabbable/dist/index.umd.js'); 2926 await getScript('https://unpkg.com/focus-trap/dist/focus-trap.umd.js'); 2927} 2928 2929document.querySelectorAll('.modal').forEach((element) => { 2930 const trap = window.focusTrap?.createFocusTrap(element, { 2931 allowOutsideClick: true, 2932 }); 2933 2934 $(element).on('shown.bs.modal', () => { 2935 trap?.activate(); 2936 }); 2937 2938 $(element).on('hidden.bs.modal', () => { 2939 trap?.deactivate(); 2940 }); 2941}); 2942 2943async function getScript (source) { 2944 return new Promise((resolve, reject) => { 2945 const script = document.createElement('script'); 2946 script.src = source; 2947 script.async = true; 2948 2949 script.onload = resolve; 2950 script.onerror = reject; 2951 2952 document.head.appendChild(script); 2953 }); 2954} 2955})(); 2956</script>
2956<script src="https://wcache-plugins.spotapps.co/production/wcpl_bootstrap_ada_fix/wcpl_bootstrap_ada_fix.js"></script>
2956<link href="https://wcache-plugins.spotapps.co/production/wcpl_bday_club/wcpl_bday_club.css" rel="stylesheet" media="screen"/>
2956<script src="https://wcache-plugins.spotapps.co/production/wcpl_bday_club/wcpl_bday_club.js"></script>
2956<script src="https://wcache-plugins.spotapps.co/production/wcpl_ga_tracking/wcpl_ga_tracking.js"></script>
2956<script src="https://wcache-plugins.spotapps.co/production/wcpl_media_controls/script.js"></script>
2956<link href="https://wcache-plugins.spotapps.co/production/wcpl_website_editor_interpreter/website_interpreter_helper_style.css" rel="stylesheet" media="screen"/>
2956<script>var changes_log_array = {};</script>
2956<script src="https://wcache-plugins.spotapps.co/production/wcpl_website_editor_interpreter/website_interpreter.js"></script>
2956</body></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.