PageSourceSearch

https://maestroitalian.com/

html maestroitalian.com collected 2026-10-09 22:23:49 UTC 137,015 bytes, 2,956 lines download raw bytes

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&apos;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&apos;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">&#8249</button>', '<button aria-label="next review">&#8250</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.