1<!DOCTYPE html> 2�<html lang="en"><head><meta content="null" property="og:site_name"/><meta content="http://lucysonthesquare.com/about" property="og:url"/><meta content="website" property="og:type"/><meta content="From wagon wheels to warm hospitality, Lucy's on the Square is Celina's most charming restaurant. Learn our story â Texas comfort food with a family heart." property="og:description"/><meta content="About | Lucy's on the Square" property="og:title"/><!-- Google tag (gtag.js) -->
vendor: 71 bytes, line 2
2<script async="async" src="https://www.googletagmanager.com/gtag/js?id=
2G-VG24VK2VKT
vendor: 11 bytes, line 2
2"></script>
2<script> 3 window.dataLayer = window.dataLayer || []; 4 function gtag(){dataLayer.push(arguments);} 5 gtag('set', 'linker', {'domains': ['tmt.spotapps.co','spothopperapp.com']}); 6 gtag('js', new Date()); 7 gtag('config', 'G-PRZ6C6JLBL'); 8 gtag('config', 'G-VG24VK2VKT'); 9 </script>
9<!-- wcache 2026-09-30 13:04:59.188690Z --><!-- 10smart_footer: true, 11smart_footer_version: 2, 12scripting_active: false 13--><link href="https://lucysonthesquare.com/about" rel="canonical"/><meta charset="utf-8"/><meta content="IE=edge" http-equiv="X-UA-Compatible"/><meta content="width=device-width, initial-scale=1" name="viewport"/><meta content="From wagon wheels to warm hospitality, Lucy's on the Square is Celina's most charming restaurant. Learn our story â Texas comfort food with a family heart." name="description"/><meta content="" name="author"/><meta content="https://static.spotapps.co/website_images/ab_websites/634274_website_v1/social_share.jpg" property="og:image"/><meta content="Lucy's on the Square image" property="og:image:alt"/><meta content="image/png" property="og:image:type"/><meta content="615983408524009" property="fb:app_id"/><meta content="summary_large_image" name="twitter:card"/><meta content="Lucy's on the Square - About" name="twitter:title"/><meta content="Nothing says deep in the heart of Texas quite like Lucy's on the Square. The eatery resides in a more than 100-year-old brick building in Celina, Texas, about an hour away from the hect..." name="twitter:description"/><meta content="https://static.spotapps.co/website_images/ab_websites/634274_website_v1/social_share.jpg" name="twitter:image"/><title>About | Lucy's on the Square</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/634274_website_v1/favicons/favicon-96x96.png" rel="icon" sizes="96x96" type="image/png"/><link href="https://static.spotapps.co/website_images/ab_websites/634274_website_v1/favicons/favicon.svg" rel="icon" type="image/svg+xml"/><link href="https://static.spotapps.co/website_images/ab_websites/634274_website_v1/favicons/favicon.ico" rel="shortcut icon"/><link href="https://static.spotapps.co/website_images/ab_websites/634274_website_v1/favicons/apple-touch-icon.png" rel="apple-touch-icon" sizes="180x180"/><meta content="Lucy's on the Square" name="apple-mobile-web-app-title"/><link href="https://static.spotapps.co/website_images/ab_websites/634274_website_v1/favicons/site.webmanifest" rel="manifest"/><link href="https://static.spotapps.co/web/lucysonthesquare--com/lib/bootstrap/css/bootstrap.min.css" rel="stylesheet"/><link href="https://static.spotapps.co/web/lucysonthesquare--com/lib/custom-scrollbar/jquery.mCustomScrollbar.css" rel="stylesheet"/><link href="https://static.spotapps.co/web/lucysonthesquare--com/lib/uikit/css/uikit.docs.min.css" rel="stylesheet"/><link href="https://static.spotapps.co/web/lucysonthesquare--com/lib/uikit/css/slidenav.css" rel="stylesheet"/><link href="//static.spotapps.co/web-lib/leaflet/[email protected]/dist/leaflet-gesture-handling.min.css" rel="stylesheet" type="text/css"/><link href="https://static.spotapps.co/web/lucysonthesquare--com/lib/font-awesome-4.7.0/css/font-awesome.min.css" rel="stylesheet"/><link href="https://static.spotapps.co/web/lucysonthesquare--com/lib/hover_css/css/hover-min.css" rel="stylesheet"/><link href="https://static.spotapps.co/web/lucysonthesquare--com/lib/owlcarousel/owl.carousel.min.css" rel="stylesheet"/><link href="https://static.spotapps.co/web/lucysonthesquare--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/lucysonthesquare--com/css/style.css?version2" id="mainCSS" rel="stylesheet"/><link href="https://static.spotapps.co/web/lucysonthesquare--com/css/bottom_navigation_v1.css?v1786695874" rel="stylesheet"/><link href="css/custom.css?v1786695874&domain=lucysonthesquare.com" rel="stylesheet"/><link href="https://static.spotapps.co/web/lucysonthesquare--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/lucysonthesquare--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 .webkit-mobile-body>div:first-child{ 15 -webkit-overflow-scrolling: touch; 16 } 17 .about-us-s1-wrapper .about-us-item-holder { 18 background-color: #fff; 19 } 20 .about-us-page .about-us-s1-content { 21 width: 40%; 22 color: #1D1C1B; 23 text-align: center; 24 } 25 .about-us-page .about-us-s1-slide { 26 width: 60%; 27 } 28 .about-us-page .about-us-s1-content h2 { 29 color: #1D1C1B; 30 } 31 .about-us-s1-slide .slideshow-controls-btn { 32 color: rgba(255, 255, 255, 0.8); 33 } 34 .about-us-page .about-us-s2-wrapper { 35 background-color: #fff; 36 } 37 .about-us-page .about-us-s2-image { 38 width: 40%; 39 } 40 .about-us-page .about-us-s2-content { 41 width: 60%; 42 } 43 .about-us-s2-wrapper .about-us-item-holder { 44 min-height: 40vh; 45 } 46 .about-us-v7-content .text-wrapper { 47 color: #1D1C1B; 48 background: rgba(250,250,250,0); 49 } 50 .about-page-content .about-us-v7-content .text-wrapper .text-content { 51 text-align: left; 52 } 53 .about-us-v7-content .text-wrapper h2 { 54 color: #1D1C1B; 55 } 56 .about-us-v7-content .text-wrapper:before { 57 background-image: url('https://static.spotapps.co/web/lucysonthesquare--com/'); 58 } 59 .about-us-s3-wrapper .map-footer { 60 background: rgba(0,0,0,0.6); 61 color: #fff; 62 text-align: center; 63 } 64 .about-us-s3-wrapper .map-footer a { 65 color: #fff; 66 } 67 @media (max-width: 991px) { 68 .about-us-page .about-us-s1-content, 69 .about-us-page .about-us-s1-slide, 70 .about-us-page .about-us-s2-image, 71 .about-us-page .about-us-s2-content { 72 width: 100%; 73 } 74 .about-us-s2-wrapper .about-us-item-holder { 75 min-height: auto; 76 height: auto; 77 } 78 } 79 </style>
79<script src="https://static.spotapps.co/websites/lib/lazysizes/lazysizes.min.js" async=""></script>
79<script> 80function ga_check(){ 81 return true; 82} 83</script>
83<script> 84function universal_ga(action, type, category, ev_action, label){ 85 if(typeof ga === 'function') 86 { 87 if(!(action && label)) 88 ga(action, type, category) 89 else 90 ga(action, type, category, ev_action, label) 91 } 92 93 if(typeof gtag === 'function') 94 { 95 if(!(action && label)) 96 { 97 hash = category 98 ev_label = hash["eventLabel"] 99 var splits = ev_label.match(/.{1,100}/g) ?? []; 100 delete(hash["eventLabel"]) 101 102 if(splits.length <= 1) 103 hash["eventLabel"] = ev_label 104 else 105 { 106 for (let i = 0; i < splits.length; i++) { 107 var key = "eventLabel_"+i 108 hash[key] = splits[i] 109 } 110 } 111 console.log(hash) 112 gtag("event", hash["eventCategory"], hash); 113 } 114 else 115 { 116 var hash = { 117 eventCategory: category, 118 eventAction: ev_action 119 } 120 121 var splits = label.match(/.{1,100}/g) ?? []; 122 if(splits.length <= 1) 123 hash["eventLabel"] = label 124 else 125 { 126 for (let i = 0; i < splits.length; i++) { 127 var key = "eventLabel_"+i 128 hash[key] = splits[i] 129 } 130 } 131 gtag("event", hash["eventCategory"], hash); 132 } 133 } 134} 135</script>
135<script> function getPromotionUrlParams(){ 136 var params_str = sessionStorage.getItem('shUrlParams'); 137 if (params_str != null){ 138 return JSON.parse(params_str); 139 }else{ 140 return {}; 141 } 142 } 143 144 function getPromotionSourceDetails(){ 145 var params_str = localStorage.getItem('promotionSourceDetails'); 146 if (params_str != null){ 147 return JSON.parse(params_str); 148 }else{ 149 return {}; 150 } 151 } 152 153 function getLastEmailVisitInDays(){ 154 var promotionSourceDetails = getPromotionSourceDetails(); 155 if (!promotionSourceDetails['last_visit_email'] ){ 156 return null; 157 } 158 return Math.floor((new Date() - new Date(promotionSourceDetails['last_visit_email'])) / (1000 * 60 * 60 * 24)); 159 } 160 161 function getLastSocialVisitInDays(){ 162 var promotionSourceDetails = getPromotionSourceDetails(); 163 if (!promotionSourceDetails['last_visit_social'] ){ 164 return null; 165 } 166 return Math.floor((new Date() - new Date(promotionSourceDetails['last_visit_social'])) / (1000 * 60 * 60 * 24)); 167 } 168 169 var shUrlParams = getPromotionUrlParams(); 170 var promotionSourceDetails = getPromotionSourceDetails(); 171 172 new URL(document.location).searchParams.forEach(function(value, paramName){ 173 174 shUrlParams[paramName] = value; 175 176 if (paramName == 'source' && value =='social' ){ 177 promotionSourceDetails['last_visit_social'] = new Date(); 178 localStorage.setItem('promotionSourceDetails', JSON.stringify(promotionSourceDetails)); 179 } 180 181 if (paramName == 'source' && value =='email' ){ 182 promotionSourceDetails['last_visit_email'] = new Date(); 183 localStorage.setItem('promotionSourceDetails', JSON.stringify(promotionSourceDetails)); 184 } 185 186 }); 187 188 sessionStorage.setItem('shUrlParams', JSON.stringify(shUrlParams)) 189</script>
189<style>a:focus:not(:focus-visible){outline:none;box-shadow:none;} 190a.get-directions-footer-link{display:inline-block;transform-origin:left center;transition:transform .2s ease;} 191a.get-directions-footer-link:hover{transform:scale(1.08);} 192@media (prefers-reduced-motion:reduce){a.get-directions-footer-link{transition:none;transform:none;}} 193a.get-directions-footer-link,a.get-directions-footer-link:hover{color:inherit!important;}</style></head><body class="drink-menu about-us-page "><header><style> 194 195.nav-v8 .nav-tab:nth-child(n+7) { 196 -webkit-box-ordinal-group: 3; 197 order: 3; 198} 199 200.navbar.nav-v6.nav-v8 .desktop-navigation .header-logo { 201 top: 0px; 202} 203 204 205.navbar.nav-v6.nav-v8.nav-scroll .desktop-navigation .header-logo { 206 top: 0px; 207} 208 209.navbar.nav-v6 .container { 210 padding-top: 10px; 211 padding-bottom: 10px; 212} 213.navbar.nav-v6.nav-scroll .container { 214 padding-top: 0px; 215 padding-bottom: 0px; 216} 217.navbar.nav-v6 .header-logo img { 218 max-width: 100%; 219} 220 221@media (max-width: 767px) { 222 /* DO NOT change mobile nav height on page scroll */ 223 .navbar.nav-v6 .navbar-header, 224 .navbar.nav-v6.nav-scroll .navbar-header { 225 padding-top: 10px; 226 padding-bottom: 10px; 227 } 228 .navbar.nav-v6.nav-v8 .socialnav, 229 .navbar.nav-v6.nav-v8.nav-scroll .socialnav { 230 margin-top: 10px; 231 } 232 .navbar.nav-v6 .container, 233 .navbar.nav-v6.nav-scroll .container { 234 padding-top: 0; 235 padding-bottom: 0; 236 } 237 .navbar.nav-v6 .header-logo, 238 .navbar.nav-v6.nav-scroll .header-logo { 239 height: 70px; 240 } 241 .navbar.nav-v6 .header-logo img { 242 max-height: 100%; 243 } 244 .navbar.nav-v6.nav-scroll .header-logo img { 245 max-width: 100%; 246 } 247 /* HOME page CHANGE mobile nav height on page scroll */ 248 /* Remove body.home-page from below code if there should be mobile nav height change on ALL pages */ 249 body.home-page .navbar.nav-v6 .navbar-header { 250 padding-top: 10px; 251 padding-bottom: 10px; 252 } 253 body.home-page .navbar.nav-v6.nav-scroll .navbar-header{ 254 padding-top: 0px; 255 padding-bottom: 0px; 256 } 257 body.home-page .navbar.nav-v6.nav-v8 .socialnav { 258 margin-top: 10px; 259 } 260 body.home-page .navbar.nav-v6.nav-v8.nav-scroll .socialnav { 261 margin-top: 0px; 262 } 263 body.home-page .navbar.nav-v6 .container{ 264 padding-top: 0; 265 padding-bottom: 0; 266 } 267 body.home-page .navbar.nav-v6.nav-scroll .container { 268 padding-top: 0; 269 padding-bottom: 0; 270 } 271 body.home-page .navbar.nav-v6 .header-logo { 272 height: 70px; 273 } 274 body.home-page .navbar.nav-v6.nav-scroll .header-logo { 275 height: 50px; 276 } 277 body.home-page .navbar.nav-v6 .header-logo img { 278 max-height: 100%; 279 max-width: 100%; 280 } 281 body.home-page .navbar.nav-v6.nav-scroll .header-logo img { 282 max-width: 80%; 283 } 284} 285 286 287.navbar-regular .navbar-collapse.collapse.in { 288 background-color: transparent; 289 width: 100%; 290} 291.navbar.nav-v6 .navbar-tabs { 292 background-color: #fff; 293 -webkit-box-shadow: 0px 4px 4px 0px rgba(0,0,0,0); 294 -moz-box-shadow: 0px 4px 4px 0px rgba(0,0,0,0); 295 box-shadow: 0px 4px 4px 0px rgba(0,0,0,0); 296} 297.navbar.nav-v6.nav-scroll .navbar-tabs { 298 background-color: #fff; 299 -webkit-box-shadow: 0px 4px 4px 0px rgba(0,0,0,0.2); 300 -moz-box-shadow: 0px 4px 4px 0px rgba(0,0,0,0.2); 301 box-shadow: 0px 4px 4px 0px rgba(0,0,0,0.2); 302} 303.drink-menu .navbar.nav-v6 .navbar-tabs { 304 background-color: #fff; 305 -webkit-box-shadow: 0px 4px 4px 0px rgba(0,0,0,0); 306 -moz-box-shadow: 0px 4px 4px 0px rgba(0,0,0,0); 307 box-shadow: 0px 4px 4px 0px rgba(0,0,0,0); 308} 309.drink-menu .navbar.nav-v6.nav-scroll .navbar-tabs { 310 background-color: #fff; 311 -webkit-box-shadow: 0px 4px 4px 0px rgba(0,0,0,0.2); 312 -moz-box-shadow: 0px 4px 4px 0px rgba(0,0,0,0.2); 313 box-shadow: 0px 4px 4px 0px rgba(0,0,0,0.2); 314} 315li.drop-down-link .sub-menu { 316 background-color: #fff; 317 color: #1D1C1B; 318 } 319.nav-scroll li.drop-down-link .sub-menu { 320 background-color: #fff; 321 color: #1D1C1B; 322} 323.drink-menu li.drop-down-link .sub-menu { 324 background-color: #fff; 325 color: #1D1C1B; 326} 327.drink-menu .nav-scroll li.drop-down-link .sub-menu { 328 background-color: #fff; 329 color: #1D1C1B; 330} 331li.drop-down-link .sub-menu a, 332li.drop-down-link div.drop-down { 333 color: #1D1C1B; 334} 335.nav-scroll li.drop-down-link .sub-menu a, 336.nav-scroll li.drop-down-link div.drop-down { 337 color: #1D1C1B; 338} 339.drink-menu li.drop-down-link .sub-menu a, 340.drink-menu li.drop-down-link div.drop-down { 341 color: #1D1C1B; 342} 343.drink-menu .nav-scroll li.drop-down-link .sub-menu a, 344.drink-menu .nav-scroll li.drop-down-link div.drop-down { 345 color: #1D1C1B; 346} 347 348.navbar-regular.nav-v6 .navbar-nav>li>a, 349.navbar-regular.nav-v6 .navbar-nav>li>a:hover, 350.navbar-regular.nav-v6 .navbar-nav>.active>a, 351.navbar-regular.nav-v6 .navbar-nav>.active>a:focus, 352.navbar-regular.nav-v6 .navbar-nav>.active>a:hover{ 353 border: none; 354 background-color: transparent; 355 color: #1D1C1B; 356} 357.navbar-regular.nav-v6 .navbar-nav>li>a { 358 color: #1D1C1B; 359} 360.drink-menu .navbar.nav-v6 .navbar-nav>li>a { 361 color: #1D1C1B; 362} 363.drink-menu .navbar-regular.nav-v6 .navbar-nav>li>a:hover, 364.drink-menu .navbar-regular.nav-v6 .navbar-nav>.active>a, 365.drink-menu .navbar-regular.nav-v6 .navbar-nav>.active>a:focus, 366.drink-menu .navbar-regular.nav-v6 .navbar-nav>.active>a:hover {
367 color: #1D1C1B; 368} 369 370li.drop-down-link .sub-menu a:hover, 371li.drop-down-link .sub-menu a:focus { 372 color: #1D1C1B; 373} 374.drink-menu li.drop-down-link .sub-menu a:hover, 375.drink-menu li.drop-down-link .sub-menu a:focus { 376 color: #1D1C1B; 377} 378 379.drink-menu .navbar.nav-v7 .navbar-nav>li>a { 380 color: #1D1C1B; 381} 382 383.navbar-regular.nav-v6 .navbar-toggle .icon-bar { 384 background-color: #1D1C1B; 385} 386.drink-menu .navbar-regular.nav-v6 .navbar-toggle .icon-bar { 387 background-color: #1D1C1B; 388} 389.navbar-regular.nav-v6 [aria-expanded="true"].navbar-toggle .icon-bar { 390 background-color: #1D1C1B; 391} 392.drink-menu .navbar-regular.nav-v6 [aria-expanded="true"].navbar-toggle .icon-bar { 393 background-color: #1D1C1B; 394} 395.navbar-regular.nav-v6.nav-scroll .navbar-nav>li>a, 396.navbar-regular.nav-v6.nav-scroll .navbar-nav>li>a:hover, 397.navbar-regular.nav-v6.nav-scroll .navbar-nav>.active>a, 398.navbar-regular.nav-v6.nav-scroll .navbar-nav>.active>a:focus, 399.navbar-regular.nav-v6.nav-scroll .navbar-nav>.active>a:hover { 400 border: none; 401 color: #1D1C1B; 402} 403.navbar-regular.nav-v6.nav-scroll .navbar-nav>li>a { 404 color: #1D1C1B; 405} 406.drink-menu .navbar.nav-v6.nav-scroll .navbar-nav>li>a { 407 border: none; 408 color: #1D1C1B; 409} 410.drink-menu .navbar-regular.nav-v6.nav-scroll .navbar-nav>li>a:hover, 411.drink-menu .navbar-regular.nav-v6.nav-scroll .navbar-nav>.active>a, 412.drink-menu .navbar-regular.nav-v6.nav-scroll .navbar-nav>.active>a:focus, 413.drink-menu .navbar-regular.nav-v6.nav-scroll .navbar-nav>.active>a:hover { 414 color: #1D1C1B; 415} 416 417.nav-scroll li.drop-down-link .sub-menu a:hover, 418.nav-scroll li.drop-down-link .sub-menu a:focus { 419 color: #1D1C1B; 420} 421.drink-menu .nav-scroll li.drop-down-link .sub-menu a:hover, 422.drink-menu .nav-scroll li.drop-down-link .sub-menu a:focus { 423 color: #1D1C1B; 424} 425 426.navbar-regular.nav-v6.nav-scroll .navbar-toggle .icon-bar { 427 background-color: #1D1C1B; 428} 429.drink-menu .navbar-regular.nav-v6.nav-scroll .navbar-toggle .icon-bar { 430 background-color: #1D1C1B; 431} 432.navbar-regular.nav-v6.nav-scroll [aria-expanded="true"].navbar-toggle .icon-bar { 433 background-color: #1D1C1B; 434} 435.drink-menu .navbar-regular.nav-v6.nav-scroll [aria-expanded="true"].navbar-toggle .icon-bar { 436 background-color: #1D1C1B; 437} 438.navbar.nav-v6 .header-logo-text{ 439 color: #1D1C1B; 440} 441.navbar.nav-v6.nav-scroll .header-logo-text{ 442 color: #1D1C1B; 443} 444.navbar.nav-v6 .social-icon{ 445 color: #1D1C1B; 446} 447.navbar.nav-v6.nav-scroll .social-icon{ 448 color: #1D1C1B; 449} 450.navbar.nav-v6 .social-square .contact-icon:hover { 451 color: #1D1C1B; 452 background-color: #1D1C1B; 453} 454.navbar.nav-v6.nav-scroll .social-square .contact-icon:hover { 455 color: #1D1C1B; 456 background-color: #1D1C1B; 457} 458 459.drink-menu .navbar.nav-v6 .header-logo-text{ 460 color: #1D1C1B; 461} 462.drink-menu .navbar.nav-v6.nav-scroll .header-logo-text{ 463 color: #1D1C1B; 464} 465.drink-menu .navbar.nav-v6 .social-icon{ 466 color: #1D1C1B; 467} 468.drink-menu .navbar.nav-v6.nav-scroll .social-icon{ 469 color: #1D1C1B; 470} 471.drink-menu .navbar.nav-v6 .social-square .contact-icon:hover { 472 color: #1D1C1B; 473 background-color: #1D1C1B; 474} 475.drink-menu .navbar.nav-v6.nav-scroll .social-square .contact-icon:hover { 476 color: #1D1C1B; 477 background-color: #1D1C1B; 478} 479.navbar.nav-v6 .navbar-tabs { 480 border-bottom: 1px solid transparent; 481} 482.navbar.nav-v6.nav-scroll .navbar-tabs { 483 border-bottom: 1px solid transparent; 484} 485.drink-menu .navbar.nav-v6 .navbar-tabs { 486 border-bottom: 1px solid transparent; 487} 488.drink-menu .navbar.nav-v6.nav-scroll .navbar-tabs { 489 border-bottom: 1px solid transparent; 490} 491@media (max-width: 767px) { 492 .navbar.nav-v6 { 493 background-color: #fff; 494 -webkit-box-shadow: 0px 4px 4px 0px rgba(0,0,0,0); 495 -moz-box-shadow: 0px 4px 4px 0px rgba(0,0,0,0); 496 box-shadow: 0px 4px 4px 0px rgba(0,0,0,0); 497 } 498 .navbar.nav-v6.nav-scroll { 499 background-color: #fff; 500 -webkit-box-shadow: 0px 4px 4px 0px rgba(0,0,0,0.2); 501 -moz-box-shadow: 0px 4px 4px 0px rgba(0,0,0,0.2); 502 box-shadow: 0px 4px 4px 0px rgba(0,0,0,0.2); 503 } 504 .drink-menu .navbar.nav-v6 { 505 background-color: #fff; 506 -webkit-box-shadow: 0px 4px 4px 0px rgba(0,0,0,0); 507 -moz-box-shadow: 0px 4px 4px 0px rgba(0,0,0,0); 508 box-shadow: 0px 4px 4px 0px rgba(0,0,0,0); 509 } 510 .drink-menu .navbar.nav-v6.nav-scroll { 511 background-color: #fff; 512 -webkit-box-shadow: 0px 4px 4px 0px rgba(0,0,0,0.2); 513 -moz-box-shadow: 0px 4px 4px 0px rgba(0,0,0,0.2); 514 box-shadow: 0px 4px 4px 0px rgba(0,0,0,0.2); 515 } 516 .navbar.nav-v6 .container, 517 .navbar.nav-v6.nav-scroll .container, 518 .drink-menu .navbar.nav-v6 .container, 519 .drink-menu .navbar.nav-v6.nav-scroll .container { 520 border-bottom: none; 521 } 522 .navbar.nav-v6 .navbar-header { 523 border-bottom: 1px solid transparent; 524 } 525 .navbar.nav-v6.nav-scroll .navbar-header { 526 border-bottom: 1px solid transparent; 527 } 528 .drink-menu .navbar.nav-v6 .navbar-header { 529 border-bottom: 1px solid transparent; 530 } 531 .drink-menu .navbar.nav-v6.nav-scroll .navbar-header { 532 border-bottom: 1spx solid transparent; 533 } 534 li.drop-down-link .sub-menu, 535 .drink-menu li.drop-down-link .sub-menu { 536 background-color: transparent; 537 } 538 .nav-scroll li.drop-down-link .sub-menu, 539 .drink-menu .nav-scroll li.drop-down-link .sub-menu { 540 background-color: transparent; 541 } 542 /* Mobile home background */ 543 .navbar.nav-v6.navbar-regular.mobile-full-height .navbar-collapse.collapse, 544 .navbar.nav-v6.navbar-regular.mobile-full-height .navbar-collapse.collapsing, 545 .navbar.nav-v6.navbar-regular.mobile-full-height .navbar-collapse.collapse.in { 546 background-color: #ffffff; 547 } 548 /* Mobile home background scroll */ 549 .navbar.nav-v6.navbar-regular.nav-scroll.mobile-full-height .navbar-collapse.collapse, 550 .navbar.nav-v6.navbar-regular.nav-scroll.mobile-full-height .navbar-collapse.collapsing, 551 .navbar.nav-v6.navbar-regular.nav-scroll.mobile-full-height .navbar-collapse.collapse.in { 552 background-color: #ffffff; 553 } 554 /* Mobile pages background */ 555 .drink-menu .navbar.nav-v6.navbar-regular.mobile-full-height .navbar-collapse.collapse, 556 .drink-menu .navbar.nav-v6.navbar-regular.mobile-full-height .navbar-collapse.collapsing, 557 .drink-menu .navbar.nav-v6.navbar-regular.mobile-full-height .navbar-collapse.collapse.in { 558 background-color: #ffffff; 559 } 560 /* Mobile pages background scroll */ 561 .drink-menu .nav-v6.navbar-regular.nav-scroll.mobile-full-height .navbar-collapse.collapse, 562 .drink-menu .nav-v6.navbar-regular.nav-scroll.mobile-full-height .navbar-collapse.collapsing, 563 .drink-menu .nav-v6.navbar-regular.nav-scroll.mobile-full-height .navbar-collapse.collapse.in { 564 background-color: #ffffff; 565 } 566 .navbar-regular.nav-v6 .navbar-nav>li>a:hover, 567 .navbar-regular.nav-v6 .navbar-nav>.active>a, 568 .navbar-regular.nav-v6 .navbar-nav>.active>a:focus, 569 .navbar-regular.nav-v6 .navbar-nav>.active>a:hover{ 570 background-color: #1D1C1B; 571 color: #1D1C1B; 572 } 573 .navbar-regular.nav-v6.nav-scroll .navbar-nav>li>a:hover, 574 .navbar-regular.nav-v6.nav-scroll .navbar-nav>.active>a, 575 .navbar-regular.nav-v6.nav-scroll .navbar-nav>.active>a:focus, 576 .navbar-regular.nav-v6.nav-scroll .navbar-nav>.active>a:hover{ 577 background-color: #1D1C1B; 578 color: #1D1C1B; 579 } 580 .drink-menu .navbar-regular.nav-v6 .navbar-nav>li>a:hover, 581 .drink-menu .navbar-regular.nav-v6 .navbar-nav>.active>a, 582 .drink-menu .navbar-regular.nav-v6 .navbar-nav>.active>a:focus, 583 .drink-menu .navbar-regular.nav-v6 .navbar-nav>.active>a:hover{ 584 background-color: #1D1C1B; 585 color: #1D1C1B; 586 } 587 .drink-menu .navbar-regular.nav-v6.nav-scroll .navbar-nav>li>a:hover, 588 .drink-menu .navbar-regular.nav-v6.nav-scroll .navbar-nav>.active>a, 589 .drink-menu .navbar-regular.nav-v6.nav-scroll .navbar-nav>.active>a:focus, 590 .drink-menu .navbar-regular.nav-v6.nav-scroll .navbar-nav>.active>a:hover{ 591 background-color: #1D1C1B; 592 color: #1D1C1B; 593 } 594 595 .navbar-regular.nav-v6 li.drop-down-link.active .drop-down .fa.fa-angle-up { 596 color: #1D1C1B; 597 } 598 .navbar-regular.nav-v6.nav-scroll li.drop-down-link.active .drop-down .fa.fa-angle-up { 599 color: #1D1C1B; 600 } 601 .drink-menu .navbar-regular.nav-v6 li.drop-down-link.active .drop-down .fa.fa-angle-up { 602 color: #1D1C1B; 603 } 604 .drink-menu .navbar-regular.nav-v6.nav-scroll li.drop-down-link.active .drop-down .fa.fa-angle-up { 605 color: #1D1C1B; 606 } 607} 608</style><!-- nav --><nav class="navbar nav-v4 nav-v6 nav-v7 nav-v8 nav-top navbar-regular navbar-fixed-top mobile-full-height" id="navbar" role="navigation"><div id="skip"><a class="visuallyhidden skip-content" 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="Lucy's on the Square logo top - Homepage" aria-label="Homepage" class="img-responsive logo-top logo-image" role="link" src="https://static.spotapps.co/website_images/ab_websites/634274_website_v1/logo_new_3.png" tabindex="0"/></div><div class="header-logo logo-scroll"><img alt="Lucy's on the Square logo scroll - Homepage" aria-label="Homepage" class="img-responsive logo-scroll logo-image" role="link" src="https://static.spotapps.co/website_images/ab_websites/634274_website_v1/logo_new_3.png" tabindex="0"/></div></li><li class="nav-tab nav-menu-page"><a class="" href="/food-menu" id="nav_tab_1_link" target="_self"> 609 610 Menu 611 </a></li><li class="nav-tab nav-menus-page"><a class="" href="/pies" id="nav_tab_2_link" target="_self"> 612 613 Pies 614 </a></li><li class="nav-tab"><a class="" href="/specials" id="nav_tab_3_link" target="_self"> 615 616 Specials 617 </a></li><li class="nav-tab nav-catering-link"><a class="link-catering-sh" href="/catering#" id="nav_tab_4_link" target="_self"> 618 619 Catering 620 </a></li><li class="nav-tab"><a class="" href="/events" id="nav_tab_5_link" target="_self"> 621 622 Events 623 </a></li><li class="nav-tab nav-parties-link"><a class="link-parties-sh" href="/party#" id="nav_tab_6_link" target="_self"> 624 625 Parties 626 </a></li><li class="nav-tab"><a class="" href="/jobs" id="nav_tab_8_link" target="_self"> 627 628 Jobs 629 </a></li><li class="nav-tab"><a class="" href="/gallery" id="nav_tab_9_link" target="_self"> 630 631 Gallery 632 </a></li><li class="nav-tab drop-down-link nav-order-link cta-nav-tab"><a aria-expanded="false" class="drop-down" href="#" id="nav_tab_10_link1" role="button" target=""> 633 634 Order 635 <i aria-hidden="true" class="fa fa-angle-down"></i><i aria-hidden="true" class="fa fa-angle-up"></i></a><ul class="sub-menu"><li>
635<a class="sub-menu-link" href="https://online.skytab.com/f24b67519a2f51ef3c22136c9fb172f0/order-settings" id="nav_tab_10_link1_option1" target="_blank"> 636 Pickup </a></li><li><a class="sub-menu-link" href="https://www.doordash.com/store/lucy's-on-the-square-celina-40975555/97256956/?srsltid=AfmBOooSX37GUZ7cfLI2cy8Cin7xWkKqJ2Mz6BVsuNMp0IewYDt29G-J" id="nav_tab_10_link1_option2" target="_blank"> 637 Delivery </a></li></ul></li><li class="nav-tab helper-tab"><a href="#" id="hidden_tab_r" target="_self"><span class="visuallyhidden">Go to top</span></a></li></ul><ul class="socialnav"><li class="social-links social-icons-holder social-square"><a class="pull-left contact-icon" href="https://www.facebook.com/615983408524009" target="_blank"><i class="social-icon fa fa-facebook"></i><span>Facebook page</span></a></li><li class="social-links social-icons-holder social-square"><a class="pull-left contact-icon" href="https://www.instagram.com/lucysonthesquare" target="_blank"><i class="social-icon fa fa-instagram"></i><span>Instagram page</span></a></li><li class="social-links social-icons-holder social-square"><a class="pull-left contact-icon" href="https://www.google.com/search?q=Lucy%27s+on+the+Square+127+North+Ohio+Street+celina&rlz=1C1YTUH_enRS1087RS1087&oq=Lucy%27s+on+the+Square+127+North+Ohio+Street+celina&gs_lcrp=EgZjaHJvbWUyBggAEEUYOTIHCAEQIRigATIHCAIQIRiPAjIHCAMQIRiPAtIBCDE1NjNqMGo3qAIAsAIA&sourceid=chrome&ie=UTF-8#lrd=0x864c41993927053b:0x67b45c971554af27,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"><a class="header-logo logo-top" href="/#"><img alt="Lucy's on the Square logo top - Homepage" aria-label="Homepage" class="img-responsive logo-top" src="https://static.spotapps.co/website_images/ab_websites/634274_website_v1/logo_new_3.png"/></a><a class="header-logo logo-scroll" href="/"><img alt="Lucy's on the Square logo scroll - Homepage" aria-label="Homepage" class="img-responsive logo-scroll" src="https://static.spotapps.co/website_images/ab_websites/634274_website_v1/logo_new_3.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/615983408524009" target="_blank"><i class="social-icon fa fa-facebook"></i><span>Facebook page</span></a></li><li class="social-links social-icons-holder social-square"><a class="pull-left contact-icon" href="https://www.instagram.com/lucysonthesquare" target="_blank"><i class="social-icon fa fa-instagram"></i><span>Instagram page</span></a></li><li class="social-links social-icons-holder social-square"><a class="pull-left contact-icon" href="https://www.google.com/search?q=Lucy%27s+on+the+Square+127+North+Ohio+Street+celina&rlz=1C1YTUH_enRS1087RS1087&oq=Lucy%27s+on+the+Square+127+North+Ohio+Street+celina&gs_lcrp=EgZjaHJvbWUyBggAEEUYOTIHCAEQIRigATIHCAIQIRiPAjIHCAMQIRiPAtIBCDE1NjNqMGo3qAIAsAIA&sourceid=chrome&ie=UTF-8#lrd=0x864c41993927053b:0x67b45c971554af27,1,,,," target="_blank"><i aria-hidden="true" class="social-icon fa fa-google"></i><span>Google page</span></a></li></ul><div class="navbar-header"><button aria-expanded="false" class="navbar-toggle" data-target="#navbar-collapse-1" data-toggle="collapse" type="button"><span class="sr-only">Toggle navigation</span><span class="icon-bar"></span><span class="icon-bar"></span><span class="icon-bar"></span></button></div><div class="collapse navbar-collapse" id="navbar-collapse-1"><ul class="nav navbar-nav navbar-right"><li class=" nav-menu-page"><a class="" href="/food-menu" id="mobile_nav_tab_1_link" target="_self"> 638 Menu 639 640 </a></li><li class=" nav-menus-page"><a class="" href="/pies" id="mobile_nav_tab_2_link" target="_self"> 641 Pies 642 643 </a></li><li class=" "><a class="" href="/specials" id="mobile_nav_tab_3_link" target="_self"> 644 Specials 645 646 </a></li><li class=" nav-catering-link"><a class="link-catering-sh" href="/catering#" id="mobile_nav_tab_4_link" target="_self"> 647 Catering 648 649 </a></li><li class=" "><a class="" href="/events" id="mobile_nav_tab_5_link" target="_self"> 650 Events 651 652 </a></li><li class=" nav-parties-link"><a class="link-parties-sh" href="/party#" id="mobile_nav_tab_6_link" target="_self"> 653 Parties 654 655 </a></li><li class=" "><a class="" href="/jobs" id="mobile_nav_tab_8_link" target="_self"> 656 Jobs 657 658 </a></li><li class=" "><a class="" href="/gallery" id="mobile_nav_tab_9_link" target="_self"> 659 Gallery 660 661 </a></li><li class=" drop-down-link nav-order-link cta-nav-tab"><a aria-expanded="false" class="drop-down" href="#" id="mobile_nav_tab_10_link1" role="button" target=""> 662 Order 663 <i aria-hidden="true" class="fa fa-angle-down"></i><i aria-hidden="true" class="fa fa-angle-up"></i></a><ul class="sub-menu"><li>
663<a class="sub-menu-link" href="https://online.skytab.com/f24b67519a2f51ef3c22136c9fb172f0/order-settings" id="mobile_nav_tab_10_link1_option1" target="_blank"> 664 Pickup </a></li><li><a class="sub-menu-link" href="https://www.doordash.com/store/lucy's-on-the-square-celina-40975555/97256956/?srsltid=AfmBOooSX37GUZ7cfLI2cy8Cin7xWkKqJ2Mz6BVsuNMp0IewYDt29G-J" id="mobile_nav_tab_10_link1_option2" target="_blank"> 665 Delivery </a></li></ul></li></ul></div></div></div></nav></header><main id="content" role="main"><h1 class="visuallyhidden">About us</h1><article><div class="about-page-content"><section id="about_s1_section"><!-- Start Section 1 --><div class="about-us-s1-wrapper section-wrapper" id="about_s1"><div class="container"><div class="about-us-item-holder"><div class="about-us-item about-us-s1 about-us-s1-content hidden-sm hidden-xs"><div class="text-wrapper"><div class="text-content"><h2 class="page-title">Hospitality with a Family Heart</h2><p>A LOCAL FAVORITE SINCE DAY ONE</p></div></div></div><div aria-hidden="true" class="about-us-item about-us-s1 about-us-s1-slide" style="height:60vh"><div class="uk-slidenav-position" data-uk-slideshow="data-uk-slideshow" style="height:100%; overflow-y: hidden;"><button aria-hidden="true" aria-label="The slideshow is currently playing, pause the slideshow" class="slideshow-controls-btn playing" tabindex="-1" type="button"><span class="off-screen">slideshow start stop playing</span><i aria-hidden="true" class="fa fa-play"></i><i aria-hidden="true" class="fa fa-pause"></i></button><ul class="uk-dotnav uk-dotnav-contrast uk-position-bottom uk-flex-center"><li data-uk-slideshow-item="0"><a aria-hidden="true" href="" tabindex="-1"><span class="off-screen">Dot slide navigation number 1</span></a></li><li data-uk-slideshow-item="1"><a aria-hidden="true" href="" tabindex="-1"><span class="off-screen">Dot slide navigation number 2</span></a></li></ul><a aria-hidden="true" class="uk-slidenav uk-slidenav-contrast uk-slidenav-previous" data-uk-slideshow-item="previous" href="" tabindex="-1"><span class="off-screen">previous slide</span></a><a aria-hidden="true" class="uk-slidenav uk-slidenav-contrast uk-slidenav-next" data-uk-slideshow-item="next" href="" tabindex="-1"><span class="off-screen">next slide</span></a><ul class="uk-slideshow">
665<li><img alt="" aria-hidden="true" src="https://static.spotapps.co/website_images/ab_websites/634274_website_v1/about_s1.jpg"/></li><li><img alt="" aria-hidden="true" src="https://static.spotapps.co/website_images/ab_websites/634274_website_v1/about_s2.jpg"/></li></ul></div></div><div class="about-us-item about-us-s1 about-us-s1-content visible-sm visible-xs"><div class="text-wrapper"><div class="text-content"><h2 class="page-title">Hospitality with a Family Heart</h2><p>A LOCAL FAVORITE SINCE DAY ONE</p></div></div></div></div></div></div><!-- End Section 1 --></section><section id="about_s2_section"><!-- Start Section 2 --><div class="about-us-v7-wrapper about-us-s2-wrapper section-wrapper" id="about_s2"><div class="container about-us-v7"><div class="about-us-item-holder"><div class="about-us-item about-us-s2-image about-us-v7-content" style="background-image: url('https://static.spotapps.co/website_images/ab_websites/634274_website_v1/about_pg.jpg')"></div><div class="about-us-item about-us-s2-content about-us-v7-content"><div class="text-wrapper"><div class="text-content"><h2 class="section-header">About Lucy's</h2><p style="text-align: left;">Nothing says deep in the heart of Texas quite like Lucy's on the Square. The eatery resides in a more than 100-year-old brick building in Celina, Texas, about an hour away from the hectic bustle of Dallas. Inside, Texas-themed knick-knacks abound: diners can spot everything from a railroad sign to a wagon wheel, cowboy hat or an acoustic guitar. </p></div></div></div></div></div></div><!-- End Section 2 --></section><section id="about_s4_section"><!-- Start Section 4 Custom section --><div class="about-us-s4-wrapper section-wrapper" id="about_s4"><div class="container"></div></div><!-- End Section 4 Custom section --></section><section id="about_s3_section"><!-- Start Section 3 --><div class="about-us-s3-wrapper maps-wrapper section-wrapper" id="about_s3"><div class="container"><div class="about-us-item-holder"><div class="map-holder"><div aria-label="OpenStreet map" id="map-container" role="region"></div><div class="map-footer"><p> 666 Contact us: 667 <a href="tel:+19723821212" id="contact_us_v3_section_phone_link"><span class="off-screen">by phone</span> (972)-382-1212,</a><a href="mailto:[email protected]"><span class="off-screen">by email</span> [email protected]</a></p></div></div></div></div></div><!-- End Section 3 --></section></div></article></main><style type="text/css"> 668 .navbar-fixed-bottom.nav-v1 { 669 bottom: -100px; 670 } 671 .navbar-fixed-bottom.nav-v1 .nav.navbar-nav.navbar-right { 672 background-color: #1D1C1B; 673 } 674 .navbar-fixed-bottom.nav-v1 .bottom-svg-border path, 675 .navbar-fixed-bottom.nav-v1 .bottom-svg-border polygon { 676 fill: #000; 677 } 678 .navbar-fixed-bottom.nav-v1 .bottom-list-item a { 679 color: #fff; 680 } 681 .navbar-fixed-bottom.nav-v1 .bottom-list-item a:hover, 682 .navbar-fixed-bottom.nav-v1 .bottom-list-item a:focus { 683 color: #fff; 684 } 685</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://online.skytab.com/f24b67519a2f51ef3c22136c9fb172f0/order-settings" id="bottom_link_4" target="_self"> 686 Order </a></li><li class="bottom-list-item "><a class="bottom-link " href="/party" id="bottom_link_5" target="_self"> 687 Parties </a></li><li class="bottom-list-item "><a class="bottom-link " href="/catering" id="bottom_link_6" target="_self"> 688 Catering </a></li><li class="bottom-list-item "><a class="bottom-link " href="https://tmt.spotapps.co/job-listings?spot_id=634274&callback_url=http://lucysonthesquare.com/about" id="bottom_link_7" target="_self"> 689 Jobs </a></li></ul></div></nav>
689<script src="https://static.spotapps.co/web/lucysonthesquare--com/lib/jquery/jquery.min.js"></script>
689<script src="https://static.spotapps.co/web/lucysonthesquare--com/lib/bootstrap/js/bootstrap.min.js"></script>
689<script src="https://static.spotapps.co/web/lucysonthesquare--com/lib/uikit/js/uikit.min.js"></script>
689<script src="https://static.spotapps.co/web/lucysonthesquare--com/lib/uikit/js/slideshow.min.js"></script>
689<script src="https://static.spotapps.co/web/lucysonthesquare--com/lib/uikit/js/slideshow-fx.min.js"></script>
689<script src="https://static.spotapps.co/iframeResizer.js" type="text/javascript"></script>
689<script src="//static.spotapps.co/web-lib/leaflet/[email protected]/dist/leaflet.js"></script>
689<script src="//static.spotapps.co/web-lib/leaflet/leaflet-providers.js"></script>
689<script src="//static.spotapps.co/web-lib/leaflet/[email protected]/dist/leaflet-gesture-handling.min.js"></script>
689<script> 690 691 $("#bottom_link_4").on("click", function(){ 692 if (ga_check()) 693 universal_ga('send', 'event', 'Button', 'Click', 'Order Online'); 694 }); 695 $("#bottom_link_5").on("click", function(){ 696 if (ga_check()) 697 universal_ga('send', 'event', 'Button', 'Click', 'Private Party'); 698 }); 699 $("#bottom_link_6").on("click", function(){ 700 if (ga_check()) 701 universal_ga('send', 'event', 'Button', 'Click', 'Catering'); 702 }); 703 $("#bottom_link_7").on("click", function(){ 704 if (ga_check()) 705 universal_ga('send', 'event', 'Button', 'Click', 'Jobs'); 706 }); 707 $('.header-logo, .nav-v2-home-btn').click(function(event) { 708 if ( window.location.pathname == '/' || window.location.pathname == '/index.php') { 709 event.preventDefault(); 710 var windowScrollTop = $(window).scrollTop(); 711 if(windowScrollTop > 150) { 712 $('html, body').animate({scrollTop: 0}, 750); 713 } 714 } 715 }); 716 717$(".banner-section a.banner-pin").click(function(e) { 718 // target element id 719 var id = $(this).attr('href'); 720 721 // target element 722 var section = $(id); 723 if (section.length === 0) { 724 return; 725 } 726 727 // prevent standard hash navigation (avoid blinking in IE) 728 e.preventDefault(); 729 730 // top position relative to the document 731 var pos = section.offset().top - 100 + 10; 732 733 // animated top scrolling 734 $('body, html').animate({scrollTop: pos}, 750); 735}); 736 737$(document).ready(function() { 738 var navHeight = $('nav.navbar').height(); 739 $('html').css("scroll-padding-top", navHeight); 740}); 741 742var called_v8_scroll = false; 743 744$(document).on('scroll', function (e) { 745 if($(document).scrollTop() > 0) { 746 $('.navbar.nav-v7').addClass('nav-scroll'); 747 $('.navbar.nav-v7').removeClass('nav-top'); 748 if (2 !=2 && 2 == 2) { 749 if(!called_v8_scroll) { 750 setTimeout(function(){ 751 setHelperTabWidth(); 752 called_v8_scroll = true; 753 }, 300); 754 } 755 } 756 }else { 757 $('.navbar.nav-v7').removeClass('nav-scroll'); 758 $('.navbar.nav-v7').addClass('nav-top'); 759 if (2 != 2 && 2 == 2) { 760 $('#hidden_tab_r').width(0); 761 $('#hidden_tab_l').width(0); 762 $('.navbar-nav li.nav-tab').first().css('margin-left', '0px'); 763 $('.navbar-nav li.nav-tab').last().css('margin-right', '0px'); 764 called_v8_scroll = false; 765 } 766 } 767}); 768 769$(function() { 770 setDropDownMenuWidth(); 771 772 function setDropDownMenuWidth() { 773 var tabs_list = $('.navbar-tabs .navbar-nav'); 774 775 $(tabs_list).find('li.drop-down-link').each(function() { 776 var sub_menu_width = $(this).outerWidth(true); 777 if (sub_menu_width < 100) { 778 sub_menu_width = 100; 779 } 780 $(this).find('.sub-menu').css('width', sub_menu_width+'px'); 781 }); 782 } 783 784 $( window ).resize(function() { 785 setDropDownMenuWidth(); 786 }); 787 $( window ).load(function() { 788 setDropDownMenuWidth(); 789 }); 790 791}); 792 793 794 795$( '.drop-down-link .drop-down' ).click(function(event) { 796 event.preventDefault(); 797 event.stopPropagation(); 798 799 var drop_down = $(this).closest('.drop-down-link'); 800 var drop_down_a = $(this); 801 802 if($(drop_down_a).attr("aria-expanded") == "true") { 803 $(drop_down_a).attr("aria-expanded",false) 804 } else { 805 $(drop_down_a).attr("aria-expanded",true) 806 } 807 808 809 var sub_menu = $(this).closest('.drop-down-link').find( '.sub-menu' ); 810 811 if ( $(sub_menu).is( ':hidden' ) ) { 812 $(sub_menu).slideDown(); 813 $(drop_down).addClass('active'); 814 } else { 815 $(sub_menu).slideUp(); 816 $(drop_down).removeClass('active'); 817 } 818}); 819 820//// Set width for corresponding helper tab or margin for first or last nav tab depending on calculeted width sum of left and right tabs 821function setHelperTabWidth() { 822 var nav_tab_width; 823 var tabs_left_width = 0; 824 var tabs_right_width = 0; 825 826 var full_nav_tab_width; 827 var full_tabs_left_width = 0; 828 var full_tabs_right_width = 0; 829 830 $('li.nav-tab').each(function( index, element ) { 831 832 nav_tab_width = $(element).find('a').width(); 833 full_nav_tab_width = $(element).outerWidth(true); 834 835 if (!($(element).hasClass('helper-tab'))) { 836 if (index<5) { 837 tabs_left_width += nav_tab_width; 838 full_tabs_left_width += full_nav_tab_width; 839 } else { 840 tabs_right_width += nav_tab_width; 841 full_tabs_right_width += full_nav_tab_width; 842 } 843 } else { 844 if(index == 0) { 845 full_tabs_left_width += full_nav_tab_width; 846 } else { 847 full_tabs_right_width += full_nav_tab_width; 848 } 849 } 850 851 }); 852 853 var tabs_width_differance = tabs_left_width - tabs_right_width; 854 var helper_value = Math.abs(tabs_width_differance); 855 var full_tabs_width_differance = full_tabs_left_width - full_tabs_right_width; 856 857 // if sum of left tabs width is smaller than rigth tabs width tabs_width_differance is negative set margin left for first tab 858 if (full_tabs_width_differance != 0) { 859 if (tabs_width_differance < 0) { 860 $('.navbar-nav li.nav-tab').first().css('margin-left', helper_value+'px'); 861 } else { 862 $('.navbar-nav li.nav-tab').last().css('margin-right', helper_value+'px'); 863 } 864 } 865 866} 867 868$(function() { 869 setNavTabsWidth(); 870 871 function setNavTabsWidth() { 872 var container_width = $('.navbar-tabs .container').outerWidth(); 873 var social_icons_width = $('.navbar-tabs .socialnav').outerWidth(true); 874 var reduced_tabs_width = container_width - (2 * social_icons_width) -10; 875 876 $('.navbar-tabs .navbar-content').width(reduced_tabs_width); 877 878 // helper value set in case logo is centered and tabs width sum on the left and on the right are not the same 879 if (2 == 2) { 880 setTimeout(function(){ 881 setHelperTabWidth(); 882 $('.navbar.nav-v8 .desktop-navigation .navbar-nav').css('opacity', '1'); 883 }, 300); 884 885 } 886 } 887 888 $( window ).resize(function() { 889 setNavTabsWidth(); 890 }); 891 892 $('.nav a:not(.drop-down)').on('click', function () { 893 $('.navbar-collapse').collapse('hide'); 894 }); 895 896}); 897 898$('.logo-holder .logo-image').click(function(event) { 899 if ( window.location.pathname == '/' || window.location.pathname == '/index.php') { 900 var windowScrollToTop = $(window).scrollTop(); 901 if(windowScrollToTop > 150) { 902 $('html, body').animate({scrollTop: 0}, 750); 903 } 904 } else { 905 window.location = "/"; 906 } 907}); 908 909const mobileDrop = document.querySelector('.mobile-full-height #navbar-collapse-1 .navbar-nav'); 910const mobileDropButton = document.querySelector('.mobile-full-height .navbar-toggle'); 911const mobileHeader = document.querySelector('.mobile-full-height .navbar-header'); 912 913mobileDropButton?.addEventListener('click', () => { 914 mobileHeaderBottomPos = mobileHeader.getBoundingClientRect().bottom; 915 mobileDrop.style.paddingTop = mobileHeaderBottomPos + 'px'; 916}); 917 918(function () { 919 const isSafari = (() => { 920 const ua = navigator.userAgent; 921 return ua.includes('Safari') && // Safari must be present
922 !ua.includes('Chrome') && // Exclude Chrome (has 'Safari' in UA) 923 !ua.includes('Edg'); // Exclude Edge 924 })(); 925 926 if (!isSafari) return; 927 const menu = document.getElementById('navbar-collapse-1'); 928 929 // When coming back from a _blank tab or bfcache restore, force a repaint. 930 function nudgeRepaint() { 931 if (!menu || !menu.classList.contains('in')) return; 932 // toggle display to flush rendering, then poke will-change for one frame 933 const prev = menu.style.display; 934 menu.style.display = 'none'; 935 // force reflow 936 void menu.offsetHeight; 937 menu.style.display = prev || ''; 938 menu.style.willChange = 'opacity'; 939 requestAnimationFrame(() => { menu.style.willChange = 'auto'; }); 940 } 941 942 document.addEventListener('visibilitychange', () => { 943 if (document.visibilityState === 'visible') nudgeRepaint(); 944 }); 945 946 // iOS/macOS Safari often restores pages from bfcache 947 window.addEventListener('pageshow', (e) => { 948 if (e.persisted) nudgeRepaint(); 949 else nudgeRepaint(); 950 }, { passive: true }); 951 952 // Keep menu open when clicking links that open in a new tab 953 menu?.addEventListener('click', (e) => { 954 const a = e.target.closest('a'); 955 if (!a) return; 956 if (a.target === '_blank') { 957 // avoid any delegated "close on link click" handlers firing first 958 e.stopPropagation(); 959 // allow navigation; after we return, repaint nudge will run 960 } 961 }, true); 962})(); 963 964document.querySelectorAll('.navbar .navbar-nav > li.cta-nav-tab').forEach((li) => { 965 li.addEventListener('click', (e) => { 966 if (e.defaultPrevented) return; 967 968 if (e.target.closest('a')) return; 969 970 const link = li.querySelector('a[href]'); 971 if (!link) return; 972 973 if (e.metaKey || e.ctrlKey || e.shiftKey || e.button === 1 || link.target === '_blank') { 974 window.open(link.href, link.target || '_blank'); 975 return; 976 } 977 978 link.click(); 979 }); 980 981 li.addEventListener('keydown', (e) => { 982 if ((e.key === 'Enter' || e.key === ' ') && !e.target.closest('a')) { 983 const link = li.querySelector('a[href]'); 984 if (!link) return; 985 e.preventDefault(); 986 link.click(); 987 } 988 }); 989}); 990 setTimeout(function(){ 991 $('.navbar-fixed-bottom.nav-v1').addClass('show-bottom-nav'); triggerShowFooterEvents(); 992 }, 4000); 993 function setSlideSectionHeight() { 994 995 var window_width = $(window).width(); 996 if(window_width > 991) { 997 var section_first_content_height = $('.about-us-s1-content.hidden-sm').outerHeight(true); 998 999 var initial_slide_height_vh = '60vh'; 1000 var initial_slide_height = initial_slide_height_vh.slice(0, -2); 1001 var initial_slide_height_px = $(window).height() * (initial_slide_height/100); 1002 1003 if(section_first_content_height >= initial_slide_height_px) { 1004 $('.about-us-s1.about-us-s1-slide').height(section_first_content_height); 1005 } 1006 } 1007 1008 } 1009 1010 function setImageTextSectionHeight() { 1011 var section_text_content_height = $('.about-us-s2-content .text-content').outerHeight(true); 1012 var section_text_holder_height = $('.about-us-s2-content').outerHeight(true); 1013 1014 if(section_text_content_height >= section_text_holder_height) { 1015 var new_section_text_holder_height = section_text_content_height + 20; 1016 $('.about-us-page .about-us-s2-content').css('min-height', section_text_content_height + 'px'); 1017 } 1018 } 1019 1020 $(document).ready(function() { 1021 1022 setSlideSectionHeight(); 1023 setImageTextSectionHeight(); 1024 1025 var slideshow_about_page = UIkit.slideshow('.about-us-s1-slide [data-uk-slideshow]', { 1026 autoplay: true, 1027 height: '100%', 1028 animation: 'fade', 1029 duration: 500, 1030 autoplayInterval: 3000, 1031 pauseOnHover: false 1032 }); 1033 1034 //play or pause slideshow functions 1035 $('.about-us-s1-slide .slideshow-controls-btn').click(function () { 1036 if($(this).hasClass('playing')){ 1037 slideshow_about_page.stop(); 1038 $(this).removeClass('playing'); 1039 $(this).addClass('paused'); 1040 $(this).attr( "aria-label", "The slideshow is currently paused, play the slideshow"); 1041 }else { 1042 slideshow_about_page.start(); 1043 $(this).removeClass('paused'); 1044 $(this).addClass('playing'); 1045 $(this).attr( "aria-label", "The slideshow is currently playing, pause the slideshow"); 1046 } 1047 }); 1048 1049 $('.about-us-s1-slide .uk-dotnav a, .about-us-s1-slide a.uk-slidenav').click(function () { 1050 $('.about-us-s1-slide .slideshow-controls-btn').removeClass('playing'); 1051 $('.about-us-s1-slide .slideshow-controls-btn').addClass('paused'); 1052 $('.about-us-s1-slide .slideshow-controls-btn').attr( "aria-label", "The slideshow is currently paused, play the slideshow"); 1053 }); 1054 1055 }); 1056 1057 $( window ).resize(function() { 1058 setSlideSectionHeight(); 1059 setImageTextSectionHeight(); 1060 }); 1061 1062 iFrameResize({ 1063 enablePublicMethods: true, 1064 enableInPageLinks: true 1065 }); 1066 1067 var marker_icon = ""; 1068 var additionalPins = ''; 1069 if (additionalPins) { 1070 var locationsArray = JSON.parse(''); 1071 } 1072 1073 var google_map_url = 'https://www.google.com/maps/place/' + ",127 N Ohio
1073St,Celina,TX,75009".split(' ').join('+'); 1074 function open_google_map() { 1075 window.open(google_map_url, '_blank') 1076 } 1077 1078 function discontinuous(func){ 1079 var timer; 1080 return function(event){ 1081 if(timer) clearTimeout(timer); 1082 timer = setTimeout(func,200,event); 1083 }; 1084 } 1085 1086 function init_open_street_map() { 1087 if (additionalPins) { 1088 var map = L.map('map-container', { 1089 minZoom: 3, 1090 zoomControl: false, 1091 attributionControl: false, 1092 zoomSnap: 1.1, 1093 gestureHandling: true 1094 }); 1095 1096 var allMarkers = []; 1097 1098 var marker = L.marker([33.324487, -96.786022], {title: '127 N Ohio St, Celina', alt: 'View 127 N Ohio St, Celina on Google maps - opens in a new tab'}).addTo(map); 1099 1100 marker.on('click keypress', open_google_map); 1101 1102 allMarkers.push(marker); 1103 1104 locationsArray.forEach(function(element, index) { 1105 var additionalMarker = L.marker([element.lat_coords, element.lng_coords], {title: element.pin_title, alt: 'View ' + element.pin_title + ' on Google maps - opens in a new tab'}).addTo(map); 1106 1107 additionalMarker.on('click keypress', function() { 1108 window.open(element.pin_link, '_blank'); 1109 }); 1110 1111 allMarkers.push(additionalMarker); 1112 1113 }); 1114 1115 function fitBoundsToMarkers(osmap, markers) { 1116 osmap.invalidateSize(); 1117 var group = new L.featureGroup(markers); 1118 osmap.fitBounds(group.getBounds(), {padding: [50, 50]}); 1119 } 1120 1121 fitBoundsToMarkers(map, allMarkers); 1122 1123 document.querySelector('.reset-zoom-btn').addEventListener('click', function () { 1124 fitBoundsToMarkers(map, allMarkers); 1125 }); 1126 1127 window.addEventListener("resize", discontinuous(function(e) { 1128 fitBoundsToMarkers(map, allMarkers); 1129 })); 1130 } else { 1131 var map = L.map('map-container', { 1132 center: [ 33.324487, -96.786022], 1133 zoom: 16, 1134 dragging: false, 1135 minZoom: 3, 1136 zoomControl: false, 1137 attributionControl: false 1138 }); 1139 1140 var marker = L.marker([33.324487, -96.786022], {title: '127 N Ohio St, Celina', alt: 'View 127 N Ohio St, Celina on Google maps - opens in a new tab'}).addTo(map); 1141 1142 marker.on('click keypress', open_google_map); 1143 1144 map.scrollWheelZoom.disable(); 1145 } 1146 1147 if (marker_icon.length>0){ 1148 var myIcon = L.icon({ 1149 iconUrl: marker_icon, 1150 iconSize: [35,35] }); 1151 1152 if(allMarkers) { 1153 allMarkers.forEach(marker => { 1154 marker.setIcon(myIcon); 1155 marker.update(); 1156 }); 1157 } else { 1158 marker.setIcon(myIcon); 1159 marker.update(); 1160 } 1161 } 1162 1163 L.tileLayer.provider('OpenStreetMap.Mapnik').addTo(map); 1164 L.control.zoom({ 1165 position:'topleft' 1166 }).addTo(map); 1167 L.control.attribution({ 1168 position:'topright' 1169 }).addTo(map); 1170 1171 $('.about-us-s3-wrapper #map-container').removeAttr('tabindex'); 1172 $('.leaflet-touch .leaflet-bar a').attr('tabindex', '-1'); 1173 $('.leaflet-container .leaflet-marker-pane img').attr('role', 'link'); 1174 } 1175 1176 $(document).ready(function() { 1177 init_open_street_map(); 1178 }); 1179</script>
1179<script> 1180(function() { 1181 var name = "Lucy's on the Square"; 1182 var pid = "ChIJOwUnOZlBTIYRJ69UFZdctGc"; 1183 function build_url() { 1184 var q = encodeURIComponent(name).replace(/'/g, "%27"); 1185 return "https://www.google.com/maps/search/?api=1" 1186 + "&query=" + q 1187 + "&query_place_id=" + encodeURIComponent(pid); 1188 } 1189 window.google_map_url = build_url(); 1190 window.open_google_map = function() { 1191 window.open(build_url(), "_blank"); 1192 }; 1193})(); 1194</script>
1194<script> 1195 1196 var spot_id = 634274; 1197 var sh_generic_form_params=JSON.parse('{}'); 1198 1199 if (false){ 1200 console.log("Check SpotHopper configuration. Probably there is no 'WEBSITE::DOMAIN_NAME' key for your website"); 1201 } 1202 1203 if (navigator.userAgent.match(/iPhone/i) 1204 || navigator.userAgent.match(/iPad/i) 1205 || navigator.userAgent.match(/iPod/i)){ 1206 $(document).ready(function(){ 1207 document.body.className += " " + "webkit-mobile-body"; 1208 }); 1209 } 1210 1211 var promotion_url_param_domain = getPromotionUrlParams()['domain']; 1212 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')){ 1213 $("a[href^='/']").each(function(){ 1214 if (this.href.indexOf('domain=') == -1){ 1215 var sh_internal_url = new URL(this.href); 1216 sh_internal_url.searchParams.set("domain", promotion_url_param_domain); 1217 this.href = sh_internal_url.toString(); 1218 } 1219 }) 1220 } 1221 1222 1223 function cta_link_matches_href(href, url){ 1224 var domain = 'lucysonthesquare.com'; 1225 if(typeof url === 'undefined'){ 1226 return false; 1227 } 1228 var partsOfURL = url.split(domain); 1229 if (partsOfURL.length != 2){ 1230 return href == url; 1231 }else{ 1232 var urlPath = partsOfURL[1]; 1233 if (urlPath.substring(0,1) == "/"){ 1234 urlPath = urlPath.substring(1,urlPath.length); 1235 } 1236 return href.indexOf(urlPath, domain.length + href.indexOf(domain)-1) !== -1; 1237 } 1238 } 1239 1240 var all_cta_links = [{"id":1668684,"spot_id":634274,"url":"https://lucysonthesquare.com/-party","cta_link_type":"private_parties","created_at":"2025-11-18T17:40:40.904+00:00","updated_at":"2026-08-13T09:25:02.967+00:00","made_of_food":false,"link_name":"Private Parties","target":null,"website_footer_label":"Parties","position":3},{"id":1776297,"spot_id":634274,"url":"https://lucysonthesquare.com/specials","cta_link_type":"specials","created_at":"2026-02-02T13:34:41.258+00:00","updated_at":"2026-08-13T09:25:02.870+00:00","made_of_food":false,"link_name":"","position":null},{"id":1668683,"spot_id":634274,"url":"https://lucysonthesquare.com/-catering","cta_link_type":"catering","created_at":"2025-11-18T17:40:40.816+00:00","updated_at":"2026-08-13T09:25:03.146+00:00","made_of_food":false,"link_name":"Catering","target":null,"website_footer_label":"Catering","position":4},{"id":1776298,"spot_id":634274,"url":"https://lucysonthesquare.com/events","cta_link_type":"events","created_at":"2026-02-02T13:34:41.384+00:00","updated_at":"2026-08-13T09:25:03.022+00:00","made_of_food":false,"link_name":"","position":null},{"id":2072862,"spot_id":634274,"url":"https://www.doordash.com/store/lucy's-on-the-square-celina-40975555/97256956/?srsltid=AfmBOooSX37GUZ7cfLI2cy8Cin7xWkKqJ2Mz6BVsuNMp0IewYDt29G-J","cta_link_type":"order2","created_at":"2026-08-13T09:31:16.931+00:00","updated_at":"2026-08-13T09:33:13.728+00:00","made_of_food":false,"link_name":"","target":null,"website_footer_label":"Order","position":11},{"id":1776299,"spot_id":634274,"url":"https://lucysonthesquare.com/food-menu","cta_link_type":"food_menu","created_at":"2026-02-02T13:34:41.433+00:00","updated_at":"2026-08-13T09:25:03.075+00:00","made_of_food":false,"link_name":"","position":null},{"id":1726797,"spot_id":634274,"url":"https://online.skytab.com/f24b67519a2f51ef3c22136c9fb172f0/order-settings","cta_link_type":"order","created_at":"2025-12-30T09:33:20.480+00:00","updated_at":"2026-08-13T09:33:13.643+00:00","made_of_food":false,"link_name":"Order","target":null,"website_footer_label":"Order","position":0},{"id":1668685,"spot_id":634274,"url":"https://lucysonthesquare.com/jobs","cta_link_type":"job_listing","created_at":"2025-11-18T17:40:40.961+00:00","updated_at":"2026-08-13T09:25:03.201+00:00","made_of_food":false,"link_name":"Job Listing","target":null,"website_footer_label":"Jobs","position":2}]; 1241 1242 function find_cta_link(href) { 1243 for (var i=0; i< all_cta_links.length; i++){ 1244 var cta_link = all_cta_links[i]; 1245 if ( cta_link_matches_href(href, cta_link.url)){ 1246 return cta_link; 1247 } 1248 } 1249 } 1250 1251 function find_cta_links(href) { 1252 var cta_links = [] 1253 for (var i=0; i< all_cta_links.length; i++){ 1254 var cta_link = all_cta_links[i]; 1255 if ( cta_link_matches_href(href, cta_link.url)){ 1256 cta_links.push(cta_link); 1257 } 1258 } 1259 return cta_links; 1260 } 1261 1262 1263 function get_current_page_cta_link_types(){ 1264 var types = []; 1265 var cta_links = find_cta_links(document.location.href); 1266 for (var i=0; i<cta_links.length; i++){ 1267 types.push(cta_links[i].cta_link_type); 1268 } 1269 return types; 1270 } 1271 1272 1273 function is_food_menu_page(){ 1274 var cta_link_types = get_current_page_cta_link_types(); 1275 for (var i=0; i<cta_link_types.length; i++){ 1276 if ('food_menu' == cta_link_types[i]) 1277 return true; 1278 } 1279 return false;
1280 } 1281 1282 1283 function get_form_cat_from_cta(){ 1284 var cta_link = find_cta_link(document.location.href); 1285 if (cta_link == null) { 1286 return null; 1287 } 1288 if (cta_link.cta_link_type == 'private_parties'){ 1289 return 'private_party'; 1290 }else if (cta_link.cta_link_type == 'reservations'){ 1291 return 'reservation'; 1292 }else if (cta_link.cta_link_type == 'catering'){ 1293 return 'catering'; 1294 }else if (cta_link.cta_link_type == 'job_listing'){ 1295 return 'job_listings'; 1296 }else if (cta_link.cta_link_type == 'gift_cards'){ 1297 return 'gift_cards'; 1298 } 1299 return null; 1300 } 1301 1302 function element_has_events_defined(elem){ 1303 if ($._data(elem, "events") === undefined){ 1304 return false; 1305 } 1306 return true; 1307 } 1308 1309 function create_ga_events_for_cta_clicks(){ 1310 if (typeof $ === 'function'){ 1311 1312 var cta_link_of_the_page = find_cta_link(location.href); 1313 1314 1315 $("a").each(function(index, elem){ 1316 var href = $(elem).attr('href'); 1317 1318 if (href === undefined ){ 1319 return; 1320 } 1321 1322 if (href.substring(0,4) == 'tel:'){ 1323 if (!element_has_events_defined(elem)){ // not footer links 1324 $(elem).on("click", function(){ 1325 universal_ga('send', 'event', { 1326 eventCategory: 'Button', 1327 eventAction: 'Click', 1328 eventLabel: 'Phone', 1329 transport: 'beacon' 1330 }); 1331 }); 1332 1333 if (cta_link_of_the_page){ 1334 $(elem).on("click", function(){ 1335 universal_ga('send', 'event', { 1336 eventCategory: 'Button', 1337 eventAction: 'Click', 1338 eventLabel: cta_link_of_the_page.cta_link_type + ' page phone', 1339 transport: 'beacon' 1340 }); 1341 }); 1342 } 1343 } else { 1344 if (cta_link_of_the_page){ 1345 $(elem).on("click", function(){ 1346 universal_ga('send', 'event', { 1347 eventCategory: 'Button', 1348 eventAction: 'Click', 1349 eventLabel: cta_link_of_the_page.cta_link_type + ' page phone footer', 1350 transport: 'beacon' 1351 }); 1352 }); 1353 } 1354 } 1355 1356 1357 }else{ 1358 var cta_link = find_cta_link(href); 1359 if (elem.className != null && elem.className.indexOf("bottom-link") > -1){ 1360 // console.log("bottom link detected"); 1361 }else{ 1362 if (cta_link != null){ 1363 $(elem).on("click", function(){ 1364 universal_ga('send', 'event', { 1365 eventCategory: 'Website Link', 1366 eventAction: 'Click', 1367 eventLabel: cta_link.cta_link_type, 1368 transport: 'beacon' 1369 }); 1370 }); 1371 } 1372 } 1373 } 1374 1375 1376 }); 1377 } 1378 } 1379 1380 if (typeof angular === "undefined") { 1381 create_ga_events_for_cta_clicks(); 1382 } else { 1383 angular.element(document).ready(function () { 1384 create_ga_events_for_cta_clicks(); 1385 }); 1386 } 1387 1388 1389 function triggerShowFooterEvents(){ 1390 if (window.screen.availWidth < 768){ 1391 universal_ga('send', 'event', { 1392 eventCategory: 'Mobile Footer', 1393 eventAction: 'View', 1394 eventLabel: '', 1395 transport: 'beacon' 1396 }); 1397 } 1398 } 1399 1400 1401 1402 1403 //////////// 1404 function smartFooterV2() 1405 { 1406 var list= document.getElementsByClassName("bottom-list-item"); 1407 if (!list) return; 1408 1409 if (document.getElementById("bottom-navbar") == null){ 1410 return; 1411 } 1412 1413 var bottomNav = document.querySelector('#bottom-navbar .navbar-nav'); 1414 var footerLinkPaddingLeft = $('#bottom-navbar .navbar-nav li a').css('padding-left'); 1415 var footerLinkPaddingRight = $('#bottom-navbar .navbar-nav li a').css('padding-right'); 1416 1417 bottomNav.innerHTML = ''; 1418 var linksWithPosition = all_cta_links.filter(e => e.position != null && e.position >= 0); 1419 linksWithPosition.sort(function(a,b) { 1420 return a.position - b.position; 1421 }); 1422 1423 var footerLinkStyle = (footerLinkPaddingLeft == '0px' || footerLinkPaddingRight == '0px' ? 'style="padding-left: 8px; padding-right: 8px;"' : ''); 1424 1425 linksWithPosition.forEach((e, i) => { 1426 var target = e.target || getUrlTarget(e.url); 1427 bottomNav.insertAdjacentHTML('beforeend', 1428 `<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>`); 1429 }) 1430 1431 var intervalCount = 0 1432 var interval = setInterval(() => { 1433 if(intervalCount == 50){ 1434 clearInterval(interval); 1435 } 1436 removeOverflowingFooterLinks(); 1437 intervalCount ++; 1438 }, 200); 1439 1440 $('.smart-footer-link').on("click", function(){ 1441 if (typeof shUrlParams !== "undefined" && shUrlParams['source'] === undefined){ 1442 shUrlParams['source'] = 'footer'; 1443 sessionStorage.setItem('shUrlParams', JSON.stringify(shUrlParams)); 1444 } 1445 1446 var visibleLinks = $('.smart-footer-link').map(function (e) { 1447 return $(this).data('type'); 1448 }).toArray().join(','); 1449 1450 universal_ga('send', 'event', { 1451 eventCategory: 'Button', 1452 eventAction: 'Click_footer_2', 1453 eventLabel: "type:" + $(this).data('type') + "|position:" + $(this).data('position') + "|visible:" + visibleLinks, 1454 transport: 'beacon' 1455 }); 1456 }); 1457 } 1458 1459 function removeOverflowingFooterLinks(){ 1460 var bottomNavLinks = document.querySelectorAll('#bottom-navbar .navbar-nav li'); 1461 var width_sum = 0; 1462 1463 bottomNavLinks.forEach(e => { 1464 width_sum += e.getBoundingClientRect().width; 1465 if ((width_sum) > window.innerWidth) { 1466 console.log(`%cLink %c${e.textContent} %cdeleted couldn't fit screen`,"color: #fff;background: #202124;", "background: red;color: #fff", "color: #fff;background: #202124;"); 1467 e.remove(); 1468 } 1469 }); 1470 } 1471 1472 function getUrlTarget(url){ 1473 if(url.startsWith('tel')){ 1474 return '_self'; 1475 } 1476 if(url.startsWith('/') || url.includes('tmt.spotapps.co') || url.includes(window.location.host)){ 1477 return '_self'; 1478 } 1479 return '_blank'; 1480 } 1481 1482 function npb() 1483 { 1484 var list= document.getElementsByClassName("bottom-list-item"); 1485 if (!list) return; 1486 1487 if (document.getElementById("bottom-navbar") == null){ 1488 return; 1489 } 1490 1491 var url = "" 1492 for (var i=0; i < all_cta_links.length; i++) 1493 { 1494 if (all_cta_links[i].cta_link_type == "order"){ 1495 url = all_cta_links[i].url; 1496 } 1497 } 1498 1499 if ( url == ""){ 1500 return; 1501 } 1502 1503 for (i=0; i < list.length; i++) 1504 { 1505 console.log(cta_link_matches_href(list[i].firstChild.href, url)); 1506 if (cta_link_matches_href(list[i].firstChild.href,url)) return; 1507 1508 }; 1509 1510 var item = list[list.length-1] 1511 document.getElementById("bottom-navbar").getElementsByClassName("nav navbar-nav")[0].appendChild(item.cloneNode(true)); 1512 var width_sum = 0; 1513 for (i=0; i < list.length; i++) { 1514 width_sum += list[i].getBoundingClientRect().width; 1515 } 1516 1517 var item = list[list.length-1] 1518 if ((width_sum - 10) > window.innerWidth) { item.parentNode.removeChild(item); console.log("link deleted couldn't fit screen"); return; } 1519 1520 item.firstChild.text = "Order"; 1521 item.firstChild.href = url; 1522 item.firstChild.id = "bottom_link_" + list.length; 1523 1524 $(item.firstChild).on("click", function(){ 1525 1526 if (typeof shUrlParams !== "undefined" && shUrlParams['source'] === undefined){ 1527 shUrlParams['source'] = 'footer'; 1528 sessionStorage.setItem('shUrlParams', JSON.stringify(shUrlParams)); 1529 } 1530 1531 universal_ga('send', 'event', { 1532 eventCategory: 'Button', 1533 eventAction: 'Click', 1534 eventLabel: 'Plan B-2 Order', 1535 transport: 'beacon' 1536 }); 1537 }); 1538 1539 1540 } 1541 1542function activateSmartFooter(){ 1543 var smart_footer_active = true; 1544 var smart_footer_version = 2; 1545 var man_bottom_active = false;
1546 if(window.location.hash == '#smartFooterV2=enabled'){ 1547 smartFooterV2(); 1548 return; 1549 } 1550 if (smart_footer_active && !man_bottom_active){ 1551 if(smart_footer_version == 2 ){ 1552 smartFooterV2(); 1553 }else { 1554 npb(); 1555 } 1556 } 1557 } 1558 1559 activateSmartFooter(); 1560 1561 var corona_config_str = ''; 1562 var corona_config = corona_config_str != '' ? JSON.parse('') : null; 1563 1564 1565 //corona instuctions 1566 function show_corona_instructions(text, phone, btnText){ 1567 //format to US number 1568 var match = phone.match(/^(\d{3})(\d{3})(\d{4})$/); 1569 1570 if(corona_config.shopping_cart_type == "TMT" && corona_config.shopping_cart_active == true) { 1571 var linkLocation = "https://tmt.spotapps.co/ordering-menu/?spot_id="+corona_config.spot_id+"&images=yes&accordion=true"; 1572 var btnLinkLocation = "https://tmt.spotapps.co/ordering-menu/?spot_id="+corona_config.spot_id+"&images=yes&accordion=true"; 1573 }else { 1574 var linkLocation = 'tel:+1'+phone+''; 1575 var btnLinkLocation = 'tel:+1'+ match[1] + '-' + match[2] + '-' + match[3] +'' 1576 } 1577 var appendPhone = 'tel:+1'+phone+''; 1578 //inject html content 1579 if ($('.food-menu-nav').length) { 1580 //new template 1581 var pageEl = $('.food-menu-nav').css('margin','20px auto 10px auto'); 1582 var textColor = rgb2hex($('.section-header').css('color')); 1583 var linkColor = rgb2hex($('.food-menu-nav-item.active').css('background-color')); 1584 var fontSize = parseInt($('.food-menu-nav-item').css('font-size')); 1585 fontSize = fontSize + Math.round(fontSize * 0.25); 1586 1587 // 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>'; 1588 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>'; 1589 1590 }else { 1591 //old template 1592 var pageEl = $('.tabnav'); 1593 var textColor = rgb2hex($('.menu-item-name-traditional').css('color')); 1594 var linkColor = rgb2hex($('.style-traditional .tabnav .nav>li.active>a').css('color')); 1595 1596 var linkTextColor = getContrast50(linkColor); 1597 var fontSize = parseInt($('.menu-item-name-traditional').css('font-size')); 1598 fontSize = fontSize + Math.round(fontSize * 0.25); 1599 var textTransform = $('.style-traditional .tabnav .nav>li>a').css('text-transform'); 1600 1601 // 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>';
1602 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>'; 1603 1604 } 1605 //html content 1606 pageEl.prepend(html); 1607 } 1608 1609 function rgb2hex(rgb) { 1610 if(typeof rgb !== "undefined"){ 1611 rgbColor = rgb.match(/^rgb\((\d+),\s*(\d+),\s*(\d+)\)$/); 1612 if (!rgbColor) { 1613 rgba = rgb.match(/^rgba?\((\d+),\s*(\d+),\s*(\d+)(,\s*\d+\.*\d+)?\)$/); 1614 return "#" + hex(rgba[1]) + hex(rgba[2]) + hex(rgba[3]); 1615 } 1616 function hex(x) { 1617 return ("0" + parseInt(x).toString(16)).slice(-2); 1618 } 1619 return "#" + hex(rgbColor[1]) + hex(rgbColor[2]) + hex(rgbColor[3]); 1620 } 1621 return rgb; 1622 } 1623 1624 function getContrast50(hexcolor){ 1625 return (parseInt(hexcolor, 16) > 0xffffff/2) ? '#000':'#fff'; 1626 } 1627 1628 function show_corona_sidebar_instructions(text, phone){ 1629 //format to US number 1630 var match = phone.match(/^(\d{3})(\d{3})(\d{4})$/); 1631 var divWidth = 230; 1632 var top = 50; 1633 var linkSize = '1.6em'; 1634 var pSize = $('p').css('font-size'); 1635 var appendPhone = 'tel:+1'+phone+''; 1636 1637 if ($(window).width() < 1600) 1638 var top = 30; 1639 if ($(window).width() < 1200){ 1640 var divWidth = 180; 1641 var linkSize = '1.4em'; 1642 var pSize ='1.1em'; 1643 } 1644 1645 if($('.food-menu-nav').length){ //new template 1646 var textColor = $('.food-menu-nav-item.active').css('color'); 1647 var linkColor = $('.food-menu-nav-item.active').css('background-color'); 1648 1649 var linkTextColor = $('.food-menu-nav-item.active').css('color'); 1650 var parent = $('.food-menu-page'); 1651 } 1652 else { //old template 1653 var textColor = $('.menu-item-name-traditional').css('color'); 1654 var linkColor = $('.style-traditional .tabnav .nav>li.active>a').css('color'); 1655 var parent = $('.food-menu').length ? $('.food-menu') : $('.drink-menu'); 1656 var linkTextColor = getContrast50(linkColor); 1657 } 1658 1659 // $(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>'); 1660 $(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>'); 1661 1662 //check if resolution is bigger than tablet resolution 1663/* if ($(window).width() > 991) { 1664 //detect scroll 1665 window.onscroll = function (e) { 1666 if ($(window).scrollTop() == 0) { 1667 $('#corona-instructions-sidebar').hide(); 1668 }else { 1669 $('#corona-instructions-sidebar').show(); 1670 } 1671 } 1672 } */ 1673 } 1674 1675 function check_corona_config(config){ 1676 console.log(config) 1677 if (config) { 1678 if (config.instructions_on_food_page && config.food_page_instruction_text && config.food_page_instruction_phone) { 1679 if (!config.promote_deliveries && config.promote_pick_up) { 1680 var btnText = 'Call For Pick Up'; 1681 } 1682 if (config.promote_deliveries && !config.promote_pick_up) { 1683 var btnText = 'Call For Delivery'; 1684 } 1685 if (config.promote_deliveries && config.promote_pick_up) { 1686 var btnText = 'Call For Pick Up Or Delivery'; 1687 } 1688 1689 if(typeof btnText !== "undefined"){ // check if pick up or delivery are true 1690 if(config.shopping_cart_type == "TMT" && config.shopping_cart_active == true) { 1691 var btnText = 'ORDER NOW'; 1692 if($('.food-menu-nav').length){ //new template 1693 var textColor = rgb2hex($('.section-header').css('color')); 1694 var linkColor = rgb2hex($('.food-menu-nav-item.active').css('background-color')); 1695 var fontSize = parseInt($('.food-menu-nav-item').css('font-size')); 1696 fontSize = fontSize + Math.round(fontSize * 0.25); 1697 } 1698 else { //old template 1699 var textColor = rgb2hex($('.menu-item-name-traditional').css('color')); 1700 var linkColor = rgb2hex($('.style-traditional .tabnav .nav>
1700li.active>a').css('color')); 1701 1702 var linkTextColor = getContrast50(linkColor); 1703 var fontSize = parseInt($('.menu-item-name-traditional').css('font-size')); 1704 fontSize = fontSize + Math.round(fontSize * 0.25); 1705 } 1706 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); 1707 show_corona_sidebar_instructions(btnText, config.food_page_instruction_phone); 1708 } else { 1709 show_corona_instructions(config.food_page_instruction_text, config.food_page_instruction_phone, btnText); 1710 show_corona_sidebar_instructions(btnText, config.food_page_instruction_phone); 1711 } 1712 1713 } 1714 } 1715 } 1716 } 1717 1718 1719 if (is_food_menu_page() && !window.location.search.includes("contactless=true")){ 1720 $( document ).ready(function() { 1721 setTimeout(function(){ 1722 check_corona_config(corona_config); 1723 }, 300); 1724 }); 1725 } 1726 1727 1728 1729 function isPhone(phone){ 1730 var regex = /^(\+\d{1,2}\s?)?\(?\d{3}\)?[\s.-]?\d{3}[\s.-]?\d{4}$/; 1731 return regex.test(phone); 1732 } 1733 1734 function sendEmail_MT (input_id) { 1735 const $loader = $("[data-id=newsletter-widget-2] .sph-loading-img"); 1736 1737 const $step = { 1738 form: $("[data-id=newsletter-widget-2] .sph-email-form"), 1739 message: $("[data-id=newsletter-widget-2] .sph-response-message"), 1740 } 1741 1742 const $field = { 1743 email: $("[data-id=newsletter-widget-2] #sph-newsletter-input-" + input_id), 1744 phone: $("[data-id=newsletter-widget-2] #sph-newsletter-phone-" + input_id), 1745 consent: $("[data-id=newsletter-widget-2] #sph-newsletter-checkbox-phone-" + input_id), 1746 }; 1747 1748 const $error = { 1749 email: $("[data-id=newsletter-widget-2] #sph-newsletter-email-error-" + input_id), 1750 phone: $("[data-id=newsletter-widget-2] #sph-newsletter-phone-error-" + input_id), 1751 }; 1752 1753 if ($field.email.val().trim() === "") { 1754 $error.email 1755 .html("This field is required") 1756 .show(); 1757 } 1758 else if (!isEmail($field.email.val().trim())) { 1759 $error.email 1760 .html("Please use the format â[email protected]â") 1761 .show(); 1762 } else { 1763 $error.email 1764 .html("") 1765 .hide(); 1766 } 1767 1768 if ($field.consent.is(':checked') && $field.phone.val().trim() === "") { 1769 $error.phone 1770 .html("This field is required") 1771 .show(); 1772 } else if ($field.phone.val().trim().length > 0 && !isPhone($field.phone.val().trim())) { 1773 $error.phone 1774 .html("The phone number must contain 10 digits") 1775 .show(); 1776 } else { 1777 $error.phone 1778 .html("") 1779 .hide(); 1780 } 1781 1782 const errorField = $step.form.find('.sh-form-error:visible'); 1783 1784 if (errorField.length > 0) { 1785 const input = errorField.first().next(); 1786 1787 document.activeElement.blur(); 1788 1789 setTimeout(() => { 1790 input.focus(); 1791 }, 160) 1792 1793 return; 1794 } 1795 1796 $loader 1797 .show() 1798 .prev() 1799 .hide(); 1800 1801 $.ajax({ 1802 method: "POST", 1803 url: "https://www.spothopperapp.com/api/spots/634274/contacts/add_with_texting_permission", 1804 crossDomain: true, 1805 dataType: 'json', 1806 data: { 1807 email: $field.email.val().trim(), 1808 phone: $field.phone.val().trim(), 1809 texting_permission: $field.consent.is(':checked'), 1810 }, 1811 success: function (data) { 1812 afterRequestSubmission(data); 1813 }, 1814 error: function () { 1815 afterRequestSubmission("Something went wrong. Please try again later."); 1816 } 1817 }); 1818 1819 function afterRequestSubmission (data) { 1820 $step.form.hide(); 1821 1822 $step.message 1823 .html(data) 1824 .show() 1825 .trigger('focus'); 1826 } 1827 } 1828</script>
1828<script>function addPromotionParamsToTMTLinks() 1829{ 1830 if (sessionStorage.getItem('shUrlParams')) { 1831 let shParams = JSON.parse(sessionStorage.getItem('shUrlParams')); 1832 if (!Object.keys(shParams).length) 1833 return; 1834 if(!shParams.source) 1835 return; 1836 $('a').each(function () { 1837 if (this.href.includes('tmt.spotapps.co')) { 1838 if(this.href.includes('&source=') || this.href.includes('&destination=') || this.href.includes('&promotion=')) 1839 return; 1840 1841 this.href = this.href + '&source=' + shParams.source; 1842 if(shParams.destination) 1843 this.href = this.href + '&destination=' + shParams.destination; 1844 if(shParams.promotion) 1845 this.href = this.href + '&promotion=' + shParams.promotion; 1846 if(shParams.fb_post_id) 1847 this.href = this.href + '&fb_post_id=' + shParams.fb_post_id; 1848 if(shParams.email_post_id) 1849 this.href = this.href + '&email_post_id=' + shParams.email_post_id; 1850 } 1851 }) 1852 } 1853} 1854setTimeout(function() { 1855 addPromotionParamsToTMTLinks(); 1856 addFooterToSourceParam(); 1857},600) 1858 1859function addFooterToSourceParam() 1860{ 1861 $('.bottom-link').each(function (){ 1862 if(shouldAddSourceParam(this.href)) 1863 this.href = this.href + '&source=footer'; 1864 }) 1865 $('#sh-multiple-links-content-holder a').each(function (){ 1866 if(shouldAddSourceParam(this.href)) 1867 this.href = this.href + '&source=footer'; 1868 }) 1869} 1870function shouldAddSourceParam(link){ 1871 if (link.includes('tmt.spotapps.co') && !link.includes('&source=')){ 1872 return true; 1873 } 1874 return false; 1875} 1876</script>
1876<script> 1877;(async () => { 1878if (typeof window.focusTrap === 'undefined') { 1879 await getScript('https://unpkg.com/tabbable/dist/index.umd.js'); 1880 await getScript('https://unpkg.com/focus-trap/dist/focus-trap.umd.js'); 1881} 1882 1883document.querySelectorAll('.modal').forEach((element) => { 1884 const trap = window.focusTrap?.createFocusTrap(element, { 1885 allowOutsideClick: true, 1886 }); 1887 1888 $(element).on('shown.bs.modal', () => { 1889 trap?.activate(); 1890 }); 1891 1892 $(element).on('hidden.bs.modal', () => { 1893 trap?.deactivate(); 1894 }); 1895}); 1896 1897async function getScript (source) { 1898 return new Promise((resolve, reject) => { 1899 const script = document.createElement('script'); 1900 script.src = source; 1901 script.async = true; 1902 1903 script.onload = resolve; 1904 script.onerror = reject; 1905 1906 document.head.appendChild(script); 1907 }); 1908} 1909})(); 1910</script>
1910<script src="https://wcache-plugins.spotapps.co/production/wcpl_bootstrap_ada_fix/wcpl_bootstrap_ada_fix.js"></script>
1910<link href="https://wcache-plugins.spotapps.co/production/wcpl_bday_club/wcpl_bday_club.css" rel="stylesheet" media="screen"/>
1910<script src="https://wcache-plugins.spotapps.co/production/wcpl_bday_club/wcpl_bday_club.js"></script>
1910<script src="https://wcache-plugins.spotapps.co/production/wcpl_ga_tracking/wcpl_ga_tracking.js"></script>
1910<script src="https://wcache-plugins.spotapps.co/production/wcpl_media_controls/script.js"></script>
1910<link href="https://wcache-plugins.spotapps.co/production/wcpl_website_editor_interpreter/website_interpreter_helper_style.css" rel="stylesheet" media="screen"/>
1910<script>var changes_log_array = {};</script>
1910<script src="https://wcache-plugins.spotapps.co/production/wcpl_website_editor_interpreter/website_interpreter.js"></script>
1910</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.