1<!DOCTYPE html> 2�<html lang="en"><head><!-- 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-0R5269WT5Y'); 8 gtag('config', 'G-VG24VK2VKT'); 9 </script>
9<!-- wcache 2026-09-30 11:05:19.739887Z --><!-- 10smart_footer: true, 11smart_footer_version: 2, 12scripting_active: false 13--><link href="https://sophiashobesound.com/" rel="canonical"/><meta charset="utf-8"/><meta content="IE=edge" http-equiv="X-UA-Compatible"/><meta content="width=device-width, initial-scale=1" name="viewport"/><meta content="Our passion for creating exceptional dining experiences drives everything we do. From the moment you step in, we strive to make you feel at home. Our team is dedicated to serving you with the finest dishes, carefully prepared with the freshest ingredients." name="description"/><meta content="" name="author"/><meta content="Sophia's - Hobe Sound, FL" property="og:title"/><meta content="website" property="og:type"/><meta content="http://sophiashobesound.com/" property="og:url"/><meta content="Our passion for creating exceptional dining experiences drives everything we do. From the moment you step in, we strive to make you feel at home. Our team is dedicated to serving you with th..." property="og:description"/><meta content="https://static.spotapps.co/website_images/ab_websites/737352_website_v1/social.jpg" property="og:image"/><meta content="Sophia's image" property="og:image:alt"/><meta content="image/png" property="og:image:type"/><meta content="393461760517412" property="fb:app_id"/><meta content="summary_large_image" name="twitter:card"/><meta content="Sophia's - Hobe Sound, FL" name="twitter:title"/><meta content="Our passion for creating exceptional dining experiences drives everything we do. From the moment you step in, we strive to make you feel at home. Our team is dedicated to serving you with th..." name="twitter:description"/><meta content="https://static.spotapps.co/website_images/ab_websites/737352_website_v1/social.jpg" name="twitter:image"/><title>Sophia's - Hobe Sound, FL</title>
13<script>document.cookie='resolution='+Math.max(screen.width,screen.height)+("devicePixelRatio" in window ? ","+devicePixelRatio : ",1")+'; path=/';</script>
13<script type="application/ld+json"> 14{"@context":"https://schema.org","@type":"Restaurant","image":"https://static.spotapps.co/website_images/ab_websites/737352_website_v1/social.jpg","name":"Sophia's","address":{"@type":"PostalAddress","streetAddress":"11970 SE Dixie Hwy","addressLocality":"Hobe Sound","addressRegion":"FL","postalCode":"33455","addressCountry":"US"},"geo":{"@type":"GeoCoordinates","latitude":27.057879,"longitude":-80.127585},"url":"sophiashobesound.com","telephone":"7722458182","servesCuisine":"American Restaurant / Bar","openingHoursSpecification":[{"@type":"OpeningHoursSpecification","dayOfWeek":["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],"opens":"15:00","closes":"21:00"}]}</script>
14<link href="https://static.spotapps.co/website_images/ab_websites/737352_website_v1/favicons/favicon-96x96.png" rel="icon" sizes="96x96" type="image/png"/><link href="https://static.spotapps.co/website_images/ab_websites/737352_website_v1/favicons/favicon.svg" rel="icon" type="image/svg+xml"/><link href="https://static.spotapps.co/website_images/ab_websites/737352_website_v1/favicons/favicon.ico" rel="shortcut icon"/><link href="https://static.spotapps.co/website_images/ab_websites/737352_website_v1/favicons/apple-touch-icon.png" rel="apple-touch-icon" sizes="180x180"/><meta content="Sophia's" name="apple-mobile-web-app-title"/><link href="https://static.spotapps.co/website_images/ab_websites/737352_website_v1/favicons/site.webmanifest" rel="manifest"/><link href="https://static.spotapps.co/web/sophiashobesound--com/lib/bootstrap/css/bootstrap.min.css" rel="stylesheet"/><link href="https://static.spotapps.co/web/sophiashobesound--com/lib/gallery/gallery.css" rel="stylesheet"/><link href="https://static.spotapps.co/web/sophiashobesound--com/lib/fancybox/source/jquery.fancybox.css" media="screen" rel="stylesheet" type="text/css"/><link href="https://static.spotapps.co/web/sophiashobesound--com/lib/fancybox/source/helpers/jquery.fancybox-thumbs.css" rel="stylesheet" type="text/css"/><link href="//static.spotapps.co/web-lib/leaflet/[email protected]/dist/leaflet-gesture-handling.min.css" rel="stylesheet" type="text/css"/><link href="https://static.spotapps.co/web/sophiashobesound--com/lib/uikit/css/uikit.docs.min.css" rel="stylesheet"/><link href="https://static.spotapps.co/web/sophiashobesound--com/lib/uikit/css/slidenav.css" rel="stylesheet"/><link href="https://static.spotapps.co/web/sophiashobesound--com/lib/font-awesome-4.7.0/css/font-awesome.min.css" rel="stylesheet"/><link href="https://static.spotapps.co/web/sophiashobesound--com/lib/hover_css/css/hover-min.css" rel="stylesheet"/><link href="https://static.spotapps.co/web/sophiashobesound--com/lib/owlcarousel/owl.carousel.min.css" rel="stylesheet"/><link href="https://static.spotapps.co/web/sophiashobesound--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/sophiashobesound--com/css/style.css?version2" id="mainCSS" rel="stylesheet"/><link href="https://static.spotapps.co/web/sophiashobesound--com/css/bottom_navigation_v1.css?v1779447505" rel="stylesheet"/><link href="css/custom.css?v1779447505&domain=sophiashobesound.com" rel="stylesheet"/><link href="https://static.spotapps.co/web/sophiashobesound--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/sophiashobesound--com/lib/twitter_x_font_icon/css/twitter_x.css" rel="stylesheet"/><!--[if IE 7]><link rel="stylesheet" href="lib/twitter_x_font_icon/css/twitter_x-ie7.css"><![endif]--><!--[if lt IE 9]> 15
15<script src="//oss.maxcdn.com/libs/html5shiv/3.7.0/html5shiv.js"></script>
15 16
16<script src="//oss.maxcdn.com/libs/respond.js/1.4.2/respond.min.js"></script>
16 17 <![endif]--><style> 18 19#accessibility-footer { 20 padding: 20px 5px; 21 background-color: #353638; 22 color: #fff; 23 text-align: center; 24} 25#accessibility-footer p { 26 margin: 0; 27 padding: 0; 28 font-family: inherit; 29 font-size: initial; 30 color: #fff; 31} 32#accessibility-footer .accessibility-link { 33 display: inline-block; 34 color: inherit; 35 text-decoration: underline; 36 font-weight: 600; 37} 38 39@media (max-width: 767px) { 40 #accessibility-footer .accessibility-link { 41 display: block; 42 } 43 44 /* additionl css in case that there is a CTA mobile bar (id="bottom-navbar") on the website */ 45 #accessibility-footer { 46 position: relative; 47 top: -60px; 48 padding-bottom: 70px; 49 } 50} 51 52</style>
52<script src="https://static.spotapps.co/websites/lib/lazysizes/lazysizes.min.js" async=""></script>
52<script> 53function ga_check(){ 54 return true; 55} 56</script>
56<script> 57function universal_ga(action, type, category, ev_action, label){ 58 if(typeof ga === 'function') 59 { 60 if(!(action && label)) 61 ga(action, type, category) 62 else 63 ga(action, type, category, ev_action, label) 64 } 65 66 if(typeof gtag === 'function') 67 { 68 if(!(action && label)) 69 { 70 hash = category 71 ev_label = hash["eventLabel"] 72 var splits = ev_label.match(/.{1,100}/g) ?? []; 73 delete(hash["eventLabel"]) 74 75 if(splits.length <= 1) 76 hash["eventLabel"] = ev_label 77 else 78 { 79 for (let i = 0; i < splits.length; i++) { 80 var key = "eventLabel_"+i 81 hash[key] = splits[i] 82 } 83 } 84 console.log(hash) 85 gtag("event", hash["eventCategory"], hash); 86 } 87 else 88 { 89 var hash = { 90 eventCategory: category, 91 eventAction: ev_action 92 } 93 94 var splits = label.match(/.{1,100}/g) ?? []; 95 if(splits.length <= 1) 96 hash["eventLabel"] = label 97 else 98 { 99 for (let i = 0; i < splits.length; i++) { 100 var key = "eventLabel_"+i 101 hash[key] = splits[i] 102 } 103 } 104 gtag("event", hash["eventCategory"], hash); 105 } 106 } 107} 108</script>
108<script> function getPromotionUrlParams(){ 109 var params_str = sessionStorage.getItem('shUrlParams'); 110 if (params_str != null){ 111 return JSON.parse(params_str); 112 }else{ 113 return {}; 114 } 115 } 116 117 function getPromotionSourceDetails(){ 118 var params_str = localStorage.getItem('promotionSourceDetails'); 119 if (params_str != null){ 120 return JSON.parse(params_str); 121 }else{ 122 return {}; 123 } 124 } 125 126 function getLastEmailVisitInDays(){ 127 var promotionSourceDetails = getPromotionSourceDetails(); 128 if (!promotionSourceDetails['last_visit_email'] ){ 129 return null; 130 } 131 return Math.floor((new Date() - new Date(promotionSourceDetails['last_visit_email'])) / (1000 * 60 * 60 * 24)); 132 } 133 134 function getLastSocialVisitInDays(){ 135 var promotionSourceDetails = getPromotionSourceDetails(); 136 if (!promotionSourceDetails['last_visit_social'] ){ 137 return null; 138 } 139 return Math.floor((new Date() - new Date(promotionSourceDetails['last_visit_social'])) / (1000 * 60 * 60 * 24)); 140 } 141 142 var shUrlParams = getPromotionUrlParams(); 143 var promotionSourceDetails = getPromotionSourceDetails(); 144 145 new URL(document.location).searchParams.forEach(function(value, paramName){ 146 147 shUrlParams[paramName] = value; 148 149 if (paramName == 'source' && value =='social' ){ 150 promotionSourceDetails['last_visit_social'] = new Date(); 151 localStorage.setItem('promotionSourceDetails', JSON.stringify(promotionSourceDetails)); 152 } 153 154 if (paramName == 'source' && value =='email' ){ 155 promotionSourceDetails['last_visit_email'] = new Date(); 156 localStorage.setItem('promotionSourceDetails', JSON.stringify(promotionSourceDetails)); 157 } 158 159 }); 160 161 sessionStorage.setItem('shUrlParams', JSON.stringify(shUrlParams)) 162</script>
162<style>a:focus:not(:focus-visible){outline:none;box-shadow:none;} 163a.get-directions-footer-link{display:inline-block;transform-origin:left center;transition:transform .2s ease;} 164a.get-directions-footer-link:hover{transform:scale(1.08);} 165@media (prefers-reduced-motion:reduce){a.get-directions-footer-link{transition:none;transform:none;}} 166a.get-directions-footer-link,a.get-directions-footer-link:hover{color:inherit!important;}</style></head><body class="home-page" data-spot-id="737352"><style>.promotion-pop-up .modal-dialog { 167 margin: 0 auto; 168 top: 0; 169 transition: none; 170} 171.promotion-pop-up.fade .modal-dialog { 172 transform: none !important; 173} 174 175.promotion-pop-up .modal-content { 176 display: none; 177 border-radius: 6px; 178 background-color: #fff; 179 background-image: none; 180} 181.promotion-pop-up .modal-header { 182 border: none; 183 margin-bottom: 8px; 184} 185.promotion-pop-up .close { 186 position: absolute; 187 top: 15px; 188 right: 15px; 189 font-size: 3em; 190 font-weight: normal; 191 line-height: 0.8em; 192 color: #000; 193 opacity: 0.8; 194} 195.promotion-pop-up .modal-body { 196 margin: 20px 20px 10px 20px; 197 padding-top: 5px; 198 text-align: center; 199 color: initial; 200} 201.promotion-pop-up .modal-footer { 202 padding-bottom: 40px; 203 border-top: none; 204 text-align: center; 205} 206 207.promotion-pop-up .btn { 208 display: inline-block; 209 max-width: 90%; 210 padding: 10px 50px; 211 font-size: 1.2em; 212 background-color: #000000; 213 color: #fff; 214 transform: scale(1); 215 -webkit-transition: all 0.3s ease; 216 -moz-transition: all 0.3s ease; 217 -o-transition: all 0.3s ease; 218 transition: all 0.3s ease; 219} 220.promotion-pop-up .btn:hover { 221 background-color: #1a1a1a; 222 color: #e0e0e0; 223 box-shadow: 1px 3px 6px rgba(0, 0, 0, 0.3); 224 transform: scale(0.98); 225} 226 227.promotion-pop-up .btn:active { 228 background-color: #0f0f0f; 229 color: #cccccc; 230 box-shadow: 231 inset 0 2px 4px rgba(255, 255, 255, 0.08), 232 inset 0 -2px 2px rgba(0, 0, 0, 0.4); 233 transform: scale(0.94); 234} 235 236.promotion-pop-up h2 { 237 margin: 5px 5px 10px 5px; 238 font-size: 2.1em; 239 line-height: 1.3; 240 color: inherit; 241 /*font-family: unset;*/ 242} 243.promotion-pop-up h3 { 244 font-size: 1.5em; 245 margin: 5px 5px 15px 5px; 246 font-family: unset; 247 text-transform: inherit; 248} 249.promotion-pop-up p { 250 margin-top: 30px; 251} 252.promotion-pop-up .modal-body a { 253 color: initial; 254} 255 256.promotion-pop-up .modal-plain-text h3 { 257 padding-top: 10px; 258} 259 260.promotion-pop-up .modal-body.modal-image-and-button { 261 overflow: auto; 262 margin: 20px; 263 padding-top: 0; 264 padding-bottom: 0; 265} 266.promotion-pop-up .modal-body.modal-image-and-button img { 267 max-height: 60vh; 268 max-width: 100%; 269} 270.promotion-pop-up .modal-body.modal-image-and-button p { 271 margin-top: 15px; 272 margin-bottom: 10px; 273} 274 275@media only screen and (max-width: 1024px) { 276 .promotion-pop-up .modal-body.modal-image-and-button { 277 margin-bottom: 10px; 278 } 279 .promotion-pop-up h2 { 280 font-size: 1.9em; 281 } 282 .promotion-pop-up h3 { 283 font-size: 1.4em; 284 } 285 .promotion-pop-up .modal-body.modal-image-and-button img { 286 max-height: 65vh; 287 } 288} 289 290@media only screen and (max-width: 767px) { 291 .promotion-pop-up .modal-dialog { 292 margin: 0 10px; 293 } 294 .promotion-pop-up .modal-body { 295 margin-top: 18px; 296 } 297 .promotion-pop-up .modal-body.modal-image-and-button img { 298 max-height: 55vh; 299 } 300 .promotion-pop-up h2 { 301 font-size: 1.8em; 302 } 303 .promotion-pop-up h3 { 304 font-size: 1.3em; 305 } 306 .promotion-pop-up .modal-body.modal-image-and-button p { 307 font-size: 1.1em; 308 } 309} 310@media only screen and (max-width: 500px) { 311 .promotion-pop-up .modal-footer { 312 padding-top: 10px; 313 padding-bottom: 35px; 314 } 315 .promotion-pop-up .modal-body { 316 margin: 17px 15px 5px 15px; 317 } 318 .promotion-pop-up .btn { 319 padding: 9px 40px; 320 font-size: 1.1em; 321 } 322 .promotion-pop-up .modal-body.modal-image-and-button img { 323 max-height: 50vh; 324 } 325} 326@media only screen and (max-width: 400px) { 327 .promotion-pop-up h2 { 328 font-size: 1.7em; 329 } 330 .promotion-pop-up h3 { 331 font-size: 1.2em; 332 } 333 .promotion-pop-up .btn { 334 padding: 8px 35px; 335 font-size: 1.1em; 336 } 337}</style><div aria-label="Promotion" class="modal fade promotion-pop-up" id="promotion-pop-up" role="dialog" tabindex="-1"><div class="modal-dialog" role="document"><div class="modal-content promotion_pop_up_content" data-has-image="" data-internalname="private_parties" data-is-custom-link="false" data-is-template-image-and-button="false" data-link-url="https://sophiashobesound.com/-party?source=pop_up&spot_id=737352&destination=private_parties&promotion=private_parties" id="7043728"><!-- Modal Header --><div class="modal-header"><button aria-label="Close" class="close" data-dismiss="modal" type="button"><span aria-hidden="true">Ã</span></button></div><!-- Modal body -->
337<div class="modal-body modal-plain-text"><h2 class="section-header">Turn moments into memories!</h2><h3>Choose us for your next special occasion or get-together.</h3><p>Got a birthday party, rehearsal dinner, corporate or other event coming up? We're a great option for your gathering! Inquire today and let us know how we can make your special occasion perfect!</p></div><div class="modal-footer"><a class="btn btn-modal" data-href="https://sophiashobesound.com/-party?source=pop_up&spot_id=737352&destination=private_parties&promotion=private_parties" href="https://sophiashobesound.com/-party?source=pop_up&spot_id=737352&destination=private_parties&promotion=private_parties">Book your party</a></div></div><div class="modal-content promotion_pop_up_content" data-has-image="" data-internalname="reservations" data-is-custom-link="false" data-is-template-image-and-button="false" data-link-url="https://www.opentable.com/booking/restref/availability?lang=en-US&correlationId=f1f0ccfb-cabb-47f2-8722-fe95c1f3a02b&restRef=1378678&otSource=Restaurant+website&source=pop_up&spot_id=737352&destination=reservations&promotion=reservations" id="7043740"><!-- Modal Header --><div class="modal-header"><button aria-label="Close" class="close" data-dismiss="modal" type="button"><span aria-hidden="true">Ã</span></button></div><!-- Modal body --><div class="modal-body modal-plain-text"><h2 class="section-header">We are taking online reservations!</h2><h3>Letâs ensure you get a great table: Book today!</h3><p>We recommend making a reservation ahead of time. Book your table today!</p></div><div class="modal-footer"><a class="btn btn-modal" data-href="https://www.opentable.com/booking/restref/availability?lang=en-US&correlationId=f1f0ccfb-cabb-47f2-8722-fe95c1f3a02b&restRef=1378678&otSource=Restaurant+website&source=pop_up&spot_id=737352&destination=reservations&promotion=reservations" href="https://www.opentable.com/booking/restref/availability?lang=en-US&correlationId=f1f0ccfb-cabb-47f2-8722-fe95c1f3a02b&restRef=1378678&otSource=Restaurant+website&source=pop_up&spot_id=737352&destination=reservations&promotion=reservations">Book Table</a></div></div><div class="modal-content promotion_pop_up_content" data-has-image="" data-internalname="job_listings" data-is-custom-link="false" data-is-template-image-and-button="false" data-link-url="https://tmt.spotapps.co/job-listings?spot_id=737352&source=pop_up&destination=job_listing&promotion=job_listings" id="7043750"><!-- Modal Header --><div class="modal-header"><button aria-label="Close" class="close" data-dismiss="modal" type="button"><span aria-hidden="true">Ã</span></button></div><!-- Modal body --><div class="modal-body modal-plain-text"><p>We're hiring! Call, email, or submit an inquiry today to learn more!</p></div><div class="modal-footer"><a class="btn btn-modal" data-href="https://tmt.spotapps.co/job-listings?spot_id=737352&source=pop_up&destination=job_listing&promotion=job_listings" href="https://tmt.spotapps.co/job-listings?spot_id=737352&source=pop_up&destination=job_listing&promotion=job_listings">Job Listings</a></div></div></div></div><style> 338 339 340.navbar.nav-v6 .container { 341 padding-top: 10px; 342 padding-bottom: 10px; 343} 344.navbar.nav-v6.nav-scroll .container { 345 padding-top: 0px; 346 padding-bottom: 0px; 347} 348.navbar.nav-v6 .header-logo img { 349 max-width: 100%; 350} 351.navbar.nav-v6.nav-scroll .header-logo img { 352 max-width: 80%; 353} 354 355@media (max-width: 767px) { 356 /* DO NOT change mobile nav height on page scroll */ 357 .navbar.nav-v6 .navbar-header, 358 .navbar.nav-v6.nav-scroll .navbar-header { 359 padding-top: 10px; 360 padding-bottom: 10px; 361 } 362 .navbar.nav-v6 .socialnav, 363 .navbar.nav-v6.nav-scroll .socialnav { 364 margin-top: 10px; 365 } 366 .navbar.nav-v6 .container, 367 .navbar.nav-v6.nav-scroll .container { 368 padding-top: 0; 369 padding-bottom: 0; 370 } 371 .navbar.nav-v6 .header-logo, 372 .navbar.nav-v6.nav-scroll .header-logo { 373 height: 70px; 374 } 375 .navbar.nav-v6 .header-logo img { 376 max-height: 100%; 377 } 378 .navbar.nav-v6.nav-scroll .header-logo img { 379 max-width: 100%; 380 } 381 /* HOME page CHANGE mobile nav height on page scroll */ 382 /* Remove body.home-page from below code if there should be mobile nav height change on ALL pages */ 383 body.home-page .navbar.nav-v6 .navbar-header { 384 padding-top: 10px; 385 padding-bottom: 10px; 386 } 387 body.home-page .navbar.nav-v6.nav-scroll .navbar-header{ 388 padding-top: 0px; 389 padding-bottom: 0px; 390 } 391 body.home-page .navbar.nav-v6 .socialnav { 392 margin-top: 10px; 393 } 394 body.home-page .navbar.nav-v6.nav-scroll .socialnav { 395 margin-top: 0px; 396 } 397 body.home-page .navbar.nav-v6 .container{ 398 padding-top: 0; 399 padding-bottom: 0; 400 } 401 body.home-page .navbar.nav-v6.nav-scroll .container { 402 padding-top: 0; 403 padding-bottom: 0; 404 } 405 body.home-page .navbar.nav-v6 .header-logo { 406 height: 70px; 407 } 408 body.home-page .navbar.nav-v6.nav-scroll .header-logo { 409 height: 50px; 410 } 411 body.home-page .navbar.nav-v6 .header-logo img { 412 max-height: 100%; 413 max-width: 100%; 414 } 415 body.home-page .navbar.nav-v6.nav-scroll .header-logo img { 416 max-width: 80%; 417 } 418} 419 420 421.navbar-regular .navbar-collapse.collapse.in { 422 background-color: transparent; 423 width: 100%; 424} 425.navbar.nav-v6{ 426 background-color: transparent; 427 -webkit-box-shadow: 0px 2px 5px 0px rgba(0,0,0,0); 428 -moz-box-shadow: 0px 2px 5px 0px rgba(0,0,0,0); 429 box-shadow: 0px 2px 5px 0px rgba(0,0,0,0); 430 -moz-transition: all 0.3s ease-in-out; 431 -webkit-transition: all 0.3s ease-in-out; 432 -o-transition: all 0.3s ease-in-out; 433 transition: all 0.3s ease-in-out; 434} 435.navbar.nav-v6.nav-scroll{ 436 background-color: #fff; 437 -webkit-box-shadow: 0px 2px 5px 0px rgba(0,0,0,0.2); 438 -moz-box-shadow: 0px 2px 5px 0px rgba(0,0,0,0.2); 439 box-shadow: 0px 2px 5px 0px rgba(0,0,0,0.2); 440} 441.drink-menu .navbar.nav-v6{ 442 background-color: #fff; 443 -webkit-box-shadow: 0px 2px 5px 0px rgba(0,0,0,0); 444 -moz-box-shadow: 0px 2px 5px 0px rgba(0,0,0,0); 445 box-shadow: 0px 2px 5px 0px rgba(0,0,0,0); 446 -moz-transition: all 0.3s ease-in-out; 447 -webkit-transition: all 0.3s ease-in-out; 448 -o-transition: all 0.3s ease-in-out; 449 transition: all 0.3s ease-in-out; 450} 451.drink-menu .navbar.nav-v6.nav-scroll{ 452 background-color: #fff; 453 -webkit-box-shadow: 0px 2px 5px 0px rgba(0,0,0,0.2); 454 -moz-box-shadow: 0px 2px 5px 0px rgba(0,0,0,0.2); 455 box-shadow: 0px 2px 5px 0px rgba(0,0,0,0.2); 456} 457.navbar-regular.nav-v6 .navbar-nav>li>a, 458.navbar-regular.nav-v6 .navbar-nav>li>a:hover, 459.navbar-regular.nav-v6 .navbar-nav>.active>a, 460.navbar-regular.nav-v6 .navbar-nav>.active>a:focus, 461.navbar-regular.nav-v6 .navbar-nav>.active>a:hover{ 462 border: none; 463 border-right: 1px solid #fff; 464 background-color: transparent; 465 color: #000; 466 -moz-transition: all 0.3s ease-in-out; 467 -webkit-transition: all 0.3s ease-in-out; 468 -o-transition: all 0.3s ease-in-out; 469 transition: all 0.3s ease-in-out; 470} 471.navbar-regular.nav-v6 .navbar-nav>li>a { 472 color: #fff; 473} 474.drink-menu .navbar.nav-v6 .navbar-nav>li>a { 475 color: #000; 476 border-right: 1px solid #000; 477} 478.drink-menu .navbar-regular.nav-v6 .navbar-nav>li>a:hover, 479.drink-menu .navbar-regular.nav-v6 .navbar-nav>.active>a, 480.drink-menu .navbar-regular.nav-v6 .navbar-nav>.active>a:focus, 481.drink-menu .navbar-regular.nav-v6 .navbar-nav>.active>a:hover{ 482 color: #000; 483} 484li.drop-down-link .sub-menu { 485 background-color: transparent; 486 color: #fff; 487 background-color: rgba(0, 0, 0, 0.6); 488 color: #fff; 489 } 490.nav-scroll li.drop-down-link .sub-menu { 491 background-color: #fff; 492 color: #000; 493} 494.drink-menu li.drop-down-link .sub-menu { 495 background-color: #fff; 496 color: #000; 497 } 498.drink-menu .nav-scroll li.drop-down-link .sub-menu { 499 background-color: #fff; 500 color: #000; 501} 502li.drop-down-link .sub-menu a, 503li.drop-down-link div.drop-down { 504 color: #fff; 505} 506.nav-scroll li.drop-down-link .sub-menu a, 507.nav-scroll li.drop-down-link li.drop-down-link div.drop-down { 508 color: #000; 509} 510.drink-menu li.drop-down-link .sub-menu a, 511.drink-menu li.drop-down-link div.drop-down { 512 color: #000; 513} 514.drink-menu .nav-scroll li.drop-down-link .sub-menu a, 515.drink-menu .nav-scroll li.drop-down-link div.drop-down { 516 color: #000; 517} 518 519li.drop-down-link .sub-menu a:hover, 520li.drop-down-link .sub-menu a:focus { 521 color: #000; 522} 523.drink-menu li.drop-down-link .sub-menu a:hover, 524.drink-menu li.drop-down-link .sub-menu a:focus { 525 color: #000; 526} 527
528.navbar-regular.nav-v6 .navbar-toggle .icon-bar { 529 background-color: #fff; 530 -moz-transition: all 0.3s ease-in-out; 531 -webkit-transition: all 0.3s ease-in-out; 532 -o-transition: all 0.3s ease-in-out; 533 transition: all 0.3s ease-in-out; 534} 535.drink-menu .navbar-regular.nav-v6 .navbar-toggle .icon-bar { 536 background-color: #000; 537} 538.navbar-regular.nav-v6 [aria-expanded="true"].navbar-toggle .icon-bar { 539 background-color: #000; 540} 541.drink-menu .navbar-regular.nav-v6 [aria-expanded="true"].navbar-toggle .icon-bar{ 542 background-color: #000; 543} 544.navbar-regular.nav-v6.nav-scroll .navbar-nav>li>a, 545.navbar-regular.nav-v6.nav-scroll .navbar-nav>li>a:hover, 546.navbar-regular.nav-v6.nav-scroll .navbar-nav>.active>a, 547.navbar-regular.nav-v6.nav-scroll .navbar-nav>.active>a:focus, 548.navbar-regular.nav-v6.nav-scroll .navbar-nav>.active>a:hover{ 549 border: none; 550 border-right: 1px solid #000; 551 color: #000; 552} 553.navbar-regular.nav-v6.nav-scroll .navbar-nav>li>a { 554 color: #000; 555} 556.drink-menu .navbar.nav-v6.nav-scroll .navbar-nav>li>a { 557 color: #000; 558 border-right: 1px solid #000; 559} 560.drink-menu .navbar-regular.nav-v6.nav-scroll .navbar-nav>li>a:hover, 561.drink-menu .navbar-regular.nav-v6.nav-scroll .navbar-nav>.active>a, 562.drink-menu .navbar-regular.nav-v6.nav-scroll .navbar-nav>.active>a:focus, 563.drink-menu .navbar-regular.nav-v6.nav-scroll .navbar-nav>.active>a:hover{ 564 color: #000; 565} 566 567.nav-scroll li.drop-down-link .sub-menu a:hover, 568.nav-scroll li.drop-down-link .sub-menu a:focus { 569 color: #000; 570} 571.drink-menu .nav-scroll li.drop-down-link .sub-menu a:hover, 572.drink-menu .nav-scroll li.drop-down-link .sub-menu a:focus { 573 color: #000; 574} 575 576.navbar-regular.nav-v6.nav-scroll .navbar-toggle .icon-bar { 577 background-color: #000; 578} 579.drink-menu .navbar-regular.nav-v6.nav-scroll .navbar-toggle .icon-bar { 580 background-color: #000; 581} 582.navbar-regular.nav-v6.nav-scroll [aria-expanded="true"].navbar-toggle .icon-bar { 583 background-color: #000; 584} 585.drink-menu .navbar-regular.nav-v6.nav-scroll [aria-expanded="true"].navbar-toggle .icon-bar{ 586 background-color: #000; 587} 588.navbar.nav-v6 .header-logo-text{ 589 color: #fff; 590 -moz-transition: all 0.3s ease-in-out; 591 -webkit-transition: all 0.3s ease-in-out; 592 -o-transition: all 0.3s ease-in-out; 593 transition: all 0.3s ease-in-out; 594} 595.navbar.nav-v6.nav-scroll .header-logo-text{ 596 color: #000; 597} 598.navbar.nav-v6 .social-icon{ 599 color: #fff; 600 -moz-transition: all 0.3s ease-in-out; 601 -webkit-transition: all 0.3s ease-in-out; 602 -o-transition: all 0.3s ease-in-out; 603 transition: all 0.3s ease-in-out; 604} 605.navbar.nav-v6.nav-scroll .social-icon{ 606 color: #000; 607} 608.navbar.nav-v6 .social-square .contact-icon:hover { 609 color: #fff; 610 background-color: #000; 611} 612.navbar.nav-v6.nav-scroll .social-square .contact-icon:hover { 613 color: #000; 614 background-color: #000; 615} 616 617.drink-menu .navbar.nav-v6 .header-logo-text{ 618 color: #000; 619} 620.drink-menu .navbar.nav-v6.nav-scroll .header-logo-text{ 621 color: #000; 622} 623.drink-menu .navbar.nav-v6 .social-icon{ 624 color: #000; 625} 626.drink-menu .navbar.nav-v6.nav-scroll .social-icon{ 627 color: #000; 628} 629.drink-menu .navbar.nav-v6 .social-square .contact-icon:hover { 630 color: #000; 631 background-color: #000; 632} 633.drink-menu .navbar.nav-v6.nav-scroll .social-square .contact-icon:hover { 634 color: #000; 635 background-color: #000; 636} 637.navbar.nav-v6 .container { 638 border-bottom: 1px solid transparent; 639 -moz-transition: all 0.3s ease-in-out; 640 -webkit-transition: all 0.3s ease-in-out; 641 -o-transition: all 0.3s ease-in-out; 642 transition: all 0.3s ease-in-out; 643} 644.navbar.nav-v6.nav-scroll .container { 645 border-bottom: 1px solid transparent; 646} 647.drink-menu .navbar.nav-v6 .container { 648 border-bottom: 1px solid transparent; 649} 650.drink-menu .navbar.nav-v6.nav-scroll .container { 651 border-bottom: 1px solid transparent; 652} 653@media(min-width: 768px) { 654 .nav-v6 .navbar-collapse { 655 display: flex !important; 656 justify-content: end; 657 } 658 .nav-v6 .navbar-nav, 659 .nav-v6 .socialnav.hidden-xs { 660 float: none !important; 661 } 662} 663@media (max-width: 767px) { 664 .navbar.nav-v6 .container, 665 .navbar.nav-v6.nav-scroll .container, 666 .drink-menu .navbar.nav-v6 .container, 667 .drink-menu .navbar.nav-v6.nav-scroll .container { 668 border-bottom: none; 669 } 670 .navbar.nav-v6 .navbar-header { 671 border-bottom: 2px solid transparent; 672 } 673 .navbar.nav-v6.nav-scroll .navbar-header { 674 border-bottom: 2px solid transparent; 675 } 676 .drink-menu .navbar.nav-v6 .navbar-header { 677 border-bottom: 2px solid transparent; 678 } 679 .drink-menu .navbar.nav-v6.nav-scroll .navbar-header { 680 border-bottom: 2px solid transparent; 681 } 682 li.drop-down-link .sub-menu, 683 .drink-menu li.drop-down-link .sub-menu { 684 width: 100% !important; 685 background-color: transparent; 686 } 687 .nav-scroll li.drop-down-link .sub-menu, 688 .drink-menu .nav-scroll li.drop-down-link .sub-menu { 689 background-color: transparent; 690 } 691 .navbar-regular.nav-v6 .navbar-nav>li>a { 692 background-color: rgba(0, 0, 0, 0.6); 693 } 694 .navbar-regular.nav-v6.nav-scroll .navbar-nav>li>a { 695 background-color: transparent; 696 } 697 698 li.drop-down-link .sub-menu, 699 .navbar-regular.nav-v6 li.drop-down-link div.drop-down, 700 .drink-menu li.drop-down-link .sub-menu { 701 background-color: rgba(0, 0, 0, 0.6); 702 } 703 .nav-scroll li.drop-down-link .sub-menu, 704 .navbar-regular.nav-v6.nav-scroll li.drop-down-link div.drop-down, 705 .drink-menu .nav-scroll li.drop-down-link .sub-menu { 706 background-color: transparent; 707 } 708 .navbar-regular.nav-v6.mobile-full-height .navbar-nav>li:not(.active)>a, 709 .mobile-full-height li.drop-down-link .sub-menu, 710 .navbar-regular.nav-v6.mobile-full-height li.drop-down-link div.drop-down, 711 .drink-menu .mobile-full-height li.drop-down-link .sub-menu, 712 .navbar-regular.nav-v6.nav-scroll.mobile-full-height .navbar-nav>li:not(.active)>a, 713 .nav-scroll.mobile-full-height li.drop-down-link .sub-menu, 714 .navbar-regular.nav-v6.nav-scroll.mobile-full-height li.drop-down-link div.drop-down, 715 .drink-menu .nav-scroll.mobile-full-height li.drop-down-link .sub-menu { 716 background-color: transparent; 717 } 718 /* Mobile home background */ 719 .navbar.nav-v6.navbar-regular.mobile-full-height .navbar-collapse.collapse, 720 .navbar.nav-v6.navbar-regular.mobile-full-height .navbar-collapse.collapsing, 721 .navbar.nav-v6.navbar-regular.mobile-full-height .navbar-collapse.collapse.in { 722 background-color: #000; 723 } 724 /* Mobile home background scroll */ 725 .navbar.nav-v6.navbar-regular.nav-scroll.mobile-full-height .navbar-collapse.collapse, 726 .navbar.nav-v6.navbar-regular.nav-scroll.mobile-full-height .navbar-collapse.collapsing, 727 .navbar.nav-v6.navbar-regular.nav-scroll.mobile-full-height .navbar-collapse.collapse.in { 728 background-color: #ffffff; 729 } 730 /* Mobile pages background */ 731 .drink-menu .navbar.nav-v6.navbar-regular.mobile-full-height .navbar-collapse.collapse, 732 .drink-menu .navbar.nav-v6.navbar-regular.mobile-full-height .navbar-collapse.collapsing, 733 .drink-menu .navbar.nav-v6.navbar-regular.mobile-full-height .navbar-collapse.collapse.in { 734 background-color: #ffffff; 735 } 736 /* Mobile pages background scroll */ 737 .drink-menu .nav-v6.navbar-regular.nav-scroll.mobile-full-height .navbar-collapse.collapse, 738 .drink-menu .nav-v6.navbar-regular.nav-scroll.mobile-full-height .navbar-collapse.collapsing, 739 .drink-menu .nav-v6.navbar-regular.nav-scroll.mobile-full-height .navbar-collapse.collapse.in { 740 background-color: #ffffff; 741 } 742 .navbar-regular.nav-v6 .navbar-nav>li>a:hover, 743 .navbar-regular.nav-v6 .navbar-nav>.active>a, 744 .navbar-regular.nav-v6 .navbar-nav>.active>a:focus, 745 .navbar-regular.nav-v6 .navbar-nav>.active>a:hover{ 746 background-color: #000; 747 color: #fff; 748 } 749 .navbar-regular.nav-v6.nav-scroll .navbar-nav>li>a:hover, 750 .navbar-regular.nav-v6.nav-scroll .navbar-nav>.active>a, 751 .navbar-regular.nav-v6.nav-scroll .navbar-nav>.active>a:focus, 752 .navbar-regular.nav-v6.nav-scroll .navbar-nav>.active>a:hover{ 753 background-color: #000; 754 color: #000; 755 } 756 .drink-menu .navbar-regular.nav-v6 .navbar-nav>li>a:hover, 757 .drink-menu .navbar-regular.nav-v6 .navbar-nav>.active>a, 758 .drink-menu .navbar-regular.nav-v6 .navbar-nav>.active>a:focus, 759 .drink-menu .navbar-regular.nav-v6 .navbar-nav>.active>a:hover{ 760 background-color: #000; 761 color: #000; 762 } 763 .drink-menu .navbar-regular.nav-v6.nav-scroll .navbar-nav>li>a:hover, 764 .drink-menu .navbar-regular.nav-v6.nav-scroll .navbar-nav>.active>a, 765 .drink-menu .navbar-regular.nav-v6.nav-scroll .navbar-nav>.active>a:focus, 766 .drink-menu .navbar-regular.nav-v6.nav-scroll .navbar-nav>.active>a:hover{ 767 background-color: #000; 768 color: #000; 769 } 770 771 .navbar-regular.nav-v6 li.drop-down-link.active .drop-down .fa.fa-angle-up { 772 color: #fff; 773 } 774 .navbar-regular.nav-v6.nav-scroll li.drop-down-link.active .drop-down .fa.fa-angle-up { 775 color: #000; 776 } 777 778 .drink-menu .navbar-regular.nav-v6 li.drop-down-link.active .drop-down .fa.fa-angle-up { 779 color: #000; 780 } 781 .drink-menu .navbar-regular.nav-v6.nav-scroll li.drop-down-link.active .drop-down .fa.fa-angle-up { 782 color: #000; 783 } 784 785} 786</style><!-- nav --><nav class="navbar nav-v4 nav-v6 nav-v6-drop 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="container"><a class="header-logo logo-top" href="/#"><img alt="Sophia's logo top - Homepage" aria-label="Homepage" class="img-responsive logo-top" src="https://static.spotapps.co/website_images/ab_websites/737352_website_v1/logo.png"/></a><a class="header-logo logo-scroll" href="/"><img alt="Sophia's logo scroll - Homepage" aria-label="Homepage" class="img-responsive logo-scroll" src="https://static.spotapps.co/website_images/ab_websites/737352_website_v1/logo.png"/></a><ul class="socialnav visible-xs">
786<li class="social-links social-icons-holder social-square"><a class="pull-left contact-icon" href="https://www.facebook.com/393461760517412" 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/sophiashobesound" 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?sca_esv=b462a25ec03f4d73&rlz=1C5CHFA_enRS1159RS1159&sxsrf=ANbL-n4MR25COj10PaxKp3hPSfUZab3VMQ:1776769442265&q=Sophia%27s,+11970+SE+Dixie+Hwy&si=AL3DRZEsmMGCryMMFSHJ3StBhOdZ2-6yYkXd_doETEE1OR-qOeco_J5lWjYjwIivGwqfnep53OMFGcDOKyUANj90rqYElcWwlwoZ38WQ1jX_pmRsjKYlDKIfhMNWKeAvV4vSLJ4Mc7n7&sa=X&ved=2ahUKEwiVydD75f6TAxVBSPEDHUg_NcMQrrQLegQIGhAB&biw=1512&bih=755&dpr=2&zx=1776769445704#lrd=0x88ded954a63770ef:0x1d924d0026f9366e,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="nav_tab_1_link" target="_self"> 787 788 Menu 789 790 </a></li><li class=" "><a class="" href="/drink-menu" id="nav_tab_2_link" target="_self"> 791 792 Drinks 793 794 </a></li><li class=" "><a class="" href="/specials" id="nav_tab_3_link" target="_self"> 795 796 Specials 797 798 </a></li><li class=" "><a class="" href="/events" id="nav_tab_4_link" target="_self"> 799 800 Events 801 802 </a></li><li class=" nav-parties-link"><a class="link-parties-sh" href="/party#" id="nav_tab_6_link" target="_self"> 803 804 Parties 805 806 </a></li><li class=" nav-jobs-link"><a class="link-jobs-sh" href="https://tmt.spotapps.co/job-listings?spot_id=737352&callback_url=http://sophiashobesound.com/#" id="nav_tab_8_link" target="_self"> 807 808 Jobs 809 810 </a></li><li class=" "><a class="" href="/about" id="nav_tab_9_link" target="_self"> 811 812 About 813 814 </a></li><li class=" gift-cards-nav"><a class="gift-cards-link" href="https://order.toasttab.com/egiftcards/sophias-11970-se-dixie-hwy" id="nav_tab_10_link" target="_blank"> 815 816 Gift Cards 817 818 </a></li><li class=" "><a class="" href="/music-submission" id="nav_tab_11_link" target="_self"> 819 820 Music Submission 821 822 </a></li><li class=" nav-reservations-link cta-nav-tab"><a class="link-reservations-sh" href="https://www.opentable.com/booking/restref/availability?lang=en-US&correlationId=f1f0ccfb-cabb-47f2-8722-fe95c1f3a02b&restRef=1378678&otSource=Restaurant%20website#" id="nav_tab_12_link" target="_self"> 823 824 Reserve 825 826 </a></li></ul><ul class="socialnav hidden-xs"><li class="social-links social-icons-holder social-square"><a class="pull-left contact-icon" href="https://www.facebook.com/393461760517412" 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/sophiashobesound" 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?sca_esv=b462a25ec03f4d73&rlz=1C5CHFA_enRS1159RS1159&sxsrf=ANbL-n4MR25COj10PaxKp3hPSfUZab3VMQ:1776769442265&q=Sophia%27s,+11970+SE+Dixie+Hwy&si=AL3DRZEsmMGCryMMFSHJ3StBhOdZ2-6yYkXd_doETEE1OR-qOeco_J5lWjYjwIivGwqf
826nep53OMFGcDOKyUANj90rqYElcWwlwoZ38WQ1jX_pmRsjKYlDKIfhMNWKeAvV4vSLJ4Mc7n7&sa=X&ved=2ahUKEwiVydD75f6TAxVBSPEDHUg_NcMQrrQLegQIGhAB&biw=1512&bih=755&dpr=2&zx=1776769445704#lrd=0x88ded954a63770ef:0x1d924d0026f9366e,1,,,," target="_blank"><i aria-hidden="true" class="social-icon fa fa-google"></i><span>Google page</span></a></li></ul></div></div></nav><header class="header cover-type-video" style=" 827 background-image: url(https://static.spotapps.co/website_images/ab_websites/737352_website_v1/video_poster.jpeg); 828 background-repeat: no-repeat; 829 background-position: center center fixed; 830 -webkit-background-size: cover; 831 -moz-background-size: cover; 832 -o-background-size: cover; 833 background-size: cover; 834 z-index: 98; position: relative; overflow: hidden; 835 "><div id="home_page_cover" style="height:100%;"><style> 836 837video#coverVideo { 838 z-index: 99; 839 background: url(https://static.spotapps.co/website_images/ab_websites/737352_website_v1/video_poster.jpeg) no-repeat; 840 background-size: cover; 841} 842 843@media (min-width: 768px) { 844 845 846 @media (min-width: 1025px) { 847 848 video#coverVideo { 849 position: absolute; 850 top: 50%; 851 left: 50%; 852 min-width: 100%; 853 min-height: 100%; 854 width: auto; 855 height: auto; 856 -ms-transform: translateX(-50%) translateY(-50%); 857 -moz-transform: translateX(-50%) translateY(-50%); 858 -webkit-transform: translateX(-50%) translateY(-50%); 859 transform: translateX(-50%) translateY(-50%); 860 max-width: none; 861 vertical-align: baseline; 862} 863 } 864 865 @media (max-width: 1024px) { 866 867 video#coverVideo { 868 width: 100%; 869} 870.header { 871 max-height: 100vh; 872 background-image: none !important; 873 width: initial; 874 height: initial; 875} 876body.home-page { 877 background-color: transparent; 878} 879 } 880 881 882} 883 884@media (max-width: 767px) { 885 video#coverVideo { 886 width: 100%; 887} 888.header { 889 max-height: 100vh; 890 background-image: none !important; 891 width: initial; 892 height: initial; 893} 894body.home-page { 895 background-color: transparent; 896} } 897 898 .video-volume-btn, .video-controls-btn { 899 color: rgba(255, 255, 255, 0.9); 900 } 901 902</style><video autoplay="autoplay" data-video="dual" id="coverVideo" loop="loop" muted="muted" playsinline="playsinline"><source src="https://static.spotapps.co/web/sophiashobesound--com/" type="video/mp4"/></video><button aria-label="The decorative video is currently playing, pause the video" class="video-controls-btn " id="cover_video_controls_btn" type="button"><span class="off-screen">The decorative video is currently playing</span><i aria-hidden="true" class="fa fa-play"></i><i aria-hidden="true" class="fa fa-pause"></i></button><button aria-label="The decorative video sound is off, turn it on" class="video-volume-btn " type="button"><span class="off-screen">The decorative video sound is off</span><i aria-hidden="true" class="fa fa-volume-off"></i><i aria-hidden="true" class="fa fa-volume-up"></i></button>
902<script> 903(function () { 904 const video = document.getElementById("coverVideo"); 905 if (!video) return; 906 907 const variants = { 908 desktop: { 909 src: "https:\/\/static.spotapps.co\/new_website_videos\/737352_videos\/737352_video_desktop_v1.mp4", 910 poster: "https:\/\/static.spotapps.co\/website_images\/ab_websites\/737352_website_v1\/video_poster.jpeg", 911 vtt: "" }, 912 mobile: { 913 src: "", 914 poster: "", 915 vtt: "" } 916 }; 917 const isMobile = window.matchMedia("(max-width: 767px)").matches; 918 const preferred = isMobile ? variants.mobile : variants.desktop; 919 const srcVariant = (preferred.src && preferred.src.trim()) ? preferred : variants.desktop; 920 const chosen = { 921 src: srcVariant.src, 922 poster: srcVariant.poster, 923 vtt: preferred.vtt 924 }; 925 926 if (!chosen.src || !chosen.src.trim()) return; 927 if (chosen.poster && chosen.poster.trim()) { 928 video.poster = chosen.poster; 929 } 930 931 video.querySelectorAll("track").forEach(t => t.remove()); 932 933 const hasCaptions = !!(chosen.vtt && chosen.vtt.trim()); 934 if (hasCaptions) { 935 video.setAttribute("controls", ""); 936 video.setAttribute("crossorigin", "anonymous"); 937 const track = document.createElement("track"); 938 track.label = "English"; 939 track.kind = "subtitles"; 940 track.srclang = "en"; 941 track.src = chosen.vtt; 942 video.appendChild(track); 943 document.querySelector(".video-controls-btn")?.remove(); 944 document.querySelector(".video-volume-btn")?.remove(); 945 } else { 946 video.removeAttribute("controls"); 947 video.removeAttribute("crossorigin"); 948 } 949 950 video.src = chosen.src; 951 video.addEventListener("canplay", function handler() { 952 video.removeEventListener("canplay", handler); 953 video.play().catch(() => {}); 954 }); 955 video.load(); 956})(); 957</script>
957</div></header><main id="content" role="main"><h1 class="visuallyhidden">Sophia's - Hobe Sound, FL</h1><article class="hide-show-section" data-hidden="no"><style></style><div class="custom_html_1-section section-wrapper" id="custom_html_1"><div class="container"><h2>Your new favorite neighborhood restaurant</h2></div></div></article><article class="hide-show-section" data-hidden="no"><style> 958.about-us-v8-wrapper { 959 padding: 0; 960} 961.about-us-v8-wrapper:before { 962 background-color: #000; 963 background-image: url('https://static.spotapps.co/website_images/ab_websites/737352_website_v1/v8_bg.jpg'); 964 } 965 966 967.about-us-v8-wrapper .container { 968 padding: 0; 969 width: 100%; 970} 971 972 973 974 975 976 #aboutus_v8 .about-us-v8-item-0 .text-wrapper { 977 padding: 70px 23%; 978 } 979 980 #aboutus_v8 .about-us-v8-item-0 .about-us-v8-content .text-content.title-image h2.about-title::after, 981 #aboutus_v8 .about-us-v8-item-0 .about-us-v8-content .text-content.title-image h2.about-title::before { 982 background-image: url('https://static.spotapps.co/website_images/ab_websites/737352_website_v1/title_decoration1.png'); 983 height: 150px; 984 } 985 #aboutus_v8 .about-us-v8-item-0 .about-us-v8-content .text-content.title-image h2.about-title::before { 986 display: block; 987 } 988 989 990 #aboutus_v8 .about-us-v8-item-0 .about-us-v8-content .text-content h3, 991 #aboutus_v8 .about-us-v8-item-0 .about-us-v8-content .text-content h2:not(.about-title) { 992 color: #fff; 993 } 994 995 996 @media (max-width: 1024px) { 997 #aboutus_v8 .about-us-v8-item-0 .text-wrapper { 998 padding: 70px 10%; 999 } 1000 } 1001 1002 @media (max-width: 767px) { 1003 #aboutus_v8 .about-us-v8-item-0 .about-us-v8-image { 1004 margin: 0; 1005 height: 300px; 1006 } 1007 } 1008 1009 #aboutus_v8 .about-us-v8-item-1 { 1010 background-color: #fff; 1011 } 1012 1013 1014 1015 #aboutus_v8 .about-us-v8-item-1 .text-wrapper { 1016 padding: 70px 10%; 1017 } 1018 1019 1020 1021 #aboutus_v8 .about-us-v8-item-1 .about-us-v8-content .text-content h3, 1022 #aboutus_v8 .about-us-v8-item-1 .about-us-v8-content .text-content h2:not(.about-title) { 1023 color: #000; 1024 } 1025 1026 1027 @media (max-width: 1024px) { 1028 #aboutus_v8 .about-us-v8-item-1 .text-wrapper { 1029 padding: 70px 10%; 1030 } 1031 } 1032 1033 @media (max-width: 767px) { 1034 #aboutus_v8 .about-us-v8-item-1 .about-us-v8-image { 1035 margin: 6px; 1036 height: 300px; 1037 } 1038 } 1039 1040@-webkit-keyframes grow { 1041 from { 1042 opacity: 0; 1043 width: 0px; 1044 } 1045 to { 1046 opacity: 1; 1047 width: 80%; 1048 } 1049} 1050@-moz-keyframes grow { 1051 from { 1052 opacity: 0; 1053 width: 0px; 1054 } 1055 to { 1056 opacity: 1; 1057 width: 80%; 1058 } 1059} 1060@keyframes grow { 1061 from { 1062 opacity: 0; 1063 width: 0px; 1064 } 1065 to { 1066 opacity: 1; 1067 width: 80%; 1068 } 1069} 1070 1071.safari-mac .about-us-v8-item .about-us-v8-image-bar { 1072 width: 80%; 1073} 1074 1075 1076@media (max-width: 767px) { 1077 .about-us-v8-wrapper { 1078 padding: 0; 1079 } 1080 .about-us-v8-wrapper .container { 1081 padding: 0; 1082 width: 100%; 1083 } 1084 .about-us-v8-item { 1085 padding: 0 !important; 1086 } 1087} 1088 1089</style><div class="about-us-v8-wrapper section-wrapper" id="aboutus_v8"><div class="container about-us-v8"><section><div class="about-us-v8-item about-us-v8-item-0 about-us-v8-item-left" style="padding: 1% 0 3%; "><!-- start About us item --><div class="about-us-v8-image about-no-image image-size-cover image-size-mobile-cover" style="width: 0;"><!-- start Left About us image --></div><!-- end Left About us image --><div class="about-us-v8-content " style="width: 100%; 1090 color: #fff; 1091 background: rgba(250, 250, 250, 0); text-align: center;"><div class="text-wrapper"><div class="text-content title-image"><h2 class="about-title" style="color: #fff;"><span>Welcome to Dinerâs Choice <br/>Award-winning, Sophiaâs</span></h2><div class="text-holder"><h3>a neighborhood favorite</h3><p style="text-align:center">Our passion for creating exceptional dining experiences drives everything we do. From the moment you step in, we strive to make you feel at home. Our team is dedicated to serving you with the finest dishes, carefully prepared with the freshest ingredients. </p></div><div class="buttons-holder buttons-row-parent "><div class="buttons-row"><a class="custom-temp-btn hvr-fade" href="/about" target="_self"> 1092 our story <sp
1092an class="visuallyhidden"> about us</span></a></div></div></div></div></div><!-- end Right About us image --></div><!-- end About us item --></section><section><div class="about-us-v8-item about-us-v8-item-1 about-us-v8-item-spec-color about-us-v8-item-left" style="padding: 0.7%; "><!-- start About us item --><div class="about-us-v8-image image-size-cover image-size-mobile-cover" style="background-image: url('https://static.spotapps.co/website_images/ab_websites/737352_website_v1/catering_left.jpg'); width: 50%; 1093 "><!-- start Left About us image --></div><!-- end Left About us image --><div class="about-us-v8-content content-left" style="width: 50%; 1094 color: #000; 1095 background: rgba(250, 250, 250, 0); text-align: left;"><div class="text-wrapper"><div class="text-content "><h2 class="about-title bar-left" style="color: #000;"><span>Catering for <br/>every occasion</span></h2><div class="text-holder"><h3>tailored catering options</h3><p>Sophia's offers catering tailored to your event, with fresh dishes and flexible menu options. Whether it's a small gathering or a larger celebration, the team creates a setup that feels effortless. Sophia's focuses on quality food and attentive service so you can enjoy your guests.</p></div><div class="buttons-holder buttons-row-parent buttons-left"><div class="buttons-row"><a class="custom-temp-btn hvr-fade" href="tel:+17722458182" target="_self"> 1096 catering </a></div></div></div></div></div><!-- end Right About us image --></div><!-- end About us item --></section></div></div><!-- For mobile devices animate the about_v8 section on page load if the video is on the cover and this section is 1st or 2nd below the cover. --></article><article class="hide-show-section" data-hidden="no"><div class="reservations-tmt-section tmt-section section-wrapper" id="reservations_tmt"><div class="container"><h2 class="section-header">plan the perfect night</h2><h3>reserve your table</h3><p>Reservations at Sophia's are recommended to ensure your table is ready when you arrive. Whether you're planning a quiet dinner or meeting with friends, the team makes the process simple and accommodating. Sophia's focuses on a smooth, welcoming experience from the moment you book to the moment you're seated.</p><a class="custom-temp-btn hvr-fade" href="https://www.opentable.com/booking/restref/availability?lang=en-US&correlationId=f1f0ccfb-cabb-47f2-8722-fe95c1f3a02b&restRef=1378678&otSource=Restaurant%20website" target="_self">book a table</a></div></div></article><article class="hide-show-section" data-hidden="no"><style> 1097.slideshow-v2-wrapper .slideshow-controls-btn { 1098 color: rgba(255, 255, 255, 0.8); 1099} 1100 1101</style><div class="slideshow-v2-wrapper" id="slideshow_v2"><div aria-label="slideshow carousel" class="uk-slidenav-position" data-uk-slideshow="data-uk-slideshow" role="region" style="height:650px"><button aria-label="The slideshow is currently playing, pause the slideshow" class="slideshow-controls-btn playing" 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 href="" role="button"><span class="off-screen">Slide 1 content</span></a></li><li data-uk-slideshow-item="1"><a href="" role="button"><span class="off-screen">Slide 2 content</span></a></li><li data-uk-slideshow-item="2"><a href="" role="button"><span class="off-screen">Slide 3 content</span></a></li></ul><a class="uk-slidenav uk-slidenav-contrast uk-slidenav-previous" data-uk-slideshow-item="previous" href=""><span class="off-screen">previous slide</span></a><a class="uk-slidenav uk-slidenav-contrast uk-slidenav-next" data-uk-slideshow-item="next" href=""><span class="off-screen">next slide</span></a><ul class="uk-slideshow "><li><img alt="slideshow photo number 1" src="//cdn.spotapps.co/spothopper/image/fetch/f_auto,q_auto:best,c_fit,h_1200/http://static.spotapps.co/spots/d3/5388d0fef94089b7a1e42b89144474/:original"/><div class="uk-overlay-panel uk-overlay-background uk-overlay-fade uk-flex uk-flex-center uk-flex-middle uk-text-center"><div class="container"><h2>where guests feel at home</h2><div class="buttons-group-holder"><a class="custom-temp-btn hvr-fade" href="/about" target="_self">About us</a></div></div></div></li><li><img alt="slideshow photo number 2" src="//cdn.spotapps.co/spothopper/image/fetch/f_auto,q_auto:best,c_fit,h_1200/http://static.spotapps.co/spots/16/e3cd6abab7428790a4b4a07c6c282d/:original"/><div class="uk-overlay-panel uk-overlay-background uk-overlay-fade uk-flex uk-flex-center uk-flex-middle uk-text-center"><div class="container"><h2>your private dining experience</h2><div class="buttons-group-holder"><a class="custom-temp-btn hvr-fade" href="https://www.opentable.com/booking/restref/availability?lang=en-US&correlationId=f1f0ccfb-cabb-47f2
1101-8722-fe95c1f3a02b&restRef=1378678&otSource=Restaurant%20website" target="_self">Reservations</a></div></div></div></li><li><img alt="slideshow photo number 3" src="//cdn.spotapps.co/spothopper/image/fetch/f_auto,q_auto:best,c_fit,h_1200/http://static.spotapps.co/spots/0d/4787c84065413eb87fec2589a264e7/:original"/><div class="uk-overlay-panel uk-overlay-background uk-overlay-fade uk-flex uk-flex-center uk-flex-middle uk-text-center"><div class="container"><h2>catering for every occasion</h2><div class="buttons-group-holder"><a class="custom-temp-btn hvr-fade" href="tel:+17722458182" target="_self">catering</a></div></div></div></li></ul></div></div></article><article class="hide-show-section" data-hidden="no"><style> 1102.about-us-v8-wrapper.custom-about-us-v8-wrapper { 1103 padding: ; 1104} 1105.about-us-v8-wrapper.custom-about-us-v8-wrapper:before { 1106 background-color: #fff; 1107 background-image: url('https://static.spotapps.co/website_images/ab_websites/737352_website_v1/v8custom_bg.jpg'); 1108 1109 -webkit-filter: none; 1110 -moz-filter: none; 1111 -o-filter: none; 1112 -ms-filter: none; 1113 filter: none; 1114 } 1115 1116 1117.about-us-v8-wrapper.custom-about-us-v8-wrapper .container { 1118 padding: 0; 1119 width: 100%; 1120} 1121 1122 1123 1124 1125 1126 #aboutus_v8_custom .about-us-v8-item-0 .text-wrapper { 1127 padding: 70px 22% 90px; 1128 } 1129 1130 #aboutus_v8_custom .about-us-v8-item-0 .about-us-v8-content .text-content.title-image h2.about-title::after, 1131 #aboutus_v8_custom .about-us-v8-item-0 .about-us-v8-content .text-content.title-image h2.about-title::before { 1132 background-image: url('https://static.spotapps.co/website_images/ab_websites/737352_website_v1/title_decoration3.png'); 1133 height: 130px; 1134 } 1135 #aboutus_v8_custom .about-us-v8-item-0 .about-us-v8-content .text-content.title-image h2.about-title::before { 1136 display: block; 1137 } 1138 1139 1140 #aboutus_v8_custom .about-us-v8-item-0 .about-us-v8-content .text-content h3, 1141 #aboutus_v8_custom .about-us-v8-item-0 .about-us-v8-content .text-content h2:not(.about-title) { 1142 color: #000; 1143 } 1144 1145 1146 @media (max-width: 1024px) { 1147 #aboutus_v8_custom .about-us-v8-item-0 .text-wrapper { 1148 padding: 70px 10% 90px; 1149 } 1150 } 1151 1152 @media (max-width: 767px) { 1153 #aboutus_v8_custom .about-us-v8-item-0 .about-us-v8-image { 1154 margin: 0; 1155 height: 300px; 1156 } 1157 } 1158 1159 1160 #aboutus_v8_custom .about-us-v8-item-1 { 1161 background-color: #fff; 1162 } 1163 1164 1165 1166 #aboutus_v8_custom .about-us-v8-item-1 .text-wrapper { 1167 padding: 70px 10%; 1168 } 1169 1170 1171 1172 #aboutus_v8_custom .about-us-v8-item-1 .about-us-v8-content .text-content h3, 1173 #aboutus_v8_custom .about-us-v8-item-1 .about-us-v8-content .text-content h2:not(.about-title) { 1174 color: #000; 1175 } 1176 1177 1178 @media (max-width: 1024px) { 1179 #aboutus_v8_custom .about-us-v8-item-1 .text-wrapper { 1180 padding: 70px 10%; 1181 } 1182 } 1183 1184 @media (max-width: 767px) { 1185 #aboutus_v8_custom .about-us-v8-item-1 .about-us-v8-image { 1186 margin: 6px; 1187 height: 300px; 1188 } 1189 } 1190 1191 1192@-webkit-keyframes grow { 1193 from { 1194 opacity: 0; 1195 width: 0px; 1196 } 1197 to { 1198 opacity: 1; 1199 width: 80%; 1200 } 1201} 1202@-moz-keyframes grow { 1203 from { 1204 opacity: 0; 1205 width: 0px; 1206 } 1207 to { 1208 opacity: 1; 1209 width: 80%; 1210 } 1211} 1212@keyframes grow { 1213 from { 1214 opacity: 0; 1215 width: 0px; 1216 } 1217 to { 1218 opacity: 1; 1219 width: 80%; 1220 } 1221} 1222 1223.safari-mac .custom-about-us-v8-wrapper .about-us-v8-item .about-us-v8-image-bar { 1224 width: 80%; 1225} 1226 1227 1228@media (max-width: 767px) { 1229 .about-us-v8-wrapper.custom-about-us-v8-wrapper { 1230 padding: 0; 1231 } 1232 .about-us-v8-wrapper.custom-about-us-v8-wrapper .container { 1233 padding: 0; 1234 width: 100%; 1235 } 1236 .custom-about-us-v8-wrapper .about-us-v8-item { 1237 padding: 0 !important; 1238 } 1239} 1240 1241</style><div class="about-us-v8-wrapper custom-about-us-v8-wrapper section-wrapper" id="aboutus_v8_custom"><div class="container about-us-v8"><section><div class="about-us-v8-item about-us-v8-item-0 about-us-v8-item-left" style="padding: 0; "><!-- start About us item --><div class="about-us-v8-image about-no-image image-size-cover image-size-mobile-cover" style="width: 0;"><!-- start Left About us image --></div><!-- end Left About us image --><div class="about-us-v8-content " style="width: 100%; 1242 color: #000; 1243 background: rgba(250, 250, 250, 0); text-align: center;"><div class="text-wrapper"><div class="text-content title-image"><h2 class="about-title" style="color: #000;"><span>where music meets dining</span></h2><div class="text-holder"><h3>the sound of a good time</h3><p>Sophia's hosts events that bring people together with great food, a relaxed setting, and live music that sets the tone for the night. Whether you're stopping in for an evening out or planning something special, each event is designed to feel easy and enjoyable. From the music to the service, Sophia's creates an atmosphere where guests can settle in and stay awhile.</p></div><div class="buttons-holder buttons-row-parent "><div class="buttons-row"><a class="custom-temp-btn hvr-fade" href="/events" target="_self"> 1244 events </a></div></div></div></div></div><!-- end Right About us image --></div><!-- end About us item --></section><section><div class="about-us-v8-item about-us-v8-item-1 about-us-v8-item-spec-color about-us-v8-item-right" style="padding: 0.7%; "><!-- start About us item --><div class="about-us-v8-image visible-xs image-size-cover image-size-mobile-cover" style="background-image: url('https://static.spotapps.co/website_images/ab_websites/737352_website_v1/parties_right.jpg'); width: 50%; 1245 "><!-- start Left About us image --></div><!-- end Left About us image --><div class="about-us-v8-content content-left" style="width: 50%; 1246 color: #000; 1247 background: rgba(250, 250, 250, 0); text-align: left;"><div class="text-wrapper"><div class="text-content "><h2 class="about-title bar-left" style="color: #000;"><span>Groups & Parties Reservations</span></h2><div class="text-holder"><h3>celebrate with us today</h3><p>Sophia's offers a welcoming setting for private parties, with flexible options to match your occasion. Whether it's a birthday, celebration, or gathering with friends, the team helps create an experience that feels smooth and well organized. Sophia's focuses on good food and attentive service so you can enjoy every moment with your guests.</p></div><div class="buttons-holder buttons-row-parent buttons-left"><div class="buttons-row"><a class="custom-temp-btn hvr-fade" href="/party" target="_self"> 1248 book a party </a></div></div></div></div></div><!-- start Right About us image --><div class="about-us-v8-image hidden-xs image-size-cover image-size-mobile-cover" style="background-image: url('https://static.spotapps.co/website_images/ab_websites/737352_website_v1/parties_right.jpg'); width: 50%; 1249 "></div><!-- end Right About us image --></div><!-- end About us item --></section></div></div><!-- For mobile devices animate the about_v8 section on page load if the video is on the cover and this section is 1st or 2nd below the cover. --></article><article class="hide-show-section" data-hidden="no"><style> 1250 1251
1252.reviews-v2-wrapper .carousel-controls .carousel-control-btn { 1253 color: #fff; 1254} 1255</style><div class="carousel-wrapper reviews-v2-wrapper section-wrapper" id="reviews_v2"><h2 class="section-header">What our Clients Say</h2><div class="container"><div aria-label="reviews carousel" class="row" role="region"><div class="carousel-controls" id="ReviewesCarouselControls"><button aria-label="The Reviews carousel is currently playing, pause the Reviews carousel" class="carousel-control-btn stop-carousel" type="button"><i aria-hidden="true" class="fa fa-pause"></i><i aria-hidden="true" class="fa fa-play"></i><span class="visuallyhidden"> Start stop reviews carousel</span></button></div><ul class="owl-dots"><li class="owl-dot"></li><li class="owl-dot"></li><li class="owl-dot"></li></ul><div class="col-md-12 col-xs-12"><div class="owl-carousel owl-theme"><section><div class="item"><h3 class="review-by">Review by - Google</h3><h4 class="reviewer"><span class="visuallyhidden">five star review by</span> 1256 John k: 1257 <i aria-hidden="true" class="fa fa-star"></i><i aria-hidden="true" class="fa fa-star"></i><i aria-hidden="true" class="fa fa-star"></i><i aria-hidden="true" class="fa fa-star"></i><i aria-hidden="true" class="fa fa-star"></i></h4><div class="review-text"><div aria-hidden="true" class="review-quote quote-left"><i class="fa fa-quote-left"></i></div><div aria-hidden="true" class="review-quote quote-right"><i class="fa fa-quote-right"></i></div><blockquote><p>I recently had the pleasure of dining at Sophia's in Hobe Sound. The crab cakes were great. The beef tenderloin sliders are must. The lobster and crab bisque was one of the best I've had. The outdoor seating area is spacious and there was live music. Definitely will be back.</p></blockquote></div></div></section><section><div class="item"><h3 class="review-by">Review by - Google</h3><h4 class="reviewer"><span class="visuallyhidden">five star review by</span> 1258 Lori C: 1259 <i aria-hidden="true" class="fa fa-star"></i><i aria-hidden="true" class="fa fa-star"></i><i aria-hidden="true" class="fa fa-star"></i><i aria-hidden="true" class="fa fa-star"></i><i aria-hidden="true" class="fa fa-star"></i></h4><div class="review-text"><div aria-hidden="true" class="review-quote quote-left"><i class="fa fa-quote-left"></i></div><div aria-hidden="true" class="review-quote quote-right"><i class="fa fa-quote-right"></i></div><blockquote><p>This place is wonderful. Great service, smiling welcoming faces, and great food. They are very generous here. My Thai roasted duck was a half duck! I ate it all because it was so good! And live music on a Tuesday? Bonus!!</p></blockquote></div></div></section><section><div class="item"><h3 class="review-by">Review by - Google</h3><h4 class="reviewer"><span class="visuallyhidden">five star review by</span> 1260 Joe C: 1261 <i aria-hidden="true" class="fa fa-star"></i><i aria-hidden="true" class="fa fa-star"></i><i aria-hidden="true" class="fa fa-star"></i><i aria-hidden="true" class="fa fa-star"></i><i aria-hidden="true" class="fa fa-star"></i></h4><div class="review-text"><div aria-hidden="true" class="review-quote quote-left"><i class="fa fa-quote-left"></i></div><div aria-hidden="true" class="review-quote quote-right"><i class="fa fa-quote-right"></i></div><blockquote><p>Went to Sophia's to celebrate a birthday. Sat out by the bar for drinks and appetizers during Happy Hour. This was one of the best Happy Hours we've ever experienced. Discounted wine and specialty drinks. Coconut shrimp, flat bread, beef sliders and more. All excellent. 5 stars all around.</p></blockquote></div></div></section></div></div></div></div></div></article><article class="hide-show-section" data-hidden="no"><style></style><div class="gallery-v4-wrapper section-wrapper" id="gallery_v4"><button class="visuallyhidden skip-content gallery-toggle gt-off">Skip Photo Gallery</button><div class="container"><div class="gallery-v4-grid"><div class="gallery-v4-grid-sizer"></div><div class="gallery-v4-grid-item gallery-v4-grid-item--width2 gallery-hover animation_0"><a class="fancybox fancybox.image" href="//static.spotapps.co/spots/95/658dc89c5f4fc8b18a96da25613078/full"><div class="img"><img alt="Ceviche served with chips avocado and citrus garnish." class="img-responsive lazyload" data-original="//static.spotapps.co/spots/95/658dc89c5f4fc8b18a96da25613078/full" data-sizes="auto" data-src="//static.spotapps.co/spots/95/658dc89c5f4fc8b18a96da25613078/full" data-srcset="//static.spotapps.co/spots/95/658dc89c5f4fc8b18a96da25613078/small 200w, //static.spotapps.co/spots/95/658dc89c5f4fc8b18a96da25613078/medium 400w, //static.spotapps.co/spots/95/658dc89c5f4fc8b18a96da25613078/full 800w" src="https://static.spotapps.co/web/placeholder.png"/></div></a></div><div class="gallery-v4-grid-item gallery-hover animation_0"><a class="fancybox fancybox.image" href="//static.spotapps.co/spots/d1/506e18d0e24148a6f3b7771a6de1e0/full"><div class="img"><img alt="Fried calamari served with dipping sauce and lemon, accompanied by a cocktail." class="img-responsive lazyload" data-original="//static.spotapps.co/spots/d1/506e18d0e24148a6f3b7771a6de1e0/full" data-sizes="auto" data-src="//static.spotapps.co/spots/d1/506e18d0e24148a6f3b7771a6de1e0/full" data-srcset="//static.spotapps.co/spots/d1/506e18d0e24148a6f3b7771a6de1e0/small 200w, //static.spotapps.co/spots/d1/506e18d0e24148a6f3b7771a6de1e0/medium 400w, //static.spotapps.co/spots/d1/506e18d0e24148a6f3b7771a6de1e0/full 800w" src="https://static.spotapps.co/web/placeholder.png"/></div></a></div><div class="gallery-v4-grid-item gallery-hover animation_0"><a class="fancybox fancybox.image" href="//static.spotapps.co/spots/0d/4787c84065413eb87fec2589a264e7/full"><div class="img"><img alt="Grilled mahi salad with mixed greens, fried plantains, and sliced avocado." class="img-responsive lazyload" data-original="//static.spotapps.co/spots/0d/4787c84065413eb87fec2589a264e7/full" data-sizes="auto" data-src="//static.spotapps.co/spots/0d/4787c84065413eb87fec2589a264e7/full" data-srcset="//static.spotapps.co/spots/0d/4787c84065413eb87fec2589a264e7/small 200w, //static.spotapps.co/spots/0d/4787c84065413eb87fec2589a264e7/medium 400w, //static.spotapps.co/spots/0d/4787c84065413eb87fec2589a264e7/full 800w" src="https://static.spotapps.co/web/placeholder.png"/></div></a></div><div class="gallery-v4-grid-item gallery-hover animation_0"><a class="fancybox fancybox.image" href="//static.spotapps.co/spots/79/235351749b4ef4ad5183ae9f7e8452/full"><div class="img"><img alt="Tenderloin sliders served with a glass of beer." class="img-responsive lazyload" data-original="//static.spotapps.co/spots/79/235351749b4ef4ad5183ae9f7e8452/full" data-sizes="auto" data-src="//static.spotapps.co/spots/79/235351749b4ef4ad5183ae9f7e8452/full" data-srcset="//static.spotapps.co/spots/79/235351749b4ef4ad5183ae9f7e8452/small 200w, //static.spotapps.co/spots/79/235351749b4ef4ad5183ae9f7e8452/medium 400w, //static.spotapps.co/spots/79/235351749b4ef4ad5183ae9f7e8452/full 800w" src="https://static.spotapps.co/web/placeholder.png"/></div></a></div><div class="gallery-v4-grid-item gallery-hover animation_0"><a class="fancybox fancybox.image" href="//static.spotapps.co/spots/ce/80b7ae5ec1492caaa52a319971b79b/full"><div class="img"><img alt="Shrimp pesto flatbread with tomatoes and melted cheese." class="img-responsive lazyload" data-original="//static.spotapps.co/spots/ce/80b7ae5ec1492caaa52a319971b79b/full" data-sizes="auto" data-src="//static.spotapps.co/spots/ce/80b7ae5ec1492caaa52a319971b79b/full" data-srcset="//static.spotapps.co/spots/ce/80b7ae5ec1492caaa52a319971b79b/small 200w, //static.spotapps.co/spots/ce/80b7ae5ec1492caaa52a319971b79b/medium 400w, //static.spotapps.co/spots/ce/80b7ae5ec1492caaa52a319971b79b/full 800w" src="https://static.spotapps.co/web/placeholder.png"/></div></a></div><div class="gallery-v4-grid-item gallery-hover animation_0"><a class="fancybox fancybox.image" href="//static.spotapps.co/spots/a5/f215e8025a4f1f8214ed80ddced247/full"><div class="img"><img alt="Raspberry cheesecake on a white plate with red fruit drizzle and whipped cream." class="img-responsive lazyload" data-original="//static.spotapps.co/spots/a5/f215e8025a4f1f8214ed80ddced247/full" data-sizes="auto" data-src="//static.spotapps.co/spots/a5/f215e8025a4f1f8214ed80ddced247/full" data-srcset="//static.spotapps.co/spots/a5/f215e8025a4f1f8214ed80ddced247/small 200w, //static.spotapps.co/spots/a5/f215e8025a4f1f8214ed80ddced247/medium 400w, //static.spotapps.co/spots/a5/f215e8025a4f1f8214ed80ddced247/full 800w" src="https://static.spotapps.co/web/placeholder.png"/></div></a></div><div class="gallery-v4-grid-item gallery-hover animation_0"><a class="fancybox fancybox.image" href="//static.spotapps.co/spots/01/15ebbe0f0b4574ba745a8d870bbfc6/full"><div class="img"><img alt="Cajun shrimp sausage pasta served with toasted bread." class="img-responsive lazyload" data-original="//static.spotapps.co/spots/01/15ebbe0f0b4574ba745a8d870bbfc6/full" data-sizes="auto" data-src="//static.spotapps.co/spots/01/15ebbe0f0b4574ba745a8d870bbfc6/full" data-srcset="//static.spotapps.co/spots/01/15ebbe0f0b4574ba745a8d870bbfc6/small 200w, //static.spotapps.co/spots/01/15ebbe0f0b4574ba745a8d870bbfc6/medium 400w, //static.spotapps.co/spots/01/15ebbe0f0b4574ba745a8d870bbfc6/full 800w" src="https://static.spotapps.co/web/placeholder.png"/></div></a></div><div class="gallery-v4-grid-item gallery-v4-grid-item--width2 gallery-hover animation_0"><a class="fancybox fancybox.image" href="//static.spotapps.co/spots/4f/8921671cad449cb35ac88512a83fe2/full"><div class="img"><img alt="Blue martini cocktail in a stem glass." class="img-responsive lazyload" data-original="//static.spotapps.co/spots/4f/8921671cad449cb35ac88512a83fe2/full" data-sizes="auto" data-src="//static.spotapps.co/spots/4f/8921671cad449cb35ac88512a83fe2/full" data-srcset="//static.spotapps.co/spots/4f/8921671cad449cb35ac88512a83fe2/small 200w, //static.spotapps.co/spots/4f/8921671cad449cb35ac88512a83fe2/medium 400w, //static.spotapps.co/spots/4f/8921671cad449cb35ac88512a83fe2/full 800w" src="https://static.spotapps.co/web/placeholder.png"/></div></a></div><div class="gallery-v4-grid-item gallery-hover animation_0"><a class="fancybox fancybox.image" href="//static.spotapps.co/spots/3e/65b15328714792ab98270d63089148/full"><div class="img"><img alt="Two cocktails on bar counter with neon restaurant sign on the wall in the background." class="img-responsive lazyload" data-original="//static.spotapps.co/spots/3e/65b15328714792ab98270d63089148/full" data-sizes="auto" data-src="//static.spotapps.co/spots/3e/65b15328714792ab98270d63089148/full" data-srcset="//static.spotapps.co/spots/3e/65b15328714792ab98270d63089148/small 200w, //static.spotapps.co/spots/3e/65b15328714792ab98270d63089148/medium 400w, //static.spotapps.co/spots/3e/65b15328714792ab98270d63089148/full 800w" src="https://static.spotapps.co/web/placeholder.png"/></div></a></div><div class="gallery-v4-grid-item gallery-hover animation_0"><a class="fancybox fancybox.image" href="//static.spotapps.co/spots/c0/34cf47bb7849a79cdb4f36ac2c54f9/full"><div class="img"><img alt="Steak and lobster served with asparagus and mashed potatoes." class="img-responsive lazyload" data-original="//static.spotapps.co/spots/c0/34cf47bb7849a79cdb4f36ac2c54f9/full" data-sizes="auto" data-src="//static.spotapps.co/spots/c0/34cf47bb7849a79cdb4f36ac2c54f9/full" data-srcset="//static.spotapps.co/spots/c0/34cf47bb7849a79cdb4f36ac2c54f9/small 200w, //static.spotapps.co/spots/c0/34cf47bb7849a79cdb4f36ac2c54f9/medium 400w, //static.spotapps.co/spots/c0/34cf47bb7849a79cdb4f36ac2c54f9/full 800w" src="https://static.spotapps.co/web/placeholder.png"/></div></a></div><div class="gallery-v4-grid-item gallery-hover animation_0"><a class="fancybox fancybox.image" href="//static.spotapps.co/spots/72/bff2e85d0f4059afe0692bf201e8bc/full"><div class="img"><img alt="Cheesecake served with Raspberry-Sorbet, paired with a chocolate martini." class="img-responsive lazyload" data-original="//static.spotapps.co/spots/72/bff2e85d0f4059afe0692bf201e8bc/full" data-sizes="auto" data-src="//static.spotapps.co/spots/72/bff2e85d0f4059afe0692bf201e8bc/full" data-srcset="//static.spotapps.co/spots/72/bff2e85d0f4059afe0692bf201e8bc/small 200w, //static.spotapps.co/spots/72/bff2e85d0f4059afe0692bf201e8bc/medium 400w, //static.spotapps.co/spots/72/bff2e85d0f4059afe0692bf201e8bc/full 800w" src="https://static.spotapps.co/web/placeholder.png"/></div></a></div><div class="gallery-v4-grid-item gallery-hover animation_0"><a class="fancybox fancybox.image" href="//static.spotapps.co/spots/64/96392bdea243a29f909d6b97437bc0/full"><div class="img"><img alt="Grilled pork chop served with salad and roasted plantains." class="img-responsive lazyload" data-original="//static.spotapps.co/spots/64/96392bdea243a29f909d6b97437bc0/full" data-sizes="auto" data-src="//static.spotapps.co/spots/64/96392bdea243a29f909d6b97437bc0/full" data-srcset="//static.spotapps.co/spots/64/96392bdea243a29f909d6b97437bc0/small 200w, //static.spotapps.co/spots/64/96392bdea243a29f909d6b97437bc0/medium 400w, //static.spotapps.co/spots/64/96392bdea243a29f909d6b97437bc0/full 800w" src="https://static.spotapps.co/web/placeholder.png"/></div></a></div><div class="gallery-v4-grid-item gallery-hover animation_0"><a class="fancybox fancybox.image" href="//static.spotapps.co/spots/51/d0cfef0ad64291
1261a081b75bdf9d1fd6/full"><div class="img"><img alt="Creamy seafood bisque served with crackers." class="img-responsive lazyload" data-original="//static.spotapps.co/spots/51/d0cfef0ad64291a081b75bdf9d1fd6/full" data-sizes="auto" data-src="//static.spotapps.co/spots/51/d0cfef0ad64291a081b75bdf9d1fd6/full" data-srcset="//static.spotapps.co/spots/51/d0cfef0ad64291a081b75bdf9d1fd6/small 200w, //static.spotapps.co/spots/51/d0cfef0ad64291a081b75bdf9d1fd6/medium 400w, //static.spotapps.co/spots/51/d0cfef0ad64291a081b75bdf9d1fd6/full 800w" src="https://static.spotapps.co/web/placeholder.png"/></div></a></div><div class="gallery-v4-grid-item gallery-hover animation_0"><a class="fancybox fancybox.image" href="//static.spotapps.co/spots/6c/01fd03629f456598b69f59ad4cae09/full"><div class="img"><img alt="Steak and lobster served with mashed potatoes and asparagus." class="img-responsive lazyload" data-original="//static.spotapps.co/spots/6c/01fd03629f456598b69f59ad4cae09/full" data-sizes="auto" data-src="//static.spotapps.co/spots/6c/01fd03629f456598b69f59ad4cae09/full" data-srcset="//static.spotapps.co/spots/6c/01fd03629f456598b69f59ad4cae09/small 200w, //static.spotapps.co/spots/6c/01fd03629f456598b69f59ad4cae09/medium 400w, //static.spotapps.co/spots/6c/01fd03629f456598b69f59ad4cae09/full 800w" src="https://static.spotapps.co/web/placeholder.png"/></div></a></div></div></div></div></article><article class="hide-show-section" data-hidden="no"><style> 1262.map-newsletter .text-wrapper:before { 1263 background-image: url('https://static.spotapps.co/website_images/ab_websites/737352_website_v1/nl_bg.jpg'); 1264 } 1265 1266</style><div class="googlemap-v3-wrapper openstreetmap-v3-wrapper maps-wrapper section-wrapper" id="openstreetmap_v3"><div class="row map-holder"><section><div class="col-md-6 col-sm-12 col-xs-12 map-item map-newsletter"><div class="text-wrapper"><div class="text-content"><h2 class="section-header">Stay with us!</h2>
1266<script id="sph-widget-737352" type="text/javascript"> 1267 (function() { 1268 function async_load(){ 1269 var s = document.createElement('script'); 1270 s.type = 'text/javascript'; 1271 s.async = true; 1272 s.src = 'https://www.spothopperapp.com/spots/737352/widgets/newsletter.js?template=newsletter_widget1'; 1273 var embedder = document.getElementById('sph-widget-737352'); 1274 embedder.parentNode.insertBefore(s, embedder); 1275 1276 // Modify widget's html 1277 setTimeout(function(){ 1278 $( '<span class="bar"></span>' ).insertAfter( '.sph-email-input' ); 1279 $('.sph-submit-button').addClass('custom-temp-btn hvr-fade'); 1280 1281 // Replace <h2> with <p> 1282 document.querySelectorAll('.section-wrapper .sph-email-subscription h2').forEach(h2 => { 1283 const p = document.createElement('p'); 1284 1285 // Copy all attributes from h2 to p 1286 [...h2.attributes].forEach(attr => { 1287 p.setAttribute(attr.name, attr.value); 1288 }); 1289 1290 // Copy inner HTML content 1291 p.innerHTML = h2.innerHTML; 1292 1293 // Replace h2 with p 1294 h2.parentNode.replaceChild(p, h2); 1295 }); 1296 }, 2000); 1297 1298 } 1299 if (window.attachEvent) 1300 window.attachEvent('onload', async_load); 1301 else 1302 window.addEventListener('load', async_load, false); 1303 })(); 1304 </script>
1304</div></div></div></section><section><div class="col-md-6 col-sm-12 col-xs-12 map-item"><div aria-label="OpenStreet map" id="map-v3-container" role="region"></div></div></section></div><div class="map-footer text-center"><div class="triangle"></div></div></div></article><article class="hide-show-section" data-hidden="no"><footer class="contact-holder"><div class="contact-v4 section-wrapper" id="contact_v4"><div class="container"><div class="contact-items-holder"><div class="contact-item-pair contact-item-pair-0"><div class="image-holder"><img alt="" class="contact-decoration-img" src="https://static.spotapps.co/website_images/ab_websites/737352_website_v1/logo_contact.png"/></div><div class="contact-item contact-item-left"><div class="contact-location content-container left-content"><div class="hours-title"><h2>Location</h2></div><div class="address" data-gbp-injected="business-name">Sophia's</div><div class="address">11970 SE Dixie Hwy</div><div class="city-state">Hobe Sound, FL <div class="zip">33455</div></div><div class="address" data-gbp-injected="get-directions"><a aria-label="Get directions to Sophia's, opens in a new tab" class="get-directions-footer-link" href="https://www.google.com/maps/dir/?api=1&destination=Sophia%27s&destination_place_id=ChIJ73A3plTZ3ogRbjb5JgBNkh0" rel="noopener" style="text-decoration: underline; display: inline-block; padding: 5px 0;" target="_blank"><i aria-hidden="true" class="fa fa-map-marker"></i> Get Directions</a></div></div></div><div class="contact-item contact-item-right"><div class="find-us content-container right-content"><div class="social"><div class="social-title"><h2>Find us on</h2></div><div class="social-links social-icons-holder social-square"><a class="contact-icon" href="https://www.facebook.com/393461760517412" target="_blank"><i class="social-icon fa fa-facebook"></i><span>Facebook page</span></a><a class="contact-icon" href="https://www.instagram.com/sophiashobesound" target="_blank"><i class="social-icon fa fa-instagram"></i><span>Instagram page</span></a><a class="contact-icon google-icon" href="https://www.google.com/search?sca_esv=b462a25ec03f4d73&rlz=1C5CHFA_enRS1159RS1159&sxsrf=ANbL-n4MR25COj10PaxKp3hPSfUZab3VMQ:1776769442265&q=Sophia%27s,+11970+SE+Dixie+Hwy&si=AL3DRZEsmMGCryMMFSHJ3StBhOdZ2-6yYkXd_doETEE1OR-qOeco_J5lWjYjwIivGwqfnep53OMFGcDOKyUANj90rqYElcWwlwoZ38WQ1jX_pmRsjKYlDKIfhMNWKeAvV4vSLJ4Mc7n7&sa=X&ved=2ahUKEwiVydD75f6TAxVBSPEDHUg_NcMQrrQLegQIGhAB&biw=1512&bih=755&dpr=2&zx=1776769445704#lrd=0x88ded954a63770ef:0x1d924d0026f9366e,1,,,," target="_blank"><i aria-hidden="true" class="social-icon fa fa-google"></i><span>Google page</span></a></div></div></div></div></div><div class="contact-item-pair contact-item-pair-1"><div class="contact-item contact-item-left"><div class="hours content-container left-content"><div class="hours-title"><h2>Hours</h2></div><div class="days-group"><div class="days"> 1305 Sun, Mon, Tue, Wed, Thur, Fri, Sat<span class="hidden-xs">:</span></div><div class="from-to"> 1306 3:00 PM - 9:00 PM </div></div></div></div><div class="contact-item contact-item-right"><div class="find-us content-container right-content"><div class="contact-us"><div class="contact-us-title"><h2>Contact us</h2></div><p><a href="tel:+17722458182" id="contact_us_v4_section_phone_link"><span class="visuallyhidden">Call us at </span>(772)-245-8182</a></p><p><a href="mailto:[email protected]"><span class="visuallyhidden">Write us at </span>[email protected]</a></p></div></div></div></div></div></div></div></footer></article><article class="hide-show-section" data-hidden="no"><div class="footer-v2-wrapper" id="footer_v2"><div class="container"><div class="row"><div class="col-xs-12 col-sm-12 col-md-12 col-lg-12"><p>Powered by: <a aria-label="SpotHopper homepage" class="applicationsLink" href="https://www.spothopperapp.com/" target="_blank"><img alt="SpotHopper logo" class="logoimg" src="https://static.spotapps.co/website_images/default_template_images/spothopper_logo.png"/></a></p></div><div class="col-xs-12 col-sm-12 col-md-12 col-lg-12"><a aria-label="Website design, Social Media marketing, and Email marketing provided by SpotHopper. Contact Us form" class="applicationsLink" href="https://www.spothopperapp.com/contact-us?contact_reason=demo" target="_blank">Website design, Social Media marketing and Email marketing provided by SpotHopper.</a></div></div></div></div></article></main><style type="text/css"> 1307 .navbar-fixed-bottom.nav-v1 { 1308 bottom: -100px; 1309 } 1310 .navbar-fixed-bottom.nav-v1 .nav.navbar-nav.navbar-right { 1311 background-color: #000; 1312 } 1313 .navbar-fixed-bottom.nav-v1 .bottom-svg-border path, 1314 .navbar-fixed-bottom.nav-v1 .bottom-svg-border polygon { 1315 fill: #000; 1316 } 1317 .navbar-fixed-bottom.nav-v1 .bottom-list-item a { 1318 color: #fff; 1319 } 1320 .navbar-fixed-bottom.nav-v1 .bottom-list-item a:hover, 1321 .navbar-fixed-bottom.nav-v1 .bottom-list-item a:focus { 1322 color: #DA353C; 1323 } 1324</style><nav aria-label="mobile footer" class="navbar-fixed-bottom nav-v1" id="bottom-navbar"><div><ul class="nav navbar-nav navbar-right"><li class="bottom-list-item "><a class="bottom-link " href="https://www.opentable.com/booking/restref/availability?lang=en-US&correlationId=f1f0ccfb-cabb-47f2
1324-8722-fe95c1f3a02b&restRef=1378678&otSource=Restaurant%20website" id="bottom_link_3" target="_self"> 1325 Reserve </a></li><li class="bottom-list-item "><a class="bottom-link " href="/party" id="bottom_link_5" target="_self"> 1326 Parties </a></li><li class="bottom-list-item "><a class="bottom-link " href="https://tmt.spotapps.co/job-listings?spot_id=737352&callback_url=http://sophiashobesound.com/" id="bottom_link_7" target="_self"> 1327 Jobs </a></li></ul></div></nav><div aria-hidden="true" aria-label="newsletter dialog" class="modal fade custom-modal" id="CustomModal" role="dialog" tabindex="-1"><div class="modal-dialog modal-md" role="document"><div class="modal-content"><div class="custom-modal-close"><button aria-label="Close" class="close" data-dismiss="modal" type="button"><span aria-hidden="true">Ã</span></button></div><div class="modal-body"><div class="row"><div class="col-md-12"><div class="newsletter-popup"><h2 class="section-header">Stay with us!</h2>
1327<script id="sph-widget-2ce08bd156a46491d83342eb4a039092" type="text/javascript"> 1328 (function() { 1329 function async_load(){ 1330 var s = document.createElement('script'); 1331 s.type = 'text/javascript'; 1332 s.async = true; 1333 s.src = 'https://www.spothopperapp.com/spots/737352/widgets/newsletter.js?template=newsletter_widget2'; 1334 var embedder = document.getElementById('sph-widget-2ce08bd156a46491d83342eb4a039092'); 1335 embedder.parentNode.insertBefore(s, embedder); 1336 1337 // Modify widget's html 1338 setTimeout(function(){ 1339 document.querySelectorAll('.custom-modal .sph-email-subscription h2').forEach(h2_p => { 1340 const p_p = document.createElement('p'); 1341 1342 // Copy all attributes from h2 to p 1343 [...h2_p.attributes].forEach(attr => { 1344 p_p.setAttribute(attr.name, attr.value); 1345 }); 1346 1347 // Copy inner HTML content 1348 p_p.innerHTML = h2_p.innerHTML; 1349 1350 // Replace h2 with p 1351 h2_p.parentNode.replaceChild(p_p, h2_p); 1352 }); 1353 }, 2000); 1354 } 1355 if (window.attachEvent) 1356 window.attachEvent('onload', async_load); 1357 else 1358 window.addEventListener('load', async_load, false); 1359 })(); 1360 </script>
1360</div></div></div></div></div></div></div>
1360<script src="https://static.spotapps.co/web/sophiashobesound--com/lib/jquery/jquery.min.js"></script>
1360<script src="https://static.spotapps.co/web/sophiashobesound--com/lib/jquery/jquery.browser.min.js"></script>
1360<script src="https://static.spotapps.co/web/sophiashobesound--com/lib/bootstrap/js/bootstrap.min.js"></script>
1360<script src="https://static.spotapps.co/web/sophiashobesound--com/lib/owlcarousel/owl.carousel.min.js"></script>
1360<script src="https://static.spotapps.co/web/sophiashobesound--com/lib/masonry/masonry.pkgd.min.js"></script>
1360<script src="https://static.spotapps.co/web/sophiashobesound--com/lib/uikit/js/uikit.min.js" type="text/javascript"></script>
1360<script src="https://static.spotapps.co/web/sophiashobesound--com/lib/uikit/js/slideshow.min.js" type="text/javascript"></script>
1360<script src="https://static.spotapps.co/web/sophiashobesound--com/lib/uikit/js/slideshow-fx.min.js"></script>
1360<script src="https://static.spotapps.co/web/sophiashobesound--com/lib/imagesloaded/imagesloaded.pkgd.min.js"></script>
1360<script src="https://static.spotapps.co/iframeResizer.js" type="text/javascript"></script>
1360<script src="//static.spotapps.co/web-lib/leaflet/[email protected]/dist/leaflet.js"></script>
1360<script src="//static.spotapps.co/web-lib/leaflet/leaflet-providers.js"></script>
1360<script src="//static.spotapps.co/web-lib/leaflet/[email protected]/dist/leaflet-gesture-handling.min.js"></script>
1360<script src="https://static.spotapps.co/web/sophiashobesound--com/lib/fancybox/source/jquery.fancybox.js" type="text/javascript"></script>
1360<script src="https://static.spotapps.co/web/sophiashobesound--com/lib/fancybox/source/jquery.fancybox.pack.js" type="text/javascript"></script>
1360<script src="https://static.spotapps.co/web/sophiashobesound--com/lib/fancybox/source/helpers/jquery.fancybox-thumbs.js?v=1.0.7" type="text/javascript"></script>
1360<script src="https://static.spotapps.co/web/sophiashobesound--com/lib/fancybox/source/helpers/jquery.fancybox-media.js?v=1.0.6" type="text/javascript"></script>
1360<script type="text/javascript"> 1361 1362 1363 1364 $("#bottom_link_3").on("click", function(){ 1365 if (ga_check()) 1366 universal_ga('send', 'event', 'Button', 'Click', 'Reserve'); 1367 }); 1368 $("#bottom_link_5").on("click", function(){ 1369 if (ga_check()) 1370 universal_ga('send', 'event', 'Button', 'Click', 'Private Party'); 1371 }); 1372 $("#bottom_link_7").on("click", function(){ 1373 if (ga_check()) 1374 universal_ga('send', 'event', 'Button', 'Click', 'Jobs'); 1375 }); 1376 $('.header-logo, .nav-v2-home-btn').click(function(event) { 1377 if ( window.location.pathname == '/' || window.location.pathname == '/index.php') { 1378 event.preventDefault(); 1379 var windowScrollTop = $(window).scrollTop(); 1380 if(windowScrollTop > 150) { 1381 $('html, body').animate({scrollTop: 0}, 750); 1382 } 1383 } 1384 }); 1385 1386$(".banner-section a.banner-pin").click(function(e) { 1387 // target element id 1388 var id = $(this).attr('href'); 1389 1390 // target element 1391 var section = $(id); 1392 if (section.length === 0) { 1393 return; 1394 } 1395 1396 // prevent standard hash navigation (avoid blinking in IE) 1397 e.preventDefault(); 1398 1399 // top position relative to the document 1400 var pos = section.offset().top - 100 + 10; 1401 1402 // animated top scrolling 1403 $('body, html').animate({scrollTop: pos}, 750); 1404}); 1405 1406$(document).ready(function() { 1407 var navHeight = $('nav.navbar').height(); 1408 $('html').css("scroll-padding-top", navHeight); 1409}); 1410$(document).on('scroll', function (e) { 1411 if($(document).scrollTop() > 0) { 1412 $('.navbar.nav-v6').addClass('nav-scroll'); 1413 }else { 1414 $('.navbar.nav-v6').removeClass('nav-scroll'); 1415 } 1416}); 1417 1418function scrollStop (callback, refresh = 66) { 1419 1420 // Make sure a valid callback was provided 1421 if (!callback || typeof callback !== 'function') return; 1422 1423 // Setup scrolling variable 1424 let isScrolling; 1425 1426 // Listen for scroll events 1427 window.addEventListener('scroll', function (event) { 1428 1429 // Clear our timeout throughout the scroll 1430 window.clearTimeout(isScrolling); 1431 1432 // Set a timeout to run after scrolling ends 1433 isScrolling = setTimeout(callback, refresh); 1434 1435 }, false); 1436 1437} 1438 1439$(function() { 1440 setDropDownMenuWidth(); 1441 1442 // Function to set drop-down menu position (css top property) 1443 setDropDownMenuTop(); 1444 1445 function setDropDownMenuWidth() { 1446 var tabs_list = $('.navbar-collapse .navbar-nav'); 1447 $(tabs_list).find('li.drop-down-link').each(function() { 1448 var sub_menu_width = $(this).outerWidth(true); 1449 if (sub_menu_width < 100) { 1450 sub_menu_width = 100; 1451 } 1452 $(this).find('.sub-menu').css('width', sub_menu_width+'px'); 1453 1454 }); 1455 }; 1456 1457 function setDropDownMenuTop() { 1458 var sub_menu_top = ($('.navbar.nav-v6 .container').outerHeight() + $('.drop-down-link').outerHeight())/2; 1459 $('li.drop-down-link .sub-menu').css('top', sub_menu_top-2 +'px'); 1460 }; 1461 1462 $( window ).resize(function() { 1463 setDropDownMenuWidth(); 1464 setDropDownMenuTop(); 1465 }); 1466 1467 $(window).on('scroll', function (e) { 1468 setDropDownMenuTop(); 1469 }); 1470 1471 scrollStop(function () { 1472 setDropDownMenuTop(); 1473 if($(document).scrollTop() == 0) { 1474 setTimeout(setDropDownMenuTop, 200); 1475 } 1476 }); 1477 1478 $('.nav a:not(.drop-down)').on('click', function () { 1479 $('.navbar-collapse').collapse('hide'); 1480 }); 1481 1482}); 1483 1484$( '.drop-down-link .drop-down' ).click(function(event) { 1485 event.preventDefault(); 1486 event.stopPropagation(); 1487 var drop_down = $(this).closest('.drop-down-link'); 1488 var drop_down_a = $(this); 1489 1490 if($(drop_down_a).attr("aria-expanded") == "true") { 1491 $(drop_down_a).attr("aria-expanded",false) 1492 } else { 1493 $(drop_down_a).attr("aria-expanded",true) 1494 } 1495 1496 var sub_menu = $(this).closest('.drop-down-link').find( '.sub-menu' ); 1497 if ( $(sub_menu).is( ':hidden' ) ) { 1498 $(sub_menu).slideDown(); 1499 $(drop_down).addClass('active'); 1500 } else { 1501 $(sub_menu).slideUp(); 1502 $(drop_down).removeClass('active'); 1503 } 1504}); 1505$('#navbar-collapse-1').on('hide.bs.collapse', function (e) { 1506 var clickedElement = $(event.target); 1507 if (clickedElement.hasClass('drop-down')) { 1508 return false; 1509 } 1510}); 1511$('#navbar-collapse-1').on('hidden.bs.collapse', function () { 1512 closeOpenedDropDownMenus(); 1513 function closeOpenedDropDownMenus() { 1514 var tabs_list = $('.navbar-collapse .navbar-nav'); 1515 $(tabs_list).find('li.drop-down-link').each(function() { 1516 if( $(this).hasClass('active') ) { 1517 var sub_menu = $(this).find('.sub-menu'); 1518 $(sub_menu).slideUp(); 1519 $(this).removeClass('active'); 1520 } 1521 }); 1522 }; 1523}); 1524 1525const mobileDrop = document.querySelector('.mobile-full-height #navbar-collapse-1 .navbar-nav'); 1526const mobileDropButton = document.querySelector('.mobile-full-height .navbar-toggle'); 1527const mobileHeader = document.querySelector('.mobile-full-height .navbar-header'); 1528 1529mobileDropButton?.addEventListener('click', () => { 1530 mobileHeaderBottomPos = mobileHeader.getBoundingClientRect().bottom; 1531 mobileDrop.style.paddingTop = mobileHeaderBottomPos + 'px'; 1532}); 1533 1534(function () { 1535 const isSafari = (() => { 1536 const ua = navigator.userAgent; 1537 return ua.includes('Safari') && // Safari must be present
1538 !ua.includes('Chrome') && // Exclude Chrome (has 'Safari' in UA) 1539 !ua.includes('Edg'); // Exclude Edge 1540 })(); 1541 1542 if (!isSafari) return; 1543 const menu = document.getElementById('navbar-collapse-1'); 1544 1545 // When coming back from a _blank tab or bfcache restore, force a repaint. 1546 function nudgeRepaint() { 1547 if (!menu || !menu.classList.contains('in')) return; 1548 // toggle display to flush rendering, then poke will-change for one frame 1549 const prev = menu.style.display; 1550 menu.style.display = 'none'; 1551 // force reflow 1552 void menu.offsetHeight; 1553 menu.style.display = prev || ''; 1554 menu.style.willChange = 'opacity'; 1555 requestAnimationFrame(() => { menu.style.willChange = 'auto'; }); 1556 } 1557 1558 document.addEventListener('visibilitychange', () => { 1559 if (document.visibilityState === 'visible') nudgeRepaint(); 1560 }); 1561 1562 // iOS/macOS Safari often restores pages from bfcache 1563 window.addEventListener('pageshow', (e) => { 1564 if (e.persisted) nudgeRepaint(); 1565 else nudgeRepaint(); 1566 }, { passive: true }); 1567 1568 // Keep menu open when clicking links that open in a new tab 1569 menu?.addEventListener('click', (e) => { 1570 const a = e.target.closest('a'); 1571 if (!a) return; 1572 if (a.target === '_blank') { 1573 // avoid any delegated "close on link click" handlers firing first 1574 e.stopPropagation(); 1575 // allow navigation; after we return, repaint nudge will run 1576 } 1577 }, true); 1578})(); 1579 1580document.querySelectorAll('.navbar .navbar-nav > li.cta-nav-tab').forEach((li) => { 1581 li.addEventListener('click', (e) => { 1582 if (e.defaultPrevented) return; 1583 1584 if (e.target.closest('a')) return; 1585 1586 const link = li.querySelector('a[href]'); 1587 if (!link) return; 1588 1589 if (e.metaKey || e.ctrlKey || e.shiftKey || e.button === 1 || link.target === '_blank') { 1590 window.open(link.href, link.target || '_blank'); 1591 return; 1592 } 1593 1594 link.click(); 1595 }); 1596 1597 li.addEventListener('keydown', (e) => { 1598 if ((e.key === 'Enter' || e.key === ' ') && !e.target.closest('a')) { 1599 const link = li.querySelector('a[href]'); 1600 if (!link) return; 1601 e.preventDefault(); 1602 link.click(); 1603 } 1604 }); 1605}); 1606 $(document).ready(function() { 1607 var video = $("#coverVideo")[0]; 1608 1609 // Cover video Play/pause 1610 $(".video-controls-btn").click(function () { 1611 if (video.paused) { 1612 video.play(); 1613 $(".video-controls-btn").focus(); 1614 $(".video-controls-btn i.fa-play").hide(); 1615 $(".video-controls-btn i.fa-pause").show(); 1616 $(".video-controls-btn").attr("aria-label", "The decorative video is currently playing, pause the video"); 1617 $(".video-controls-btn .off-screen").text("The decorative video is currently playing"); 1618 } else { 1619 video.pause(); 1620 $(".video-controls-btn").focus(); 1621 $(".video-controls-btn i.fa-play").show(); 1622 $(".video-controls-btn i.fa-pause").hide(); 1623 $(".video-controls-btn").attr("aria-label", "The decorative video is currently paused, play the video"); 1624 $(".video-controls-btn .off-screen").text("The decorative video is currently paused"); 1625 } 1626 }); 1627 // Cover video sound on/off 1628 if (video.muted) { 1629 $(".video-volume-btn").addClass('off'); 1630 } 1631 1632 $(".video-volume-btn").click(function () { 1633 if (video.muted) { 1634 video.muted = false; 1635 $(".video-volume-btn").removeClass('off'); 1636 $(".video-volume-btn").addClass('on'); 1637 $(".video-volume-btn").attr("aria-label", "The decorative video sound is on, turn it off"); 1638 $(".video-volume-btn .off-screen").text("The decorative video sound is on"); 1639 } else { 1640 video.muted = true; 1641 $(".video-volume-btn").removeClass('on'); 1642 $(".video-volume-btn").addClass('off'); 1643 $(".video-volume-btn").attr("aria-label", "The decorative video sound is off, turn it on"); 1644 $(".video-volume-btn .off-screen").text("The decorative video sound is off"); 1645 } 1646 }); 1647 }); 1648$(document).ready(function() { 1649 1650 if (navigator.userAgent.indexOf('Safari') != -1 && navigator.userAgent.indexOf('Mac') != -1 && navigator.userAgent.indexOf('Chrome') == -1 && $(window).width() > 767) { 1651
1652 // Turn Off animations on Safari browser for Mac desktop 1653 $('html').addClass('safari-mac'); 1654 1655 } 1656 else { 1657 1658 var animation_item_elements = $('.about-us-v8-item'); 1659 var window_var = $(window); 1660 1661 function check_if_item_in_view() { 1662 var window_var_height = window_var.height(); 1663 var window_var_top_position = window_var.scrollTop(); 1664 var window_var_bottom_position = (window_var_top_position + window_var_height/2 + 100); 1665 1666 $.each(animation_item_elements, function() { 1667 var element_var = $(this); 1668 var element_var_height = element_var.outerHeight(); 1669 var element_var_top_position = element_var.offset().top; 1670 var element_var_bottom_position = (element_var_top_position + element_var_height/2 + 100); 1671 1672 //check to see if this current container is within viewport 1673 if ((element_var_bottom_position >= window_var_top_position) && 1674 (element_var_top_position <= window_var_bottom_position)) { 1675 element_var.addClass('animate'); 1676 } else { 1677 // element_var.removeClass('in-view'); 1678 } 1679 }); 1680 } 1681 1682 window_var.on('scroll resize', check_if_item_in_view); 1683 window_var.trigger('scroll'); 1684 1685 } 1686 1687 1688}); 1689 $(document).ready(function() { 1690 1691 if ( $(window).width() < 768 ) { 1692 1693 var home_sections = $('article'); 1694 var home_section_id; 1695 var about_v8_section_position; 1696 1697 for (var i = 0; i < home_sections.length; i++) { 1698 home_section_id = $(home_sections[i]).find(".section-wrapper").attr("id"); 1699 if (home_section_id == "aboutus_v8") { 1700 about_v8_section_position = i; 1701 } 1702 } 1703 1704 if ( (about_v8_section_position == 0) || (about_v8_section_position == 1) ) { 1705 // Turn Off animations 1706 $('html').addClass('safari-mac'); 1707 } 1708 } 1709 1710 }); 1711 $(document).ready(function() { 1712 1713 var slideshow = UIkit.slideshow('[data-uk-slideshow]', { 1714 autoplay: true, 1715 height: '100%', 1716 animation: 'scale', 1717 duration: 500, 1718 autoplayInterval: 4000, 1719 pauseOnHover: false 1720 }); 1721 1722 //play or pause slideshow functions 1723 $('.slideshow-v2-wrapper .slideshow-controls-btn').click(function () { 1724 if($(this).hasClass('playing')){ 1725 slideshow.stop(); 1726 $(this).removeClass('playing'); 1727 $(this).addClass('paused'); 1728 $(this).attr( "aria-label", "The slideshow is currently paused, play the slideshow"); 1729 }else { 1730 slideshow.start(); 1731 $(this).removeClass('paused'); 1732 $(this).addClass('playing'); 1733 $(this).attr( "aria-label", "The slideshow is currently playing, pause the slideshow"); 1734 } 1735 }); 1736 1737 $('.slideshow-v2-wrapper .uk-dotnav a, .slideshow-v2-wrapper a.uk-slidenav').click(function () { 1738 $('.slideshow-v2-wrapper .slideshow-controls-btn').removeClass('playing'); 1739 $('.slideshow-v2-wrapper .slideshow-controls-btn').addClass('paused'); 1740 $('.slideshow-v2-wrapper .slideshow-controls-btn').attr( "aria-label", "The slideshow is currently paused, play the slideshow"); 1741 }); 1742 1743 (function( func ) { 1744 $.fn.addClass = function() { // replace the existing function on $.fn 1745 func.apply( this, arguments ); // invoke the original function 1746 this.trigger('classChanged'); // trigger the custom event 1747 return this; // retain jQuery chainability 1748 } 1749 })($.fn.addClass); // pass the original function as an argument 1750 1751 (function( func ) { 1752 $.fn.removeClass = function() { 1753 func.apply( this, arguments ); 1754 this.trigger('classChanged'); 1755 return this; 1756 } 1757 })($.fn.removeClass); 1758 $('.uk-slideshow li').each(function(index) { 1759 $(this).find('.custom-temp-btn').attr("tabindex", -1); 1760 $(this).on('classChanged', function(){ 1761 if($(this).hasClass('uk-active')){ 1762 $(this).find('.custom-temp-btn').attr("tabindex", 0); 1763 $(slideDot[index]).attr('aria-current', 'true'); 1764 } else { 1765 $(this).find('.custom-temp-btn').attr("tabindex", -1); 1766 $(slideDot[index]).attr('aria-current', 'false'); 1767 } 1768 }); 1769 }); 1770 1771 var slideDot = $('.slideshow-v2-wrapper .uk-dotnav li a'); 1772 1773 slideDot.attr('aria-current', 'false'); 1774 $(slideDot[0]).attr('aria-current', 'true'); 1775 1776 }); 1777 1778$(document).ready(function() { 1779 1780 if (navigator.userAgent.indexOf('Safari') != -1 && navigator.userAgent.indexOf('Mac') != -1 && navigator.userAgent.indexOf('Chrome') == -1 && $(window).width() > 767) { 1781
1782 // Turn Off animations on Safari browser for Mac desktop 1783 $('html').addClass('safari-mac'); 1784 1785 } 1786 else { 1787 1788 var animation_item_elements_c = $('.custom-about-us-v8-wrapper .about-us-v8-item'); 1789 var window_var_c = $(window); 1790 1791 function check_if_item_in_view_c() { 1792 var window_var_c_height = window_var_c.height(); 1793 var window_var_c_top_position = window_var_c.scrollTop(); 1794 var window_var_c_bottom_position = (window_var_c_top_position + window_var_c_height/2 + 100); 1795 1796 $.each(animation_item_elements_c, function() { 1797 var element_var_c = $(this); 1798 var element_var_c_height = element_var_c.outerHeight(); 1799 var element_var_c_top_position = element_var_c.offset().top; 1800 var element_var_c_bottom_position = (element_var_c_top_position + element_var_c_height/2 + 100); 1801 1802 //check to see if this current container is within viewport 1803 if ((element_var_c_bottom_position >= window_var_c_top_position) && 1804 (element_var_c_top_position <= window_var_c_bottom_position)) { 1805 element_var_c.addClass('animate'); 1806 } else { 1807 // element_var_c.removeClass('in-view'); 1808 } 1809 }); 1810 } 1811 1812 window_var_c.on('scroll resize', check_if_item_in_view_c); 1813 window_var_c.trigger('scroll'); 1814 1815 } 1816 1817 1818}); 1819 $(document).ready(function() { 1820 1821 if ( $(window).width() < 768 ) { 1822 1823 var home_sections_c = $('article'); 1824 var home_section_c_id; 1825 var about_v8_section_c_position; 1826 1827 for (var i = 0; i < home_sections_c.length; i++) { 1828 home_section_c_id = $(home_sections_c[i]).find(".section-wrapper").attr("id"); 1829 if (home_section_c_id == "aboutus_v8_custom") { 1830 about_v8_section_c_position = i; 1831 } 1832 } 1833 1834 if ( (about_v8_section_c_position == 0) || (about_v8_section_c_position == 1) ) { 1835 // Turn Off animations 1836 $('html').addClass('safari-mac'); 1837 } 1838 } 1839 1840 }); $(document).ready(function() { 1841 1842 var owlReviews = $('#reviews_v2 .owl-carousel'); 1843 owlReviews.owlCarousel({ 1844 onInitialized: function (property) { 1845 //check if show dots is true in config 1846 if(true){ 1847 $('.reviews-v2-wrapper .owl-dot').each(function( index ) { 1848 var i = index + 1; 1849 $(this).html('<button aria-label="Review '+i+'"><span class="visuallyhidden">Review '+i+'</span></button>'); 1850 }); 1851 } 1852 //check if show arrows is true in config 1853 if(true && !true){ 1854 reviewsHandleArrowTabbing(owlReviews); 1855 } 1856 //prevent voiceover from reading hidden content 1857 $('.reviews-v2-wrapper').find('.owl-item').attr('aria-hidden','true'); 1858 $(property.target).find(".owl-item").eq(property.item.index).attr('aria-hidden','false'); 1859 }, 1860 margin: 0, 1861 nav: true, 1862 dots: true, 1863 dotsContainer: '#reviews_v2 .owl-dots', 1864 autoplay: true, 1865 autoplayTimeout: 6000, 1866 autoplayHoverPause: false, 1867 loop: true, 1868 navText: [ '<button aria-label="previous review">‹</button>', '<button aria-label="next review">›</button>' ], 1869 responsive: { 1870 0: { 1871 items: 1 1872 }, 1873 600: { 1874 items: 1 1875 }, 1876 1000: { 1877 items: 1 1878 } 1879 } 1880 }); 1881 1882 function discontinuousReviews(func){ 1883 var timer; 1884 return function(event){ 1885 if(timer) clearTimeout(timer); 1886 timer = setTimeout(func,200,event); 1887 }; 1888 } 1889 1890 $('#reviews_v2 .owl-dot button').attr('aria-current', 'false'); 1891 $('#reviews_v2 .owl-dot:first button').attr('aria-current', 'true'); 1892 1893 function reviewsCarouselStop() { 1894 owlReviews.trigger('stop.owl.autoplay'); 1895 owlReviews.data('owl.carousel').settings.autoplay = false; 1896 $('#reviews_v2 .carousel-control-btn').removeClass('stop-carousel'); 1897 $('#reviews_v2 .carousel-control-btn').addClass('play-carousel'); 1898 $('#reviews_v2 .carousel-control-btn').attr('aria-label', 'The Reviews carousel is currently paused, play the Reviews carousel'); 1899 } 1900 1901 function reviewsCarouselPlay() { 1902 owlReviews.trigger('play.owl.autoplay',[1000]); 1903 owlReviews.data('owl.carousel').settings.autoplay = true; 1904 $('#reviews_v2 .carousel-control-btn').removeClass('play-carousel'); 1905 $('#reviews_v2 .carousel-control-btn').addClass('stop-carousel'); 1906 $('#reviews_v2 .carousel-control-btn').attr('aria-label', 'The Reviews carousel is currently playing, pause the Reviews carousel'); 1907 } 1908 1909 $('#reviews_v2 .carousel-control-btn').on('click',function(){ 1910 if ($(this).hasClass('stop-carousel')) { 1911 reviewsCarouselStop(); 1912 } else if ($(this).hasClass('play-carousel')) { 1913 reviewsCarouselPlay(); 1914 } 1915 }); 1916 1917 $('#reviews_v2 .owl-dot').click(function () { 1918 owlReviews.trigger('to.owl.carousel', [$(this).index(), 300]); 1919 reviewsCarouselStop(); 1920 }); 1921 1922 $('#reviews_v2 .owl-nav').click(function () { 1923 reviewsCarouselStop(); 1924 }); 1925 1926 $(window).on("resize", discontinuousReviews(function() { 1927 if ($('#reviews_v2 .carousel-control-btn').hasClass('play-carousel')) { 1928 setTimeout(() => reviewsCarouselStop(), 500); 1929 } 1930 })); 1931 1932 $(window).on('focus', function() { 1933 if ($('#reviews_v2 .carousel-control-btn').hasClass('stop-carousel')) { 1934 owlReviews.trigger('next.owl.carousel'); 1935 } 1936 }); 1937 1938 //prevent voiceover from reading hidden content 1939 owlReviews.on('changed.owl.carousel',function(property){ 1940 $('.reviews-v2-wrapper').find('.owl-item').attr('aria-hidden','true'); 1941 $(property.target).find(".owl-item").eq(property.item.index).attr('aria-hidden','false'); 1942 $(property.target).find(".owl-dot").find('button').attr('aria-current', 'false'); 1943 $(property.target).find(".owl-dot").filter('.active').find('button').attr('aria-current', 'true'); 1944 }); 1945 1946 //check if show arrows is true in config 1947 if(true && !true){ 1948 reviewsHandleArrowTabbing(owlReviews); 1949 } 1950 1951 function reviewsHandleArrowTabbing(widget){ 1952 widget.on('changed.owl.carousel',function(property){ 1953 //handle tabbing when previous slider button is hidden 1954 if($(property.target).find(".owl-prev").hasClass('disabled')){ 1955 $(property.target).find(".owl-prev").children().attr('tabindex', -1); 1956 $(property.target).find(".owl-prev").attr('aria-hidden','true'); 1957 } 1958 else { 1959 $(property.target).find(".owl-prev").children().attr('tabindex', 0); 1960 $(property.target).find(".owl-prev").attr('aria-hidden','false'); 1961 } 1962 //handle tabbing when next slider button is hidden 1963 if($(property.target).find(".owl-next").hasClass('disabled')){
1964 $(property.target).find(".owl-next").children().attr('tabindex', -1); 1965 $(property.target).find(".owl-next").attr('aria-hidden','true'); 1966 } 1967 else { 1968 $(property.target).find(".owl-next").children().attr('tabindex', 0); 1969 $(property.target).find(".owl-next").attr('aria-hidden','false'); 1970 } 1971 }); 1972 } 1973 1974 $('.reviews-v2-wrapper .owl-nav').insertBefore($('.reviews-v2-wrapper .owl-stage-outer')); 1975 $('.reviews-v2-wrapper .owl-dots').insertBefore($('.reviews-v2-wrapper .owl-nav')); 1976 1977 }); 1978 // init Masonry 1979 var gridGallery = $('#gallery_v4 .gallery-v4-grid').masonry({ 1980 columnWidth: '.gallery-v4-grid-sizer', 1981 // do not use .grid-sizer in layout 1982 itemSelector: '.gallery-v4-grid-item', 1983 percentPosition: true, 1984 fitWidth: true 1985 }); 1986 1987 gridGallery.imagesLoaded(function() { 1988 gridGallery.masonry('layout'); 1989 }); 1990 1991 // layout Masonry after each image loads 1992 gridGallery.imagesLoaded().progress( function() { 1993 gridGallery.masonry('layout'); 1994 }); 1995 1996 // Re-set gallery layout 1997 $(window).load(function() { 1998 // trigger Masonry layout 1999 gridGallery.masonry('layout'); 2000 }); 2001 function discontinuousGG(func){ 2002 var timer; 2003 return function(event){ 2004 if(timer) clearTimeout(timer); 2005 timer = setTimeout(func,200,event); 2006 }; 2007 } 2008 $(window).on("resize", discontinuousGG(function() { 2009 setTimeout(() => gridGallery.masonry('layout'), 300); 2010 })); 2011 2012 $(document).ready(function() { 2013 2014 var fancyboxSlider = $('#gallery_v4 .fancybox'); 2015 2016 fancyboxSlider.attr('rel', 'gallery').fancybox({ 2017 beforeShow : function() { 2018 var alt = this.element.find('img').attr('alt'); 2019 this.inner.find('img').attr('alt', alt); 2020 }, 2021 padding : 15, 2022 margin: 20, 2023 arrows : true, 2024 closeBtn: true, 2025 autoPlay : false, 2026 playSpeed : 3000, 2027 loop : true, 2028 openEffect : 'fade', 2029 closeEffect : 'fade', 2030 nextEffect : 'elastic', 2031 prevEffect : 'elastic', 2032 helpers : { 2033 overlay : { 2034 css : { 2035 'background' : 'rgba(0, 0, 0, 0.5)' 2036 }, 2037 locked: false 2038 } 2039 } 2040 }); 2041 2042 var galleryToggleBtn = $('.gallery-v4-wrapper .gallery-toggle'); 2043 var galleryImages = $('.gallery-v4-grid-item a'); 2044 var galleryToggleTextOff = 'The Photo Gallery of ' + galleryImages.length + ' images can be accessed, hide the Photo Gallery from the Screen Reader'; 2045 var galleryToggleTextOn = 'The Photo Gallery of ' + galleryImages.length + ' images is hidden from the Screen Reader, access the Photo Gallery'; 2046 galleryToggleBtn.attr('aria-label', galleryToggleTextOff); 2047 2048 galleryToggleBtn.on('click',function(){ 2049 $(this).toggleClass('gt-off'); 2050 2051 const parentElement = $(this).closest('article'); 2052 const nextElement = $(parentElement).next(); 2053 2054 if ($(this).hasClass('gt-off')) { 2055 $(this).attr('aria-label', galleryToggleTextOff); 2056 galleryImages.each(function() { 2057 $(this).attr('aria-hidden', 'false').attr('tabindex', '0'); 2058 }); 2059 } else { 2060 $(this).attr('aria-label', galleryToggleTextOn); 2061 galleryImages.each(function() { 2062 $(this).attr('aria-hidden', 'true').attr('tabindex', '-1'); 2063 }); 2064 2065 if (nextElement.length !== 0) { 2066 const scrollTo = $(nextElement).offset().top - 100; 2067 $('html, body').animate({ scrollTop: scrollTo }, 1000); 2068 } 2069 } 2070 }); 2071 2072 }); 2073iFrameResize({ 2074 enablePublicMethods: true, 2075 enableInPageLinks: true 2076}); 2077 2078var marker_icon = ""; 2079var additionalPins = ''; 2080if (additionalPins) { 2081 var locationsArray = JSON.parse(''); 2082} 2083 2084var google_map_url = 'https://www.google.com/maps/place/' + ",11970 SE Dixie Hwy,Hobe Sound,FL,33455".split(' ').join('+'); 2085function open_google_map() { 2086 window.open(google_map_url, '_blank') 2087} 2088 2089function discontinuous(func){ 2090 var timer; 2091 return function(event){ 2092 if(timer) clearTimeout(timer); 2093 timer = setTimeout(func,200,event); 2094 }; 2095} 2096 2097function init_open_street_map() { 2098 if (additionalPins) { 2099 var map = L.map('map-v3-container', { 2100 minZoom: 3, 2101 zoomControl: false, 2102 zoomSnap: 1, 2103 gestureHandling: true 2104 }); 2105 2106 var allMarkers = []; 2107 2108 var marker = L.marker([27.057879, -80.127585], {title: '11970 SE Dixie Hwy, Hobe Sound', alt: 'View 11970 SE Dixie Hwy, Hobe Sound on Google maps - opens in a new tab'}).addTo(map); 2109 allMarkers.push(marker); 2110 2111 marker.on('click keypress', open_google_map); 2112 2113 locationsArray.forEach(function(element, index) { 2114 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); 2115 2116 additionalMarker.on('click keypress', function() { 2117 window.open(element.pin_link, '_blank'); 2118 }); 2119 2120 allMarkers.push(additionalMarker); 2121 2122 }); 2123 2124 function fitBoundsToMarkers(osmap, markers) { 2125 osmap.invalidateSize(); 2126 var group = new L.featureGroup(markers); 2127 osmap.fitBounds(group.getBounds(), {padding: [50, 50]}); 2128 } 2129 2130 fitBoundsToMarkers(map, allMarkers); 2131 2132 document.querySelector('.reset-zoom-btn').addEventListener('click', function () { 2133 fitBoundsToMarkers(map, allMarkers); 2134 }); 2135 2136 window.addEventListener("resize", discontinuous(function(e) { 2137 fitBoundsToMarkers(map, allMarkers); 2138 })); 2139 } else { 2140 var map = L.map('map-v3-container', { 2141 center: [ 27.057879, -80.127585], 2142 zoom: 16, 2143 dragging: false, 2144 minZoom: 3, 2145 zoomControl: false, 2146 }); 2147 2148 var marker = L.marker([27.057879, -80.127585], {title: '11970 SE Dixie Hwy, Hobe Sound', alt: 'View 11970 SE Dixie Hwy, Hobe Sound on Google maps - opens in a new tab'}).addTo(map); 2149 2150 marker.on('click keypress', open_google_map); 2151 2152 map.scrollWheelZoom.disable(); 2153 } 2154 2155 if (marker_icon.length>0){ 2156 var myIcon = L.icon({ 2157 iconUrl: marker_icon, 2158 iconSize: [35,35] 2159 }); 2160 2161 if(allMarkers) {
2162 allMarkers.forEach(marker => { 2163 marker.setIcon(myIcon); 2164 marker.update(); 2165 }); 2166 } else { 2167 marker.setIcon(myIcon); 2168 marker.update(); 2169 } 2170 } 2171 2172 L.tileLayer.provider('OpenStreetMap.Mapnik').addTo(map); 2173 L.control.zoom({ 2174 position:'bottomleft' 2175 }).addTo(map); 2176 2177 $('.openstreetmap-v3-wrapper #map-v3-container').removeAttr('tabindex'); 2178 $('.leaflet-touch .leaflet-bar a').attr('tabindex', '-1'); 2179 $('.leaflet-container .leaflet-marker-pane img').attr('role', 'link'); 2180} 2181 2182$(document).ready(function() { 2183 init_open_street_map(); 2184}); 2185$("#contact_us_v4_section_phone_link").on("click", function(){ 2186 if (ga_check()) 2187 universal_ga('send', 'event', 'Button', 'Click', 'Phone'); 2188}); 2189$(document).ready(function() { 2190 const hours = document.querySelector(".contact-v4 .hours"); 2191 if (!hours) return; 2192 const daysGroup = hours.querySelectorAll(":scope > div:not(.hours-title)"); 2193 2194 if (!hours.classList.contains("content-container") && !hours.classList.contains("left-content")) { 2195 hours.classList.add("content-container", "left-content"); 2196 }; 2197 2198 if (!hours.querySelector(":scope > div.days-group")) { 2199 daysGroup.forEach(element => { 2200 element.classList.add("days-group"); 2201 element.style.padding = "0"; 2202 }); 2203 }; 2204}); setTimeout(function(){ 2205 $('.navbar-fixed-bottom.nav-v1').addClass('show-bottom-nav'); triggerShowFooterEvents(); 2206 }, 4000); 2207 2208 var navigation_alpha_starts_from = 0; 2209 var navigation_background_color = "rgba(0, 0, 0,"; 2210 var navigation_darkens_on_scroll = "1"; 2211 var top_nav_new_style = !navigation_darkens_on_scroll && ($(window).width() > 767); 2212 var custom_nav_style = "1"; 2213 if(!custom_nav_style){ 2214 $('.navbar-regular').css('background-color', 'rgba(255, 255, 255,' + navigation_alpha_starts_from + ')'); 2215 $('.navbar-inverse').css('background-color', navigation_background_color + (top_nav_new_style ? 0 : navigation_alpha_starts_from) + ')'); 2216 } 2217 2218 if (navigation_darkens_on_scroll && !custom_nav_style) { 2219 $(document).on('scroll', function (e) { 2220 var alpha = navigation_alpha_starts_from + $(document).scrollTop() / 1950; 2221 $('.navbar-inverse').css('background-color', navigation_background_color + alpha + ')'); 2222 $('.navbar-regular').css('background-color', 'rgba(255, 255, 255,' + alpha + ')'); 2223 }); 2224 } 2225 2226 if (!navigation_darkens_on_scroll && !custom_nav_style) { 2227 $(window).resize(function() { 2228 if ($(window).width() > 767) 2229 $('.navbar-inverse').css('background-color', navigation_background_color + 0 + ')'); 2230 else 2231 $('.navbar-inverse').css('background-color', navigation_background_color + navigation_alpha_starts_from + ')'); 2232 }); 2233 } 2234 2235</script>
2235<script type="text/javascript"> 2236 function openPopUp() { 2237 2238 document.touchmove = function (e) { 2239 e.preventDefault(); 2240 }; 2241 $(function () { 2242 $('body').css('overflow', 'hidden'); 2243 2244 $('#CustomModal').modal({ 2245 show: true 2246 }); 2247 2248 $(document).on('shown.bs.modal', '.modal', function () { 2249 //handle reader focus 2250 focusModal(); 2251 }); 2252 $(document).on("hidden.bs.modal", ".modal", function (event, ui) { 2253 //handle reader focus 2254 focusNavbar(); 2255 $('body').css('overflow', ''); 2256 document.touchmove = function () {}; 2257 }); 2258 }); 2259 } 2260 2261 function focusModal() { 2262 $('.modal-dialog') 2263 .css('outline', 'none') 2264 .attr('tabindex', '-1') 2265 .focus(); 2266 } 2267 2268 function focusNavbar(){ 2269 //handle which header exists 2270 if($(".navbar")){ 2271 var element = $(".navbar"); 2272 }else{ 2273 var element = $(".navbar-normal"); 2274 } 2275 element.css('outline', 'none') 2276 .attr('tabindex', '-1') 2277 .focus(); 2278 } 2279 2280 var showPopupPerSession = false; 2281 // Check if popup is set to show once per session 2282 if (!showPopupPerSession || (showPopupPerSession && !sessionStorage.getItem("newsletter_popup_shown"))) { 2283 var t = setTimeout(openPopUp, 10000); 2284 sessionStorage.setItem("newsletter_popup_shown", "yes"); 2285 } 2286 2287 </script>
2287<script> 2288 var animate_sections = ["banner","aboutus_v2","gallery_v3","aboutus_v7"]; 2289 2290 for (var i = 0; i < animate_sections.length; i++) { 2291 $('#'+animate_sections[i]).addClass('animation-element'); 2292 } 2293 2294 var $animation_elements = $('.animation-element'); 2295 var $window = $(window); 2296 2297 function check_if_in_view() { 2298 var window_height = $window.height(); 2299 var window_top_position = $window.scrollTop(); 2300 var window_bottom_position = (window_top_position + window_height/2); 2301 2302 $.each($animation_elements, function() { 2303 var $element = $(this); 2304 var element_height = $element.outerHeight(); 2305 var element_top_position = $element.offset().top; 2306 var element_bottom_position = (element_top_position + element_height/2); 2307 2308 //check to see if this current container is within viewport 2309 if ((element_bottom_position >= window_top_position) && 2310 (element_top_position <= window_bottom_position)) { 2311 $element.addClass('animate'); 2312 } else { 2313 // $element.removeClass('in-view'); 2314 } 2315 }); 2316 } 2317 2318 $window.on('scroll resize', check_if_in_view); 2319 $window.trigger('scroll'); 2320 </script>
2320<script> 2321$(function () { 2322 //If Newsletter widget (popup or section) is on 2323 if ($('.newsletter-popup').length || $('.map-newsletter').length || $('.newsletter-section').length) { 2324 //Inject html needed for ADA 2325 var waitSPHWidget = setInterval(function(){ 2326 if ($('.sph-email-input').length) { 2327 // 2328 $('.sph-loading-img img').attr('alt', 'Newsletter Loader icon'); 2329 clearInterval(waitSPHWidget) 2330 } 2331 }, 300); 2332 } 2333}); 2334</script>
2334<script> 2335// Functions needed for Newsletter (sh widget) subscription submit (case when texting is Off in SH) 2336function isEmail(email) { 2337 var regex = /^([a-zA-Z0-9_.+-])+\@(([a-zA-Z0-9-])+\.)+([a-zA-Z0-9]{2,4})+$/; 2338 return regex.test(email); 2339} 2340function submitEmail(input_id) { 2341 var shp_email_to_subscribe = $("#sph-newsletter-input-" + input_id); 2342 if (!isEmail(shp_email_to_subscribe.val())) { 2343 alert('Please enter valid email address'); 2344 return; 2345 } 2346 var sph_email_form_div = $(".sph-email-form"); 2347 var sph_loading_img = $(".sph-loading-img"); 2348 var sph_response_message_div = $(".sph-response-message"); 2349 var sph_submit_label = $(".sph-submit-label"); 2350 sph_submit_label.hide(); 2351 sph_loading_img.show(); 2352 var request = $.ajax({ 2353 method: "POST", 2354 url: "https://www.spothopperapp.com/api/spots/737352/contacts/add", 2355 crossDomain: true, 2356 dataType: 'json', 2357 data: { email: shp_email_to_subscribe.val() }, 2358 success: function (data) { 2359 sph_response_message_div.html(data); 2360 sph_email_form_div.hide(); 2361 sph_response_message_div.show(); 2362 }, 2363 error: function (data) { 2364 sph_response_message_div.html("Something went wrong. Please try again later."); 2365 sph_email_form_div.hide(); 2366 sph_response_message_div.show(); 2367 } 2368 }); 2369} 2370</script>
2370<script>(function() { 2371 const MODAL_ID = 'promotion-pop-up'; 2372 const SESSION_KEY = 'promotion-pop-up-container-ids'; 2373 const PADDING = 70; 2374 const RESIZE_DEBOUNCE_MS = 150; 2375 const INITIAL_DELAY = typeof promotion_pop_up_initial_delay === 'undefined' ? 2376 2000 : 2377 promotion_pop_up_initial_delay; 2378 2379 const POP_UP_PRIORITY = ["holiday_party"]; 2380 const _norm = s => (s || "").toString().trim().toLowerCase(); 2381 const PRIORITY_RANK = new Map(POP_UP_PRIORITY.map((n, i) => [_norm(n), i])); 2382 2383 function displayPromotionPopUp() { 2384 const items = document.getElementsByClassName('promotion_pop_up_content'); 2385 2386 // Track shown IDs as a Set (no dups, fast lookups) 2387 const shownIds = new Set( 2388 (sessionStorage.getItem(SESSION_KEY) || '') 2389 .split(',') 2390 .map(s => s.trim()) 2391 .filter(Boolean) 2392 ); 2393 2394 // Hide all; collect items not shown this session 2395 const availableItems = []; 2396 Array.prototype.forEach.call(items, item => { 2397 item.style.display = 'none'; 2398 2399 // --- Exclusion logic --- 2400 // Block popups whose non-custom CTA link is a phone number (tel:) 2401 const isCustomLink = item.getAttribute("data-is-custom-link") ?? "false"; 2402 const linkUrl = item.getAttribute("data-link-url") || ""; 2403 2404 const excludeItem = 2405 isCustomLink === "false" && 2406 linkUrl.trim().toLowerCase().startsWith("tel"); 2407 2408 if (excludeItem) { 2409 return; // Skip this popup entirely 2410 } 2411 2412 if (!shownIds.has(item.id)) { 2413 availableItems.push(item); 2414 } 2415 }); 2416 2417 if (availableItems.length === 0) return false; 2418 2419 // --- Priority logic --- 2420 const norm = s => (s || '').toString().trim().toLowerCase(); 2421 const prioritySource = Array.isArray(POP_UP_PRIORITY) 2422 ? POP_UP_PRIORITY 2423 : Array.isArray(window.pop_up_priority) 2424 ? window.pop_up_priority 2425 : []; 2426 const rank = new Map(prioritySource.map((name, i) => [norm(name), i])); 2427 2428 const records = availableItems.map(el => { 2429 const internal = norm(el.getAttribute('data-internalname')); 2430 const priority = rank.has(internal) ? rank.get(internal) : Infinity; 2431 return { el, priority }; 2432 }); 2433 2434 let selectedItem; 2435 const minPriority = Math.min(...records.map(r => r.priority)); 2436 2437 if (isFinite(minPriority)) { 2438 // Randomize within the highest-priority bucket only 2439 const topBucket = records.filter(r => r.priority === minPriority); 2440 const pick = topBucket[Math.floor(Math.random() * topBucket.length)]; 2441 selectedItem = pick.el; 2442 } else { 2443 // Pure random among all available when no priorities match 2444 selectedItem = availableItems[Math.floor(Math.random() * availableItems.length)]; 2445 } 2446 2447 // Show popup 2448 selectedItem.style.display = 'block'; 2449 2450 // Analytics + persist shown id (unless preview param present) 2451 if (window.location.search.indexOf('spot_promotion_channel_id=') === -1) { 2452 shownIds.add(selectedItem.id); 2453 do_promotion_analytics( 2454 selectedItem.getAttribute('data-internalname'), 2455 selectedItem.id, 2456 selectedItem.getAttribute('data-link-url'), 2457 selectedItem.getAttribute('data-has-image'), 2458 selectedItem.getAttribute('data-is-template-image-and-button') 2459 ); 2460 } 2461 2462 sessionStorage.setItem(SESSION_KEY, Array.from(shownIds).join(',')); 2463 return true; 2464 } 2465 2466 function preloadImages(container, callback) { 2467 const images = container.querySelectorAll('img'); 2468 if (images.length === 0) return callback(); 2469 2470 let loaded = 0; 2471 Array.prototype.forEach.call(images, function(img) { 2472 if (img.complete) { 2473 if (++loaded === images.length) callback(); 2474 } else { 2475 img.addEventListener('load', check); 2476 img.addEventListener('error', check); 2477 } 2478 2479 function check() { 2480 if (++loaded === images.length) callback(); 2481 } 2482 }); 2483 } 2484 2485 function centerModal() { 2486 const modal = document.getElementById(MODAL_ID); 2487 const dialog = modal.querySelector('.promotion-pop-up .modal-dialog'); 2488 if (!dialog) return; 2489 2490 modal.style.display = 'block'; 2491 modal.style.visibility = 'hidden'; 2492 2493 const height = dialog.offsetHeight; 2494 const winHeight = window.innerHeight; 2495 const top = Math.max(0, (winHeight - height) / 2); 2496 dialog.style.top = `${top}px`; 2497 2498 modal.style.visibility = ''; 2499 } 2500 2501 function centerModalVisible() { 2502 const modal = document.getElementById(MODAL_ID); 2503 const dialog = modal.querySelector('.promotion-pop-up .modal-dialog'); 2504 if (!dialog) return; 2505 2506 const height = dialog.offsetHeight; 2507 const winHeight = window.innerHeight; 2508 const top = Math.max(0, (winHeight - height) / 2); 2509 dialog.style.top = `${top}px`; 2510 } 2511 2512 function lockScroll() { 2513 document.body.style.overflow = 'hidden'; 2514 document.ontouchmove = function(e) { 2515 e.preventDefault(); 2516 }; 2517 } 2518 2519 function unlockScroll() { 2520 document.body.style.overflow = ''; 2521 document.ontouchmove = null; 2522 } 2523 2524 function setupModalLayout(modalId) { 2525 const modal = document.getElementById(modalId); 2526 const content = modal?.querySelector('.promotion_pop_up_content[style*="display: block"]'); 2527 if (!content) return; 2528 2529 const header = content.querySelector('.modal-header'); 2530 const footer = content.querySelector('.modal-footer'); 2531 const body = content.querySelector('.modal-body'); 2532 if (!body) return; 2533 2534 const windowHeight = window.innerHeight; 2535 const headerHeight = header?.offsetHeight || 0; 2536 const footerHeight = footer?.offsetHeight || 0;
2537 const maxBodyHeight = windowHeight - headerHeight - footerHeight - PADDING; 2538 2539 body.style.maxHeight = `${maxBodyHeight}px`; 2540 body.style.overflowY = 'auto'; 2541 2542 centerModalVisible(); 2543 } 2544 2545 function prepareModalForDisplay(modalId) { 2546 const modal = document.getElementById(modalId); 2547 const visibleContent = modal?.querySelector('.promotion_pop_up_content[style*="display: block"]'); 2548 if (!visibleContent) return; 2549 2550 modal.style.display = 'block'; 2551 modal.style.visibility = 'hidden'; 2552 2553 preloadImages(visibleContent, function() { 2554 const header = visibleContent.querySelector('.modal-header'); 2555 const footer = visibleContent.querySelector('.modal-footer'); 2556 const body = visibleContent.querySelector('.modal-body'); 2557 2558 if (body) { 2559 const windowHeight = window.innerHeight; 2560 const headerHeight = header?.offsetHeight || 0; 2561 const footerHeight = footer?.offsetHeight || 0;
2562 const maxBodyHeight = windowHeight - headerHeight - footerHeight - PADDING; 2563 2564 body.style.maxHeight = `${maxBodyHeight}px`; 2565 body.style.overflowY = 'auto'; 2566 } 2567 2568 centerModal(); 2569 modal.style.visibility = ''; 2570 lockScroll(); 2571 2572 $('#' + modalId).modal({ 2573 show: true, 2574 focus: true, 2575 backdrop: true 2576 }); 2577 }); 2578 } 2579 2580 // === Main Timer Logic === 2581 setTimeout(function() { 2582 if (displayPromotionPopUp()) { 2583 if (typeof t !== 'undefined') { 2584 clearTimeout(t); 2585 } 2586 2587 const timeoutDuration = INITIAL_DELAY > 500 ? INITIAL_DELAY - 500 : 0; 2588 2589 setTimeout(function() { 2590 prepareModalForDisplay(MODAL_ID); 2591 }, timeoutDuration); 2592 } 2593 }, 500); 2594 2595 // === Cleanup on modal close === 2596 $(document).on('hidden.bs.modal', `#${MODAL_ID}`, function() { 2597 unlockScroll(); 2598 }); 2599 2600 // === Responsive layout recalculation === 2601 let resizeTimeout; 2602 window.addEventListener('resize', function() { 2603 clearTimeout(resizeTimeout); 2604 resizeTimeout = setTimeout(function() { 2605 const modal = document.getElementById(MODAL_ID); 2606 if (modal && $(modal).hasClass('in')) { 2607 void modal.offsetHeight; 2608 setupModalLayout(MODAL_ID); 2609 } 2610 }, RESIZE_DEBOUNCE_MS); 2611 }); 2612 2613 // === Embedded analytics helpers === 2614 function obtain_analytics_function() { 2615 if (typeof sph_widgets_ga === 'function') return sph_widgets_ga; 2616 if (typeof ga === 'function') return ga; 2617 if (typeof gtag === 'function') return gtag; 2618 return null; 2619 } 2620 2621 function do_promotion_analytics(eventLabel, spot_promotion_channel_id, data_link_url, hasImage, is_template_image_and_button) { 2622 analytics = obtain_analytics_function(); 2623 if (!analytics) return null; 2624 2625 var pop_up_template = (is_template_image_and_button == 'true' ? 'text,image&button' : 'text&button'); 2626 var image_enabled_disabled = (hasImage ? 'image_enabled' : 'image_disabled'); 2627 var additional_info = (is_template_image_and_button == 'true' ? '|' + image_enabled_disabled : ''); 2628 2629 universal_ga('send', 'event', 'Pop Up Promotion', 'View', eventLabel + '|||' + data_link_url + '|' + pop_up_template + additional_info); 2630 2631 // universal_ga('send', 'event', 'Pop Up Promotion', 'View', eventLabel); 2632 if (typeof $ === 'function') { 2633 $(".promotion_pop_up_content a").on("click", function(event) { 2634 universal_ga('send', 'event', { 2635 eventCategory: 'Pop Up Promotion Button', 2636 eventAction: 'Click', 2637 eventLabel: eventLabel + '|||' + event.target.href + '|' + pop_up_template + additional_info, 2638 transport: 'beacon' 2639 }); 2640 $("#promotion-pop-up").modal('hide'); 2641 return true; 2642 }); 2643 } 2644 } 2645 2646})();</script>
2646<script>// ALL_PAGES_COMPONENT 2647var smart_footer_active = 'true' == 'true'; 2648var smart_footer_version = '2'; 2649 2650</script>
2650<footer id="accessibility-footer"><p>We strive to make our website accessible to everybody. <a aria-label="Learn More About our website accessibility" class="accessibility-link" href="/accessibility-page-01" target="_self">Learn More.</a></p></footer>
2650<script> 2651(function() { 2652 var name = "Sophia's"; 2653 var pid = "ChIJ73A3plTZ3ogRbjb5JgBNkh0"; 2654 function build_url() { 2655 var q = encodeURIComponent(name).replace(/'/g, "%27"); 2656 return "https://www.google.com/maps/search/?api=1" 2657 + "&query=" + q 2658 + "&query_place_id=" + encodeURIComponent(pid); 2659 } 2660 window.google_map_url = build_url(); 2661 window.open_google_map = function() { 2662 window.open(build_url(), "_blank"); 2663 }; 2664})(); 2665</script>
2665<script> 2666 2667 var spot_id = 737352; 2668 var sh_generic_form_params=JSON.parse('{}'); 2669 2670 if (false){ 2671 console.log("Check SpotHopper configuration. Probably there is no 'WEBSITE::DOMAIN_NAME' key for your website"); 2672 } 2673 2674 if (navigator.userAgent.match(/iPhone/i) 2675 || navigator.userAgent.match(/iPad/i) 2676 || navigator.userAgent.match(/iPod/i)){ 2677 $(document).ready(function(){ 2678 document.body.className += " " + "webkit-mobile-body"; 2679 }); 2680 } 2681 2682 var promotion_url_param_domain = getPromotionUrlParams()['domain']; 2683 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')){ 2684 $("a[href^='/']").each(function(){ 2685 if (this.href.indexOf('domain=') == -1){ 2686 var sh_internal_url = new URL(this.href); 2687 sh_internal_url.searchParams.set("domain", promotion_url_param_domain); 2688 this.href = sh_internal_url.toString(); 2689 } 2690 }) 2691 } 2692 2693 2694 function cta_link_matches_href(href, url){ 2695 var domain = 'sophiashobesound.com'; 2696 if(typeof url === 'undefined'){ 2697 return false; 2698 } 2699 var partsOfURL = url.split(domain); 2700 if (partsOfURL.length != 2){ 2701 return href == url; 2702 }else{ 2703 var urlPath = partsOfURL[1]; 2704 if (urlPath.substring(0,1) == "/"){ 2705 urlPath = urlPath.substring(1,urlPath.length); 2706 } 2707 return href.indexOf(urlPath, domain.length + href.indexOf(domain)-1) !== -1; 2708 } 2709 } 2710 2711 var all_cta_links = [{"id":1804643,"spot_id":737352,"url":"https://sophiashobesound.com/-party","cta_link_type":"private_parties","created_at":"2026-03-03T20:16:02.672+00:00","updated_at":"2026-05-22T11:24:25.865+00:00","made_of_food":false,"link_name":"Private Parties","target":null,"website_footer_label":"Parties","position":3},{"id":1804644,"spot_id":737352,"url":"https://tmt.spotapps.co/job-listings?spot_id=737352","cta_link_type":"job_listing","created_at":"2026-03-03T20:16:02.722+00:00","updated_at":"2026-05-05T13:08:43.411+00:00","made_of_food":false,"link_name":"Job Listing","target":null,"website_footer_label":"Jobs","position":2},{"id":1908161,"spot_id":737352,"url":"https://order.toasttab.com/egiftcards/sophias-11970-se-dixie-hwy","cta_link_type":"gift_cards","created_at":"2026-04-24T10:22:45.761+00:00","updated_at":"2026-05-05T13:08:42.434+00:00","made_of_food":false,"link_name":"","target":null,"website_footer_label":"Gift Cards","position":5},{"id":1915075,"spot_id":737352,"url":"https://www.opentable.com/booking/restref/availability?lang=en-US\u0026correlationId=f1f0ccfb-cabb-47f2-8722-fe95c1f3a02b\u0026restRef=1378678\u0026otSource=Restaurant%20website","cta_link_type":"reservations","created_at":"2026-04-29T13:24:35.090+00:00","updated_at":"2026-05-05T13:08:41.718+00:00","made_of_food":false,"link_name":"","target":null,"website_footer_label":"Reserve","position":1}]; 2712 2713 function find_cta_link(href) { 2714 for (var i=0; i< all_cta_links.length; i++){ 2715 var cta_link = all_cta_links[i]; 2716 if ( cta_link_matches_href(href, cta_link.url)){ 2717 return cta_link; 2718 } 2719 } 2720 } 2721 2722 function find_cta_links(href) { 2723 var cta_links = [] 2724 for (var i=0; i< all_cta_links.length; i++){ 2725 var cta_link = all_cta_links[i]; 2726 if ( cta_link_matches_href(href, cta_link.url)){ 2727 cta_links.push(cta_link); 2728 } 2729 } 2730 return cta_links; 2731 } 2732 2733 2734 function get_current_page_cta_link_types(){ 2735 var types = []; 2736 var cta_links = find_cta_links(document.location.href); 2737 for (var i=0; i<cta_links.length; i++){ 2738 types.push(cta_links[i].cta_link_type); 2739 } 2740 return types; 2741 } 2742 2743 2744 function is_food_menu_page(){ 2745 var cta_link_types = get_current_page_cta_link_types(); 2746 for (var i=0; i<cta_link_types.length; i++){ 2747 if ('food_menu' == cta_link_types[i]) 2748 return true; 2749 } 2750 return false; 2751 } 2752 2753 2754 function get_form_cat_from_cta(){ 2755 var cta_link = find_cta_link(document.location.href); 2756 if (cta_link == null) { 2757 return null; 2758 } 2759 if (cta_link.cta_link_type == 'private_parties'){ 2760 return 'private_party'; 2761 }else if (cta_link.cta_link_type == 'reservations'){ 2762 return 'reservation'; 2763 }else if (cta_link.cta_link_type == 'catering'){ 2764 return 'catering'; 2765 }else if (cta_link.cta_link_type == 'job_listing'){ 2766 return 'job_listings'; 2767 }else if (cta_link.cta_link_type == 'gift_cards'){ 2768 return 'gift_cards'; 2769 } 2770 return null; 2771 } 2772 2773 function element_has_events_defined(elem){ 2774 if ($._data(elem, "events") === undefined){ 2775 return false;
2776 } 2777 return true; 2778 } 2779 2780 function create_ga_events_for_cta_clicks(){ 2781 if (typeof $ === 'function'){ 2782 2783 var cta_link_of_the_page = find_cta_link(location.href); 2784 2785 2786 $("a").each(function(index, elem){ 2787 var href = $(elem).attr('href'); 2788 2789 if (href === undefined ){ 2790 return; 2791 } 2792 2793 if (href.substring(0,4) == 'tel:'){ 2794 if (!element_has_events_defined(elem)){ // not footer links 2795 $(elem).on("click", function(){ 2796 universal_ga('send', 'event', { 2797 eventCategory: 'Button', 2798 eventAction: 'Click', 2799 eventLabel: 'Phone', 2800 transport: 'beacon' 2801 }); 2802 }); 2803 2804 if (cta_link_of_the_page){ 2805 $(elem).on("click", function(){ 2806 universal_ga('send', 'event', { 2807 eventCategory: 'Button', 2808 eventAction: 'Click', 2809 eventLabel: cta_link_of_the_page.cta_link_type + ' page phone', 2810 transport: 'beacon' 2811 }); 2812 }); 2813 } 2814 } else { 2815 if (cta_link_of_the_page){ 2816 $(elem).on("click", function(){ 2817 universal_ga('send', 'event', { 2818 eventCategory: 'Button', 2819 eventAction: 'Click', 2820 eventLabel: cta_link_of_the_page.cta_link_type + ' page phone footer', 2821 transport: 'beacon' 2822 }); 2823 }); 2824 } 2825 } 2826 2827 2828 }else{ 2829 var cta_link = find_cta_link(href); 2830 if (elem.className != null && elem.className.indexOf("bottom-link") > -1){ 2831 // console.log("bottom link detected"); 2832 }else{ 2833 if (cta_link != null){ 2834 $(elem).on("click", function(){ 2835 universal_ga('send', 'event', { 2836 eventCategory: 'Website Link', 2837 eventAction: 'Click', 2838 eventLabel: cta_link.cta_link_type, 2839 transport: 'beacon' 2840 }); 2841 }); 2842 } 2843 } 2844 } 2845 2846 2847 }); 2848 } 2849 } 2850 2851 if (typeof angular === "undefined") { 2852 create_ga_events_for_cta_clicks(); 2853 } else { 2854 angular.element(document).ready(function () { 2855 create_ga_events_for_cta_clicks(); 2856 }); 2857 } 2858 2859 2860 function triggerShowFooterEvents(){ 2861 if (window.screen.availWidth < 768){ 2862 universal_ga('send', 'event', { 2863 eventCategory: 'Mobile Footer', 2864 eventAction: 'View', 2865 eventLabel: '', 2866 transport: 'beacon' 2867 }); 2868 } 2869 } 2870 2871 2872 2873 2874 //////////// 2875 function smartFooterV2() 2876 { 2877 var list= document.getElementsByClassName("bottom-list-item"); 2878 if (!list) return; 2879 2880 if (document.getElementById("bottom-navbar") == null){ 2881 return; 2882 } 2883 2884 var bottomNav = document.querySelector('#bottom-navbar .navbar-nav'); 2885 var footerLinkPaddingLeft = $('#bottom-navbar .navbar-nav li a').css('padding-left'); 2886 var footerLinkPaddingRight = $('#bottom-navbar .navbar-nav li a').css('padding-right'); 2887 2888 bottomNav.innerHTML = ''; 2889 var linksWithPosition = all_cta_links.filter(e => e.position != null && e.position >= 0); 2890 linksWithPosition.sort(function(a,b) { 2891 return a.position - b.position; 2892 }); 2893 2894 var footerLinkStyle = (footerLinkPaddingLeft == '0px' || footerLinkPaddingRight == '0px' ? 'style="padding-left: 8px; padding-right: 8px;"' : ''); 2895 2896 linksWithPosition.forEach((e, i) => { 2897 var target = e.target || getUrlTarget(e.url); 2898 bottomNav.insertAdjacentHTML('beforeend', 2899 `<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>`); 2900 }) 2901 2902 var intervalCount = 0 2903 var interval = setInterval(() => { 2904 if(intervalCount == 50){ 2905 clearInterval(interval); 2906 } 2907 removeOverflowingFooterLinks(); 2908 intervalCount ++; 2909 }, 200); 2910 2911 $('.smart-footer-link').on("click", function(){ 2912 if (typeof shUrlParams !== "undefined" && shUrlParams['source'] === undefined){ 2913 shUrlParams['source'] = 'footer'; 2914 sessionStorage.setItem('shUrlParams', JSON.stringify(shUrlParams)); 2915 } 2916 2917 var visibleLinks = $('.smart-footer-link').map(function (e) { 2918 return $(this).data('type'); 2919 }).toArray().join(','); 2920 2921 universal_ga('send', 'event', { 2922 eventCategory: 'Button', 2923 eventAction: 'Click_footer_2', 2924 eventLabel: "type:" + $(this).data('type') + "|position:" + $(this).data('position') + "|visible:" + visibleLinks, 2925 transport: 'beacon' 2926 }); 2927 }); 2928 } 2929 2930 function removeOverflowingFooterLinks(){ 2931 var bottomNavLinks = document.querySelectorAll('#bottom-navbar .navbar-nav li'); 2932 var width_sum = 0; 2933 2934 bottomNavLinks.forEach(e => { 2935 width_sum += e.getBoundingClientRect().width; 2936 if ((width_sum) > window.innerWidth) { 2937 console.log(`%cLink %c${e.textContent} %cdeleted couldn't fit screen`,"color: #fff;background: #202124;", "background: red;color: #fff", "color: #fff;background: #202124;"); 2938 e.remove(); 2939 } 2940 }); 2941 } 2942 2943 function getUrlTarget(url){ 2944 if(url.startsWith('tel')){ 2945 return '_self'; 2946 } 2947 if(url.startsWith('/') || url.includes('tmt.spotapps.co') || url.includes(window.location.host)){ 2948 return '_self'; 2949 } 2950 return '_blank'; 2951 } 2952 2953 function npb() 2954 { 2955 var list= document.getElementsByClassName("bottom-list-item"); 2956 if (!list) return; 2957 2958 if (document.getElementById("bottom-navbar") == null){ 2959 return; 2960 } 2961 2962 var url = "" 2963 for (var i=0; i < all_cta_links.length; i++) 2964 { 2965 if (all_cta_links[i].cta_link_type == "order"){ 2966 url = all_cta_links[i].url; 2967 } 2968 } 2969 2970 if ( url == ""){ 2971 return; 2972 } 2973 2974 for (i=0; i < list.length; i++) 2975 { 2976 console.log(cta_link_matches_href(list[i].firstChild.href, url)); 2977 if (cta_link_matches_href(list[i].firstChild.href,url)) return; 2978 2979 }; 2980 2981 var item = list[list.length-1] 2982 document.getElementById("bottom-navbar").getElementsByClassName("nav navbar-nav")[0].appendChild(item.cloneNode(true)); 2983 var width_sum = 0; 2984 for (i=0; i < list.length; i++) { 2985 width_sum += list[i].getBoundingClientRect().width; 2986 } 2987 2988 var item = list[list.length-1] 2989 if ((width_sum - 10) > window.innerWidth) { item.parentNode.removeChild(item); console.log("link deleted couldn't fit screen"); return; } 2990 2991 item.firstChild.text = "Order"; 2992 item.firstChild.href = url; 2993 item.firstChild.id = "bottom_link_" + list.length; 2994 2995 $(item.firstChild).on("click", function(){ 2996 2997 if (typeof shUrlParams !== "undefined" && shUrlParams['source'] === undefined){ 2998 shUrlParams['source'] = 'footer'; 2999 sessionStorage.setItem('shUrlParams', JSON.stringify(shUrlParams)); 3000 } 3001 3002 universal_ga('send', 'event', { 3003 eventCategory: 'Button', 3004 eventAction: 'Click', 3005 eventLabel: 'Plan B-2 Order', 3006 transport: 'beacon' 3007 }); 3008 }); 3009 3010 3011 } 3012 3013function activateSmartFooter(){ 3014 var smart_footer_active = true; 3015 var smart_footer_version = 2; 3016 var man_bottom_active = false;
3017 if(window.location.hash == '#smartFooterV2=enabled'){ 3018 smartFooterV2(); 3019 return; 3020 } 3021 if (smart_footer_active && !man_bottom_active){ 3022 if(smart_footer_version == 2 ){ 3023 smartFooterV2(); 3024 }else { 3025 npb(); 3026 } 3027 } 3028 } 3029 3030 activateSmartFooter(); 3031 3032 var corona_config_str = ''; 3033 var corona_config = corona_config_str != '' ? JSON.parse('') : null; 3034 3035 3036 //corona instuctions 3037 function show_corona_instructions(text, phone, btnText){ 3038 //format to US number 3039 var match = phone.match(/^(\d{3})(\d{3})(\d{4})$/); 3040 3041 if(corona_config.shopping_cart_type == "TMT" && corona_config.shopping_cart_active == true) { 3042 var linkLocation = "https://tmt.spotapps.co/ordering-menu/?spot_id="+corona_config.spot_id+"&images=yes&accordion=true"; 3043 var btnLinkLocation = "https://tmt.spotapps.co/ordering-menu/?spot_id="+corona_config.spot_id+"&images=yes&accordion=true"; 3044 }else { 3045 var linkLocation = 'tel:+1'+phone+''; 3046 var btnLinkLocation = 'tel:+1'+ match[1] + '-' + match[2] + '-' + match[3] +'' 3047 } 3048 var appendPhone = 'tel:+1'+phone+''; 3049 //inject html content 3050 if ($('.food-menu-nav').length) { 3051 //new template 3052 var pageEl = $('.food-menu-nav').css('margin','20px auto 10px auto'); 3053 var textColor = rgb2hex($('.section-header').css('color')); 3054 var linkColor = rgb2hex($('.food-menu-nav-item.active').css('background-color')); 3055 var fontSize = parseInt($('.food-menu-nav-item').css('font-size')); 3056 fontSize = fontSize + Math.round(fontSize * 0.25); 3057 3058 // 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>'; 3059 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>'; 3060 3061 }else { 3062 //old template 3063 var pageEl = $('.tabnav'); 3064 var textColor = rgb2hex($('.menu-item-name-traditional').css('color')); 3065 var linkColor = rgb2hex($('.style-traditional .tabnav .nav>li.active>a').css('color')); 3066 3067 var linkTextColor = getContrast50(linkColor); 3068 var fontSize = parseInt($('.menu-item-name-traditional').css('font-size')); 3069 fontSize = fontSize + Math.round(fontSize * 0.25); 3070 var textTransform = $('.style-traditional .tabnav .nav>li>a').css('text-transform'); 3071 3072 // 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>';
3073 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>'; 3074 3075 } 3076 //html content 3077 pageEl.prepend(html); 3078 } 3079 3080 function rgb2hex(rgb) { 3081 if(typeof rgb !== "undefined"){ 3082 rgbColor = rgb.match(/^rgb\((\d+),\s*(\d+),\s*(\d+)\)$/); 3083 if (!rgbColor) { 3084 rgba = rgb.match(/^rgba?\((\d+),\s*(\d+),\s*(\d+)(,\s*\d+\.*\d+)?\)$/); 3085 return "#" + hex(rgba[1]) + hex(rgba[2]) + hex(rgba[3]); 3086 } 3087 function hex(x) { 3088 return ("0" + parseInt(x).toString(16)).slice(-2); 3089 } 3090 return "#" + hex(rgbColor[1]) + hex(rgbColor[2]) + hex(rgbColor[3]); 3091 } 3092 return rgb; 3093 } 3094 3095 function getContrast50(hexcolor){ 3096 return (parseInt(hexcolor, 16) > 0xffffff/2) ? '#000':'#fff'; 3097 } 3098 3099 function show_corona_sidebar_instructions(text, phone){ 3100 //format to US number 3101 var match = phone.match(/^(\d{3})(\d{3})(\d{4})$/); 3102 var divWidth = 230; 3103 var top = 50; 3104 var linkSize = '1.6em'; 3105 var pSize = $('p').css('font-size'); 3106 var appendPhone = 'tel:+1'+phone+''; 3107 3108 if ($(window).width() < 1600) 3109 var top = 30; 3110 if ($(window).width() < 1200){ 3111 var divWidth = 180; 3112 var linkSize = '1.4em'; 3113 var pSize ='1.1em'; 3114 } 3115 3116 if($('.food-menu-nav').length){ //new template 3117 var textColor = $('.food-menu-nav-item.active').css('color'); 3118 var linkColor = $('.food-menu-nav-item.active').css('background-color'); 3119 3120 var linkTextColor = $('.food-menu-nav-item.active').css('color'); 3121 var parent = $('.food-menu-page'); 3122 } 3123 else { //old template 3124 var textColor = $('.menu-item-name-traditional').css('color'); 3125 var linkColor = $('.style-traditional .tabnav .nav>li.active>a').css('color'); 3126 var parent = $('.food-menu').length ? $('.food-menu') : $('.drink-menu'); 3127 var linkTextColor = getContrast50(linkColor); 3128 } 3129 3130 // $(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>'); 3131 $(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>'); 3132 3133 //check if resolution is bigger than tablet resolution 3134/* if ($(window).width() > 991) { 3135 //detect scroll 3136 window.onscroll = function (e) { 3137 if ($(window).scrollTop() == 0) { 3138 $('#corona-instructions-sidebar').hide(); 3139 }else { 3140 $('#corona-instructions-sidebar').show(); 3141 } 3142 } 3143 } */ 3144 } 3145 3146 function check_corona_config(config){ 3147 console.log(config) 3148 if (config) { 3149 if (config.instructions_on_food_page && config.food_page_instruction_text && config.food_page_instruction_phone) { 3150 if (!config.promote_deliveries && config.promote_pick_up) { 3151 var btnText = 'Call For Pick Up'; 3152 } 3153 if (config.promote_deliveries && !config.promote_pick_up) { 3154 var btnText = 'Call For Delivery'; 3155 } 3156 if (config.promote_deliveries && config.promote_pick_up) { 3157 var btnText = 'Call For Pick Up Or Delivery'; 3158 } 3159 3160 if(typeof btnText !== "undefined"){ // check if pick up or delivery are true 3161 if(config.shopping_cart_type == "TMT" && config.shopping_cart_active == true) { 3162 var btnText = 'ORDER NOW'; 3163 if($('.food-menu-nav').length){ //new template 3164 var textColor = rgb2hex($('.section-header').css('color')); 3165 var linkColor = rgb2hex($('.food-menu-nav-item.active').css('background-color')); 3166 var fontSize = parseInt($('.food-menu-nav-item').css('font-size')); 3167 fontSize = fontSize + Math.round(fontSize * 0.25); 3168 } 3169 else { //old template 3170 var textColor = rgb2hex($('.menu-item-name-traditional').css('color')); 3171 var linkColor = rgb2hex($('.style-traditional .tabnav .nav>
3171li.active>a').css('color')); 3172 3173 var linkTextColor = getContrast50(linkColor); 3174 var fontSize = parseInt($('.menu-item-name-traditional').css('font-size')); 3175 fontSize = fontSize + Math.round(fontSize * 0.25); 3176 } 3177 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); 3178 show_corona_sidebar_instructions(btnText, config.food_page_instruction_phone); 3179 } else { 3180 show_corona_instructions(config.food_page_instruction_text, config.food_page_instruction_phone, btnText); 3181 show_corona_sidebar_instructions(btnText, config.food_page_instruction_phone); 3182 } 3183 3184 } 3185 } 3186 } 3187 } 3188 3189 3190 if (is_food_menu_page() && !window.location.search.includes("contactless=true")){ 3191 $( document ).ready(function() { 3192 setTimeout(function(){ 3193 check_corona_config(corona_config); 3194 }, 300); 3195 }); 3196 } 3197 3198 3199 3200 function isPhone(phone){ 3201 var regex = /^(\+\d{1,2}\s?)?\(?\d{3}\)?[\s.-]?\d{3}[\s.-]?\d{4}$/; 3202 return regex.test(phone); 3203 } 3204 3205 function sendEmail_MT (input_id) { 3206 const $loader = $("[data-id=newsletter-widget-2] .sph-loading-img"); 3207 3208 const $step = { 3209 form: $("[data-id=newsletter-widget-2] .sph-email-form"), 3210 message: $("[data-id=newsletter-widget-2] .sph-response-message"), 3211 } 3212 3213 const $field = { 3214 email: $("[data-id=newsletter-widget-2] #sph-newsletter-input-" + input_id), 3215 phone: $("[data-id=newsletter-widget-2] #sph-newsletter-phone-" + input_id), 3216 consent: $("[data-id=newsletter-widget-2] #sph-newsletter-checkbox-phone-" + input_id), 3217 }; 3218 3219 const $error = { 3220 email: $("[data-id=newsletter-widget-2] #sph-newsletter-email-error-" + input_id), 3221 phone: $("[data-id=newsletter-widget-2] #sph-newsletter-phone-error-" + input_id), 3222 }; 3223 3224 if ($field.email.val().trim() === "") { 3225 $error.email 3226 .html("This field is required") 3227 .show(); 3228 } 3229 else if (!isEmail($field.email.val().trim())) { 3230 $error.email 3231 .html("Please use the format â[email protected]â") 3232 .show(); 3233 } else { 3234 $error.email 3235 .html("") 3236 .hide(); 3237 } 3238 3239 if ($field.consent.is(':checked') && $field.phone.val().trim() === "") { 3240 $error.phone 3241 .html("This field is required") 3242 .show(); 3243 } else if ($field.phone.val().trim().length > 0 && !isPhone($field.phone.val().trim())) { 3244 $error.phone 3245 .html("The phone number must contain 10 digits") 3246 .show(); 3247 } else { 3248 $error.phone 3249 .html("") 3250 .hide(); 3251 } 3252 3253 const errorField = $step.form.find('.sh-form-error:visible'); 3254 3255 if (errorField.length > 0) { 3256 const input = errorField.first().next(); 3257 3258 document.activeElement.blur(); 3259 3260 setTimeout(() => { 3261 input.focus(); 3262 }, 160) 3263 3264 return; 3265 } 3266 3267 $loader 3268 .show() 3269 .prev() 3270 .hide(); 3271 3272 $.ajax({ 3273 method: "POST", 3274 url: "https://www.spothopperapp.com/api/spots/737352/contacts/add_with_texting_permission", 3275 crossDomain: true, 3276 dataType: 'json', 3277 data: { 3278 email: $field.email.val().trim(), 3279 phone: $field.phone.val().trim(), 3280 texting_permission: $field.consent.is(':checked'), 3281 }, 3282 success: function (data) { 3283 afterRequestSubmission(data); 3284 }, 3285 error: function () { 3286 afterRequestSubmission("Something went wrong. Please try again later."); 3287 } 3288 }); 3289 3290 function afterRequestSubmission (data) { 3291 $step.form.hide(); 3292 3293 $step.message 3294 .html(data) 3295 .show() 3296 .trigger('focus'); 3297 } 3298 } 3299</script>
3299<script>function addPromotionParamsToTMTLinks() 3300{ 3301 if (sessionStorage.getItem('shUrlParams')) { 3302 let shParams = JSON.parse(sessionStorage.getItem('shUrlParams')); 3303 if (!Object.keys(shParams).length) 3304 return; 3305 if(!shParams.source) 3306 return; 3307 $('a').each(function () { 3308 if (this.href.includes('tmt.spotapps.co')) { 3309 if(this.href.includes('&source=') || this.href.includes('&destination=') || this.href.includes('&promotion=')) 3310 return; 3311 3312 this.href = this.href + '&source=' + shParams.source; 3313 if(shParams.destination) 3314 this.href = this.href + '&destination=' + shParams.destination; 3315 if(shParams.promotion) 3316 this.href = this.href + '&promotion=' + shParams.promotion; 3317 if(shParams.fb_post_id) 3318 this.href = this.href + '&fb_post_id=' + shParams.fb_post_id; 3319 if(shParams.email_post_id) 3320 this.href = this.href + '&email_post_id=' + shParams.email_post_id; 3321 } 3322 }) 3323 } 3324} 3325setTimeout(function() { 3326 addPromotionParamsToTMTLinks(); 3327 addFooterToSourceParam(); 3328},600) 3329 3330function addFooterToSourceParam() 3331{ 3332 $('.bottom-link').each(function (){ 3333 if(shouldAddSourceParam(this.href)) 3334 this.href = this.href + '&source=footer'; 3335 }) 3336 $('#sh-multiple-links-content-holder a').each(function (){ 3337 if(shouldAddSourceParam(this.href)) 3338 this.href = this.href + '&source=footer'; 3339 }) 3340} 3341function shouldAddSourceParam(link){ 3342 if (link.includes('tmt.spotapps.co') && !link.includes('&source=')){ 3343 return true; 3344 } 3345 return false; 3346} 3347</script>
3347<script> 3348;(async () => { 3349if (typeof window.focusTrap === 'undefined') { 3350 await getScript('https://unpkg.com/tabbable/dist/index.umd.js'); 3351 await getScript('https://unpkg.com/focus-trap/dist/focus-trap.umd.js'); 3352} 3353 3354document.querySelectorAll('.modal').forEach((element) => { 3355 const trap = window.focusTrap?.createFocusTrap(element, { 3356 allowOutsideClick: true, 3357 }); 3358 3359 $(element).on('shown.bs.modal', () => { 3360 trap?.activate(); 3361 }); 3362 3363 $(element).on('hidden.bs.modal', () => { 3364 trap?.deactivate(); 3365 }); 3366}); 3367 3368async function getScript (source) { 3369 return new Promise((resolve, reject) => { 3370 const script = document.createElement('script'); 3371 script.src = source; 3372 script.async = true; 3373 3374 script.onload = resolve; 3375 script.onerror = reject; 3376 3377 document.head.appendChild(script); 3378 }); 3379} 3380})(); 3381</script>
3381<script src="https://wcache-plugins.spotapps.co/production/wcpl_bootstrap_ada_fix/wcpl_bootstrap_ada_fix.js"></script>
3381<link href="https://wcache-plugins.spotapps.co/production/wcpl_bday_club/wcpl_bday_club.css" rel="stylesheet" media="screen"/>
3381<script src="https://wcache-plugins.spotapps.co/production/wcpl_bday_club/wcpl_bday_club.js"></script>
3381<script src="https://wcache-plugins.spotapps.co/production/wcpl_ga_tracking/wcpl_ga_tracking.js"></script>
3381<script src="https://wcache-plugins.spotapps.co/production/wcpl_media_controls/script.js"></script>
3381<link href="https://wcache-plugins.spotapps.co/production/wcpl_website_editor_interpreter/website_interpreter_helper_style.css" rel="stylesheet" media="screen"/>
3381<script>var changes_log_array = {};</script>
3381<script src="https://wcache-plugins.spotapps.co/production/wcpl_website_editor_interpreter/website_interpreter.js"></script>
3381</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.