1<!DOCTYPE html> 2�<html lang="en"><head><link rel="canonical" href="https://rochesterbistro.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-0R2Z0KB93S'); 8 gtag('config', 'G-VG24VK2VKT'); 9 </script>
9<!-- wcache 2026-09-29 15:39:33.746776Z --><!-- 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 Rochester Bistro, we're committed to web accessibility for all users. Read our accessibility statement or contact us for help."/><meta content="" name="author"/><meta content="Rochester Bistro -" property="og:title"/><meta content="website" property="og:type"/><meta content="http://rochesterbistro.com/a-article" property="og:url"/><meta content="..." property="og:description"/><meta content="https://static.spotapps.co/website_images/ab_websites/119755_website_v1/specials_page.jpg" property="og:image"/><meta content="Firey Pasta on a set table side view" property="og:image:alt"/><meta content="image/png" property="og:image:type"/><meta content="1600885733507029" property="fb:app_id"/><meta content="summary_large_image" name="twitter:card"/><meta content="@RochesterBistro" name="twitter:site"/><meta content="Rochester Bistro -" name="twitter:title"/><meta content="..." name="twitter:description"/><meta content="https://static.spotapps.co/website_images/ab_websites/119755_website_v1/specials_page.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/119755_website_v1/favicons/apple-touch-icon.png" rel="apple-touch-icon" sizes="180x180"/><link href="https://static.spotapps.co/website_images/ab_websites/119755_website_v1/favicons/favicon-32x32.png" rel="icon" sizes="32x32" type="image/png"/><link href="https://static.spotapps.co/website_images/ab_websites/119755_website_v1/favicons/favicon-16x16.png" rel="icon" sizes="16x16" type="image/png"/><link href="https://static.spotapps.co/website_images/ab_websites/119755_website_v1/favicons/site.webmanifest" rel="manifest"/><link color="#5bbad5" href="https://static.spotapps.co/website_images/ab_websites/119755_website_v1/favicons/safari-pinned-tab.svg" rel="mask-icon"/><link href="https://static.spotapps.co/website_images/ab_websites/119755_website_v1/favicons/favicon.ico" rel="shortcut icon"/><meta content="#da532c" name="msapplication-TileColor"/><meta content="https://static.spotapps.co/website_images/ab_websites/119755_website_v1/favicons/browserconfig.xml" name="msapplication-config"/><meta content="#ffffff" name="theme-color"/><link href="https://static.spotapps.co/web/rochesterbistro--com/lib/bootstrap/css/bootstrap.min.css" rel="stylesheet"/><link href="https://static.spotapps.co/web/rochesterbistro--com/lib/custom-scrollbar/jquery.mCustomScrollbar.css" rel="stylesheet"/><link href="https://static.spotapps.co/web/rochesterbistro--com/lib/font-awesome-4.7.0/css/font-awesome.min.css" rel="stylesheet"/><link href="https://static.spotapps.co/web/rochesterbistro--com/lib/hover_css/css/hover-min.css" rel="stylesheet"/><link href="https://static.spotapps.co/web/rochesterbistro--com/lib/owlcarousel/owl.carousel.min.css" rel="stylesheet"/><link href="https://static.spotapps.co/web/rochesterbistro--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/rochesterbistro--com/css/style.css?version2" id="mainCSS" rel="stylesheet"/><link href="https://static.spotapps.co/web/rochesterbistro--com/css/bottom_navigation_v1.css?v1780915503" rel="stylesheet"/><link href="css/custom.css?v1780915503&domain=rochesterbistro.com" rel="stylesheet"/><link href="https://static.spotapps.co/web/rochesterbistro--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/rochesterbistro--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+6) { 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: transparent; 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: #fff; 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: #fff; 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: #fff; 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: transparent; 268 color: #fff; 269 background-color: rgba(0, 0, 0, 0.6); 270 color: #fff; 271 } 272.nav-scroll li.drop-down-link .sub-menu { 273 background-color: #fff; 274 color: #000; 275} 276.drink-menu li.drop-down-link .sub-menu { 277 background-color: #fff; 278 color: #000; 279} 280.drink-menu .nav-scroll li.drop-down-link .sub-menu { 281 background-color: #fff; 282 color: #000; 283} 284li.drop-down-link .sub-menu a, 285li.drop-down-link div.drop-down { 286 color: #fff; 287} 288.nav-scroll li.drop-down-link .sub-menu a, 289.nav-scroll li.drop-down-link div.drop-down { 290 color: #000; 291} 292.drink-menu li.drop-down-link .sub-menu a, 293.drink-menu li.drop-down-link div.drop-down { 294 color: #000; 295} 296.drink-menu .nav-scroll li.drop-down-link .sub-menu a, 297.drink-menu .nav-scroll li.drop-down-link div.drop-down { 298 color: #000; 299} 300 301.navbar-regular.nav-v6 .navbar-nav>li>a, 302.navbar-regular.nav-v6 .navbar-nav>li>a:hover, 303.navbar-regular.nav-v6 .navbar-nav>.active>a, 304.navbar-regular.nav-v6 .navbar-nav>.active>a:focus, 305.navbar-regular.nav-v6 .navbar-nav>.active>a:hover{ 306 border: none; 307 background-color: transparent; 308 color: #F6D1C8; 309} 310.navbar-regular.nav-v6 .navbar-nav>li>a { 311 color: #fff; 312} 313.drink-menu .navbar.nav-v6 .navbar-nav>li>a { 314 color: #000; 315} 316.drink-menu .navbar-regular.nav-v6 .navbar-nav>li>a:hover, 317.drink-menu .navbar-regular.nav-v6 .navbar-nav>.active>a, 318.drink-menu .navbar-regular.nav-v6 .navbar-nav>.active>a:focus, 319.drink-menu .navbar-regular.nav-v6 .navbar-nav>.active>a:hover {
320 color: #581D21; 321} 322 323li.drop-down-link .sub-menu a:hover, 324li.drop-down-link .sub-menu a:focus { 325 color: #F6D1C8; 326} 327.drink-menu li.drop-down-link .sub-menu a:hover, 328.drink-menu li.drop-down-link .sub-menu a:focus { 329 color: #581D21; 330} 331 332.drink-menu .navbar.nav-v7 .navbar-nav>li>a { 333 color: #000; 334} 335 336.navbar-regular.nav-v6 .navbar-toggle .icon-bar { 337 background-color: #fff; 338} 339.drink-menu .navbar-regular.nav-v6 .navbar-toggle .icon-bar { 340 background-color: #000; 341} 342.navbar-regular.nav-v6 [aria-expanded="true"].navbar-toggle .icon-bar { 343 background-color: #F6D1C8; 344} 345.drink-menu .navbar-regular.nav-v6 [aria-expanded="true"].navbar-toggle .icon-bar { 346 background-color: #581D21; 347} 348.navbar-regular.nav-v6.nav-scroll .navbar-nav>li>a, 349.navbar-regular.nav-v6.nav-scroll .navbar-nav>li>a:hover, 350.navbar-regular.nav-v6.nav-scroll .navbar-nav>.active>a, 351.navbar-regular.nav-v6.nav-scroll .navbar-nav>.active>a:focus, 352.navbar-regular.nav-v6.nav-scroll .navbar-nav>.active>a:hover { 353 border: none; 354 color: #581D21; 355} 356.navbar-regular.nav-v6.nav-scroll .navbar-nav>li>a { 357 color: #000; 358} 359.drink-menu .navbar.nav-v6.nav-scroll .navbar-nav>li>a { 360 border: none; 361 color: #000; 362} 363.drink-menu .navbar-regular.nav-v6.nav-scroll .navbar-nav>li>a:hover, 364.drink-menu .navbar-regular.nav-v6.nav-scroll .navbar-nav>.active>a, 365.drink-menu .navbar-regular.nav-v6.nav-scroll .navbar-nav>.active>a:focus, 366.drink-menu .navbar-regular.nav-v6.nav-scroll .navbar-nav>.active>a:hover { 367 color: #581D21; 368} 369 370.nav-scroll li.drop-down-link .sub-menu a:hover, 371.nav-scroll li.drop-down-link .sub-menu a:focus { 372 color: #581D21; 373} 374.drink-menu .nav-scroll li.drop-down-link .sub-menu a:hover, 375.drink-menu .nav-scroll li.drop-down-link .sub-menu a:focus { 376 color: #581D21; 377} 378 379.navbar-regular.nav-v6.nav-scroll .navbar-toggle .icon-bar { 380 background-color: #000; 381} 382.drink-menu .navbar-regular.nav-v6.nav-scroll .navbar-toggle .icon-bar { 383 background-color: #000; 384} 385.navbar-regular.nav-v6.nav-scroll [aria-expanded="true"].navbar-toggle .icon-bar { 386 background-color: #581D21; 387} 388.drink-menu .navbar-regular.nav-v6.nav-scroll [aria-expanded="true"].navbar-toggle .icon-bar { 389 background-color: #581D21; 390} 391.navbar.nav-v6 .header-logo-text{ 392 color: #fff; 393} 394.navbar.nav-v6.nav-scroll .header-logo-text{ 395 color: #000; 396} 397.navbar.nav-v6 .social-icon{ 398 color: #fff; 399} 400.navbar.nav-v6.nav-scroll .social-icon{ 401 color: #000; 402} 403.navbar.nav-v6 .social-square .contact-icon:hover { 404 color: #fff; 405 background-color: #F6D1C8; 406} 407.navbar.nav-v6.nav-scroll .social-square .contact-icon:hover { 408 color: #000; 409 background-color: #581D21; 410} 411 412.drink-menu .navbar.nav-v6 .header-logo-text{ 413 color: #000; 414} 415.drink-menu .navbar.nav-v6.nav-scroll .header-logo-text{ 416 color: #000; 417} 418.drink-menu .navbar.nav-v6 .social-icon{ 419 color: #000; 420} 421.drink-menu .navbar.nav-v6.nav-scroll .social-icon{ 422 color: #000; 423} 424.drink-menu .navbar.nav-v6 .social-square .contact-icon:hover { 425 color: #000; 426 background-color: #581D21; 427} 428.drink-menu .navbar.nav-v6.nav-scroll .social-square .contact-icon:hover { 429 color: #000; 430 background-color: #581D21; 431} 432.navbar.nav-v6 .navbar-tabs { 433 border-bottom: 1px solid transparent; 434} 435.navbar.nav-v6.nav-scroll .navbar-tabs { 436 border-bottom: 1px solid transparent; 437} 438.drink-menu .navbar.nav-v6 .navbar-tabs { 439 border-bottom: 1px solid transparent; 440} 441.drink-menu .navbar.nav-v6.nav-scroll .navbar-tabs { 442 border-bottom: 1px solid transparent; 443} 444@media (max-width: 767px) { 445 .navbar.nav-v6 { 446 background-color: transparent; 447 -webkit-box-shadow: 0px 4px 4px 0px rgba(0,0,0,0); 448 -moz-box-shadow: 0px 4px 4px 0px rgba(0,0,0,0); 449 box-shadow: 0px 4px 4px 0px rgba(0,0,0,0); 450 } 451 .navbar.nav-v6.nav-scroll { 452 background-color: #fff; 453 -webkit-box-shadow: 0px 4px 4px 0px rgba(0,0,0,0.2); 454 -moz-box-shadow: 0px 4px 4px 0px rgba(0,0,0,0.2); 455 box-shadow: 0px 4px 4px 0px rgba(0,0,0,0.2); 456 } 457 .drink-menu .navbar.nav-v6 { 458 background-color: #fff; 459 -webkit-box-shadow: 0px 4px 4px 0px rgba(0,0,0,0); 460 -moz-box-shadow: 0px 4px 4px 0px rgba(0,0,0,0); 461 box-shadow: 0px 4px 4px 0px rgba(0,0,0,0); 462 } 463 .drink-menu .navbar.nav-v6.nav-scroll { 464 background-color: #fff; 465 -webkit-box-shadow: 0px 4px 4px 0px rgba(0,0,0,0.2); 466 -moz-box-shadow: 0px 4px 4px 0px rgba(0,0,0,0.2); 467 box-shadow: 0px 4px 4px 0px rgba(0,0,0,0.2); 468 } 469 .navbar.nav-v6 .container, 470 .navbar.nav-v6.nav-scroll .container, 471 .drink-menu .navbar.nav-v6 .container, 472 .drink-menu .navbar.nav-v6.nav-scroll .container { 473 border-bottom: none; 474 } 475 .navbar.nav-v6 .navbar-header { 476 border-bottom: 1px solid transparent; 477 } 478 .navbar.nav-v6.nav-scroll .navbar-header { 479 border-bottom: 1px solid transparent; 480 } 481 .drink-menu .navbar.nav-v6 .navbar-header { 482 border-bottom: 1px solid transparent; 483 } 484 .drink-menu .navbar.nav-v6.nav-scroll .navbar-header { 485 border-bottom: 1spx solid transparent; 486 } 487 li.drop-down-link .sub-menu, 488 .drink-menu li.drop-down-link .sub-menu { 489 background-color: transparent; 490 } 491 .nav-scroll li.drop-down-link .sub-menu, 492 .drink-menu .nav-scroll li.drop-down-link .sub-menu { 493 background-color: transparent; 494 } 495 .navbar-regular.nav-v6 .navbar-nav>li>a { 496 background-color: rgba(0, 0, 0, 0.6); 497 } 498 .navbar-regular.nav-v6.nav-scroll .navbar-nav>li>a { 499 background-color: transparent; 500 } 501 502 li.drop-down-link .sub-menu, 503 .navbar-regular.nav-v6 li.drop-down-link div.drop-down, 504 .drink-menu li.drop-down-link .sub-menu { 505 background-color: rgba(0, 0, 0, 0.6); 506 } 507 .nav-scroll li.drop-down-link .sub-menu, 508 .navbar-regular.nav-v6.nav-scroll li.drop-down-link div.drop-down, 509 .drink-menu .nav-scroll li.drop-down-link .sub-menu { 510 background-color: transparent; 511 } 512 .navbar-regular.nav-v6 .navbar-nav>li>a:hover, 513 .navbar-regular.nav-v6 .navbar-nav>.active>a, 514 .navbar-regular.nav-v6 .navbar-nav>.active>a:focus, 515 .navbar-regular.nav-v6 .navbar-nav>.active>a:hover{ 516 background-color: #F6D1C8; 517 color: #fff; 518 } 519 .navbar-regular.nav-v6.nav-scroll .navbar-nav>li>a:hover, 520 .navbar-regular.nav-v6.nav-scroll .navbar-nav>.active>a, 521 .navbar-regular.nav-v6.nav-scroll .navbar-nav>.active>a:focus, 522 .navbar-regular.nav-v6.nav-scroll .navbar-nav>.active>a:hover{ 523 background-color: #581D21; 524 color: #000; 525 } 526 .drink-menu .navbar-regular.nav-v6 .navbar-nav>li>a:hover, 527 .drink-menu .navbar-regular.nav-v6 .navbar-nav>.active>a, 528 .drink-menu .navbar-regular.nav-v6 .navbar-nav>.active>a:focus, 529 .drink-menu .navbar-regular.nav-v6 .navbar-nav>.active>a:hover{ 530 background-color: #581D21; 531 color: #000; 532 } 533 .drink-menu .navbar-regular.nav-v6.nav-scroll .navbar-nav>li>a:hover, 534 .drink-menu .navbar-regular.nav-v6.nav-scroll .navbar-nav>.active>a, 535 .drink-menu .navbar-regular.nav-v6.nav-scroll .navbar-nav>.active>a:focus, 536 .drink-menu .navbar-regular.nav-v6.nav-scroll .navbar-nav>.active>a:hover{ 537 background-color: #581D21; 538 color: #000; 539 } 540 541 .navbar-regular.nav-v6 li.drop-down-link.active .drop-down .fa.fa-angle-up { 542 color: #F6D1C8; 543 } 544 .navbar-regular.nav-v6.nav-scroll li.drop-down-link.active .drop-down .fa.fa-angle-up { 545 color: #581D21; 546 } 547 .drink-menu .navbar-regular.nav-v6 li.drop-down-link.active .drop-down .fa.fa-angle-up { 548 color: #581D21; 549 } 550 .drink-menu .navbar-regular.nav-v6.nav-scroll li.drop-down-link.active .drop-down .fa.fa-angle-up { 551 color: #581D21; 552 } 553} 554</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="Rochester Bistro logo top" class="img-responsive logo-top logo-image" src="https://static.spotapps.co/website_images/ab_websites/119755_website_v1/logo.png"/></div><div class="header-logo logo-scroll"><img alt="Rochester Bistro logo scroll" class="img-responsive logo-scroll logo-image" src="https://static.spotapps.co/website_images/ab_websites/119755_website_v1/logo.png"/></div></li><li class="nav-tab nav-menu-page"><a class="" href="/rochester-rochester-bistro-food-menu" id="/Rochester-Rochester-Bistro-food-menu_link" target="_self"> 555 Menu 556 </a></li><li class="nav-tab"><a class="" href="/rochester-rochester-bistro-drink-menu" id="/Rochester-Rochester-Bistro-drink-menu_link" target="_self"> 557 Drinks 558 </a></li><li class="nav-tab"><a class="" href="/rochester-rochester-bistro-happy-hours-specials" id="/Rochester-Rochester-Bistro-happy-hours-specials_link" target="_self"> 559 Specials 560 </a></li><li class="nav-tab nav-order-link"><a class="link-order-sh" href="https://food.google.com/chooseprovider?restaurantId=/g/11bw1y17gx&g2lbs=ANTchaNKdh8f-dYfHabiA-LOR6rPMploRXCgIUabwTZMQ6rNpnlUZIeo2afC9w5PQPuE1xXB3tfkPdUTWxJUAbVxo9nhxo_3C_Vyn0Hmj7leDlUlar6tO0YZmzZ6zvcamklOvPrbVsV5&hl=en-US&gl=us&ssta=1&fo_m=MfohQo559jFvMUOzJ
560VpjPL1YMfZ3bInYwBDuMfaXTPp5KXh-&gei=805JZffCEa2nptQPjoKimAM&ei=805JZffCEa2nptQPjoKimAM&fo_s=OA&opi=89978449&sei=CVWOaeELlEC0EeGSR29Db93y&utm_campaign&utm_source=search#" id="https://food.google.com/chooseprovider?restaurantId=/g/11bw1y17gx&g2lbs=ANTchaNKdh8f-dYfHabiA-LOR6rPMploRXCgIUabwTZMQ6rNpnlUZIeo2afC9w5PQPuE1xXB3tfkPdUTWxJUAbVxo9nhxo_3C_Vyn0Hmj7leDlUlar6tO0YZmzZ6zvcamklOvPrbVsV5&hl=en-US&gl=us&ssta=1&fo_m=MfohQo559jFvMUOzJVpjPL1YMfZ3bInYwBDuMfaXTPp5KXh-&gei=805JZffCEa2nptQPjoKimAM&ei=805JZffCEa2nptQPjoKimAM&fo_s=OA&opi=89978449&sei=CVWOaeELlEC0EeGSR29Db93y&utm_campaign&utm_source=search#_link" target="_self"> 561 Order 562 </a></li><li class="nav-tab nav-reservations-link"><a class="link-reservations-sh" href="https://resy.com/cities/rochester-mi/venues/rochester-bistro?date=2026-06-04&seats=2.#" id="https://resy.com/cities/rochester-mi/venues/rochester-bistro?date=2026-06-04&seats=2.#_link" target="_self"> 563 Reserve 564 </a></li><li class="nav-tab nav-parties-link"><a class="link-parties-sh" href="/rochester-rochester-bistro-party#" id="/Rochester-Rochester-Bistro-party#_link" target="_self"> 565 Parties 566 </a></li><li class="nav-tab nav-catering-link"><a class="link-catering-sh" href="/rochester-rochester-bistro-catering#" id="/Rochester-Rochester-Bistro-catering#_link" target="_self"> 567 Catering 568 </a></li><li class="nav-tab nav-jobs-link"><a class="link-jobs-sh" href="https://tmt.spotapps.co/job-listings?spot_id=119755&callback_url=http://rochesterbistro.com/a-article#" id="https://tmt.spotapps.co/job-listings?spot_id=119755&callback_url=http://rochesterbistro.com/a-article#_link" target="_self"> 569 Jobs 570 </a></li></ul><ul class="socialnav"><li class="social-links social-icons-holder social-square"><a class="pull-left contact-icon" href="https://www.twitter.com/RochesterBistro" target="_blank"><i class="social-icon fa icon-twitter-x"></i><span>Twitter page</span></a><a class="pull-left contact-icon" href="https://www.facebook.com/1600885733507029" 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/rochesterbistro" target="_blank"><i class="social-icon fa fa-instagram"></i><span>Instagram page</span></a><a class="pull-left contact-icon" href="https://www.yelp.com/biz/rochester-bistro-rochester" target="_blank"><i aria-hidden="true" class="social-icon fa fa-yelp"></i><span>Yelp 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="Rochester Bistro logo top" class="img-responsive logo-top" src="https://static.spotapps.co/website_images/ab_websites/119755_website_v1/logo.png"/></a><a class="header-logo logo-scroll" href="/"><img alt="Rochester Bistro logo scroll" class="img-responsive logo-scroll" src="https://static.spotapps.co/website_images/ab_websites/119755_website_v1/logo.png"/></a><ul class="socialnav"><li class="social-links social-icons-holder social-square"><a class="pull-left contact-icon" href="https://www.twitter.com/RochesterBistro" target="_blank"><i class="social-icon fa icon-twitter-x"></i><span>Twitter / X page</span></a><a class="pull-left contact-icon" href="https://www.facebook.com/1600885733507029" 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/rochesterbistro" target="_blank"><i class="social-icon fa fa-instagram"></i><span>Instagram page</span></a><a class="pull-left contact-icon" href="https://www.yelp.com/biz/rochester-bistro-rochester" target="_blank"><i aria-hidden="true" class="social-icon fa fa-yelp"></i><span>Yelp page</span></a></li></ul><div class="collapse navbar-collapse" id="navbar-collapse-1"><ul class="nav navbar-nav navbar-right"><li class=" nav-menu-page"><a class="" href="/rochester-rochester-bistro-food-menu" id="mobile_/Rochester-Rochester-Bistro-food-menu_link" target="_self"> 571 Menu 572 573 </a></li><li class=" "><a class="" href="/rochester-rochester-bistro-drink-menu" id="mobile_/Rochester-Rochester-Bistro-drink-menu_link" target="_self"> 574 Drinks 575 576 </a></li><li class=" "><a class="" href="/rochester-rochester-bistro-happy-hours-specials" id="mobile_/Rochester-Rochester-Bistro-happy-hours-specials_link" target="_self"> 577 Specials 578 579 </a></li><li class=" nav-order-link"><a class="link-order-sh" href="https://food.google.com/chooseprovider?restaurantId=/g/11bw1y17gx&g2lbs=ANTchaNKdh8f-dYfHabiA-LOR6rPMploRXCgIUabwTZMQ6rNpnlUZIeo2afC9w5PQPuE1xXB3tfkPdUTWxJUAbVxo9nhxo_3C_Vyn0Hmj7leDlUlar6tO0YZmzZ6zvcamklOvPrbVsV5&hl=en-US&gl=us&ssta=1&fo_m=MfohQo559jFvMUOzJ
579VpjPL1YMfZ3bInYwBDuMfaXTPp5KXh-&gei=805JZffCEa2nptQPjoKimAM&ei=805JZffCEa2nptQPjoKimAM&fo_s=OA&opi=89978449&sei=CVWOaeELlEC0EeGSR29Db93y&utm_campaign&utm_source=search#" id="mobile_https://food.google.com/chooseprovider?restaurantId=/g/11bw1y17gx&g2lbs=ANTchaNKdh8f-dYfHabiA-LOR6rPMploRXCgIUabwTZMQ6rNpnlUZIeo2afC9w5PQPuE1xXB3tfkPdUTWxJUAbVxo9nhxo_3C_Vyn0Hmj7leDlUlar6tO0YZmzZ6zvcamklOvPrbVsV5&hl=en-US&gl=us&ssta=1&fo_m=MfohQo559jFvMUOzJVpjPL1YMfZ3bInYwBDuMfaXTPp5KXh-&gei=805JZffCEa2nptQPjoKimAM&ei=805JZffCEa2nptQPjoKimAM&fo_s=OA&opi=89978449&sei=CVWOaeELlEC0EeGSR29Db93y&utm_campaign&utm_source=search#_link" target="_self"> 580 Order 581 582 </a></li><li class=" nav-reservations-link"><a class="link-reservations-sh" href="https://resy.com/cities/rochester-mi/venues/rochester-bistro?date=2026-06-04&seats=2.#" id="mobile_https://resy.com/cities/rochester-mi/venues/rochester-bistro?date=2026-06-04&seats=2.#_link" target="_self"> 583 Reserve 584 585 </a></li><li class=" nav-parties-link"><a class="link-parties-sh" href="/rochester-rochester-bistro-party#" id="mobile_/Rochester-Rochester-Bistro-party#_link" target="_self"> 586 Parties 587 588 </a></li><li class=" nav-catering-link"><a class="link-catering-sh" href="/rochester-rochester-bistro-catering#" id="mobile_/Rochester-Rochester-Bistro-catering#_link" target="_self"> 589 Catering 590 591 </a></li><li class=" nav-jobs-link"><a class="link-jobs-sh" href="https://tmt.spotapps.co/job-listings?spot_id=119755&callback_url=http://rochesterbistro.com/a-article#" id="mobile_https://tmt.spotapps.co/job-listings?spot_id=119755&callback_url=http://rochesterbistro.com/a-article#_link" target="_self"> 592 Jobs 593 594 </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> 595 596.drink-menu .article-background, .drink-menu.article-background .pagecontent { 597 background-color: #000; 598 color: #fff; 599} 600.drink-menu.article-background .pagecontent { 601 border: none; 602} 603.drink-menu.article-background .pagecontent * { 604 text-align: left !important; 605 color: #fff; 606} 607.drink-menu.article-background .tabs-container { 608 text-shadow: none; 609} 610.drink-menu.article-background, 611.drink-menu.article-background:before { 612 background-image: none; 613} 614 615.drink-menu.article-background .pagecontent a, 616.drink-menu.article-background .pagecontent a:hover { 617 color: #fff; 618} 619 620.drink-menu.article-background { 621 background-color: #000; 622} 623 624.ada-page-content.container { 625 padding-top: 40px; 626} 627 628</style><div class="scrolling"><div class="container ada-page-content"><h1>Accessibility Statement for Rochester Bistro</h1><p>Rochester Bistro is committed to making our site accessible to people with disabilities. We are continuously gathering feedback and improving the user experience for everyone. 629 </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). Rochester Bistro 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. 630 </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. 631 </p><h2>Feedback</h2><p>How are we doing? We welcome your feedback on how to improve accessibility and usability of Rochester Bistro website. Please let us know using this email address: E-mail: <a href="mailto:[email protected]">[email protected]</a></p><p> 632We try to respond to feedback within 2 business days.
633</p><h2>Assistance</h2><p>If you need any assistance please call us at <a href="tel:+1(248) 923-2724">(248) 923-2724</a> during our regular business hours and we'd be happy to help you with anything on our site. 634</p></div></div></div></div></article></main></div><style type="text/css"> 635 .navbar-fixed-bottom.nav-v1 { 636 bottom: -100px; 637 } 638 .navbar-fixed-bottom.nav-v1 .nav.navbar-nav.navbar-right { 639 background-color: #581D21; 640 } 641 .navbar-fixed-bottom.nav-v1 .bottom-svg-border path, 642 .navbar-fixed-bottom.nav-v1 .bottom-svg-border polygon { 643 fill: #000; 644 } 645 .navbar-fixed-bottom.nav-v1 .bottom-list-item a { 646 color: #fff; 647 } 648 .navbar-fixed-bottom.nav-v1 .bottom-list-item a:hover, 649 .navbar-fixed-bottom.nav-v1 .bottom-list-item a:focus { 650 color: #F6D1C8; 651 } 652</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://food.google.com/chooseprovider?restaurantId=/g/11bw1y17gx&g2lbs=ANTchaNKdh8f-dYfHabiA-LOR6rPMploRXCgIUabwTZMQ6rNpnlUZIeo2afC9w5PQPuE1xXB3tfkPdUTWxJUAbVxo9nhxo_3C_Vyn0Hmj7leDlUlar6tO0YZmzZ6zvcamklOvPrbVsV5&hl=en-US&gl=us&ssta=1&fo_m=MfohQo559jFvMUOzJVpjPL1YMfZ3bInYwBDuMfaXTPp5KXh-&gei=805JZffCEa2nptQPjoKimAM&ei=805JZffCEa2nptQPjoKimAM&fo_s=OA&opi=89978449&sei=CVWOaeELlEC0EeGSR29Db93y&utm_campaign&utm_source=search" id="bottom_link_4" target="_self"> 653 Order </a></li><li class="bottom-list-item "><a class="bottom-link " href="https://resy.com/cities/rochester-mi/venues/rochester-bistro?date=2026-06-04&seats=2." id="bottom_link_3" target="_self"> 654 Reserve </a></li><li class="bottom-list-item "><a class="bottom-link " href="/rochester-rochester-bistro-party" id="bottom_link_5" target="_self"> 655 Parties </a></li><li class="bottom-list-item "><a class="bottom-link " href="/rochester-rochester-bistro-catering" id="bottom_link_6" target="_self"> 656 Catering </a></li><li class="bottom-list-item "><a class="bottom-link " href="https://tmt.spotapps.co/job-listings?spot_id=119755&callback_url=http://rochesterbistro.com/a-article" id="bottom_link_7" target="_self"> 657 Jobs </a></li></ul></div></nav>
657<script src="https://static.spotapps.co/web/rochesterbistro--com/lib/jquery/jquery.min.js"></script>
657<script src="https://static.spotapps.co/web/rochesterbistro--com/lib/bootstrap/js/bootstrap.min.js"></script>
657<script src="https://static.spotapps.co/web/rochesterbistro--com/lib/angular/angular.min.js"></script>
657<script src="https://static.spotapps.co/web/rochesterbistro--com/lib/underscorejs/underscore-min.js"></script>
657<script> 658 659 $("#bottom_link_4").on("click", function(){ 660 if (ga_check()) 661 universal_ga('send', 'event', 'Button', 'Click', 'Order Online'); 662 }); 663 $("#bottom_link_3").on("click", function(){ 664 if (ga_check()) 665 universal_ga('send', 'event', 'Button', 'Click', 'Reserve'); 666 }); 667 $("#bottom_link_5").on("click", function(){ 668 if (ga_check()) 669 universal_ga('send', 'event', 'Button', 'Click', 'Private Party'); 670 }); 671 $("#bottom_link_6").on("click", function(){ 672 if (ga_check()) 673 universal_ga('send', 'event', 'Button', 'Click', 'Catering'); 674 }); 675 $("#bottom_link_7").on("click", function(){ 676 if (ga_check()) 677 universal_ga('send', 'event', 'Button', 'Click', 'Jobs'); 678 }); 679 $('.header-logo, .nav-v2-home-btn').click(function(event) { 680 if ( window.location.pathname == '/' || window.location.pathname == '/index.php') { 681 event.preventDefault(); 682 var windowScrollTop = $(window).scrollTop(); 683 if(windowScrollTop > 150) { 684 $('html, body').animate({scrollTop: 0}, 750); 685 } 686 } 687 }); 688 689$(".banner-section a.banner-pin").click(function(e) { 690 // target element id 691 var id = $(this).attr('href'); 692 693 // target element 694 var section = $(id); 695 if (section.length === 0) { 696 return; 697 } 698 699 // prevent standard hash navigation (avoid blinking in IE) 700 e.preventDefault(); 701 702 // top position relative to the document 703 var pos = section.offset().top - 100 + 10; 704 705 // animated top scrolling 706 $('body, html').animate({scrollTop: pos}, 750); 707}); 708 709$(document).ready(function() { 710 var navHeight = $('nav.navbar').height(); 711 $('html').css("scroll-padding-top", navHeight); 712}); 713 714var called_v8_scroll = false; 715 716$(document).on('scroll', function (e) { 717 if($(document).scrollTop() > 0) { 718 $('.navbar.nav-v7').addClass('nav-scroll'); 719 $('.navbar.nav-v7').removeClass('nav-top'); 720 if (2 !=2 && 2 == 2) { 721 if(!called_v8_scroll) { 722 setTimeout(function(){ 723 setHelperTabWidth(); 724 called_v8_scroll = true; 725 }, 300); 726 } 727 } 728 }else { 729 $('.navbar.nav-v7').removeClass('nav-scroll'); 730 $('.navbar.nav-v7').addClass('nav-top'); 731 if (2 != 2 && 2 == 2) { 732 $('#hidden_tab_r').width(0); 733 $('#hidden_tab_l').width(0); 734 $('.navbar-nav li.nav-tab').first().css('margin-left', '0px'); 735 $('.navbar-nav li.nav-tab').last().css('margin-right', '0px'); 736 called_v8_scroll = false; 737 } 738 } 739}); 740 741$(function() { 742 setDropDownMenuWidth(); 743 744 function setDropDownMenuWidth() { 745 var tabs_list = $('.navbar-tabs .navbar-nav'); 746 747 $(tabs_list).find('li.drop-down-link').each(function() { 748 var sub_menu_width = $(this).outerWidth(true); 749 if (sub_menu_width < 100) { 750 sub_menu_width = 100; 751 } 752 $(this).find('.sub-menu').css('width', sub_menu_width+'px'); 753 }); 754 } 755 756 $( window ).resize(function() { 757 setDropDownMenuWidth(); 758 }); 759 $( window ).load(function() { 760 setDropDownMenuWidth(); 761 }); 762 763}); 764 765 766 767$( '.drop-down-link .drop-down' ).click(function(event) { 768 event.preventDefault(); 769 event.stopPropagation(); 770 771 var drop_down = $(this).closest('.drop-down-link'); 772 var sub_menu = $(this).closest('.drop-down-link').find( '.sub-menu' ); 773 774 if ( $(sub_menu).is( ':hidden' ) ) { 775 $(sub_menu).slideDown(); 776 $(drop_down).addClass('active'); 777 } else { 778 $(sub_menu).slideUp(); 779 $(drop_down).removeClass('active'); 780 } 781}); 782 783//// Set width for corresponding helper tab or margin for first or last nav tab depending on calculeted width sum of left and right tabs 784function setHelperTabWidth() { 785 var nav_tab_width; 786 var tabs_left_width = 0; 787 var tabs_right_width = 0; 788 789 var full_nav_tab_width; 790 var full_tabs_left_width = 0; 791 var full_tabs_right_width = 0; 792 793 $('li.nav-tab').each(function( index, element ) { 794 795 nav_tab_width = $(element).find('a').width(); 796 full_nav_tab_width = $(element).outerWidth(true); 797 798 if (!($(element).hasClass('helper-tab'))) { 799 if (index<4) { 800 tabs_left_width += nav_tab_width; 801 full_tabs_left_width += full_nav_tab_width; 802 } else { 803 tabs_right_width += nav_tab_width; 804 full_tabs_right_width += full_nav_tab_width; 805 } 806 } else { 807 if(index == 0) { 808 full_tabs_left_width += full_nav_tab_width; 809 } else { 810 full_tabs_right_width += full_nav_tab_width; 811 } 812 } 813 814 }); 815 816 var tabs_width_differance = tabs_left_width - tabs_right_width; 817 var helper_value = Math.abs(tabs_width_differance); 818 var full_tabs_width_differance = full_tabs_left_width - full_tabs_right_width; 819 820 // if sum of left tabs width is smaller than rigth tabs width tabs_width_differance is negative set margin left for first tab 821 if (full_tabs_width_differance != 0) { 822 if (tabs_width_differance < 0) { 823 $('.navbar-nav li.nav-tab').first().css('margin-left', helper_value+'px'); 824 } else { 825 $('.navbar-nav li.nav-tab').last().css('margin-right', helper_value+'px'); 826 } 827 } 828 829} 830 831$(function() { 832 setNavTabsWidth(); 833 834 function setNavTabsWidth() { 835 var container_width = $('.navbar-tabs .container').outerWidth(); 836 var social_icons_width = $('.navbar-tabs .socialnav').outerWidth(true); 837 var reduced_tabs_width = container_width - (2 * social_icons_width) -10; 838 839 $('.navbar-tabs .navbar-content').width(reduced_tabs_width); 840 841 // helper value set in case logo is centered and tabs width sum on the left and on the right are not the same 842 if (2 == 2) { 843 setTimeout(function(){ 844 setHelperTabWidth(); 845 $('.navbar.nav-v8 .desktop-navigation .navbar-nav').css('opacity', '1'); 846 }, 300); 847 848 } 849 } 850 851 $( window ).resize(function() { 852 setNavTabsWidth(); 853 }); 854 855}); 856 857$('.logo-holder .logo-image').click(function(event) { 858 if ( window.location.pathname == '/' || window.location.pathname == '/index.php') { 859 var windowScrollToTop = $(window).scrollTop(); 860 if(windowScrollToTop > 150) { 861 $('html, body').animate({scrollTop: 0}, 750); 862 } 863 } else { 864 window.location = "/"; 865 } 866}); 867 setTimeout(function(){ 868 $('.navbar-fixed-bottom.nav-v1').addClass('show-bottom-nav'); triggerShowFooterEvents(); 869 }, 4000);</script>
869<script> 870(function() { 871 var name = "Rochester Bistro"; 872 var pid = "ChIJ0XHcP7jpJIgR7foublvB0AA"; 873 function build_url() { 874 var q = encodeURIComponent(name).replace(/'/g, "%27"); 875 return "https://www.google.com/maps/search/?api=1" 876 + "&query=" + q 877 + "&query_place_id=" + encodeURIComponent(pid); 878 } 879 window.google_map_url = build_url(); 880 window.open_google_map = function() { 881 window.open(build_url(), "_blank"); 882 }; 883})(); 884</script>
884<script> 885 886 var spot_id = 119755; 887 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://rochesterbistro.com/-party","cta_catering":"https://rochesterbistro.com/-catering","cta_reservations":null,"cta_jobs":"https://tmt.spotapps.co/job-listings?spot_id=119755"},"spot_name":"Rochester Bistro","label_for_texting_permission":"Iâd like to get texts about specials, events, and other exclusive offers and announcements not available to general public"}'); 888 889 if (false){ 890 console.log("Check SpotHopper configuration. Probably there is no 'WEBSITE::DOMAIN_NAME' key for your website"); 891 } 892 893 if (navigator.userAgent.match(/iPhone/i) 894 || navigator.userAgent.match(/iPad/i) 895 || navigator.userAgent.match(/iPod/i)){ 896 $(document).ready(function(){ 897 document.body.className += " " + "webkit-mobile-body"; 898 }); 899 } 900 901 var promotion_url_param_domain = getPromotionUrlParams()['domain']; 902 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')){ 903 $("a[href^='/']").each(function(){ 904 if (this.href.indexOf('domain=') == -1){ 905 var sh_internal_url = new URL(this.href); 906 sh_internal_url.searchParams.set("domain", promotion_url_param_domain); 907 this.href = sh_internal_url.toString(); 908 } 909 }) 910 } 911 912 913 function cta_link_matches_href(href, url){ 914 var domain = 'rochesterbistro.com'; 915 if(typeof url === 'undefined'){ 916 return false; 917 } 918 var partsOfURL = url.split(domain); 919 if (partsOfURL.length != 2){ 920 return href == url; 921 }else{ 922 var urlPath = partsOfURL[1]; 923 if (urlPath.substring(0,1) == "/"){ 924 urlPath = urlPath.substring(1,urlPath.length); 925 } 926 return href.indexOf(urlPath, domain.length + href.indexOf(domain)-1) !== -1; 927 } 928 } 929 930 var all_cta_links = [{"id":811603,"spot_id":119755,"url":"https://tmt.spotapps.co/job-listings?spot_id=119755","cta_link_type":"job_listing","created_at":"2023-10-09T18:22:43.899+00:00","updated_at":"2026-06-04T22:16:01.723+00:00","made_of_food":false,"link_name":"Job Listing","target":null,"website_footer_label":"Jobs","position":2},{"id":839328,"spot_id":119755,"url":"https://rochesterbistro.com/-catering","cta_link_type":"catering","created_at":"2023-11-29T10:59:32.916+00:00","updated_at":"2026-06-04T22:16:01.674+00:00","made_of_food":false,"link_name":"Catering","target":null,"website_footer_label":"Catering","position":4},{"id":858630,"spot_id":119755,"url":"https://rochesterbistro.com/-food-menu","cta_link_type":"food_menu","created_at":"2024-01-04T11:39:29.877+00:00","updated_at":"2026-06-04T22:16:01.589+00:00","made_of_food":false,"link_name":"","position":null},{"id":811602,"spot_id":119755,"url":"https://rochesterbistro.com/-party","cta_link_type":"private_parties","created_at":"2023-10-09T18:20:52.360+00:00","updated_at":"2026-06-04T22:16:01.505+00:00","made_of_food":false,"link_name":"Private Parties","target":null,"website_footer_label":"Parties","position":3},{"id":1933271,"spot_id":119755,"url":"https://resy.com/cities/rochester-mi/venues/rochester-bistro?date=2026-06-04\u0026seats=2.","cta_link_type":"reservations","created_at":"2026-05-11T23:01:56.756+00:00","updated_at":"2026-06-04T22:16:01.629+00:00","made_of_food":false,"link_name":"Reservations","target":null,"website_footer_label":"Reserve","position":1},{"id":858628,"spot_id":119755,"url":"https://rochesterbistro.com/-specials","cta_link_type":"specials","created_at":"2024-01-04T11:39:29.789+00:00","updated_at":"2026-06-04T22:16:01.431+00:00","made_of_food":false,"link_name":"","position":null},{"id":858629,"spot_id":119755,"url":"https://rochesterbistro.com/-drink-menu","cta_link_type":"drink_menu","created_at":"2024-01-04T11:39:29.851+00:00","updated_at":"2026-06-04T22:16:01.550+00:00","made_of_food":false,"link_name":"","position":null},{"id":850064,"spot_id":119755,"url":"https://food.google.com/chooseprovider?restaurantId=/g/11bw1y17gx\u0026g2lbs=ANTchaNKdh8f-dYfHabiA-LOR6rPMploRXCgIUabwTZMQ6rNpnlUZIeo2afC9w5PQPuE1xXB3tfkPdUTWxJUAbVxo9nhxo_3C_Vyn0Hmj7leDlUlar6tO0YZmzZ6zvcamklOvPrbVsV5\u0026hl=en-US\u0026gl=us\u0026ssta=1\u0026fo_m=MfohQo559jFvMUOzJ
930VpjPL1YMfZ3bInYwBDuMfaXTPp5KXh-\u0026gei=805JZffCEa2nptQPjoKimAM\u0026ei=805JZffCEa2nptQPjoKimAM\u0026fo_s=OA\u0026opi=89978449\u0026sei=CVWOaeELlEC0EeGSR29Db93y\u0026utm_campaign\u0026utm_source=search","cta_link_type":"order","created_at":"2023-12-18T13:06:23.557+00:00","updated_at":"2026-06-04T22:16:01.765+00:00","made_of_food":false,"link_name":"Order","target":null,"website_footer_label":"Order","position":0}]; 931 932 function find_cta_link(href) { 933 for (var i=0; i< all_cta_links.length; i++){ 934 var cta_link = all_cta_links[i]; 935 if ( cta_link_matches_href(href, cta_link.url)){ 936 return cta_link; 937 } 938 } 939 } 940 941 function find_cta_links(href) { 942 var cta_links = [] 943 for (var i=0; i< all_cta_links.length; i++){ 944 var cta_link = all_cta_links[i]; 945 if ( cta_link_matches_href(href, cta_link.url)){ 946 cta_links.push(cta_link); 947 } 948 } 949 return cta_links; 950 } 951 952 953 function get_current_page_cta_link_types(){ 954 var types = []; 955 var cta_links = find_cta_links(document.location.href); 956 for (var i=0; i<cta_links.length; i++){ 957 types.push(cta_links[i].cta_link_type); 958 } 959 return types; 960 } 961 962 963 function is_food_menu_page(){ 964 var cta_link_types = get_current_page_cta_link_types(); 965 for (var i=0; i<cta_link_types.length; i++){ 966 if ('food_menu' == cta_link_types[i]) 967 return true; 968 } 969 return false; 970 } 971 972 973 function get_form_cat_from_cta(){ 974 var cta_link = find_cta_link(document.location.href); 975 if (cta_link == null) { 976 return null; 977 } 978 if (cta_link.cta_link_type == 'private_parties'){ 979 return 'private_party'; 980 }else if (cta_link.cta_link_type == 'reservations'){ 981 return 'reservation'; 982 }else if (cta_link.cta_link_type == 'catering'){ 983 return 'catering'; 984 }else if (cta_link.cta_link_type == 'job_listing'){ 985 return 'job_listings'; 986 }else if (cta_link.cta_link_type == 'gift_cards'){ 987 return 'gift_cards'; 988 } 989 return null; 990 } 991 992 function element_has_events_defined(elem){ 993 if ($._data(elem, "events") === undefined){ 994 return false; 995 } 996 return true; 997 } 998 999 function create_ga_events_for_cta_clicks(){ 1000 if (typeof $ === 'function'){ 1001 1002 var cta_link_of_the_page = find_cta_link(location.href); 1003 1004 1005 $("a").each(function(index, elem){ 1006 var href = $(elem).attr('href'); 1007 1008 if (href === undefined ){ 1009 return; 1010 } 1011 1012 if (href.substring(0,4) == 'tel:'){ 1013 if (!element_has_events_defined(elem)){ // not footer links 1014 $(elem).on("click", function(){ 1015 universal_ga('send', 'event', { 1016 eventCategory: 'Button', 1017 eventAction: 'Click', 1018 eventLabel: 'Phone', 1019 transport: 'beacon' 1020 }); 1021 }); 1022 1023 if (cta_link_of_the_page){ 1024 $(elem).on("click", function(){ 1025 universal_ga('send', 'event', { 1026 eventCategory: 'Button', 1027 eventAction: 'Click', 1028 eventLabel: cta_link_of_the_page.cta_link_type + ' page phone', 1029 transport: 'beacon' 1030 }); 1031 }); 1032 } 1033 } else { 1034 if (cta_link_of_the_page){ 1035 $(elem).on("click", function(){ 1036 universal_ga('send', 'event', { 1037 eventCategory: 'Button', 1038 eventAction: 'Click', 1039 eventLabel: cta_link_of_the_page.cta_link_type + ' page phone footer', 1040 transport: 'beacon' 1041 }); 1042 }); 1043 } 1044 } 1045 1046 1047 }else{ 1048 var cta_link = find_cta_link(href); 1049 if (elem.className != null && elem.className.indexOf("bottom-link") > -1){ 1050 // console.log("bottom link detected"); 1051 }else{ 1052 if (cta_link != null){ 1053 $(elem).on("click", function(){ 1054 universal_ga('send', 'event', { 1055 eventCategory: 'Website Link', 1056 eventAction: 'Click', 1057 eventLabel: cta_link.cta_link_type, 1058 transport: 'beacon' 1059 }); 1060 }); 1061 } 1062 } 1063 } 1064 1065 1066 }); 1067 } 1068 } 1069 1070 if (typeof angular === "undefined") { 1071 create_ga_events_for_cta_clicks(); 1072 } else { 1073 angular.element(document).ready(function () { 1074 create_ga_events_for_cta_clicks(); 1075 }); 1076 } 1077 1078 1079 function triggerShowFooterEvents(){
1080 if (window.screen.availWidth < 768){ 1081 universal_ga('send', 'event', { 1082 eventCategory: 'Mobile Footer', 1083 eventAction: 'View', 1084 eventLabel: '', 1085 transport: 'beacon' 1086 }); 1087 } 1088 } 1089 1090 1091 1092 1093 //////////// 1094 function smartFooterV2() 1095 { 1096 var list= document.getElementsByClassName("bottom-list-item"); 1097 if (!list) return; 1098 1099 if (document.getElementById("bottom-navbar") == null){ 1100 return; 1101 } 1102 1103 var bottomNav = document.querySelector('#bottom-navbar .navbar-nav'); 1104 var footerLinkPaddingLeft = $('#bottom-navbar .navbar-nav li a').css('padding-left'); 1105 var footerLinkPaddingRight = $('#bottom-navbar .navbar-nav li a').css('padding-right'); 1106 1107 bottomNav.innerHTML = ''; 1108 var linksWithPosition = all_cta_links.filter(e => e.position != null && e.position >= 0); 1109 linksWithPosition.sort(function(a,b) { 1110 return a.position - b.position; 1111 }); 1112 1113 var footerLinkStyle = (footerLinkPaddingLeft == '0px' || footerLinkPaddingRight == '0px' ? 'style="padding-left: 8px; padding-right: 8px;"' : ''); 1114 1115 linksWithPosition.forEach((e, i) => { 1116 var target = e.target || getUrlTarget(e.url); 1117 bottomNav.insertAdjacentHTML('beforeend', 1118 `<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>`); 1119 }) 1120 1121 var intervalCount = 0 1122 var interval = setInterval(() => { 1123 if(intervalCount == 50){ 1124 clearInterval(interval); 1125 } 1126 removeOverflowingFooterLinks(); 1127 intervalCount ++; 1128 }, 200); 1129 1130 $('.smart-footer-link').on("click", function(){ 1131 if (typeof shUrlParams !== "undefined" && shUrlParams['source'] === undefined){ 1132 shUrlParams['source'] = 'footer'; 1133 sessionStorage.setItem('shUrlParams', JSON.stringify(shUrlParams)); 1134 } 1135 1136 var visibleLinks = $('.smart-footer-link').map(function (e) { 1137 return $(this).data('type'); 1138 }).toArray().join(','); 1139 1140 universal_ga('send', 'event', { 1141 eventCategory: 'Button', 1142 eventAction: 'Click_footer_2', 1143 eventLabel: "type:" + $(this).data('type') + "|position:" + $(this).data('position') + "|visible:" + visibleLinks, 1144 transport: 'beacon' 1145 }); 1146 }); 1147 } 1148 1149 function removeOverflowingFooterLinks(){ 1150 var bottomNavLinks = document.querySelectorAll('#bottom-navbar .navbar-nav li'); 1151 var width_sum = 0; 1152 1153 bottomNavLinks.forEach(e => { 1154 width_sum += e.getBoundingClientRect().width; 1155 if ((width_sum) > window.innerWidth) { 1156 console.log(`%cLink %c${e.textContent} %cdeleted couldn't fit screen`,"color: #fff;background: #202124;", "background: red;color: #fff", "color: #fff;background: #202124;"); 1157 e.remove(); 1158 } 1159 }); 1160 } 1161 1162 function getUrlTarget(url){ 1163 if(url.startsWith('tel')){ 1164 return '_self'; 1165 } 1166 if(url.startsWith('/') || url.includes('tmt.spotapps.co') || url.includes(window.location.host)){ 1167 return '_self'; 1168 } 1169 return '_blank'; 1170 } 1171 1172 function npb() 1173 { 1174 var list= document.getElementsByClassName("bottom-list-item"); 1175 if (!list) return; 1176 1177 if (document.getElementById("bottom-navbar") == null){ 1178 return; 1179 } 1180 1181 var url = "" 1182 for (var i=0; i < all_cta_links.length; i++) 1183 { 1184 if (all_cta_links[i].cta_link_type == "order"){ 1185 url = all_cta_links[i].url; 1186 } 1187 } 1188 1189 if ( url == ""){ 1190 return; 1191 } 1192 1193 for (i=0; i < list.length; i++) 1194 { 1195 console.log(cta_link_matches_href(list[i].firstChild.href, url)); 1196 if (cta_link_matches_href(list[i].firstChild.href,url)) return; 1197 1198 }; 1199 1200 var item = list[list.length-1] 1201 document.getElementById("bottom-navbar").getElementsByClassName("nav navbar-nav")[0].appendChild(item.cloneNode(true)); 1202 var width_sum = 0; 1203 for (i=0; i < list.length; i++) { 1204 width_sum += list[i].getBoundingClientRect().width; 1205 } 1206 1207 var item = list[list.length-1] 1208 if ((width_sum - 10) > window.innerWidth) { item.parentNode.removeChild(item); console.log("link deleted couldn't fit screen"); return; } 1209 1210 item.firstChild.text = "Order"; 1211 item.firstChild.href = url; 1212 item.firstChild.id = "bottom_link_" + list.length; 1213 1214 $(item.firstChild).on("click", function(){ 1215 1216 if (typeof shUrlParams !== "undefined" && shUrlParams['source'] === undefined){ 1217 shUrlParams['source'] = 'footer'; 1218 sessionStorage.setItem('shUrlParams', JSON.stringify(shUrlParams)); 1219 } 1220 1221 universal_ga('send', 'event', { 1222 eventCategory: 'Button', 1223 eventAction: 'Click', 1224 eventLabel: 'Plan B-2 Order', 1225 transport: 'beacon' 1226 }); 1227 }); 1228 1229 1230 } 1231 1232function activateSmartFooter(){ 1233 var smart_footer_active = true; 1234 var smart_footer_version = 2; 1235 var man_bottom_active = false;
1236 if(window.location.hash == '#smartFooterV2=enabled'){ 1237 smartFooterV2(); 1238 return; 1239 } 1240 if (smart_footer_active && !man_bottom_active){ 1241 if(smart_footer_version == 2 ){ 1242 smartFooterV2(); 1243 }else { 1244 npb(); 1245 } 1246 } 1247 } 1248 1249 activateSmartFooter(); 1250 1251 var corona_config_str = '{"id":65725,"spot_id":119755,"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":"2489232724","created_at":"2023-09-29T14:20:48.798+00:00","updated_at":"2025-04-16T14:07:36.857+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":5,"jobs_priority_value":3,"food_and_drinks_priority_value":5,"specials_priority_value":3,"national_days_priority_value":3,"holidays_priority_value":3,"sports_priority_value":3,"walk_ins_priority_value":5,"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}'; 1252 var corona_config = corona_config_str != '' ? JSON.parse('{"id":65725,"spot_id":119755,"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":"2489232724","created_at":"2023-09-29T14:20:48.798+00:00","updated_at":"2025-04-16T14:07:36.857+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":5,"jobs_priority_value":3,"food_and_drinks_priority_value":5,"specials_priority_value":3,"national_days_priority_value":3,"holidays_priority_value":3,"sports_priority_value":3,"walk_ins_priority_value":5,"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; 1253 1254 1255 //corona instuctions 1256 function show_corona_instructions(text, phone, btnText){ 1257 //format to US number 1258 var match = phone.match(/^(\d{3})(\d{3})(\d{4})$/); 1259 1260 if(corona_config.shopping_cart_type == "TMT" && corona_config.shopping_cart_active == true) { 1261 var linkLocation = "https://tmt.spotapps.co/ordering-menu/?spot_id="+corona_config.spot_id+"&images=yes&accordion=true"; 1262 var btnLinkLocation = "https://tmt.spotapps.co/ordering-menu/?spot_id="+corona_config.spot_id+"&images=yes&accordion=true"; 1263 }else { 1264 var linkLocation = 'tel:+1'+phone+''; 1265 var btnLinkLocation = 'tel:+1'+ match[1] + '-' + match[2] + '-' + match[3] +'' 1266 } 1267 var appendPhone = 'tel:+1'+phone+''; 1268 //inject html content 1269 if ($('.food-menu-nav').length) { 1270 //new template 1271 var pageEl = $('.food-menu-nav').css('margin','20px auto 10px auto'); 1272 var textColor = rgb2hex($('.section-header').css('color')); 1273 var linkColor = rgb2hex($('.food-menu-nav-item.active').css('background-color')); 1274 var fontSize = parseInt($('.food-menu-nav-item').css('font-size')); 1275 fontSize = fontSize + Math.round(fontSize * 0.25); 1276
1277 // 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>'; 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="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>'; 1279 1280 }else { 1281 //old template 1282 var pageEl = $('.tabnav'); 1283 var textColor = rgb2hex($('.menu-item-name-traditional').css('color')); 1284 var linkColor = rgb2hex($('.style-traditional .tabnav .nav>li.active>a').css('color')); 1285 1286 var linkTextColor = getContrast50(linkColor); 1287 var fontSize = parseInt($('.menu-item-name-traditional').css('font-size')); 1288 fontSize = fontSize + Math.round(fontSize * 0.25); 1289 var textTransform = $('.style-traditional .tabnav .nav>li>a').css('text-transform'); 1290 1291 // 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>'; 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="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>'; 1293 1294 } 1295 //html content 1296 pageEl.prepend(html); 1297 } 1298 1299 function rgb2hex(rgb) { 1300 if(typeof rgb !== "undefined"){ 1301 rgbColor = rgb.match(/^rgb\((\d+),\s*(\d+),\s*(\d+)\)$/); 1302 if (!rgbColor) { 1303 rgba = rgb.match(/^rgba?\((\d+),\s*(\d+),\s*(\d+)(,\s*\d+\.*\d+)?\)$/); 1304 return "#" + hex(rgba[1]) + hex(rgba[2]) + hex(rgba[3]); 1305 } 1306 function hex(x) { 1307 return ("0" + parseInt(x).toString(16)).slice(-2); 1308 } 1309 return "#" + hex(rgbColor[1]) + hex(rgbColor[2]) + hex(rgbColor[3]); 1310 } 1311 return rgb; 1312 } 1313 1314 function getContrast50(hexcolor){ 1315 return (parseInt(hexcolor, 16) > 0xffffff/2) ? '#000':'#fff'; 1316 } 1317 1318 function show_corona_sidebar_instructions(text, phone){ 1319 //format to US number 1320 var match = phone.match(/^(\d{3})(\d{3})(\d{4})$/); 1321 var divWidth = 230; 1322 var top = 50; 1323 var linkSize = '1.6em'; 1324 var pSize = $('p').css('font-size'); 1325 var appendPhone = 'tel:+1'+phone+''; 1326 1327 if ($(window).width() < 1600) 1328 var top = 30; 1329 if ($(window).width() < 1200){ 1330 var divWidth = 180; 1331 var linkSize = '1.4em'; 1332 var pSize ='1.1em'; 1333 } 1334 1335 if($('.food-menu-nav').length){ //new template 1336 var textColor = $('.food-menu-nav-item.active').css('color'); 1337 var linkColor = $('.food-menu-nav-item.active').css('background-color'); 1338 1339 var linkTextColor = $('.food-menu-nav-item.active').css('color'); 1340 var parent = $('.food-menu-page'); 1341 } 1342 else { //old template 1343 var textColor = $('.menu-item-name-traditional').css('color'); 1344 var linkColor = $('.style-traditional .tabnav .nav>
1344li.active>a').css('color'); 1345 var parent = $('.food-menu').length ? $('.food-menu') : $('.drink-menu'); 1346 var linkTextColor = getContrast50(linkColor); 1347 } 1348 1349 // $(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>'); 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:'+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>'); 1351 1352 //check if resolution is bigger than tablet resolution 1353/* if ($(window).width() > 991) { 1354 //detect scroll 1355 window.onscroll = function (e) { 1356 if ($(window).scrollTop() == 0) { 1357 $('#corona-instructions-sidebar').hide(); 1358 }else { 1359 $('#corona-instructions-sidebar').show(); 1360 } 1361 } 1362 } */ 1363 } 1364 1365 function check_corona_config(config){ 1366 console.log(config) 1367 if (config) { 1368 if (config.instructions_on_food_page && config.food_page_instruction_text && config.food_page_instruction_phone) { 1369 if (!config.promote_deliveries && config.promote_pick_up) { 1370 var btnText = 'Call For Pick Up'; 1371 } 1372 if (config.promote_deliveries && !config.promote_pick_up) { 1373 var btnText = 'Call For Delivery'; 1374 } 1375 if (config.promote_deliveries && config.promote_pick_up) { 1376 var btnText = 'Call For Pick Up Or Delivery'; 1377 } 1378 1379 if(typeof btnText !== "undefined"){ // check if pick up or delivery are true 1380 if(config.shopping_cart_type == "TMT" && config.shopping_cart_active == true) { 1381 var btnText = 'ORDER NOW'; 1382 if($('.food-menu-nav').length){ //new template 1383 var textColor = rgb2hex($('.section-header').css('color')); 1384 var linkColor = rgb2hex($('.food-menu-nav-item.active').css('background-color')); 1385 var fontSize = parseInt($('.food-menu-nav-item').css('font-size')); 1386 fontSize = fontSize + Math.round(fontSize * 0.25); 1387 } 1388 else { //old template 1389 var textColor = rgb2hex($('.menu-item-name-traditional').css('color')); 1390 var linkColor = rgb2hex($('.style-traditional .tabnav .nav>li.active>a').css('color')); 1391 1392 var linkTextColor = getContrast50(linkColor); 1393 var fontSize = parseInt($('.menu-item-name-traditional').css('font-size')); 1394 fontSize = fontSize + Math.round(fontSize * 0.25); 1395 } 1396 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); 1397 show_corona_sidebar_instructions(btnText, config.food_page_instruction_phone); 1398 } else { 1399 show_corona_instructions(config.food_page_instruction_text, config.food_page_instruction_phone, btnText); 1400 show_corona_sidebar_instructions(btnText, config.food_page_instruction_phone); 1401 } 1402 1403 } 1404 } 1405 } 1406 } 1407 1408 1409 if (is_food_menu_page() && !window.location.search.includes("contactless=true")){ 1410 $( document ).ready(function() { 1411 setTimeout(function(){ 1412 check_corona_config(corona_config); 1413 }, 300); 1414 }); 1415 } 1416 1417 1418 1419 function isPhone(phone){ 1420 var regex = /^(\+\d{1,2}\s?)?\(?\d{3}\)?[\s.-]?\d{3}[\s.-]?\d{4}$/; 1421 return regex.test(phone); 1422 } 1423 1424 function sendEmail_MT (input_id) { 1425 const $loader = $("[data-id=newsletter-widget-2] .sph-loading-img"); 1426 1427 const $step = { 1428 form: $("[data-id=newsletter-widget-2] .sph-email-form"), 1429 message: $("[data-id=newsletter-widget-2] .sph-response-message"), 1430 } 1431 1432 const $field = { 1433 email: $("[data-id=newsletter-widget-2] #sph-newsletter-input-" + input_id), 1434 phone: $("[data-id=newsletter-widget-2] #sph-newsletter-phone-" + input_id), 1435 consent: $("[data-id=newsletter-widget-2] #sph-newsletter-checkbox-phone-" + input_id), 1436 }; 1437 1438 const $error = { 1439 email: $("[data-id=newsletter-widget-2] #sph-newsletter-email-error-" + input_id), 1440 phone: $("[data-id=newsletter-widget-2] #sph-newsletter-phone-error-" + input_id), 1441 }; 1442 1443 if ($field.email.val().trim() === "") { 1444 $error.email 1445 .html("This field is required") 1446 .show(); 1447 } 1448 else if (!isEmail($field.email.val().trim())) { 1449 $error.email 1450 .html("Please use the format â[email protected]â") 1451 .show(); 1452 } else { 1453 $error.email 1454 .html("") 1455 .hide(); 1456 } 1457 1458 if ($field.consent.is(':checked') && $field.phone.val().trim() === "") { 1459 $error.phone 1460 .html("This field is required") 1461 .show(); 1462 } else if ($field.phone.val().trim().length > 0 && !isPhone($field.phone.val().trim())) { 1463 $error.phone 1464 .html("The phone number must contain 10 digits") 1465 .show(); 1466 } else { 1467 $error.phone 1468 .html("") 1469 .hide(); 1470 } 1471 1472 const errorField = $step.form.find('.sh-form-error:visible'); 1473 1474 if (errorField.length > 0) { 1475 const input = errorField.first().next(); 1476 1477 document.activeElement.blur(); 1478 1479 setTimeout(() => { 1480 input.focus(); 1481 }, 160) 1482 1483 return; 1484 } 1485 1486 $loader 1487 .show() 1488 .prev() 1489 .hide(); 1490 1491 $.ajax({ 1492 method: "POST", 1493 url: "https://www.spothopperapp.com/api/spots/119755/contacts/add_with_texting_permission", 1494 crossDomain: true, 1495 dataType: 'json', 1496 data: { 1497 email: $field.email.val().trim(), 1498 phone: $field.phone.val().trim(), 1499 texting_permission: $field.consent.is(':checked'), 1500 }, 1501 success: function (data) { 1502 afterRequestSubmission(data); 1503 }, 1504 error: function () { 1505 afterRequestSubmission("Something went wrong. Please try again later."); 1506 } 1507 }); 1508 1509 function afterRequestSubmission (data) { 1510 $step.form.hide(); 1511 1512 $step.message 1513 .html(data) 1514 .show() 1515 .trigger('focus'); 1516 } 1517 } 1518</script>
1518<script>function addPromotionParamsToTMTLinks() 1519{ 1520 if (sessionStorage.getItem('shUrlParams')) { 1521 let shParams = JSON.parse(sessionStorage.getItem('shUrlParams')); 1522 if (!Object.keys(shParams).length) 1523 return; 1524 if(!shParams.source) 1525 return; 1526 $('a').each(function () { 1527 if (this.href.includes('tmt.spotapps.co')) { 1528 if(this.href.includes('&source=') || this.href.includes('&destination=') || this.href.includes('&promotion=')) 1529 return; 1530 1531 this.href = this.href + '&source=' + shParams.source; 1532 if(shParams.destination) 1533 this.href = this.href + '&destination=' + shParams.destination; 1534 if(shParams.promotion) 1535 this.href = this.href + '&promotion=' + shParams.promotion; 1536 if(shParams.fb_post_id) 1537 this.href = this.href + '&fb_post_id=' + shParams.fb_post_id; 1538 if(shParams.email_post_id) 1539 this.href = this.href + '&email_post_id=' + shParams.email_post_id; 1540 } 1541 }) 1542 } 1543} 1544setTimeout(function() { 1545 addPromotionParamsToTMTLinks(); 1546 addFooterToSourceParam(); 1547},600) 1548 1549function addFooterToSourceParam() 1550{ 1551 $('.bottom-link').each(function (){ 1552 if(shouldAddSourceParam(this.href)) 1553 this.href = this.href + '&source=footer'; 1554 }) 1555 $('#sh-multiple-links-content-holder a').each(function (){ 1556 if(shouldAddSourceParam(this.href)) 1557 this.href = this.href + '&source=footer'; 1558 }) 1559} 1560function shouldAddSourceParam(link){ 1561 if (link.includes('tmt.spotapps.co') && !link.includes('&source=')){ 1562 return true; 1563 } 1564 return false; 1565} 1566</script>
1566<script> 1567;(async () => { 1568if (typeof window.focusTrap === 'undefined') { 1569 await getScript('https://unpkg.com/tabbable/dist/index.umd.js'); 1570 await getScript('https://unpkg.com/focus-trap/dist/focus-trap.umd.js'); 1571} 1572 1573document.querySelectorAll('.modal').forEach((element) => { 1574 const trap = window.focusTrap?.createFocusTrap(element, { 1575 allowOutsideClick: true, 1576 }); 1577 1578 $(element).on('shown.bs.modal', () => { 1579 trap?.activate(); 1580 }); 1581 1582 $(element).on('hidden.bs.modal', () => { 1583 trap?.deactivate(); 1584 }); 1585}); 1586 1587async function getScript (source) { 1588 return new Promise((resolve, reject) => { 1589 const script = document.createElement('script'); 1590 script.src = source; 1591 script.async = true; 1592 1593 script.onload = resolve; 1594 script.onerror = reject; 1595 1596 document.head.appendChild(script); 1597 }); 1598} 1599})(); 1600</script>
1600<script src="https://wcache-plugins.spotapps.co/production/wcpl_bootstrap_ada_fix/wcpl_bootstrap_ada_fix.js"></script>
1600<link href="https://wcache-plugins.spotapps.co/production/wcpl_bday_club/wcpl_bday_club.css" rel="stylesheet" media="screen"/>
1600<script src="https://wcache-plugins.spotapps.co/production/wcpl_bday_club/wcpl_bday_club.js"></script>
1600<script src="https://wcache-plugins.spotapps.co/production/wcpl_ga_tracking/wcpl_ga_tracking.js"></script>
1600<script src="https://wcache-plugins.spotapps.co/production/wcpl_media_controls/script.js"></script>
1600<link href="https://wcache-plugins.spotapps.co/production/wcpl_website_editor_interpreter/website_interpreter_helper_style.css" rel="stylesheet" media="screen"/>
1600<script>var changes_log_array = {};</script>
1600<script src="https://wcache-plugins.spotapps.co/production/wcpl_website_editor_interpreter/website_interpreter.js"></script>
1600</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.