1<!DOCTYPE html> 2�<html lang="en"><head><link rel="canonical" href="https://cafeveloce.com/accessibility-page-01"/><!-- 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-YWZVRWFQNG'); 8 gtag('config', 'G-VG24VK2VKT'); 9 </script>
9<!-- wcache 2026-09-30 08:24:24.795284Z --><!-- 10smart_footer: true, 11smart_footer_version: 2, 12scripting_active: false 13--><meta charset="utf-8"/><meta content="IE=edge" http-equiv="X-UA-Compatible"/><meta content="width=device-width, initial-scale=1" name="viewport"/><meta name="description" content="At Cafe Veloce, we're committed to web accessibility for all users. Read our accessibility statement or contact us for help."/><meta content="" name="author"/><meta content="Cafe Veloce -" property="og:title"/><meta content="website" property="og:type"/><meta content="http://cafeveloce.com/a-article" property="og:url"/><meta content="Café Veloce was established in Kirkland Washington, in 1992. Beyond offering great Italian food, Café Veloce presents the public with a passage into vintage Italian racing. Whether losing ..." property="og:description"/><meta content="https://static.spotapps.co/website_images/ab_websites/95662_website/reservations_left.jpg" property="og:image"/><meta content="Shrimp and Shroom Salad" property="og:image:alt"/><meta content="image/png" property="og:image:type"/><meta content="320622034905" property="fb:app_id"/><meta content="summary_large_image" name="twitter:card"/><meta content="Cafe Veloce -" name="twitter:title"/><meta content="Café Veloce was established in Kirkland Washington, in 1992. Beyond offering great Italian food, Café Veloce presents the public with a passage into vintage Italian racing. Whether losing ..." name="twitter:description"/><meta content="https://static.spotapps.co/website_images/ab_websites/95662_website/reservations_left.jpg" name="twitter:image"/><title>Accessibility Statement</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/95662_website/favicons/apple-touch-icon.png" rel="apple-touch-icon" sizes="180x180"/><link href="https://static.spotapps.co/website_images/ab_websites/95662_website/favicons/favicon-32x32.png" rel="icon" sizes="32x32" type="image/png"/><link href="https://static.spotapps.co/website_images/ab_websites/95662_website/favicons/favicon-16x16.png" rel="icon" sizes="16x16" type="image/png"/><link href="https://static.spotapps.co/website_images/ab_websites/95662_website/favicons/site.webmanifest" rel="manifest"/><link color="#5bbad5" href="https://static.spotapps.co/website_images/ab_websites/95662_website/favicons/safari-pinned-tab.svg" rel="mask-icon"/><link href="https://static.spotapps.co/website_images/ab_websites/95662_website/favicons/favicon.ico" rel="shortcut icon"/><meta content="#da532c" name="msapplication-TileColor"/><meta content="https://static.spotapps.co/website_images/ab_websites/95662_website/favicons/browserconfig.xml" name="msapplication-config"/><meta content="#ffffff" name="theme-color"/><link href="https://static.spotapps.co/web/cafeveloce--com/lib/bootstrap/css/bootstrap.min.css" rel="stylesheet"/><link href="https://static.spotapps.co/web/cafeveloce--com/lib/custom-scrollbar/jquery.mCustomScrollbar.css" rel="stylesheet"/><link href="https://static.spotapps.co/web/cafeveloce--com/lib/font-awesome-4.7.0/css/font-awesome.min.css" rel="stylesheet"/><link href="https://static.spotapps.co/web/cafeveloce--com/lib/hover_css/css/hover-min.css" rel="stylesheet"/><link href="https://static.spotapps.co/web/cafeveloce--com/lib/owlcarousel/owl.carousel.min.css" rel="stylesheet"/><link href="https://static.spotapps.co/web/cafeveloce--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/cafeveloce--com/css/style.css?version2" id="mainCSS" rel="stylesheet"/><link href="https://static.spotapps.co/web/cafeveloce--com/css/bottom_navigation_v1.css?v1775221295" rel="stylesheet"/><link href="css/custom.css?v1775221295&domain=cafeveloce.com" rel="stylesheet"/><link href="https://static.spotapps.co/web/cafeveloce--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/cafeveloce--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]--><style> 14 15 html{ 16 height: 100%; 17 } 18 19 .webkit-mobile-body{ 20 height: 100%; 21 overflow: hidden; 22 } 23 24 .webkit-mobile-body>div:first-child{ 25 height:100%; 26 overflow: auto; 27 -webkit-overflow-scrolling: touch; 28 } 29 30 </style>
30<script src="https://static.spotapps.co/websites/lib/lazysizes/lazysizes.min.js" async=""></script>
30<script> 31function ga_check(){ 32 return true; 33} 34</script>
34<script> 35function universal_ga(action, type, category, ev_action, label){ 36 if(typeof ga === 'function') 37 { 38 if(!(action && label)) 39 ga(action, type, category) 40 else 41 ga(action, type, category, ev_action, label) 42 } 43 44 if(typeof gtag === 'function') 45 { 46 if(!(action && label)) 47 { 48 hash = category 49 ev_label = hash["eventLabel"] 50 var splits = ev_label.match(/.{1,100}/g) ?? []; 51 delete(hash["eventLabel"]) 52 53 if(splits.length <= 1) 54 hash["eventLabel"] = ev_label 55 else 56 { 57 for (let i = 0; i < splits.length; i++) { 58 var key = "eventLabel_"+i 59 hash[key] = splits[i] 60 } 61 } 62 console.log(hash) 63 gtag("event", hash["eventCategory"], hash); 64 } 65 else 66 { 67 var hash = { 68 eventCategory: category, 69 eventAction: ev_action 70 } 71 72 var splits = label.match(/.{1,100}/g) ?? []; 73 if(splits.length <= 1) 74 hash["eventLabel"] = label 75 else 76 { 77 for (let i = 0; i < splits.length; i++) { 78 var key = "eventLabel_"+i 79 hash[key] = splits[i] 80 } 81 } 82 gtag("event", hash["eventCategory"], hash); 83 } 84 } 85} 86</script>
86<script> function getPromotionUrlParams(){ 87 var params_str = sessionStorage.getItem('shUrlParams'); 88 if (params_str != null){ 89 return JSON.parse(params_str); 90 }else{ 91 return {}; 92 } 93 } 94 95 function getPromotionSourceDetails(){ 96 var params_str = localStorage.getItem('promotionSourceDetails'); 97 if (params_str != null){ 98 return JSON.parse(params_str); 99 }else{ 100 return {}; 101 } 102 } 103 104 function getLastEmailVisitInDays(){ 105 var promotionSourceDetails = getPromotionSourceDetails(); 106 if (!promotionSourceDetails['last_visit_email'] ){ 107 return null; 108 } 109 return Math.floor((new Date() - new Date(promotionSourceDetails['last_visit_email'])) / (1000 * 60 * 60 * 24)); 110 } 111 112 function getLastSocialVisitInDays(){ 113 var promotionSourceDetails = getPromotionSourceDetails(); 114 if (!promotionSourceDetails['last_visit_social'] ){ 115 return null; 116 } 117 return Math.floor((new Date() - new Date(promotionSourceDetails['last_visit_social'])) / (1000 * 60 * 60 * 24)); 118 } 119 120 var shUrlParams = getPromotionUrlParams(); 121 var promotionSourceDetails = getPromotionSourceDetails(); 122 123 new URL(document.location).searchParams.forEach(function(value, paramName){ 124 125 shUrlParams[paramName] = value; 126 127 if (paramName == 'source' && value =='social' ){ 128 promotionSourceDetails['last_visit_social'] = new Date(); 129 localStorage.setItem('promotionSourceDetails', JSON.stringify(promotionSourceDetails)); 130 } 131 132 if (paramName == 'source' && value =='email' ){ 133 promotionSourceDetails['last_visit_email'] = new Date(); 134 localStorage.setItem('promotionSourceDetails', JSON.stringify(promotionSourceDetails)); 135 } 136 137 }); 138 139 sessionStorage.setItem('shUrlParams', JSON.stringify(shUrlParams)) 140</script>
140<style>a:focus:not(:focus-visible){outline:none;box-shadow:none;} 141a.get-directions-footer-link{display:inline-block;transform-origin:left center;transition:transform .2s ease;} 142a.get-directions-footer-link:hover{transform:scale(1.08);} 143@media (prefers-reduced-motion:reduce){a.get-directions-footer-link{transition:none;transform:none;}} 144a.get-directions-footer-link,a.get-directions-footer-link:hover{color:inherit!important;}</style></head><body class="drink-menu article-background "><div><header style="background-color:#000000;"><style> 145 146.nav-v8 .nav-tab:nth-child(n+8) { 147 -webkit-box-ordinal-group: 3; 148 order: 3; 149} 150 151.navbar.nav-v6.nav-v8 .desktop-navigation .header-logo { 152 top: 0px; 153} 154 155 156.navbar.nav-v6.nav-v8.nav-scroll .desktop-navigation .header-logo { 157 top: 0px; 158} 159 160.navbar.nav-v6 .container { 161 padding-top: 10px; 162 padding-bottom: 10px; 163} 164.navbar.nav-v6.nav-scroll .container { 165 padding-top: 0px; 166 padding-bottom: 0px; 167} 168.navbar.nav-v6 .header-logo img { 169 max-width: 100%; 170} 171 172@media (max-width: 767px) { 173 /* DO NOT change mobile nav height on page scroll */ 174 .navbar.nav-v6 .navbar-header, 175 .navbar.nav-v6.nav-scroll .navbar-header { 176 padding-top: 10px; 177 padding-bottom: 10px; 178 } 179 .navbar.nav-v6.nav-v8 .socialnav, 180 .navbar.nav-v6.nav-v8.nav-scroll .socialnav { 181 margin-top: 10px; 182 } 183 .navbar.nav-v6 .container, 184 .navbar.nav-v6.nav-scroll .container { 185 padding-top: 0; 186 padding-bottom: 0; 187 } 188 .navbar.nav-v6 .header-logo, 189 .navbar.nav-v6.nav-scroll .header-logo { 190 height: 70px; 191 } 192 .navbar.nav-v6 .header-logo img { 193 max-height: 100%; 194 } 195 .navbar.nav-v6.nav-scroll .header-logo img { 196 max-width: 100%; 197 } 198 /* HOME page CHANGE mobile nav height on page scroll */ 199 /* Remove body.home-page from below code if there should be mobile nav height change on ALL pages */ 200 body.home-page .navbar.nav-v6 .navbar-header { 201 padding-top: 10px; 202 padding-bottom: 10px; 203 } 204 body.home-page .navbar.nav-v6.nav-scroll .navbar-header{ 205 padding-top: 0px; 206 padding-bottom: 0px; 207 } 208 body.home-page .navbar.nav-v6.nav-v8 .socialnav { 209 margin-top: 10px; 210 } 211 body.home-page .navbar.nav-v6.nav-v8.nav-scroll .socialnav { 212 margin-top: 0px; 213 } 214 body.home-page .navbar.nav-v6 .container{ 215 padding-top: 0; 216 padding-bottom: 0; 217 } 218 body.home-page .navbar.nav-v6.nav-scroll .container { 219 padding-top: 0; 220 padding-bottom: 0; 221 } 222 body.home-page .navbar.nav-v6 .header-logo { 223 height: 70px; 224 } 225 body.home-page .navbar.nav-v6.nav-scroll .header-logo { 226 height: 50px; 227 } 228 body.home-page .navbar.nav-v6 .header-logo img { 229 max-height: 100%; 230 max-width: 100%; 231 } 232 body.home-page .navbar.nav-v6.nav-scroll .header-logo img { 233 max-width: 80%; 234 } 235} 236 237 238.navbar-regular .navbar-collapse.collapse.in { 239 background-color: transparent; 240 width: 100%; 241} 242.navbar.nav-v6 .navbar-tabs { 243 background-color: #F0EEDF; 244 -webkit-box-shadow: 0px 4px 4px 0px rgba(0,0,0,0); 245 -moz-box-shadow: 0px 4px 4px 0px rgba(0,0,0,0); 246 box-shadow: 0px 4px 4px 0px rgba(0,0,0,0); 247} 248.navbar.nav-v6.nav-scroll .navbar-tabs { 249 background-color: #F0EEDF; 250 -webkit-box-shadow: 0px 4px 4px 0px rgba(0,0,0,0.2); 251 -moz-box-shadow: 0px 4px 4px 0px rgba(0,0,0,0.2); 252 box-shadow: 0px 4px 4px 0px rgba(0,0,0,0.2); 253} 254.drink-menu .navbar.nav-v6 .navbar-tabs { 255 background-color: #F0EEDF; 256 -webkit-box-shadow: 0px 4px 4px 0px rgba(0,0,0,0); 257 -moz-box-shadow: 0px 4px 4px 0px rgba(0,0,0,0); 258 box-shadow: 0px 4px 4px 0px rgba(0,0,0,0); 259} 260.drink-menu .navbar.nav-v6.nav-scroll .navbar-tabs { 261 background-color: #F0EEDF; 262 -webkit-box-shadow: 0px 4px 4px 0px rgba(0,0,0,0.2); 263 -moz-box-shadow: 0px 4px 4px 0px rgba(0,0,0,0.2); 264 box-shadow: 0px 4px 4px 0px rgba(0,0,0,0.2); 265} 266li.drop-down-link .sub-menu { 267 background-color: #F0EEDF; 268 color: #1D1D1D; 269 } 270.nav-scroll li.drop-down-link .sub-menu { 271 background-color: #F0EEDF; 272 color: #1D1D1D; 273} 274.drink-menu li.drop-down-link .sub-menu { 275 background-color: #F0EEDF; 276 color: #1D1D1D; 277} 278.drink-menu .nav-scroll li.drop-down-link .sub-menu { 279 background-color: #F0EEDF; 280 color: #1D1D1D; 281} 282li.drop-down-link .sub-menu a, 283li.drop-down-link div.drop-down { 284 color: #1D1D1D; 285} 286.nav-scroll li.drop-down-link .sub-menu a, 287.nav-scroll li.drop-down-link div.drop-down { 288 color: #1D1D1D; 289} 290.drink-menu li.drop-down-link .sub-menu a, 291.drink-menu li.drop-down-link div.drop-down { 292 color: #1D1D1D; 293} 294.drink-menu .nav-scroll li.drop-down-link .sub-menu a, 295.drink-menu .nav-scroll li.drop-down-link div.drop-down { 296 color: #1D1D1D; 297} 298 299.navbar-regular.nav-v6 .navbar-nav>li>a, 300.navbar-regular.nav-v6 .navbar-nav>li>a:hover, 301.navbar-regular.nav-v6 .navbar-nav>.active>a, 302.navbar-regular.nav-v6 .navbar-nav>.active>a:focus, 303.navbar-regular.nav-v6 .navbar-nav>.active>a:hover{ 304 border: none; 305 background-color: transparent; 306 color: #750002; 307} 308.navbar-regular.nav-v6 .navbar-nav>li>a { 309 color: #1D1D1D; 310} 311.drink-menu .navbar.nav-v6 .navbar-nav>li>a { 312 color: #1D1D1D; 313} 314.drink-menu .navbar-regular.nav-v6 .navbar-nav>li>a:hover, 315.drink-menu .navbar-regular.nav-v6 .navbar-nav>.active>a, 316.drink-menu .navbar-regular.nav-v6 .navbar-nav>.active>a:focus, 317.drink-menu .navbar-regular.nav-v6 .navbar-nav>.active>a:hover {
318 color: #750002; 319} 320 321li.drop-down-link .sub-menu a:hover, 322li.drop-down-link .sub-menu a:focus { 323 color: #750002; 324} 325.drink-menu li.drop-down-link .sub-menu a:hover, 326.drink-menu li.drop-down-link .sub-menu a:focus { 327 color: #750002; 328} 329 330.drink-menu .navbar.nav-v7 .navbar-nav>li>a { 331 color: #1D1D1D; 332} 333 334.navbar-regular.nav-v6 .navbar-toggle .icon-bar { 335 background-color: #1D1D1D; 336} 337.drink-menu .navbar-regular.nav-v6 .navbar-toggle .icon-bar { 338 background-color: #1D1D1D; 339} 340.navbar-regular.nav-v6 [aria-expanded="true"].navbar-toggle .icon-bar { 341 background-color: #750002; 342} 343.drink-menu .navbar-regular.nav-v6 [aria-expanded="true"].navbar-toggle .icon-bar { 344 background-color: #750002; 345} 346.navbar-regular.nav-v6.nav-scroll .navbar-nav>li>a, 347.navbar-regular.nav-v6.nav-scroll .navbar-nav>li>a:hover, 348.navbar-regular.nav-v6.nav-scroll .navbar-nav>.active>a, 349.navbar-regular.nav-v6.nav-scroll .navbar-nav>.active>a:focus, 350.navbar-regular.nav-v6.nav-scroll .navbar-nav>.active>a:hover { 351 border: none; 352 color: #750002; 353} 354.navbar-regular.nav-v6.nav-scroll .navbar-nav>li>a { 355 color: #1D1D1D; 356} 357.drink-menu .navbar.nav-v6.nav-scroll .navbar-nav>li>a { 358 border: none; 359 color: #1D1D1D; 360} 361.drink-menu .navbar-regular.nav-v6.nav-scroll .navbar-nav>li>a:hover, 362.drink-menu .navbar-regular.nav-v6.nav-scroll .navbar-nav>.active>a, 363.drink-menu .navbar-regular.nav-v6.nav-scroll .navbar-nav>.active>a:focus, 364.drink-menu .navbar-regular.nav-v6.nav-scroll .navbar-nav>.active>a:hover { 365 color: #750002; 366} 367 368.nav-scroll li.drop-down-link .sub-menu a:hover, 369.nav-scroll li.drop-down-link .sub-menu a:focus { 370 color: #750002; 371} 372.drink-menu .nav-scroll li.drop-down-link .sub-menu a:hover, 373.drink-menu .nav-scroll li.drop-down-link .sub-menu a:focus { 374 color: #750002; 375} 376 377.navbar-regular.nav-v6.nav-scroll .navbar-toggle .icon-bar { 378 background-color: #1D1D1D; 379} 380.drink-menu .navbar-regular.nav-v6.nav-scroll .navbar-toggle .icon-bar { 381 background-color: #1D1D1D; 382} 383.navbar-regular.nav-v6.nav-scroll [aria-expanded="true"].navbar-toggle .icon-bar { 384 background-color: #750002; 385} 386.drink-menu .navbar-regular.nav-v6.nav-scroll [aria-expanded="true"].navbar-toggle .icon-bar { 387 background-color: #750002; 388} 389.navbar.nav-v6 .header-logo-text{ 390 color: #1D1D1D; 391} 392.navbar.nav-v6.nav-scroll .header-logo-text{ 393 color: #1D1D1D; 394} 395.navbar.nav-v6 .social-icon{ 396 color: #1D1D1D; 397} 398.navbar.nav-v6.nav-scroll .social-icon{ 399 color: #1D1D1D; 400} 401.navbar.nav-v6 .social-square .contact-icon:hover { 402 color: #1D1D1D; 403 background-color: #750002; 404} 405.navbar.nav-v6.nav-scroll .social-square .contact-icon:hover { 406 color: #1D1D1D; 407 background-color: #750002; 408} 409 410.drink-menu .navbar.nav-v6 .header-logo-text{ 411 color: #1D1D1D; 412} 413.drink-menu .navbar.nav-v6.nav-scroll .header-logo-text{ 414 color: #1D1D1D; 415} 416.drink-menu .navbar.nav-v6 .social-icon{ 417 color: #1D1D1D; 418} 419.drink-menu .navbar.nav-v6.nav-scroll .social-icon{ 420 color: #1D1D1D; 421} 422.drink-menu .navbar.nav-v6 .social-square .contact-icon:hover { 423 color: #1D1D1D; 424 background-color: #750002; 425} 426.drink-menu .navbar.nav-v6.nav-scroll .social-square .contact-icon:hover { 427 color: #1D1D1D; 428 background-color: #750002; 429} 430.navbar.nav-v6 .navbar-tabs { 431 border-bottom: 1px solid transparent; 432} 433.navbar.nav-v6.nav-scroll .navbar-tabs { 434 border-bottom: 1px solid transparent; 435} 436.drink-menu .navbar.nav-v6 .navbar-tabs { 437 border-bottom: 1px solid transparent; 438} 439.drink-menu .navbar.nav-v6.nav-scroll .navbar-tabs { 440 border-bottom: 1px solid transparent; 441} 442@media (max-width: 767px) { 443 .navbar.nav-v6 { 444 background-color: #F0EEDF; 445 -webkit-box-shadow: 0px 4px 4px 0px rgba(0,0,0,0); 446 -moz-box-shadow: 0px 4px 4px 0px rgba(0,0,0,0); 447 box-shadow: 0px 4px 4px 0px rgba(0,0,0,0); 448 } 449 .navbar.nav-v6.nav-scroll { 450 background-color: #F0EEDF; 451 -webkit-box-shadow: 0px 4px 4px 0px rgba(0,0,0,0.2); 452 -moz-box-shadow: 0px 4px 4px 0px rgba(0,0,0,0.2); 453 box-shadow: 0px 4px 4px 0px rgba(0,0,0,0.2); 454 } 455 .drink-menu .navbar.nav-v6 { 456 background-color: #F0EEDF; 457 -webkit-box-shadow: 0px 4px 4px 0px rgba(0,0,0,0); 458 -moz-box-shadow: 0px 4px 4px 0px rgba(0,0,0,0); 459 box-shadow: 0px 4px 4px 0px rgba(0,0,0,0); 460 } 461 .drink-menu .navbar.nav-v6.nav-scroll { 462 background-color: #F0EEDF; 463 -webkit-box-shadow: 0px 4px 4px 0px rgba(0,0,0,0.2); 464 -moz-box-shadow: 0px 4px 4px 0px rgba(0,0,0,0.2); 465 box-shadow: 0px 4px 4px 0px rgba(0,0,0,0.2); 466 } 467 .navbar.nav-v6 .container, 468 .navbar.nav-v6.nav-scroll .container, 469 .drink-menu .navbar.nav-v6 .container, 470 .drink-menu .navbar.nav-v6.nav-scroll .container { 471 border-bottom: none; 472 } 473 .navbar.nav-v6 .navbar-header { 474 border-bottom: 1px solid transparent; 475 } 476 .navbar.nav-v6.nav-scroll .navbar-header { 477 border-bottom: 1px solid transparent; 478 } 479 .drink-menu .navbar.nav-v6 .navbar-header { 480 border-bottom: 1px solid transparent; 481 } 482 .drink-menu .navbar.nav-v6.nav-scroll .navbar-header { 483 border-bottom: 1spx solid transparent; 484 } 485 li.drop-down-link .sub-menu, 486 .drink-menu li.drop-down-link .sub-menu { 487 background-color: transparent; 488 } 489 .nav-scroll li.drop-down-link .sub-menu, 490 .drink-menu .nav-scroll li.drop-down-link .sub-menu { 491 background-color: transparent; 492 } 493 .navbar-regular.nav-v6 .navbar-nav>li>a:hover, 494 .navbar-regular.nav-v6 .navbar-nav>.active>a, 495 .navbar-regular.nav-v6 .navbar-nav>.active>a:focus, 496 .navbar-regular.nav-v6 .navbar-nav>.active>a:hover{ 497 background-color: #750002; 498 color: #1D1D1D; 499 } 500 .navbar-regular.nav-v6.nav-scroll .navbar-nav>li>a:hover, 501 .navbar-regular.nav-v6.nav-scroll .navbar-nav>.active>a, 502 .navbar-regular.nav-v6.nav-scroll .navbar-nav>.active>a:focus, 503 .navbar-regular.nav-v6.nav-scroll .navbar-nav>.active>a:hover{ 504 background-color: #750002; 505 color: #1D1D1D; 506 } 507 .drink-menu .navbar-regular.nav-v6 .navbar-nav>li>a:hover, 508 .drink-menu .navbar-regular.nav-v6 .navbar-nav>.active>a, 509 .drink-menu .navbar-regular.nav-v6 .navbar-nav>.active>a:focus, 510 .drink-menu .navbar-regular.nav-v6 .navbar-nav>.active>a:hover{ 511 background-color: #750002; 512 color: #1D1D1D; 513 } 514 .drink-menu .navbar-regular.nav-v6.nav-scroll .navbar-nav>li>a:hover, 515 .drink-menu .navbar-regular.nav-v6.nav-scroll .navbar-nav>.active>a, 516 .drink-menu .navbar-regular.nav-v6.nav-scroll .navbar-nav>.active>a:focus, 517 .drink-menu .navbar-regular.nav-v6.nav-scroll .navbar-nav>.active>a:hover{ 518 background-color: #750002; 519 color: #1D1D1D; 520 } 521 522 .navbar-regular.nav-v6 li.drop-down-link.active .drop-down .fa.fa-angle-up { 523 color: #750002; 524 } 525 .navbar-regular.nav-v6.nav-scroll li.drop-down-link.active .drop-down .fa.fa-angle-up { 526 color: #750002; 527 } 528 .drink-menu .navbar-regular.nav-v6 li.drop-down-link.active .drop-down .fa.fa-angle-up { 529 color: #750002; 530 } 531 .drink-menu .navbar-regular.nav-v6.nav-scroll li.drop-down-link.active .drop-down .fa.fa-angle-up { 532 color: #750002; 533 } 534} 535</style><!-- nav --><nav class="navbar nav-v4 nav-v6 nav-v7 nav-v8 nav-top navbar-regular navbar-fixed-top" id="navbar" role="navigation"><div class="visuallyhidden" id="skip"><a href="#content">Skip to Main Content</a></div><div class="desktop-navigation"><div class="navbar-tabs"><div class="container"><div class="navbar-content"><ul class="nav navbar-nav"><li class="logo-holder"><div class="header-logo logo-top"><img alt="Cafe Veloce logo top" class="img-responsive logo-top logo-image" src="https://static.spotapps.co/website_images/ab_websites/95662_website/logo_new.png"/></div><div class="header-logo logo-scroll"><img alt="Cafe Veloce logo scroll" class="img-responsive logo-scroll logo-image" src="https://static.spotapps.co/website_images/ab_websites/95662_website/logo_new.png"/></div></li><li class="nav-tab nav-order-link"><a class="link-order-sh" href="https://cafeveloce.hrpos.heartland.us/menu#" id="https://cafeveloce.hrpos.heartland.us/menu#_link" target="_blank"> 536 Order Online 537 </a></li><li class="nav-tab nav-menu-page"><a class="" href="/kirkland-cafe-veloce-food-menu" id="/Kirkland-Cafe-Veloce-food-menu_link" target="_self"> 538 Menu 539 </a></li><li class="nav-tab"><a class="" href="/kirkland-cafe-veloce-drink-menu" id="/Kirkland-Cafe-Veloce-drink-menu_link" target="_self"> 540 Drinks 541 </a></li><li class="nav-tab"><a class="" href="/kirkland-cafe-veloce-catering-menu" id="/Kirkland-Cafe-Veloce-catering-menu_link" target="_self"> 542 Catering 543 </a></li><li class="nav-tab additional-tab outside-link"><a class="additional-link" href="https://cafeveloce.hrpos.heartland.us/item" id="additional-link_link" target="_blank"> 544 Gift Cards 545 </a></li><li class="nav-tab"><a class="" href="/kirkland-cafe-veloce-events" id="/Kirkland-Cafe-Veloce-events_link" target="_self"> 546 Events 547 </a></li><li class="nav-tab"><a class="" href="/kirkland-cafe-veloce-about" id="/Kirkland-Cafe-Veloce-about_link" target="_self"> 548 About 549 </a></li><li class="nav-tab nav-hal-page">
549<a class="" href="/#contact_v3" id="/#contact_v3_link" target="_self"> 550 Hours & Locations 551 </a></li><li class="nav-tab nav-jobs-link"><a class="link-jobs-sh" href="https://tmt.spotapps.co/job-listings?spot_id=95662&callback_url=http://cafeveloce.com/a-article#" id="https://tmt.spotapps.co/job-listings?spot_id=95662&callback_url=http://cafeveloce.com/a-article#_link" target="_self"> 552 Jobs 553 </a></li><li class="nav-tab nav-parties-link"><a class="link-parties-sh" href="/kirkland-cafe-veloce-party#" id="/Kirkland-Cafe-Veloce-party#_link" target="_self"> 554 Parties 555 </a></li><li class="nav-tab nav-menus-page"><a class="" href="/kirkland-cafe-veloce-specials-menu" id="/Kirkland-Cafe-Veloce-specials-menu_link" target="_self"> 556 Specials 557 </a></li><li class="nav-tab nav-reservations-link"><a class="link-reservations-sh" href="https://resy.com/cities/sea/cafe-veloce?seats=2#" id="https://resy.com/cities/sea/cafe-veloce?seats=2#_link" target="_blank"> 558 Reserve 559 </a></li></ul><ul class="socialnav"><li class="social-links social-icons-holder social-square"><a class="pull-left contact-icon" href="/#contact_v3" target=""><i aria-hidden="true" class="social-icon fa fa-phone"></i><span>Phone</span></a><a class="pull-left contact-icon" href="https://www.facebook.com/320622034905" target="_blank"><i class="social-icon fa fa-facebook"></i><span>Facebook page</span></a><a class="pull-left contact-icon" href="https://www.instagram.com/cafe_veloce" target="_blank"><i class="social-icon fa fa-instagram"></i><span>Instagram page</span></a><a class="pull-left contact-icon" href="https://www.google.com/search?sca_esv=587611622&q=Cafe+Veloce&ludocid=17036523467981623485&lsig=AB86z5WpEYqe3YbhapbgYbn1OKX-&sa=X&ved=2ahUKEwiV2cSiv_WCAxX-QfEDHZZOD6IQoAJ6BAgfEAQ&biw=2560&bih=1283&dpr=1#ip=1&lrd=0x54900d83f806bb47:0xec6de3d4aca690bd,1,,,," target="_blank"><i aria-hidden="true" class="social-icon fa fa-google"></i><span>Google page</span></a></li></ul></div></div></div></div><div class="mobile-navigation"><div class="container"><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><a class="header-logo logo-top" href="/#"><img alt="Cafe Veloce logo top" class="img-responsive logo-top" src="https://static.spotapps.co/website_images/ab_websites/95662_website/logo_new.png"/></a><a class="header-logo logo-scroll" href="/"><img alt="Cafe Veloce logo scroll" class="img-responsive logo-scroll" src="https://static.spotapps.co/website_images/ab_websites/95662_website/logo_new.png"/></a><ul class="socialnav"><li class="social-links social-icons-holder social-square"><a class="pull-left contact-icon" href="https://www.facebook.com/320622034905" target="_blank"><i class="social-icon fa fa-facebook"></i><span>Facebook page</span></a><a class="pull-left contact-icon" href="https://www.instagram.com/cafe_veloce" target="_blank"><i class="social-icon fa fa-instagram"></i><span>Instagram page</span></a><a class="pull-left contact-icon" href="https://www.google.com/search?sca_esv=587611622&q=Cafe+Veloce&ludocid=17036523467981623485&lsig=AB86z5WpEYqe3YbhapbgYbn1OKX-&sa=X&ved=2ahUKEwiV2cSiv_WCAxX-QfEDHZZOD6IQoAJ6BAgfEAQ&biw=2560&bih=1283&dpr=1#ip=1&lrd=0x54900d83f806bb47:0xec6de3d4aca690bd,1,,,," target="_blank"><i aria-hidden="true" class="social-icon fa fa-google"></i><span>Google page</span></a></li></ul><div class="collapse navbar-collapse" id="navbar-collapse-1"><ul class="nav navbar-nav navbar-right"><li class=" nav-order-link"><a class="link-order-sh" href="https://cafeveloce.hrpos.heartland.us/menu#" id="mobile_https://cafeveloce.hrpos.heartland.us/menu#_link" target="_blank"> 560 Order Online 561 562 </a></li><li class=" nav-menu-page"><a class="" href="/kirkland-cafe-veloce-food-menu" id="mobile_/Kirkland-Cafe-Veloce-food-menu_link" target="_self"> 563 Menu 564 565 </a></li><li class=" "><a class="" href="/kirkland-cafe-veloce-drink-menu" id="mobile_/Kirkland-Cafe-Veloce-drink-menu_link" target="_self"> 566 Drinks 567 568 </a></li><li class=" "><a class="" href="/kirkland-cafe-veloce-catering-menu" id="mobile_/Kirkland-Cafe-Veloce-catering-menu_link" target="_self"> 569 Catering 570 571 </a></li><li class=" additional-tab outside-link"><a class="additional-link" href="https://cafeveloce.hrpos.heartland.us/item" id="mobile_additional-link_link" target="_blank"> 572 Gift Cards 573 574 </a></li><li class=" "><a class="" href="/kirkland-cafe-veloce-events" id="mobile_/Kirkland-Cafe-Veloce-events_link" target="_self"> 575 Events 576 577 </a></li><li class=" "><a class="" href="/kirkland-cafe-veloce-about" id="mobile_/Kirkland-Cafe-Veloce-about_link" target="_self"> 578 About 579 580 </a></li><li class=" nav-hal-page"><a class="" href="/#contact_v3" id="mobile_/#contact_v3_link" target="_self"> 581 Hours & Locations 582 583 </a></li><li class=" nav-jobs-link"><a class="link-jobs-sh" href="https://tmt.spotapps.co/job-listings?spot_id=95662&callback_url=http://cafeveloce.com/a-article#" id="mobile_https://tmt.spotapps.co/job-listings?spot_id=95662&callback_url=http://cafeveloce.com/a-article#_link" target="_self"> 584 Jobs 585 586 </a></li><li class=" nav-parties-link"><a class="link-parties-sh" href="/kirkland-cafe-veloce-party#" id="mobile_/Kirkland-Cafe-Veloce-party#_link" target="_self"> 587 Parties 588 589 </a></li><li class=" nav-menus-page"><a class="" href="/kirkland-cafe-veloce-specials-menu" id="mobile_/Kirkland-Cafe-Veloce-specials-menu_link" target="_self"> 590 Specials 591 592 </a></li><li class=" nav-reservations-link"><a class="link-reservations-sh" href="https://resy.com/cities/sea/cafe-veloce?seats=2#" id="mobile_https://resy.com/cities/sea/cafe-veloce?seats=2#_link" target="_blank"> 593 Reserve 594 595 </a></li></ul></div></div></div></nav></header><main id="content" role="main"><article><div class="pagecontent"><div class="tabnav"></div><div class="tabs-container"><style> 596 597.drink-menu .article-background, .drink-menu.article-background .pagecontent { 598 background-color: #000; 599 color: #fff; 600} 601.drink-menu.article-background .pagecontent { 602 border: none; 603} 604.drink-menu.article-background .pagecontent * { 605 text-align: left !important; 606 color: #fff; 607} 608.drink-menu.article-background .tabs-container { 609 text-shadow: none; 610} 611.drink-menu.article-background, 612.drink-menu.article-background:before { 613 background-image: none; 614} 615 616.drink-menu.article-background .pagecontent a, 617.drink-menu.article-background .pagecontent a:hover {
618 color: #fff; 619} 620 621.drink-menu.article-background { 622 background-color: #000; 623} 624 625.ada-page-content.container { 626 padding-top: 40px; 627} 628 629</style><div class="scrolling"><div class="container ada-page-content"><h1>Accessibility Statement for Cafe Veloce</h1><p>Cafe Veloce is committed to making our site accessible to people with disabilities. We are continuously gathering feedback and improving the user experience for everyone. 630 </p><h2>Conformance</h2><p>To provide great experience to everyone we are using The Web Content Accessibility Guidelines (WCAG). The guidelines have three levels of accessibility (A, Level AA, and Level AAA). Cafe Veloce has chosen level AA as a target for our website and we are fully committed to monitoring our site to maintain this level of compliance. 631 </p><h2>Third-Party Vendors</h2><p>We encourage our third party vendors (online order and delivery providers, reservations and event management, social media, review sites, travel recommendation sites, etc.) to provide content that is accessible and user friendly, even though we cannot control their content that appears on our website. 632 </p><h2>Feedback</h2><p>How are we doing? We welcome your feedback on how to improve accessibility and usability of Cafe Veloce website. Please let us know using this email address: E-mail: <a href="mailto:[email protected]">[email protected]</a></p><p> 633We try to respond to feedback within 2 business days. 634</p><h2>Assistance</h2><p>If you need any assistance please call us at <a href="tel:+1(425) 814-2972">(425) 814-2972</a> during our regular business hours and we'd be happy to help you with anything on our site. 635</p></div></div></div></div></article></main></div><style type="text/css"> 636 .navbar-fixed-bottom.nav-v1 { 637 bottom: -100px; 638 } 639 .navbar-fixed-bottom.nav-v1 .nav.navbar-nav.navbar-right { 640 background-color: #F0EEDF; 641 } 642 .navbar-fixed-bottom.nav-v1 .bottom-svg-border path, 643 .navbar-fixed-bottom.nav-v1 .bottom-svg-border polygon { 644 fill: #000; 645 } 646 .navbar-fixed-bottom.nav-v1 .bottom-list-item a { 647 color: #1D1D1D; 648 } 649 .navbar-fixed-bottom.nav-v1 .bottom-list-item a:hover, 650 .navbar-fixed-bottom.nav-v1 .bottom-list-item a:focus { 651 color: #750002; 652 } 653</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://cafeveloce.hrpos.heartland.us/menu" id="bottom_link_4" target="_self"> 654 Order </a></li><li class="bottom-list-item "><a class="bottom-link " href="https://resy.com/cities/sea/cafe-veloce?seats=2" id="bottom_link_3" target="_self"> 655 Reserve </a></li><li class="bottom-list-item "><a class="bottom-link " href="/kirkland-cafe-veloce-party" id="bottom_link_5" target="_self"> 656 Parties </a></li><li class="bottom-list-item "><a class="bottom-link " href="/kirkland-cafe-veloce-catering" id="bottom_link_6" target="_self"> 657 Catering </a></li><li class="bottom-list-item "><a class="bottom-link " href="https://tmt.spotapps.co/job-listings?spot_id=95662&callback_url=http://cafeveloce.com/a-article" id="bottom_link_7" target="_self"> 658 Jobs </a></li></ul></div></nav>
658<script src="https://static.spotapps.co/web/cafeveloce--com/lib/jquery/jquery.min.js"></script>
658<script src="https://static.spotapps.co/web/cafeveloce--com/lib/bootstrap/js/bootstrap.min.js"></script>
658<script src="https://static.spotapps.co/web/cafeveloce--com/lib/angular/angular.min.js"></script>
658<script src="https://static.spotapps.co/web/cafeveloce--com/lib/underscorejs/underscore-min.js"></script>
658<script> 659 660 $("#bottom_link_4").on("click", function(){ 661 if (ga_check()) 662 universal_ga('send', 'event', 'Button', 'Click', 'Order Online'); 663 }); 664 $("#bottom_link_3").on("click", function(){ 665 if (ga_check()) 666 universal_ga('send', 'event', 'Button', 'Click', 'Reserve'); 667 }); 668 $("#bottom_link_5").on("click", function(){ 669 if (ga_check()) 670 universal_ga('send', 'event', 'Button', 'Click', 'Private Party'); 671 }); 672 $("#bottom_link_6").on("click", function(){ 673 if (ga_check()) 674 universal_ga('send', 'event', 'Button', 'Click', 'Catering'); 675 }); 676 $("#bottom_link_7").on("click", function(){ 677 if (ga_check()) 678 universal_ga('send', 'event', 'Button', 'Click', 'Jobs'); 679 }); 680 $('.header-logo, .nav-v2-home-btn').click(function(event) { 681 if ( window.location.pathname == '/' || window.location.pathname == '/index.php') { 682 event.preventDefault(); 683 var windowScrollTop = $(window).scrollTop(); 684 if(windowScrollTop > 150) { 685 $('html, body').animate({scrollTop: 0}, 750); 686 } 687 } 688 }); 689 690$(".banner-section a.banner-pin").click(function(e) { 691 // target element id 692 var id = $(this).attr('href'); 693 694 // target element 695 var section = $(id); 696 if (section.length === 0) { 697 return; 698 } 699 700 // prevent standard hash navigation (avoid blinking in IE) 701 e.preventDefault(); 702 703 // top position relative to the document 704 var pos = section.offset().top - 100 + 10; 705 706 // animated top scrolling 707 $('body, html').animate({scrollTop: pos}, 750); 708}); 709 710$(document).ready(function() { 711 var navHeight = $('nav.navbar').height(); 712 $('html').css("scroll-padding-top", navHeight); 713}); 714 715var called_v8_scroll = false; 716 717$(document).on('scroll', function (e) { 718 if($(document).scrollTop() > 0) { 719 $('.navbar.nav-v7').addClass('nav-scroll'); 720 $('.navbar.nav-v7').removeClass('nav-top'); 721 if (2 !=2 && 2 == 2) { 722 if(!called_v8_scroll) { 723 setTimeout(function(){ 724 setHelperTabWidth(); 725 called_v8_scroll = true; 726 }, 300); 727 } 728 } 729 }else { 730 $('.navbar.nav-v7').removeClass('nav-scroll'); 731 $('.navbar.nav-v7').addClass('nav-top'); 732 if (2 != 2 && 2 == 2) { 733 $('#hidden_tab_r').width(0); 734 $('#hidden_tab_l').width(0); 735 $('.navbar-nav li.nav-tab').first().css('margin-left', '0px'); 736 $('.navbar-nav li.nav-tab').last().css('margin-right', '0px'); 737 called_v8_scroll = false; 738 } 739 } 740}); 741 742$(function() { 743 setDropDownMenuWidth(); 744 745 function setDropDownMenuWidth() { 746 var tabs_list = $('.navbar-tabs .navbar-nav'); 747 748 $(tabs_list).find('li.drop-down-link').each(function() { 749 var sub_menu_width = $(this).outerWidth(true); 750 if (sub_menu_width < 100) { 751 sub_menu_width = 100; 752 } 753 $(this).find('.sub-menu').css('width', sub_menu_width+'px'); 754 }); 755 } 756 757 $( window ).resize(function() { 758 setDropDownMenuWidth(); 759 }); 760 $( window ).load(function() { 761 setDropDownMenuWidth(); 762 }); 763 764}); 765 766 767 768$( '.drop-down-link .drop-down' ).click(function(event) { 769 event.preventDefault(); 770 event.stopPropagation(); 771 772 var drop_down = $(this).closest('.drop-down-link'); 773 var sub_menu = $(this).closest('.drop-down-link').find( '.sub-menu' ); 774 775 if ( $(sub_menu).is( ':hidden' ) ) { 776 $(sub_menu).slideDown(); 777 $(drop_down).addClass('active'); 778 } else { 779 $(sub_menu).slideUp(); 780 $(drop_down).removeClass('active'); 781 } 782}); 783 784//// Set width for corresponding helper tab or margin for first or last nav tab depending on calculeted width sum of left and right tabs 785function setHelperTabWidth() { 786 var nav_tab_width; 787 var tabs_left_width = 0; 788 var tabs_right_width = 0; 789 790 var full_nav_tab_width; 791 var full_tabs_left_width = 0; 792 var full_tabs_right_width = 0; 793 794 $('li.nav-tab').each(function( index, element ) { 795 796 nav_tab_width = $(element).find('a').width(); 797 full_nav_tab_width = $(element).outerWidth(true); 798 799 if (!($(element).hasClass('helper-tab'))) { 800 if (index<6) { 801 tabs_left_width += nav_tab_width; 802 full_tabs_left_width += full_nav_tab_width; 803 } else { 804 tabs_right_width += nav_tab_width; 805 full_tabs_right_width += full_nav_tab_width; 806 } 807 } else { 808 if(index == 0) { 809 full_tabs_left_width += full_nav_tab_width; 810 } else { 811 full_tabs_right_width += full_nav_tab_width; 812 } 813 } 814 815 }); 816 817 var tabs_width_differance = tabs_left_width - tabs_right_width; 818 var helper_value = Math.abs(tabs_width_differance); 819 var full_tabs_width_differance = full_tabs_left_width - full_tabs_right_width; 820 821 // if sum of left tabs width is smaller than rigth tabs width tabs_width_differance is negative set margin left for first tab 822 if (full_tabs_width_differance != 0) { 823 if (tabs_width_differance < 0) { 824 $('.navbar-nav li.nav-tab').first().css('margin-left', helper_value+'px'); 825 } else { 826 $('.navbar-nav li.nav-tab').last().css('margin-right', helper_value+'px'); 827 } 828 } 829 830} 831 832$(function() { 833 setNavTabsWidth(); 834 835 function setNavTabsWidth() { 836 var container_width = $('.navbar-tabs .container').outerWidth(); 837 var social_icons_width = $('.navbar-tabs .socialnav').outerWidth(true); 838 var reduced_tabs_width = container_width - (2 * social_icons_width) -10; 839 840 $('.navbar-tabs .navbar-content').width(reduced_tabs_width); 841 842 // helper value set in case logo is centered and tabs width sum on the left and on the right are not the same 843 if (2 == 2) { 844 setTimeout(function(){ 845 setHelperTabWidth(); 846 $('.navbar.nav-v8 .desktop-navigation .navbar-nav').css('opacity', '1'); 847 }, 300); 848 849 } 850 } 851 852 $( window ).resize(function() { 853 setNavTabsWidth(); 854 }); 855 856}); 857 858$('.logo-holder .logo-image').click(function(event) { 859 if ( window.location.pathname == '/' || window.location.pathname == '/index.php') { 860 var windowScrollToTop = $(window).scrollTop(); 861 if(windowScrollToTop > 150) { 862 $('html, body').animate({scrollTop: 0}, 750); 863 } 864 } else { 865 window.location = "/"; 866 } 867}); 868 setTimeout(function(){ 869 $('.navbar-fixed-bottom.nav-v1').addClass('show-bottom-nav'); triggerShowFooterEvents(); 870 }, 3000);</script>
870<script> 871(function() { 872 var name = "Cafe Veloce"; 873 var pid = "ChIJR7sG-IMNkFQRvZCmrNTjbew"; 874 function build_url() { 875 var q = encodeURIComponent(name).replace(/'/g, "%27"); 876 return "https://www.google.com/maps/search/?api=1" 877 + "&query=" + q 878 + "&query_place_id=" + encodeURIComponent(pid); 879 } 880 window.google_map_url = build_url(); 881 window.open_google_map = function() { 882 window.open(build_url(), "_blank"); 883 }; 884})(); 885</script>
885<script> 886 887 var spot_id = 95662; 888 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 reserve a table","To apply for a job","Other Questions"],"custom_hours":"","hours":"","active_tmt_cta_links":{"cta_private_party":"https://cafeveloce.com/-party","cta_catering":"https://cafeveloce.com/-catering","cta_reservations":null,"cta_jobs":"https://tmt.spotapps.co/job-listings?spot_id=95662"},"spot_name":"Cafe Veloce","label_for_texting_permission":"Iâd like to get texts about specials, events, and other exclusive offers and announcements not available to general public"}'); 889 890 if (false){ 891 console.log("Check SpotHopper configuration. Probably there is no 'WEBSITE::DOMAIN_NAME' key for your website"); 892 } 893 894 if (navigator.userAgent.match(/iPhone/i) 895 || navigator.userAgent.match(/iPad/i) 896 || navigator.userAgent.match(/iPod/i)){ 897 $(document).ready(function(){ 898 document.body.className += " " + "webkit-mobile-body"; 899 }); 900 } 901 902 var promotion_url_param_domain = getPromotionUrlParams()['domain']; 903 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')){ 904 $("a[href^='/']").each(function(){ 905 if (this.href.indexOf('domain=') == -1){ 906 var sh_internal_url = new URL(this.href); 907 sh_internal_url.searchParams.set("domain", promotion_url_param_domain); 908 this.href = sh_internal_url.toString(); 909 } 910 }) 911 } 912 913 914 function cta_link_matches_href(href, url){ 915 var domain = 'cafeveloce.com'; 916 if(typeof url === 'undefined'){ 917 return false; 918 } 919 var partsOfURL = url.split(domain); 920 if (partsOfURL.length != 2){ 921 return href == url; 922 }else{ 923 var urlPath = partsOfURL[1]; 924 if (urlPath.substring(0,1) == "/"){ 925 urlPath = urlPath.substring(1,urlPath.length); 926 } 927 return href.indexOf(urlPath, domain.length + href.indexOf(domain)-1) !== -1; 928 } 929 } 930 931 var all_cta_links = [{"id":878955,"spot_id":95662,"url":"https://cafeveloce.com/-specials","cta_link_type":"specials","created_at":"2024-02-07T09:53:24+00:00","updated_at":"2024-03-28T20:11:08+00:00","made_of_food":false,"link_name":"","position":null},{"id":823051,"spot_id":95662,"url":"https://cafeveloce.com/-catering","cta_link_type":"catering","created_at":"2023-11-02T20:59:53+00:00","updated_at":"2024-03-28T20:11:09+00:00","made_of_food":false,"link_name":"Catering","target":null,"website_footer_label":"Catering","position":4},{"id":862815,"spot_id":95662,"url":"https://cafeveloce.com/-food-menu","cta_link_type":"food_menu","created_at":"2024-01-11T15:14:50+00:00","updated_at":"2024-03-28T20:11:09+00:00","made_of_food":false,"link_name":"","position":null},{"id":862814,"spot_id":95662,"url":"https://cafeveloce.com/-drink-menu","cta_link_type":"drink_menu","created_at":"2024-01-11T15:14:50+00:00","updated_at":"2024-03-28T20:11:08+00:00","made_of_food":false,"link_name":"","position":null},{"id":823018,"spot_id":95662,"url":"https://cafeveloce.com/-party","cta_link_type":"private_parties","created_at":"2023-11-02T20:49:25+00:00","updated_at":"2024-03-28T20:11:08+00:00","made_of_food":false,"link_name":"Private Parties","target":null,"website_footer_label":"Parties","position":3},{"id":823052,"spot_id":95662,"url":"https://tmt.spotapps.co/job-listings?spot_id=95662","cta_link_type":"job_listing","created_at":"2023-11-02T21:00:41+00:00","updated_at":"2024-03-28T20:11:09+00:00","made_of_food":false,"link_name":"Job Listing","target":null,"website_footer_label":"Jobs","position":2},{"id":866531,"spot_id":95662,"url":"https://cafeveloce.com/-events","cta_link_type":"events","created_at":"2024-01-18T11:03:29+00:00","updated_at":"2024-03-28T20:11:08+00:00","made_of_food":false,"link_name":"","position":null},{"id":840815,"spot_id":95662,"url":"https://resy.com/cities/sea/cafe-veloce?seats=2","cta_link_type":"reservations","created_at":"2023-12-01T11:40:56+00:00","updated_at":"2024-03-28T20:11:09+00:00","made_of_food":false,"link_name":"","target":null,"website_footer_label":"Reserve","position":1},{"id":865702,"spot_id":95662,"url":"https://cafeveloce.hrpos.heartland.us/item","cta_link_type":"gift_cards","created_at":"2024-01-17T06:57:54+00:00","updated_at":"2024-03-28T20:11:09+00:00","made_of_food":false,"link_name":"","target":null,"website_footer_label":"Gift Cards","position":null},{"id":826279,"spot_id":95662,"url":"https://cafeveloce.hrpos.heartland.us/menu","cta_link_type":"order","created_at":"2023-11-09T11:30:30+00:00","updated_at":"2024-03-28T20:11:09+00:00","made_of_food":false,"link_name":"Order","target":null,"website_footer_label":"Order","position":0}]; 932 933 function find_cta_link(href) { 934 for (var i=0; i< all_cta_links.length; i++){ 935 var cta_link = all_cta_links[i]; 936 if ( cta_link_matches_href(href, cta_link.url)){ 937 return cta_link; 938 } 939 } 940 } 941 942 function find_cta_links(href) { 943 var cta_links = [] 944 for (var i=0; i< all_cta_links.length; i++){ 945 var cta_link = all_cta_links[i]; 946 if ( cta_link_matches_href(href, cta_link.url)){ 947 cta_links.push(cta_link); 948 } 949 } 950 return cta_links; 951 } 952 953 954 function get_current_page_cta_link_types(){ 955 var types = []; 956 var cta_links = find_cta_links(document.location.href); 957 for (var i=0; i<cta_links.length; i++){ 958 types.push(cta_links[i].cta_link_type); 959 } 960 return types; 961 } 962 963 964 function is_food_menu_page(){ 965 var cta_link_types = get_current_page_cta_link_types(); 966 for (var i=0; i<cta_link_types.length; i++){ 967 if ('food_menu' == cta_link_types[i]) 968 return true; 969 } 970 return false;
971 } 972 973 974 function get_form_cat_from_cta(){ 975 var cta_link = find_cta_link(document.location.href); 976 if (cta_link == null) { 977 return null; 978 } 979 if (cta_link.cta_link_type == 'private_parties'){ 980 return 'private_party'; 981 }else if (cta_link.cta_link_type == 'reservations'){ 982 return 'reservation'; 983 }else if (cta_link.cta_link_type == 'catering'){ 984 return 'catering'; 985 }else if (cta_link.cta_link_type == 'job_listing'){ 986 return 'job_listings'; 987 }else if (cta_link.cta_link_type == 'gift_cards'){ 988 return 'gift_cards'; 989 } 990 return null; 991 } 992 993 function element_has_events_defined(elem){ 994 if ($._data(elem, "events") === undefined){ 995 return false; 996 } 997 return true; 998 } 999 1000 function create_ga_events_for_cta_clicks(){ 1001 if (typeof $ === 'function'){ 1002 1003 var cta_link_of_the_page = find_cta_link(location.href); 1004 1005 1006 $("a").each(function(index, elem){ 1007 var href = $(elem).attr('href'); 1008 1009 if (href === undefined ){ 1010 return; 1011 } 1012 1013 if (href.substring(0,4) == 'tel:'){ 1014 if (!element_has_events_defined(elem)){ // not footer links 1015 $(elem).on("click", function(){ 1016 universal_ga('send', 'event', { 1017 eventCategory: 'Button', 1018 eventAction: 'Click', 1019 eventLabel: 'Phone', 1020 transport: 'beacon' 1021 }); 1022 }); 1023 1024 if (cta_link_of_the_page){ 1025 $(elem).on("click", function(){ 1026 universal_ga('send', 'event', { 1027 eventCategory: 'Button', 1028 eventAction: 'Click', 1029 eventLabel: cta_link_of_the_page.cta_link_type + ' page phone', 1030 transport: 'beacon' 1031 }); 1032 }); 1033 } 1034 } else { 1035 if (cta_link_of_the_page){ 1036 $(elem).on("click", function(){ 1037 universal_ga('send', 'event', { 1038 eventCategory: 'Button', 1039 eventAction: 'Click', 1040 eventLabel: cta_link_of_the_page.cta_link_type + ' page phone footer', 1041 transport: 'beacon' 1042 }); 1043 }); 1044 } 1045 } 1046 1047 1048 }else{ 1049 var cta_link = find_cta_link(href); 1050 if (elem.className != null && elem.className.indexOf("bottom-link") > -1){ 1051 // console.log("bottom link detected"); 1052 }else{ 1053 if (cta_link != null){ 1054 $(elem).on("click", function(){ 1055 universal_ga('send', 'event', { 1056 eventCategory: 'Website Link', 1057 eventAction: 'Click', 1058 eventLabel: cta_link.cta_link_type, 1059 transport: 'beacon' 1060 }); 1061 }); 1062 } 1063 } 1064 } 1065 1066 1067 }); 1068 } 1069 } 1070 1071 if (typeof angular === "undefined") { 1072 create_ga_events_for_cta_clicks(); 1073 } else { 1074 angular.element(document).ready(function () { 1075 create_ga_events_for_cta_clicks(); 1076 }); 1077 } 1078 1079 1080 function triggerShowFooterEvents(){ 1081 if (window.screen.availWidth < 768){ 1082 universal_ga('send', 'event', { 1083 eventCategory: 'Mobile Footer', 1084 eventAction: 'View', 1085 eventLabel: '', 1086 transport: 'beacon' 1087 }); 1088 } 1089 } 1090 1091 1092 1093 1094 //////////// 1095 function smartFooterV2() 1096 { 1097 var list= document.getElementsByClassName("bottom-list-item"); 1098 if (!list) return; 1099 1100 if (document.getElementById("bottom-navbar") == null){ 1101 return; 1102 } 1103 1104 var bottomNav = document.querySelector('#bottom-navbar .navbar-nav'); 1105 var footerLinkPaddingLeft = $('#bottom-navbar .navbar-nav li a').css('padding-left'); 1106 var footerLinkPaddingRight = $('#bottom-navbar .navbar-nav li a').css('padding-right'); 1107 1108 bottomNav.innerHTML = ''; 1109 var linksWithPosition = all_cta_links.filter(e => e.position != null && e.position >= 0); 1110 linksWithPosition.sort(function(a,b) { 1111 return a.position - b.position; 1112 }); 1113 1114 var footerLinkStyle = (footerLinkPaddingLeft == '0px' || footerLinkPaddingRight == '0px' ? 'style="padding-left: 8px; padding-right: 8px;"' : ''); 1115 1116 linksWithPosition.forEach((e, i) => { 1117 var target = e.target || getUrlTarget(e.url); 1118 bottomNav.insertAdjacentHTML('beforeend', 1119 `<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>`); 1120 }) 1121 1122 var intervalCount = 0 1123 var interval = setInterval(() => { 1124 if(intervalCount == 50){ 1125 clearInterval(interval); 1126 } 1127 removeOverflowingFooterLinks(); 1128 intervalCount ++; 1129 }, 200); 1130 1131 $('.smart-footer-link').on("click", function(){ 1132 if (typeof shUrlParams !== "undefined" && shUrlParams['source'] === undefined){ 1133 shUrlParams['source'] = 'footer'; 1134 sessionStorage.setItem('shUrlParams', JSON.stringify(shUrlParams)); 1135 } 1136 1137 var visibleLinks = $('.smart-footer-link').map(function (e) { 1138 return $(this).data('type'); 1139 }).toArray().join(','); 1140 1141 universal_ga('send', 'event', { 1142 eventCategory: 'Button', 1143 eventAction: 'Click_footer_2', 1144 eventLabel: "type:" + $(this).data('type') + "|position:" + $(this).data('position') + "|visible:" + visibleLinks, 1145 transport: 'beacon' 1146 }); 1147 }); 1148 } 1149 1150 function removeOverflowingFooterLinks(){ 1151 var bottomNavLinks = document.querySelectorAll('#bottom-navbar .navbar-nav li'); 1152 var width_sum = 0; 1153 1154 bottomNavLinks.forEach(e => { 1155 width_sum += e.getBoundingClientRect().width; 1156 if ((width_sum) > window.innerWidth) { 1157 console.log(`%cLink %c${e.textContent} %cdeleted couldn't fit screen`,"color: #fff;background: #202124;", "background: red;color: #fff", "color: #fff;background: #202124;"); 1158 e.remove(); 1159 } 1160 }); 1161 } 1162 1163 function getUrlTarget(url){ 1164 if(url.startsWith('tel')){ 1165 return '_self'; 1166 } 1167 if(url.startsWith('/') || url.includes('tmt.spotapps.co') || url.includes(window.location.host)){ 1168 return '_self'; 1169 } 1170 return '_blank'; 1171 } 1172 1173 function npb() 1174 { 1175 var list= document.getElementsByClassName("bottom-list-item"); 1176 if (!list) return; 1177 1178 if (document.getElementById("bottom-navbar") == null){ 1179 return; 1180 } 1181 1182 var url = "" 1183 for (var i=0; i < all_cta_links.length; i++) 1184 { 1185 if (all_cta_links[i].cta_link_type == "order"){ 1186 url = all_cta_links[i].url; 1187 } 1188 } 1189 1190 if ( url == ""){ 1191 return; 1192 } 1193 1194 for (i=0; i < list.length; i++) 1195 { 1196 console.log(cta_link_matches_href(list[i].firstChild.href, url)); 1197 if (cta_link_matches_href(list[i].firstChild.href,url)) return; 1198 1199 }; 1200 1201 var item = list[list.length-1] 1202 document.getElementById("bottom-navbar").getElementsByClassName("nav navbar-nav")[0].appendChild(item.cloneNode(true)); 1203 var width_sum = 0; 1204 for (i=0; i < list.length; i++) { 1205 width_sum += list[i].getBoundingClientRect().width; 1206 } 1207 1208 var item = list[list.length-1] 1209 if ((width_sum - 10) > window.innerWidth) { item.parentNode.removeChild(item); console.log("link deleted couldn't fit screen"); return; } 1210 1211 item.firstChild.text = "Order"; 1212 item.firstChild.href = url; 1213 item.firstChild.id = "bottom_link_" + list.length; 1214 1215 $(item.firstChild).on("click", function(){ 1216 1217 if (typeof shUrlParams !== "undefined" && shUrlParams['source'] === undefined){ 1218 shUrlParams['source'] = 'footer'; 1219 sessionStorage.setItem('shUrlParams', JSON.stringify(shUrlParams)); 1220 } 1221 1222 universal_ga('send', 'event', { 1223 eventCategory: 'Button', 1224 eventAction: 'Click', 1225 eventLabel: 'Plan B-2 Order', 1226 transport: 'beacon' 1227 }); 1228 }); 1229 1230 1231 } 1232 1233function activateSmartFooter(){ 1234 var smart_footer_active = true; 1235 var smart_footer_version = 2; 1236 var man_bottom_active = false;
1237 if(window.location.hash == '#smartFooterV2=enabled'){ 1238 smartFooterV2(); 1239 return; 1240 } 1241 if (smart_footer_active && !man_bottom_active){ 1242 if(smart_footer_version == 2 ){ 1243 smartFooterV2(); 1244 }else { 1245 npb(); 1246 } 1247 } 1248 } 1249 1250 activateSmartFooter(); 1251 1252 var corona_config_str = ''; 1253 var corona_config = corona_config_str != '' ? JSON.parse('') : null; 1254 1255 1256 //corona instuctions 1257 function show_corona_instructions(text, phone, btnText){ 1258 //format to US number 1259 var match = phone.match(/^(\d{3})(\d{3})(\d{4})$/); 1260 1261 if(corona_config.shopping_cart_type == "TMT" && corona_config.shopping_cart_active == true) { 1262 var linkLocation = "https://tmt.spotapps.co/ordering-menu/?spot_id="+corona_config.spot_id+"&images=yes&accordion=true"; 1263 var btnLinkLocation = "https://tmt.spotapps.co/ordering-menu/?spot_id="+corona_config.spot_id+"&images=yes&accordion=true"; 1264 }else { 1265 var linkLocation = 'tel:+1'+phone+''; 1266 var btnLinkLocation = 'tel:+1'+ match[1] + '-' + match[2] + '-' + match[3] +'' 1267 } 1268 var appendPhone = 'tel:+1'+phone+''; 1269 //inject html content 1270 if ($('.food-menu-nav').length) { 1271 //new template 1272 var pageEl = $('.food-menu-nav').css('margin','20px auto 10px auto'); 1273 var textColor = rgb2hex($('.section-header').css('color')); 1274 var linkColor = rgb2hex($('.food-menu-nav-item.active').css('background-color')); 1275 var fontSize = parseInt($('.food-menu-nav-item').css('font-size')); 1276 fontSize = fontSize + Math.round(fontSize * 0.25); 1277 1278 // 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>'; 1279 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>'; 1280 1281 }else { 1282 //old template 1283 var pageEl = $('.tabnav'); 1284 var textColor = rgb2hex($('.menu-item-name-traditional').css('color')); 1285 var linkColor = rgb2hex($('.style-traditional .tabnav .nav>li.active>a').css('color')); 1286 1287 var linkTextColor = getContrast50(linkColor); 1288 var fontSize = parseInt($('.menu-item-name-traditional').css('font-size')); 1289 fontSize = fontSize + Math.round(fontSize * 0.25); 1290 var textTransform = $('.style-traditional .tabnav .nav>li>a').css('text-transform'); 1291 1292 // 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>';
1293 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>'; 1294 1295 } 1296 //html content 1297 pageEl.prepend(html); 1298 } 1299 1300 function rgb2hex(rgb) { 1301 if(typeof rgb !== "undefined"){ 1302 rgbColor = rgb.match(/^rgb\((\d+),\s*(\d+),\s*(\d+)\)$/); 1303 if (!rgbColor) { 1304 rgba = rgb.match(/^rgba?\((\d+),\s*(\d+),\s*(\d+)(,\s*\d+\.*\d+)?\)$/); 1305 return "#" + hex(rgba[1]) + hex(rgba[2]) + hex(rgba[3]); 1306 } 1307 function hex(x) { 1308 return ("0" + parseInt(x).toString(16)).slice(-2); 1309 } 1310 return "#" + hex(rgbColor[1]) + hex(rgbColor[2]) + hex(rgbColor[3]); 1311 } 1312 return rgb; 1313 } 1314 1315 function getContrast50(hexcolor){ 1316 return (parseInt(hexcolor, 16) > 0xffffff/2) ? '#000':'#fff'; 1317 } 1318 1319 function show_corona_sidebar_instructions(text, phone){ 1320 //format to US number 1321 var match = phone.match(/^(\d{3})(\d{3})(\d{4})$/); 1322 var divWidth = 230; 1323 var top = 50; 1324 var linkSize = '1.6em'; 1325 var pSize = $('p').css('font-size'); 1326 var appendPhone = 'tel:+1'+phone+''; 1327 1328 if ($(window).width() < 1600) 1329 var top = 30; 1330 if ($(window).width() < 1200){ 1331 var divWidth = 180; 1332 var linkSize = '1.4em'; 1333 var pSize ='1.1em'; 1334 } 1335 1336 if($('.food-menu-nav').length){ //new template 1337 var textColor = $('.food-menu-nav-item.active').css('color'); 1338 var linkColor = $('.food-menu-nav-item.active').css('background-color'); 1339 1340 var linkTextColor = $('.food-menu-nav-item.active').css('color'); 1341 var parent = $('.food-menu-page'); 1342 } 1343 else { //old template 1344 var textColor = $('.menu-item-name-traditional').css('color'); 1345 var linkColor = $('.style-traditional .tabnav .nav>li.active>a').css('color'); 1346 var parent = $('.food-menu').length ? $('.food-menu') : $('.drink-menu'); 1347 var linkTextColor = getContrast50(linkColor); 1348 } 1349 1350 // $(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>'); 1351 $(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>'); 1352 1353 //check if resolution is bigger than tablet resolution 1354/* if ($(window).width() > 991) { 1355 //detect scroll 1356 window.onscroll = function (e) { 1357 if ($(window).scrollTop() == 0) { 1358 $('#corona-instructions-sidebar').hide(); 1359 }else { 1360 $('#corona-instructions-sidebar').show(); 1361 } 1362 } 1363 } */ 1364 } 1365 1366 function check_corona_config(config){ 1367 console.log(config) 1368 if (config) { 1369 if (config.instructions_on_food_page && config.food_page_instruction_text && config.food_page_instruction_phone) { 1370 if (!config.promote_deliveries && config.promote_pick_up) { 1371 var btnText = 'Call For Pick Up'; 1372 } 1373 if (config.promote_deliveries && !config.promote_pick_up) { 1374 var btnText = 'Call For Delivery'; 1375 } 1376 if (config.promote_deliveries && config.promote_pick_up) { 1377 var btnText = 'Call For Pick Up Or Delivery'; 1378 } 1379 1380 if(typeof btnText !== "undefined"){ // check if pick up or delivery are true 1381 if(config.shopping_cart_type == "TMT" && config.shopping_cart_active == true) { 1382 var btnText = 'ORDER NOW'; 1383 if($('.food-menu-nav').length){ //new template 1384 var textColor = rgb2hex($('.section-header').css('color')); 1385 var linkColor = rgb2hex($('.food-menu-nav-item.active').css('background-color')); 1386 var fontSize = parseInt($('.food-menu-nav-item').css('font-size')); 1387 fontSize = fontSize + Math.round(fontSize * 0.25); 1388 } 1389 else { //old template 1390 var textColor = rgb2hex($('.menu-item-name-traditional').css('color')); 1391 var linkColor = rgb2hex($('.style-traditional .tabnav .nav>
1391li.active>a').css('color')); 1392 1393 var linkTextColor = getContrast50(linkColor); 1394 var fontSize = parseInt($('.menu-item-name-traditional').css('font-size')); 1395 fontSize = fontSize + Math.round(fontSize * 0.25); 1396 } 1397 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); 1398 show_corona_sidebar_instructions(btnText, config.food_page_instruction_phone); 1399 } else { 1400 show_corona_instructions(config.food_page_instruction_text, config.food_page_instruction_phone, btnText); 1401 show_corona_sidebar_instructions(btnText, config.food_page_instruction_phone); 1402 } 1403 1404 } 1405 } 1406 } 1407 } 1408 1409 1410 if (is_food_menu_page() && !window.location.search.includes("contactless=true")){ 1411 $( document ).ready(function() { 1412 setTimeout(function(){ 1413 check_corona_config(corona_config); 1414 }, 300); 1415 }); 1416 } 1417 1418 1419 1420 function isPhone(phone){ 1421 var regex = /^(\+\d{1,2}\s?)?\(?\d{3}\)?[\s.-]?\d{3}[\s.-]?\d{4}$/; 1422 return regex.test(phone); 1423 } 1424 1425 function sendEmail_MT (input_id) { 1426 const $loader = $("[data-id=newsletter-widget-2] .sph-loading-img"); 1427 1428 const $step = { 1429 form: $("[data-id=newsletter-widget-2] .sph-email-form"), 1430 message: $("[data-id=newsletter-widget-2] .sph-response-message"), 1431 } 1432 1433 const $field = { 1434 email: $("[data-id=newsletter-widget-2] #sph-newsletter-input-" + input_id), 1435 phone: $("[data-id=newsletter-widget-2] #sph-newsletter-phone-" + input_id), 1436 consent: $("[data-id=newsletter-widget-2] #sph-newsletter-checkbox-phone-" + input_id), 1437 }; 1438 1439 const $error = { 1440 email: $("[data-id=newsletter-widget-2] #sph-newsletter-email-error-" + input_id), 1441 phone: $("[data-id=newsletter-widget-2] #sph-newsletter-phone-error-" + input_id), 1442 }; 1443 1444 if ($field.email.val().trim() === "") { 1445 $error.email 1446 .html("This field is required") 1447 .show(); 1448 } 1449 else if (!isEmail($field.email.val().trim())) { 1450 $error.email 1451 .html("Please use the format â[email protected]â") 1452 .show(); 1453 } else { 1454 $error.email 1455 .html("") 1456 .hide(); 1457 } 1458 1459 if ($field.consent.is(':checked') && $field.phone.val().trim() === "") { 1460 $error.phone 1461 .html("This field is required") 1462 .show(); 1463 } else if ($field.phone.val().trim().length > 0 && !isPhone($field.phone.val().trim())) { 1464 $error.phone 1465 .html("The phone number must contain 10 digits") 1466 .show(); 1467 } else { 1468 $error.phone 1469 .html("") 1470 .hide(); 1471 } 1472 1473 const errorField = $step.form.find('.sh-form-error:visible'); 1474 1475 if (errorField.length > 0) { 1476 const input = errorField.first().next(); 1477 1478 document.activeElement.blur(); 1479 1480 setTimeout(() => { 1481 input.focus(); 1482 }, 160) 1483 1484 return; 1485 } 1486 1487 $loader 1488 .show() 1489 .prev() 1490 .hide(); 1491 1492 $.ajax({ 1493 method: "POST", 1494 url: "https://www.spothopperapp.com/api/spots/95662/contacts/add_with_texting_permission", 1495 crossDomain: true, 1496 dataType: 'json', 1497 data: { 1498 email: $field.email.val().trim(), 1499 phone: $field.phone.val().trim(), 1500 texting_permission: $field.consent.is(':checked'), 1501 }, 1502 success: function (data) { 1503 afterRequestSubmission(data); 1504 }, 1505 error: function () { 1506 afterRequestSubmission("Something went wrong. Please try again later."); 1507 } 1508 }); 1509 1510 function afterRequestSubmission (data) { 1511 $step.form.hide(); 1512 1513 $step.message 1514 .html(data) 1515 .show() 1516 .trigger('focus'); 1517 } 1518 } 1519</script>
1519<script>function addPromotionParamsToTMTLinks() 1520{ 1521 if (sessionStorage.getItem('shUrlParams')) { 1522 let shParams = JSON.parse(sessionStorage.getItem('shUrlParams')); 1523 if (!Object.keys(shParams).length) 1524 return; 1525 if(!shParams.source) 1526 return; 1527 $('a').each(function () { 1528 if (this.href.includes('tmt.spotapps.co')) { 1529 if(this.href.includes('&source=') || this.href.includes('&destination=') || this.href.includes('&promotion=')) 1530 return; 1531 1532 this.href = this.href + '&source=' + shParams.source; 1533 if(shParams.destination) 1534 this.href = this.href + '&destination=' + shParams.destination; 1535 if(shParams.promotion) 1536 this.href = this.href + '&promotion=' + shParams.promotion; 1537 if(shParams.fb_post_id) 1538 this.href = this.href + '&fb_post_id=' + shParams.fb_post_id; 1539 if(shParams.email_post_id) 1540 this.href = this.href + '&email_post_id=' + shParams.email_post_id; 1541 } 1542 }) 1543 } 1544} 1545setTimeout(function() { 1546 addPromotionParamsToTMTLinks(); 1547 addFooterToSourceParam(); 1548},600) 1549 1550function addFooterToSourceParam() 1551{ 1552 $('.bottom-link').each(function (){ 1553 if(shouldAddSourceParam(this.href)) 1554 this.href = this.href + '&source=footer'; 1555 }) 1556 $('#sh-multiple-links-content-holder a').each(function (){ 1557 if(shouldAddSourceParam(this.href)) 1558 this.href = this.href + '&source=footer'; 1559 }) 1560} 1561function shouldAddSourceParam(link){ 1562 if (link.includes('tmt.spotapps.co') && !link.includes('&source=')){ 1563 return true; 1564 } 1565 return false; 1566} 1567</script>
1567<script> 1568;(async () => { 1569if (typeof window.focusTrap === 'undefined') { 1570 await getScript('https://unpkg.com/tabbable/dist/index.umd.js'); 1571 await getScript('https://unpkg.com/focus-trap/dist/focus-trap.umd.js'); 1572} 1573 1574document.querySelectorAll('.modal').forEach((element) => { 1575 const trap = window.focusTrap?.createFocusTrap(element, { 1576 allowOutsideClick: true, 1577 }); 1578 1579 $(element).on('shown.bs.modal', () => { 1580 trap?.activate(); 1581 }); 1582 1583 $(element).on('hidden.bs.modal', () => { 1584 trap?.deactivate(); 1585 }); 1586}); 1587 1588async function getScript (source) { 1589 return new Promise((resolve, reject) => { 1590 const script = document.createElement('script'); 1591 script.src = source; 1592 script.async = true; 1593 1594 script.onload = resolve; 1595 script.onerror = reject; 1596 1597 document.head.appendChild(script); 1598 }); 1599} 1600})(); 1601</script>
1601<script src="https://wcache-plugins.spotapps.co/production/wcpl_bootstrap_ada_fix/wcpl_bootstrap_ada_fix.js"></script>
1601<link href="https://wcache-plugins.spotapps.co/production/wcpl_bday_club/wcpl_bday_club.css" rel="stylesheet" media="screen"/>
1601<script src="https://wcache-plugins.spotapps.co/production/wcpl_bday_club/wcpl_bday_club.js"></script>
1601<script src="https://wcache-plugins.spotapps.co/production/wcpl_ga_tracking/wcpl_ga_tracking.js"></script>
1601<script src="https://wcache-plugins.spotapps.co/production/wcpl_media_controls/script.js"></script>
1601<link href="https://wcache-plugins.spotapps.co/production/wcpl_website_editor_interpreter/website_interpreter_helper_style.css" rel="stylesheet" media="screen"/>
1601<script>var changes_log_array = {};</script>
1601<script src="https://wcache-plugins.spotapps.co/production/wcpl_website_editor_interpreter/website_interpreter.js"></script>
1601</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.