Files
AI/참고/trafilatura-master/tests/eval/metrotimes.com-Mezcal.html
2026-05-12 19:40:31 +09:00

2799 lines
142 KiB
HTML
Vendored
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<!DOCTYPE html>
<html class="uk-root" lang="en">
<head>
<script async>!function(){var e=document.createElement("script"),t=document.getElementsByTagName("script")[0],a="https://cmp.quantcast.com".concat("/choice/","ECpz7gxYXdCG2","/","www.metrotimes.com","/choice.js?tag_version=V2"),n=0;e.async=!0,e.type="text/javascript",e.src=a,t.parentNode.insertBefore(e,t),function(){for(var e,t="__tcfapiLocator",a=[],n=window;n;){try{if(n.frames[t]){e=n;break}}catch(e){}if(n===window.top)break;n=n.parent}e||(!function e(){var a=n.document,i=!!n.frames[t];if(!i)if(a.body){var o=a.createElement("iframe");o.style.cssText="display:none",o.name=t,a.body.appendChild(o)}else setTimeout(e,5);return!i}(),n.__tcfapi=function(){var e,t=arguments;if(!t.length)return a;if("setGdprApplies"===t[0])t.length>3&&2===t[2]&&"boolean"==typeof t[3]&&(e=t[3],"function"==typeof t[2]&&t[2]("set",!0));else if("ping"===t[0]){var n={gdprApplies:e,cmpLoaded:!1,cmpStatus:"stub"};"function"==typeof t[2]&&t[2](n)}else"init"===t[0]&&"object"==typeof t[3]&&(t[3]=Object.assign(t[3],{tag_version:"V2"})),a.push(t)},n.addEventListener("message",(function(e){var t="string"==typeof e.data,a={};try{a=t?JSON.parse(e.data):e.data}catch(e){}var n=a.__tcfapiCall;n&&window.__tcfapi(n.command,n.version,(function(a,i){var o={__tcfapiReturn:{returnValue:a,success:i,callId:n.callId}};t&&(o=JSON.stringify(o)),e&&e.source&&e.source.postMessage&&e.source.postMessage(o,"*")}),n.parameter)}),!1))}();var i=function(){var e=arguments;typeof window.__uspapi!==i&&setTimeout((function(){void 0!==window.__uspapi&&window.__uspapi.apply(window.__uspapi,e)}),500)};if(void 0===window.__uspapi){window.__uspapi=i;var o=setInterval((function(){n++,window.__uspapi===i&&n<3?console.warn("USP is not accessible"):clearInterval(o)}),6e3)}}();</script>
<link rel="stylesheet" type="text/css" href="/fdn-system/assets/pub/styles/desktop.min.css?cb=5db27bd61cb639a38ecc2b3a84275b6d" />
<script src="/fdn-system/assets/pub/scripts/uikit.min.js" async></script>
<script src="/fdn-system/assets/pub/scripts/uikit-icons-fdn.min.js" async></script>
<script src="/foundation/fontawesome/js/brands.min.js" async></script>
<script src="/foundation/fontawesome/js/solid.min.js" async></script>
<script src="/foundation/fontawesome/js/regular.min.js" async></script>
<script src="/foundation/fontawesome/js/fontawesome.min.js" async></script>
<script src="/foundation/fontawesome/js/light.min.js" async></script>
<script src="/foundation/fontawesome/js/duotone.min.js" async></script>
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta charset="UTF-8">
<meta name="layout" content="Content Default (Responsive, Live, Air)" />
<meta name="oid" content="34565910" />
<script>
window.__FOUNDATION_RESPONSIVE__ = true
//
window.__FBAPIv__ = 'v3.2'
//
</script>
<script src="/foundation/scripts/foundation-air-2-0-1.js?cb=18806fd8e606cdf92f111f9cc9e8e916"></script>
<link rel="alternate" type="application/rss+xml" title="Detroit Metro Times RSS: Whole Site" href="https://www.metrotimes.com/detroit/Rss.xml" />
<link rel="alternate" type="application/rss+xml" title="Detroit Metro Times RSS: Food &amp; Drink Section" href="https://www.metrotimes.com/detroit/Rss.xml?oid=2124982" />
<link rel="alternate" type="application/rss+xml" title="Detroit Metro Times RSS: Restaurant reviews" href="https://www.metrotimes.com/detroit/Rss.xml?oid=19138534" />
<script>
fixupProfileLinks("https:\/\/www.metrotimes.com\/detroit\/Profile", "https:\/\/posting.metrotimes.com\/detroit\/MyProfile");
</script>
<meta name="google-signin-client_id" content="368071155345-fr5a01rd2lpbd03le6ivqgfnbb1jmfak.apps.googleusercontent.com">
<link rel="preload" href="/styles/fonts/lato-regular-fdn.woff2" as="font" type="font/woff2" crossorigin>
<link rel="preload" href="/styles/fonts/lato-bold-fdn.woff2" as="font" type="font/woff2" crossorigin>
<link rel="preload" href="/styles/fonts/montserrat-regular-fdn.woff2" as="font" type="font/woff2" crossorigin>
<link rel="preload" href="/styles/fonts/montserrat-bold-fdn.woff2" as="font" type="font/woff2" crossorigin>
<link rel="preload" href="/styles/fonts/opensans-cond-light-fdn.woff&quot;" as="font" type="font/woff" crossorigin>
<link rel="preload" href="/styles/fonts/opensans-cond-bold-fdn.woff" as="font" type="font/woff" crossorigin>
<style>
:root {
--pub-primary-color:#D91F34;
--pub-link-color:#D91F34;
--real-1-primary-color: #D91F34;
--real-1-secondary-color: #D91F3466;
}
</style>
<meta name="google-site-verification" content="06A5Yh5mu5xlqSkqBOzGlxA6P_yfmltTp1l0ssgpOBk" />
<script> !(function () { window.googletag = window.googletag || {}; window.vmpbjs = window.vmpbjs || {}; window.vpb = window.vpb || {}; vpb.cmd = vpb.cmd || []; vpb.st=Date.now(); vpb.fastLoad = true; googletag.cmd = googletag.cmd || []; vmpbjs.cmd = vmpbjs.cmd || []; var cmds = []; try{ cmds = googletag.cmd.slice(0); googletag.cmd.length = 0; }catch(e){} var ready = false; function exec(cb) { return cb.call(googletag); } var overriden = false; googletag.cmd.push(function () { overriden = true; googletag.cmd.unshift = function (cb) { if (ready) { return exec(cb); } cmds.unshift(cb); if (cb._startgpt) { ready = true; for (var k = 0; k < cmds.length; k++) { exec(cmds[k]); } } }; googletag.cmd.push = function (cb) { if (ready) { return exec(cb); } cmds.push(cb); }; }); if(!overriden){ googletag.cmd.push = function (cb) { cmds.push(cb); }; googletag.cmd.unshift = function (cb) { cmds.unshift(cb); if (cb._startgpt) { ready = true; if (googletag.apiReady) { cmds.forEach(function (cb) { googletag.cmd.push(cb); }); } else { googletag.cmd = cmds; } } }; } var dayMs = 36e5, cb = parseInt(Date.now() / dayMs), vpbSrc = '//player.bidmatic.io/prebidlink/' + cb + '/wrapper_hb_753393_18707.js', pbSrc = vpbSrc.replace('wrapper_hb', 'hb'), gptSrc = '//securepubads.g.doubleclick.net/tag/js/gpt.js', c = document.head || document.body || document.documentElement; function loadScript(src, cb) { var s = document.createElement('script'); s.src = src; s.defer=false; c.appendChild(s); s.onload = cb; s.onerror = function(){ var fn = function(){}; fn._startgpt = true; googletag.cmd.unshift(fn); }; return s; } loadScript(pbSrc); loadScript(gptSrc); loadScript(vpbSrc); })() </script>
<script async src="https://securepubads.g.doubleclick.net/tag/js/gpt.js"></script>
<script>window.googletag = window.googletag || { cmd: [] };</script>
<script>
Foundation.Ad = Foundation.Ad || {};
Foundation.Ad.slotsToDefineInHeader = ["DET_LeaderboardHeader-1", "DET_Footer-1", "DET_Reskin-1"];
Foundation.Ad.setupPageTargeting = function () {
googletag.pubads().setTargeting("template", ["Content"]); // template | Content
googletag.pubads().setTargeting("media", ["screen"]); // media | screen
googletag.pubads().setTargeting("section", ["food-drink"]); // section | food-drink
googletag.pubads().setTargeting("category", ["Restaurantreviews"]); // category | Restaurantreviews
googletag.pubads().setTargeting("oid", ["34565910"]); // oid | 34565910
googletag.pubads().setTargeting("topic", ["restaurant-reviews"]); // topic | restaurant-reviews
googletag.pubads().setTargeting("tags", ["Mexican restaurants in Detroit", "Mexican restaurants in Ferndale", "mezcal bars in metro Detroit", "Mezcal Mexican Bar & Kitchen", "Mezcal Mexican Bar & Kitchen"]); // tags | Mexican restaurants in Detroit, Mexican restaurants in Ferndale, mezcal bars in metro Detroit, Mezcal Mexican Bar & Kitchen, Mezcal Mexican Bar & Kitchen
googletag.pubads().setTargeting("vertical", ["food"]); // vertical | food
googletag.pubads().setTargeting("category_type", ["Review"]); // category_type | Review
}
</script>
<script src="https://www.metrotimes.com/detroit/Responsive/Custom/Scripts/Gam.js?cb=787cac40e06b0f0b145ae0f61bbd2331"></script>
<script>
(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
})(window,document,'script','https://www.google-analytics.com/analytics.js','ga');
ga('create', 'UA-643668-1', 'auto');
ga('set', 'anonymizeIp', true);
ga('send', 'pageview', { 'dimension1': 'content', 'dimension2': 'food', 'dimension4': 'Jane Slaughter' });
</script>
<script async src="https://www.googletagmanager.com/gtag/js?id=G-VMXN2ME67M"></script>
<script>
window.dataLayer = window.dataLayer || [];
function gtag(){dataLayer.push(arguments);}
gtag("js", new Date());
gtag('config', 'G-VMXN2ME67M');
</script>
<script>
var Euclid = Euclid || {}
Euclid.MetroTimes = Euclid.MetroTimes || {}
Euclid.MetroTimes.vertical = Euclid.MetroTimes.vertical || 'food'
</script>
<meta name="robots" content="max-image-preview:large" />
<link rel="shortcut icon" href="/favicon.ico" />
<meta name="title" content="Detroit&rsquo;s Mezcal restaurant goes beyond familiar Mexican fare | Restaurant reviews | Detroit | Detroit Metro Times" />
<meta name="description" content="The second location opened in Midtown following the first in Ferndale" />
<meta name="keywords" content="Mexican restaurants in Detroit, Mexican restaurants in Ferndale, mezcal bars in metro Detroit, Mezcal Mexican Bar &amp; Kitchen, Mezcal Mexican Bar &amp; Kitchen, Restaurant Reviews" />
<title>Detroits Mezcal restaurant goes beyond familiar Mexican fare | Restaurant reviews | Detroit | Detroit Metro Times</title>
<meta name="date" content="2023-11-09 04:00:00" />
<meta name="author" content="Jane Slaughter">
<meta name="news_keywords" content="mexican restaurants in detroit, mexican restaurants in ferndale, mezcal bars in metro detroit, mezcal mexican bar kitchen, mezcal mexican bar kitchen, restaurant reviews" />
<link rel="image_src" href="https://media1.metrotimes.com/metrotimes/imager/u/slideshow/34565917/food-review-mezcal_copy.jpg" />
<meta name="thumbnail" content="https://media1.metrotimes.com/metrotimes/imager/u/slideshow/34565917/food-review-mezcal_copy.jpg" />
<link rel="canonical" href="https://www.metrotimes.com/food-drink/detroits-mezcal-restaurant-goes-beyond-familiar-mexican-fare-34565910" />
<meta property="og:url" content="https://www.metrotimes.com/food-drink/detroits-mezcal-restaurant-goes-beyond-familiar-mexican-fare-34565910" />
<meta property="fb:app_id" content="310950202407744" />
<meta property="og:site_name" content="Detroit Metro Times" />
<meta property="og:title" content="Detroit&rsquo;s Mezcal restaurant goes beyond familiar Mexican fare" />
<meta property="og:image" content="https://media1.metrotimes.com/metrotimes/imager/u/slideshow/34565917/food-review-mezcal_copy.jpg" />
<meta property="og:image:width" content="600" />
<meta property="og:image:height" content="314" />
<meta property="og:description" content="The second location opened in Midtown following the first in Ferndale" />
<meta property="og:type" content="article" />
<meta name="twitter:card" content="summary_large_image">
<meta name="twitter:image" content="https://media1.metrotimes.com/metrotimes/imager/u/slideshow/34565917/food-review-mezcal_copy.jpg">
<meta name="twitter:site" content="@metrotimes">
<meta name="twitter:title" content="Detroit&rsquo;s Mezcal restaurant goes beyond familiar Mexican fare">
<meta name="twitter:description" content="The second location opened in Midtown following the first in Ferndale">
<script type="application/ld+json">
{
"mainEntityOfPage": {
"@type": "WebPage",
"@id":"https:\/\/www.metrotimes.com\/food-drink\/detroits-mezcal-restaurant-goes-beyond-familiar-mexican-fare-34565910"
},
"headline": "Detroits Mezcal restaurant goes beyond familiar Mexican fare",
"description": "Mezcal is huge right now.",
"image": {
"url": "https:\/\/media1.metrotimes.com\/metrotimes\/imager\/u\/original\/34565917\/food-review-mezcal_copy.jpg",
"width": 1000,
"height": 524,
"@type": "ImageObject"
},
"datePublished": "2023-11-09T04:00:00",
"dateModified": "2023-11-09T04:04:02",
"author": {
"name": "Jane Slaughter",
"url": "https:\/\/www.metrotimes.com\/author\/jane-slaughter",
"@type": "Person"
},
"publisher": {
"name": "Detroit Metro Times",
"logo": {
"url": "https:\/\/www.metrotimes.com\/imager\/b\/google-amp-logo\/808579\/8e1e\/MT_Redbkgd.png",
"width": 60,
"height": 60,
"@type": "ImageObject"
},
"@type": "Organization"
},
"@context": "https://schema.org",
"@type": "NewsArticle"
}
</script>
<script>window.twttr = (function(d, s, id) {
var js, fjs = d.getElementsByTagName(s)[0],
t = window.twttr || {};
if (d.getElementById(id)) return t;
js = d.createElement(s);
js.id = id;
js.src = "https://platform.twitter.com/widgets.js";
fjs.parentNode.insertBefore(js, fjs);
t._e = [];
t.ready = function(f) {
t._e.push(f);
};
return t;
}(document, "script", "twitter-wjs"));</script>
<script>jQuery(window).on('beforeprint',()=>{jQuery(`img[loading]`).each((index,item)=>{item.removeAttribute(`loading`);});});</script>
</head>
<script>console.log('resize function removed');</script>
<body id="Content" class="ContentDefault food-drink metrotimes RespOneCol Restaurantreviews">
<script>
jQuery(() => {
if (Foundation.Ad && typeof(Foundation.Ad.showFooter) === 'function') {
googletag.cmd.push(function() {
Foundation.Ad.showFooter('DET_Footer-1');
});
}
});
</script>
<noscript><iframe src="//www.googletagmanager.com/ns.html?id=GTM-PHZV5V"
height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript>
<script>(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':
new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],
j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src=
'//www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);
})(window,document,'script','dataLayer','GTM-PHZV5V');</script>
<div id="fb-root"></div>
<script>
(function () {
var app = new Foundation.Facebook.Application();
app.receiveAuthNotifications();
app.receiveLikeNotifications();
})();
</script>
<script>
(function () {
var googAuth = Foundation.Google.loadGoogleOauth().then(function(){
//if(window.console) console.log("Foundation.Google.loadGoogleOauth OAuth initialized.")
}.bind(this), function(){
if(window.console) console.log("Foundation.Google.loadGoogleOauth OAuth didn't init.")
})
})()
</script>
<div id="ContentDefault" class="grid-resp-1 page layout-ContentDefault">
<div class="ev-grid-layout ev-clamp@m ev-clamp@l">
<div class="ev-grid-zone ev-leader-zone">
<div class="ev-grid-col uk-width-1-1" data-ev-zone="Leader">
</div>
</div>
<div class="ev-grid-zone ev-header-zone">
<div class="ev-grid-col uk-width-1-1" data-ev-zone="GlobalHeader">
<div class="GlobalHeader ContentDefault uk-margin-remove new-header uk-root fdn-margin-vert SiteHeader comp-shell-siteheader" data-component-id="SiteHeader">
<div class="uk-flex uk-flex-wrap fdn-site-header-flex">
<div class="uk-hidden@m uk-margin-auto-right uk-margin-auto-vertical fdn-site-header-nav-toggle">
<a href="#offcanvas-slide-navigation" class="fdn-nav-toggle uk-button" uk-toggle>
<span class="uk-icon"><i class="fas fa-bars fa-2x"></i></span>
</a>
</div>
<div class="uk-margin-auto uk-width-auto uk-width-1-1@m fdn-site-header-logo">
<div class="GlobalHeader Logoresponsive uk-margin-remove uk-root fdn-margin-vert Logo comp-shell-logo" data-component-id="Logo">
<div class="uk-margin-remove">
<a class="uk-logo" href="https://www.metrotimes.com/" title="Detroit Metro Times">
<img src="/imager//b/original/28752977/1c35/mainLogo__3_.jpg" alt width="500" height="117" class="no-foundation-imgeditor " />
</a>
</div>
<div class="uk-visible@m uk-margin-auto-left uk-flex uk-flex-middle">
</div>
</div>
<div id="fdn-logo-hook"></div>
</div>
<div class="uk-width-1-1 uk-flex-none uk-visible@m fdn-site-header-nav">
<div id="NavigationHorizontal" class="GlobalHeader NavigationHorizontalresponsive uk-margin-remove uk-root fdn-margin-vert NavigationHorizontal comp-shell-navigationhorizontal" data-component-id="NavigationHorizontal">
<nav class="fdn-nav-block uk-navbar-container uk-navbar-transparent
uk-responsive-width uk-visible@m" id="mainNav" uk-navbar>
<ul class="site-nav-source uk-navbar-nav uk-width-1-1">
<li class="fdn-nav-parent uk-parent uk-visible@m fdn-site-nav-home" id="Home">
<a href="https://www.metrotimes.com/detroit/Home" target="_self">Home</a>
<div class="fdn-nav-dropdown uk-navbar-dropdown" uk-dropdown="offset: 0;">
<ul class="fdn-nav-list uk-nav uk-navbar-dropdown-nav">
</ul>
</div>
</li>
<li class="fdn-nav-parent uk-parent " id="News">
<a href="https://www.metrotimes.com/news" target="_self">News &amp; Views</a>
<div class="fdn-nav-dropdown uk-navbar-dropdown" uk-dropdown="offset: 0;">
<ul class="fdn-nav-list uk-nav uk-navbar-dropdown-nav">
<li class="fdn-nav-item uk-hidden@m"><a href="https://www.metrotimes.com/news" target="_self" title>Latest News &amp; Views</a></li>
<li class="fdn-nav-item "><a href="https://www.metrotimes.com/topic/abortion-rights-30602057" target="_self" title>Abortion Rights</a></li>
<li class="fdn-nav-item "><a href="https://www.metrotimes.com/category/metro-detroit-news-2135230" target="_self" title>Metro Detroit News</a></li>
<li class="fdn-nav-item "><a href="https://www.metrotimes.com/category/michigan-news-29051050" target="_self" title>Michigan News</a></li>
<li class="fdn-nav-item "><a href="https://www.metrotimes.com/category/politics-elections-29051043" target="_self" title>Politics &amp; Elections</a></li>
<li class="fdn-nav-item "><a href="https://www.metrotimes.com/topic/flint-water-crisis-29050721" target="_self" title>Flint Water Crisis</a></li>
<li class="fdn-nav-item "><a href="https://www.metrotimes.com/category/icymi-27567459" target="_self" title>ICYMI</a></li>
<li class="fdn-nav-item "><a href="https://www.metrotimes.com/detroit/IssueArchives?issue=this%20week" target="_self" title>Digital Issue</a></li>
<li class="fdn-nav-item "><a href="https://www.metrotimes.com/detroit-guides" target="_self" title>Detroit Guides</a></li>
<li class="fdn-nav-item "><a href="https://www.metrotimes.com/slideshows/?section=2135207" target="_self" title>News Slideshows</a></li>
</ul>
</div>
</li>
<li class="fdn-nav-parent uk-parent " id="ArtsCulture">
<a href="https://www.metrotimes.com/arts" target="_self">Arts &amp; Culture</a>
<div class="fdn-nav-dropdown uk-navbar-dropdown" uk-dropdown="offset: 0;">
<ul class="fdn-nav-list uk-nav uk-navbar-dropdown-nav">
<li class="fdn-nav-item uk-hidden@m"><a href="https://www.metrotimes.com/arts" target="_self" title>Latest Arts &amp; Culture</a></li>
<li class="fdn-nav-item "><a href="https://www.metrotimes.com/category/arts-stories-interviews-2475566" target="_self" title>Arts Stories &amp; Interviews</a></li>
<li class="fdn-nav-item "><a href="https://www.metrotimes.com/category/things-to-do-27347026" target="_self" title>Things to Do</a></li>
<li class="fdn-nav-item "><a href="https://www.metrotimes.com/category/culture-2135219" target="_self" title>Culture</a></li>
<li class="fdn-nav-item "><a href="https://www.metrotimes.com/category/movies-2135216" target="_self" title>Movies</a></li>
<li class="fdn-nav-item "><a href="https://www.metrotimes.com/category/television-2135217" target="_self" title>Television</a></li>
<li class="fdn-nav-item "><a href="https://www.metrotimes.com/detroit/MovieTimes" target="_self" title>Movie Times</a></li>
<li class="fdn-nav-item "><a href="https://www.metrotimes.com/detroit/LocationSearch?locationSection=2124720&sortType=name" target="_self" title>Find a Theater</a></li>
<li class="fdn-nav-item "><a href="https://www.metrotimes.com/category/horoscopes-2199660" target="_self" title>Horoscopes</a></li>
<li class="fdn-nav-item "><a href="https://www.metrotimes.com/slideshows/?section=2124977" target="_self" title>Arts &amp; Culture Slideshows</a></li>
</ul>
</div>
</li>
<li class="fdn-nav-parent uk-parent " id="FoodDrink">
<a href="https://www.metrotimes.com/food-drink" target="_self">Food &amp; Drink</a>
<div class="fdn-nav-dropdown uk-navbar-dropdown" uk-dropdown="offset: 0;">
<ul class="fdn-nav-list uk-nav uk-navbar-dropdown-nav">
<li class="fdn-nav-item uk-hidden@m"><a href="https://www.metrotimes.com/food-drink" target="_self" title>Latest Food &amp; Drink</a></li>
<li class="fdn-nav-item "><a href="https://www.metrotimes.com/category/food-news-2475586" target="_self" title>Food News</a></li>
<li class="fdn-nav-item "><a href="https://www.metrotimes.com/category/drink-news-29051025" target="_self" title>Drink News</a></li>
<li class="fdn-nav-item "><a href="https://www.metrotimes.com/category/restaurant-reviews-19138534" target="_self" title>Restaurant Reviews</a></li>
<li class="fdn-nav-item "><a href="https://www.metrotimes.com/detroit/LocationSearch?locationSection=2124727&guide=2124367" target="_self" title>Find a Restaurant</a></li>
<li class="fdn-nav-item "><a href="https://www.metrotimes.com/slideshows/?section=2124982" target="_self" title>Food &amp; Drink Slideshows</a></li>
</ul>
</div>
</li>
<li class="fdn-nav-parent uk-parent " id="Music">
<a href="https://www.metrotimes.com/music" target="_self">Music</a>
<div class="fdn-nav-dropdown uk-navbar-dropdown" uk-dropdown="offset: 0;">
<ul class="fdn-nav-list uk-nav uk-navbar-dropdown-nav">
<li class="fdn-nav-item uk-hidden@m"><a href="https://www.metrotimes.com/music" target="_self" title>Latest Music</a></li>
<li class="fdn-nav-item "><a href="https://www.metrotimes.com/category/music-23600534" target="_self" title>Music News</a></li>
<li class="fdn-nav-item "><a href="https://www.metrotimes.com/category/local-music-2135218" target="_self" title>Local Music</a></li>
<li class="fdn-nav-item "><a href="https://www.metrotimes.com/category/concert-announcements-27347032" target="_self" title>Concert Announcements</a></li>
<li class="fdn-nav-item "><a href="https://www.metrotimes.com/detroit/EventSearch?eventCategory=2167821&sortType=date&v=d" target="_self" title>Find a Concert</a></li>
<li class="fdn-nav-item "><a href="https://www.metrotimes.com/slideshows/?section=2124980" target="_self" title>Music Slideshows</a></li>
</ul>
</div>
</li>
<li class="fdn-nav-parent uk-parent " id="Weed">
<a href="https://www.metrotimes.com/weed" target="_self">Weed</a>
<div class="fdn-nav-dropdown uk-navbar-dropdown" uk-dropdown="offset: 0;">
<ul class="fdn-nav-list uk-nav uk-navbar-dropdown-nav">
<li class="fdn-nav-item uk-hidden@m"><a href="https://www.metrotimes.com/weed" target="_self" title>Latest Weed</a></li>
<li class="fdn-nav-item "><a href="https://www.metrotimes.com/category/marijuana-news-2135229" target="_self" title>Marijuana News</a></li>
<li class="fdn-nav-item "><a href="https://www.metrotimes.com/category/canna-business-20864832" target="_self" title>Canna-Business</a></li>
<li class="fdn-nav-item "><a href="https://www.metrotimes.com/category/one-hitters-20864837" target="_self" title>One Hitters</a></li>
<li class="fdn-nav-item "><a href="https://www.metrotimes.com/detroit/LocationSearch?locationSection=20649182" target="_self" title>Business Directory</a></li>
<li class="fdn-nav-item "><a href="https://www.metrotimes.com/slideshows/?section=20864826" target="_self" title>Weed Slideshows</a></li>
</ul>
</div>
</li>
<li class="fdn-nav-parent uk-parent " id="BestOf">
<a href="https://www.metrotimes.com/best-of" target="_self">Best Of Detroit</a>
<div class="fdn-nav-dropdown uk-navbar-dropdown" uk-dropdown="offset: 0;">
<ul class="fdn-nav-list uk-nav uk-navbar-dropdown-nav">
<li class="fdn-nav-item uk-hidden@m"><a href="https://www.metrotimes.com/best-of" target="_self" title>Best Of Home</a></li>
<li class="fdn-nav-item "><a href="https://www.metrotimes.com/best-of/food" target="_self" title>Food</a></li>
<li class="fdn-nav-item "><a href="https://www.metrotimes.com/best-of/bars-clubs" target="_self" title>Bars &amp; Clubs</a></li>
<li class="fdn-nav-item "><a href="https://www.metrotimes.com/best-of/drinks" target="_self" title>Drinks</a></li>
<li class="fdn-nav-item "><a href="https://www.metrotimes.com/best-of/best-bet" target="_self" title>Best Bet</a></li>
<li class="fdn-nav-item "><a href="https://www.metrotimes.com/best-of/shops-services" target="_self" title>Shops &amp; Services</a></li>
<li class="fdn-nav-item "><a href="https://www.metrotimes.com/best-of/arts-entertainment" target="_self" title>Arts &amp; Entertainment</a></li>
<li class="fdn-nav-item "><a href="https://www.metrotimes.com/best-of/weed" target="_self" title>Weed</a></li>
</ul>
</div>
</li>
<li class="fdn-nav-parent uk-parent " id="Calendar">
<a href="https://www.metrotimes.com/detroit/EventSearch" target="_self">Calendar</a>
<div class="fdn-nav-dropdown uk-navbar-dropdown" uk-dropdown="offset: 0;">
<ul class="fdn-nav-list uk-nav uk-navbar-dropdown-nav">
<li class="fdn-nav-item "><a href="https://www.metrotimes.com/detroit/EventSearch?narrowByDate=Today" target="_self" title>Today&#39;s Events</a></li>
<li class="fdn-nav-item "><a href="https://www.metrotimes.com/detroit/EventSearch?narrowByDate=This%20Weekend&sortType=date&v=d" target="_self" title>This Weekend</a></li>
<li class="fdn-nav-item "><a href="https://www.metrotimes.com/detroit/Events/AddEvent" target="_self" title>Submit an Event</a></li>
</ul>
</div>
</li>
<li class="fdn-nav-parent uk-parent " id="Slideshows">
<a href="https://www.metrotimes.com/slideshows" target="_self">Slideshows</a>
<div class="fdn-nav-dropdown uk-navbar-dropdown" uk-dropdown="offset: 0;">
<ul class="fdn-nav-list uk-nav uk-navbar-dropdown-nav">
</ul>
</div>
</li>
<li class="fdn-nav-parent uk-parent " id="Support">
<a href="https://www.metrotimes.com/detroit/SupportLocalJournalism/Page" target="_self">Support</a>
<div class="fdn-nav-dropdown uk-navbar-dropdown" uk-dropdown="offset: 0;">
<ul class="fdn-nav-list uk-nav uk-navbar-dropdown-nav">
<li class="fdn-nav-item "><a href="https://www.metrotimes.com/detroit/SupportLocalJournalism/Page" target="_self" title>Donate</a></li>
<li class="fdn-nav-item "><a href="https://www.metrotimes.com/detroit/WhereToFindDetroitMetroTimes/Page" target="_self" title>Find Us in Print</a></li>
<li class="fdn-nav-item "><a href="https://www.metrotimes.com/detroit/NewsletterSignup/Page" target="_self" title>Subscribe</a></li>
<li class="fdn-nav-item "><a href="https://www.metrotimes.com/detroit/AdvertiseWithDetroitMetroTimes/Page" target="_self" title>Advertise</a></li>
<li class="fdn-nav-item "><a href="https://instagram.com/metrotimes" target="_blank" title>Instagram</a></li>
<li class="fdn-nav-item "><a href="https://www.twitter.com/metrotimes" target="_blank" title>Twitter</a></li>
<li class="fdn-nav-item "><a href="https://www.facebook.com/metrotimes" target="_blank" title>Facebook</a></li>
</ul>
</div>
</li>
<li class="fdn-nav-parent uk-parent metrotimes" id="ContactUs">
<a href="https://www.metrotimes.com/detroit/StaffDirectory/Page" target="_self">Contact Us</a>
<div class="fdn-nav-dropdown uk-navbar-dropdown" uk-dropdown="offset: 0;">
<ul class="fdn-nav-list uk-nav uk-navbar-dropdown-nav">
</ul>
</div>
</li>
<li class="fdn-nav-parent uk-parent fdn-nav-login-NavigationHorizontal
fdn-login-loggedout-container" data-view="loggedout" style="display:none">
<a href="#LogIn">
<i class="fas fa-user"></i>
</a>
</li>
<li class="fdn-nav-parent uk-parent fdn-nav-logout-NavigationHorizontal
fdn-login-loggedin-container" data-view="loggedin" style="display: none;">
<a href="#"><i class="fas fa-user"></i></a>
<div class="fdn-nav-dropdown" uk-dropdown="pos:bottom-right;">
<ul class="fdn-nav-list uk-nav uk-navbar-dropdown-nav">
<li class="fdn-nav-item-header">
<span data-label="username">Username</span>
</li>
<li class="fdn-nav-item fdn-site-login-view-profile">
<a href="https://posting.metrotimes.com/detroit/MyProfile">
View Profile
</a>
</li>
<li class="fdn-nav-item fdn-site-login-edit-profile">
<a href="https://posting.metrotimes.com/detroit/Profile/MySettings">
Edit Profile
</a>
</li>
<li class="fdn-nav-item fdn-site-login-logout">
<a href="https://posting.metrotimes.com/detroit/Logout">
Log Out
</a>
</li>
</ul>
</div>
</li>
<li class="fdn-nav-parent uk-parent"><a><i class="far fa-search fa-flip-horizontal fa-sm"></i></a>
<div id="fdn-NavigationHorizontal-dropdown-hook" uk-dropdown="mode:click,hover;offset:0;pos:bottom-right;" class="GlobalHeader NavigationHorizontalresponsive uk-margin-remove fdn-site-search-dropdown uk-root fdn-margin-vert NavigationHorizontal comp-shell-navigationhorizontal" data-component-id="NavigationHorizontal">
<form action="https://www.metrotimes.com/detroit/Search">
<div class="fdn-site-search-input-block ">
<div class="uk-search uk-search-default uk-width-1-1">
<span class="fdn-site-search-icon" uk-search-icon></span>
<input class="fdn-site-search-input ev-search-input uk-search-input" name="keywords" placeholder="Enter Keywords..." autocomplete="off" type="search" />
</div>
</div>
<div>
<ul class="fdn-site-search-list uk-nav uk-margin-remove">
<li><a class="fdn-site-search-item" href="https://www.metrotimes.com/detroit/ArticleArchives">in Articles &amp; Posts</a></li>
<li><a class="fdn-site-search-item" href="https://www.metrotimes.com/slideshows/">in Slideshows</a></li>
<li><a class="fdn-site-search-item" href="https://www.metrotimes.com/detroit/EventSearch">in Events</a></li>
<li><a class="fdn-site-search-item" href="https://www.metrotimes.com/detroit/LocationSearch">in Locations</a></li>
<li><a class="fdn-site-search-item" href="https://www.metrotimes.com/detroit/Search">All</a></li>
</ul>
</div>
<div class="fdn-site-search-submit-block ">
<button class="uk-button fdn-button-control fdn-site-search-submit">GO</button>
</div>
</form>
<script>
jQuery("#fdn-NavigationHorizontal-dropdown-hook")
.on("beforehide", function(){ return !jQuery(".fdn-site-search-input").is(":focus") })
</script>
<script>
(function(){
//
var componentId = 'NavigationHorizontal'
var defaultSearchUrl = 'https://www.metrotimes.com/detroit/Search'
var componentElement = jQuery('div[data-component-id='+componentId+']')
var searchForm = componentElement.find('form')
var searchInput = searchForm.find('input')
var searchLinks = searchForm.find('a')
//
searchForm.submit(function(e){
e.preventDefault()
window.location = defaultSearchUrl + '?keywords=' + searchInput.val()
})
//
searchLinks.on('click', function(e){
e.preventDefault()
window.location = jQuery(e.target).attr('href') + '?keywords=' + searchInput.val()
})
//
jQuery("#fdn-NavigationHorizontal-dropdown-hook")
.on("beforehide", function(){
return !jQuery(this).find(".fdn-site-search-input").is(":focus")
})
})()
</script>
</div></li>
</ul>
</nav>
<div id="offcanvas-slide-navigation" uk-offcanvas="overlay: true">
<div id="site-nav-target" class="fdn-nav-panel-block uk-offcanvas-bar">
<ul class="site-nav-source uk-width-1-1 uk-nav uk-nav-parent-icon" uk-nav="multiple: false;">
<li class="fdn-nav-parent uk-visible@m fdn-site-nav-home" id="offcanvas-Home"><a href="https://www.metrotimes.com/detroit/Home" target="_self">Home</a></li>
<li class="fdn-nav-parent uk-parent " id="offcanvas-LatestNewsViews">
<a href="https://www.metrotimes.com/news" target="_self">News &amp; Views<span uk-icon="chevron-left"></span></a>
<ul class="fdn-nav-list uk-nav-sub">
<li class="fdn-nav-item"><a href="https://www.metrotimes.com/news" target="_self" title>Latest News &amp; Views</a></li>
<li class="fdn-nav-item"><a href="https://www.metrotimes.com/topic/abortion-rights-30602057" target="_self" title>Abortion Rights</a></li>
<li class="fdn-nav-item"><a href="https://www.metrotimes.com/category/metro-detroit-news-2135230" target="_self" title>Metro Detroit News</a></li>
<li class="fdn-nav-item"><a href="https://www.metrotimes.com/category/michigan-news-29051050" target="_self" title>Michigan News</a></li>
<li class="fdn-nav-item"><a href="https://www.metrotimes.com/category/politics-elections-29051043" target="_self" title>Politics &amp; Elections</a></li>
<li class="fdn-nav-item"><a href="https://www.metrotimes.com/topic/flint-water-crisis-29050721" target="_self" title>Flint Water Crisis</a></li>
<li class="fdn-nav-item"><a href="https://www.metrotimes.com/category/icymi-27567459" target="_self" title>ICYMI</a></li>
<li class="fdn-nav-item"><a href="https://www.metrotimes.com/detroit/IssueArchives?issue=this%20week" target="_self" title>Digital Issue</a></li>
<li class="fdn-nav-item"><a href="https://www.metrotimes.com/detroit-guides" target="_self" title>Detroit Guides</a></li>
<li class="fdn-nav-item"><a href="https://www.metrotimes.com/slideshows/?section=2135207" target="_self" title>News Slideshows</a></li>
</ul>
</li>
<li class="fdn-nav-parent uk-parent " id="offcanvas-LatestArtsCulture">
<a href="https://www.metrotimes.com/arts" target="_self">Arts &amp; Culture<span uk-icon="chevron-left"></span></a>
<ul class="fdn-nav-list uk-nav-sub">
<li class="fdn-nav-item"><a href="https://www.metrotimes.com/arts" target="_self" title>Latest Arts &amp; Culture</a></li>
<li class="fdn-nav-item"><a href="https://www.metrotimes.com/category/arts-stories-interviews-2475566" target="_self" title>Arts Stories &amp; Interviews</a></li>
<li class="fdn-nav-item"><a href="https://www.metrotimes.com/category/things-to-do-27347026" target="_self" title>Things to Do</a></li>
<li class="fdn-nav-item"><a href="https://www.metrotimes.com/category/culture-2135219" target="_self" title>Culture</a></li>
<li class="fdn-nav-item"><a href="https://www.metrotimes.com/category/movies-2135216" target="_self" title>Movies</a></li>
<li class="fdn-nav-item"><a href="https://www.metrotimes.com/category/television-2135217" target="_self" title>Television</a></li>
<li class="fdn-nav-item"><a href="https://www.metrotimes.com/detroit/MovieTimes" target="_self" title>Movie Times</a></li>
<li class="fdn-nav-item"><a href="https://www.metrotimes.com/detroit/LocationSearch?locationSection=2124720&sortType=name" target="_self" title>Find a Theater</a></li>
<li class="fdn-nav-item"><a href="https://www.metrotimes.com/category/horoscopes-2199660" target="_self" title>Horoscopes</a></li>
<li class="fdn-nav-item"><a href="https://www.metrotimes.com/slideshows/?section=2124977" target="_self" title>Arts &amp; Culture Slideshows</a></li>
</ul>
</li>
<li class="fdn-nav-parent uk-parent " id="offcanvas-LatestFoodDrink">
<a href="https://www.metrotimes.com/food-drink" target="_self">Food &amp; Drink<span uk-icon="chevron-left"></span></a>
<ul class="fdn-nav-list uk-nav-sub">
<li class="fdn-nav-item"><a href="https://www.metrotimes.com/food-drink" target="_self" title>Latest Food &amp; Drink</a></li>
<li class="fdn-nav-item"><a href="https://www.metrotimes.com/category/food-news-2475586" target="_self" title>Food News</a></li>
<li class="fdn-nav-item"><a href="https://www.metrotimes.com/category/drink-news-29051025" target="_self" title>Drink News</a></li>
<li class="fdn-nav-item"><a href="https://www.metrotimes.com/category/restaurant-reviews-19138534" target="_self" title>Restaurant Reviews</a></li>
<li class="fdn-nav-item"><a href="https://www.metrotimes.com/detroit/LocationSearch?locationSection=2124727&guide=2124367" target="_self" title>Find a Restaurant</a></li>
<li class="fdn-nav-item"><a href="https://www.metrotimes.com/slideshows/?section=2124982" target="_self" title>Food &amp; Drink Slideshows</a></li>
</ul>
</li>
<li class="fdn-nav-parent uk-parent " id="offcanvas-LatestMusic">
<a href="https://www.metrotimes.com/music" target="_self">Music<span uk-icon="chevron-left"></span></a>
<ul class="fdn-nav-list uk-nav-sub">
<li class="fdn-nav-item"><a href="https://www.metrotimes.com/music" target="_self" title>Latest Music</a></li>
<li class="fdn-nav-item"><a href="https://www.metrotimes.com/category/music-23600534" target="_self" title>Music News</a></li>
<li class="fdn-nav-item"><a href="https://www.metrotimes.com/category/local-music-2135218" target="_self" title>Local Music</a></li>
<li class="fdn-nav-item"><a href="https://www.metrotimes.com/category/concert-announcements-27347032" target="_self" title>Concert Announcements</a></li>
<li class="fdn-nav-item"><a href="https://www.metrotimes.com/detroit/EventSearch?eventCategory=2167821&sortType=date&v=d" target="_self" title>Find a Concert</a></li>
<li class="fdn-nav-item"><a href="https://www.metrotimes.com/slideshows/?section=2124980" target="_self" title>Music Slideshows</a></li>
</ul>
</li>
<li class="fdn-nav-parent uk-parent " id="offcanvas-LatestWeed">
<a href="https://www.metrotimes.com/weed" target="_self">Weed<span uk-icon="chevron-left"></span></a>
<ul class="fdn-nav-list uk-nav-sub">
<li class="fdn-nav-item"><a href="https://www.metrotimes.com/weed" target="_self" title>Latest Weed</a></li>
<li class="fdn-nav-item"><a href="https://www.metrotimes.com/category/marijuana-news-2135229" target="_self" title>Marijuana News</a></li>
<li class="fdn-nav-item"><a href="https://www.metrotimes.com/category/canna-business-20864832" target="_self" title>Canna-Business</a></li>
<li class="fdn-nav-item"><a href="https://www.metrotimes.com/category/one-hitters-20864837" target="_self" title>One Hitters</a></li>
<li class="fdn-nav-item"><a href="https://www.metrotimes.com/detroit/LocationSearch?locationSection=20649182" target="_self" title>Business Directory</a></li>
<li class="fdn-nav-item"><a href="https://www.metrotimes.com/slideshows/?section=20864826" target="_self" title>Weed Slideshows</a></li>
</ul>
</li>
<li class="fdn-nav-parent uk-parent " id="offcanvas-BestOfHome">
<a href="https://www.metrotimes.com/best-of" target="_self">Best Of Detroit<span uk-icon="chevron-left"></span></a>
<ul class="fdn-nav-list uk-nav-sub">
<li class="fdn-nav-item"><a href="https://www.metrotimes.com/best-of" target="_self" title>Best Of Home</a></li>
<li class="fdn-nav-item"><a href="https://www.metrotimes.com/best-of/food" target="_self" title>Food</a></li>
<li class="fdn-nav-item"><a href="https://www.metrotimes.com/best-of/bars-clubs" target="_self" title>Bars &amp; Clubs</a></li>
<li class="fdn-nav-item"><a href="https://www.metrotimes.com/best-of/drinks" target="_self" title>Drinks</a></li>
<li class="fdn-nav-item"><a href="https://www.metrotimes.com/best-of/best-bet" target="_self" title>Best Bet</a></li>
<li class="fdn-nav-item"><a href="https://www.metrotimes.com/best-of/shops-services" target="_self" title>Shops &amp; Services</a></li>
<li class="fdn-nav-item"><a href="https://www.metrotimes.com/best-of/arts-entertainment" target="_self" title>Arts &amp; Entertainment</a></li>
<li class="fdn-nav-item"><a href="https://www.metrotimes.com/best-of/weed" target="_self" title>Weed</a></li>
</ul>
</li>
<li class="fdn-nav-parent uk-parent " id="offcanvas-TodaysEvents">
<a href="https://www.metrotimes.com/detroit/EventSearch" target="_self">Calendar<span uk-icon="chevron-left"></span></a>
<ul class="fdn-nav-list uk-nav-sub">
<li class="fdn-nav-item"><a href="https://www.metrotimes.com/detroit/EventSearch?narrowByDate=Today" target="_self" title>Today&#39;s Events</a></li>
<li class="fdn-nav-item"><a href="https://www.metrotimes.com/detroit/EventSearch?narrowByDate=This%20Weekend&sortType=date&v=d" target="_self" title>This Weekend</a></li>
<li class="fdn-nav-item"><a href="https://www.metrotimes.com/detroit/Events/AddEvent" target="_self" title>Submit an Event</a></li>
</ul>
</li>
<li class="fdn-nav-parent " id="offcanvas-Slideshows"><a href="https://www.metrotimes.com/slideshows" target="_self">Slideshows</a></li>
<li class="fdn-nav-parent uk-parent " id="offcanvas-Donate">
<a href="https://www.metrotimes.com/detroit/SupportLocalJournalism/Page" target="_self">Support<span uk-icon="chevron-left"></span></a>
<ul class="fdn-nav-list uk-nav-sub">
<li class="fdn-nav-item"><a href="https://www.metrotimes.com/detroit/SupportLocalJournalism/Page" target="_self" title>Donate</a></li>
<li class="fdn-nav-item"><a href="https://www.metrotimes.com/detroit/WhereToFindDetroitMetroTimes/Page" target="_self" title>Find Us in Print</a></li>
<li class="fdn-nav-item"><a href="https://www.metrotimes.com/detroit/NewsletterSignup/Page" target="_self" title>Subscribe</a></li>
<li class="fdn-nav-item"><a href="https://www.metrotimes.com/detroit/AdvertiseWithDetroitMetroTimes/Page" target="_self" title>Advertise</a></li>
<li class="fdn-nav-item"><a href="https://instagram.com/metrotimes" target="_blank" title>Instagram</a></li>
<li class="fdn-nav-item"><a href="https://www.twitter.com/metrotimes" target="_blank" title>Twitter</a></li>
<li class="fdn-nav-item"><a href="https://www.facebook.com/metrotimes" target="_blank" title>Facebook</a></li>
</ul>
</li>
<li class="fdn-nav-parent metrotimes" id="offcanvas-ContactUs"><a href="https://www.metrotimes.com/detroit/StaffDirectory/Page" target="_self">Contact Us</a></li>
<li class="fdn-nav-parent fdn-nav-login-NavigationHorizontal
fdn-login-loggedout-container" data-view="loggedout" style="display:none">
<a href="#LogIn">
<i class="fas fa-user"></i>&nbsp;Login
</a>
</li>
<li class="fdn-nav-parent uk-parent fdn-nav-logout-NavigationHorizontal
fdn-login-loggedin-container" data-view="loggedin" style="display: none;">
<a href="#">
<span class="uk-text-left" data-label="username">Username</span>
<i class="fas fa-user"></i>
<span uk-icon="chevron-left"></span>
</a>
<ul class="fdn-nav-list uk-nav-sub">
<li class="fdn-nav-item fdn-site-login-view-profile">
<a href="https://posting.metrotimes.com/detroit/MyProfile">
View Profile
</a>
</li>
<li class="fdn-nav-item fdn-site-login-edit-profile">
<a href="https://posting.metrotimes.com/detroit/Profile/MySettings">
Edit Profile
</a>
</li>
<li class="fdn-nav-item fdn-site-login-logout">
<a href="https://posting.metrotimes.com/detroit/Logout">
Log Out
</a>
</li>
</ul>
</li>
</ul>
</div>
</div>
<script>jQuery('body').append(jQuery('#offcanvas-slide-navigation'))</script>
<script> new Foundation.LoginRequiredComponent('#NavigationHorizontal') </script>
</div>
</div>
<div class="uk-hidden@m uk-margin-auto-left uk-margin-auto-vertical fdn-site-header-search-toggle">
<span class="fdn-nav-toggle uk-button" uk-toggle="target: #fdn-SiteSearchModalOnly-modal-hook">
<span class="uk-icon"><i class="fas fa-search fa-2x"></i></span>
</span>
<div class="GlobalHeader SiteSearchModalOnlyShellresponsive uk-root fdn-margin-vert SiteSearchModalOnly comp-shell-search" data-component-id="SiteSearchModalOnly">
<div id="fdn-SiteSearchModalOnly-modal-hook" class="fdn-site-search-modal" uk-modal>
<div class="uk-modal-dialog uk-modal-body">
<h2 class="uk-modal-title">Search</h2>
<button class="uk-modal-close uk-modal-close-default" type="button" uk-close></button>
<form action="https://www.metrotimes.com/detroit/Search" class="uk-flex uk-flex-wrap">
<div class="fdn-site-search-modal-input-block uk-width-1-1 uk-flex-none">
<div class="uk-search uk-search-default uk-width-1-1">
<span class="fdn-site-search-modal-icon" uk-search-icon></span>
<input class="fdn-site-search-modal-input ev-search-input uk-search-input" name="keywords" placeholder="Enter Keywords..." autocomplete="off" type="search" />
</div>
</div>
<div class="uk-width-expand">
<ul class="fdn-site-search-modal-list uk-nav uk-margin-remove">
<li>
<a class="fdn-site-search-modal-item" href="https://www.metrotimes.com/detroit/ArticleArchives">
in Articles &amp; Posts
</a>
</li>
<li>
<a class="fdn-site-search-modal-item" href="https://www.metrotimes.com/detroit/LocationSearch">
in Locations
</a>
</li>
<li>
<a class="fdn-site-search-modal-item" href="https://www.metrotimes.com/detroit/EventSearch">
in Events
</a>
</li>
<li>
<a class="fdn-site-search-modal-item" href="https://www.metrotimes.com/slideshows/">
in Slideshows
</a>
</li>
<li>
<a class="fdn-site-search-modal-item" href="https://www.metrotimes.com/detroit/Search">
All
</a>
</li>
</ul>
</div>
<div class="fdn-site-search-modal-submit-block uk-margin-auto-left uk-margin-auto-top uk-padding-xsmall-left">
<button class="uk-button fdn-button-control fdn-site-search-modal-submit">
GO
</button>
</div>
</form>
</div>
</div>
<script>
(function(){
//
var componentId = 'SiteSearchModalOnly'
var defaultSearchUrl = 'https://www.metrotimes.com/detroit/Search'
var componentElement = jQuery('div[data-component-id='+componentId+']')
var searchForm = componentElement.find('form')
var searchInput = searchForm.find('input')
var searchLinks = searchForm.find('a')
//
searchForm.submit(function(e){
e.preventDefault()
window.location = defaultSearchUrl + '?keywords=' + searchInput.val()
})
//
searchLinks.on('click', function(e){
e.preventDefault()
window.location = jQuery(e.target).attr('href') + '?keywords=' + searchInput.val()
})
//
jQuery("#fdn-SiteSearchModalOnly-dropdown-hook")
.on("beforehide", function(){
return !jQuery(this).find(".fdn-site-search-input").is(":focus")
})
})()
</script>
</div>
</div>
</div>
<script>
(() => {
var headerZone = jQuery('.ev-grid-zone.ev-header-zone');
var headerZoneFullStickyClass = `full-header-sticky`;
var headerZoneSmallStickyClass = `just-nav-sticky`;
var navScrollPosBreakPoint = 400;
var navScrollTimeout = null
var navScrollUpdateRate = 50;
var navScrollLastUpdate = 0;
var adjustNav = () => {
var isContentPage = jQuery('#ContentDefault').length > 0;
var offsetSelector = (isContentPage) ? '.fdn-content-body' : '.ev-grid-zone.ev-primary-zone'
var navScrollCollapseOffset = jQuery(offsetSelector).first().offset();
var navHeight = jQuery('.ev-grid-zone.ev-header-zone').height();
var navScrollPosBreakPoint = navScrollCollapseOffset ? navScrollCollapseOffset.top - navHeight : navHeight;
var isSmallDisplay = window.innerWidth < 998;
if (isSmallDisplay) {
headerZone.removeClass(headerZoneSmallStickyClass)
.removeClass(headerZoneFullStickyClass);
}
else if (window.scrollY <= navScrollPosBreakPoint) {
headerZone.removeClass(headerZoneSmallStickyClass)
.addClass(headerZoneFullStickyClass);
}
else {
headerZone.removeClass(headerZoneFullStickyClass)
.addClass(headerZoneSmallStickyClass);
}
navScrollLastUpdate = new Date().getTime();
// console.log(`adjustNav: navScrollLastUpdate === ${navScrollLastUpdate}`);
}
adjustNav();
jQuery(adjustNav);
jQuery(document).on('scroll', () => {
var timeToUpdate = new Date().getTime() > navScrollLastUpdate + navScrollUpdateRate;
if (timeToUpdate) {
adjustNav();
}
clearTimeout(navScrollTimeout);
navScrollTimeout = setTimeout(adjustNav, navScrollUpdateRate);
});
})();
</script>
</div>
</div>
</div>
<div class="ev-grid-zone ev-primary-zone">
<div class="ev-grid-col fdn-grid-main-single fdn-primary" data-ev-zone="MainTop">
<script>
if (Foundation.Ad && typeof(Foundation.Ad.showReskin) === 'function') {
googletag.cmd.push(function() {
Foundation.Ad.showReskin('DET_Reskin-1');
});
}
</script><div class="uk-width-1-1 uk-flex uk-flex-around uk-margin uk-margin-top" leaderboardheader-mobile-stub hidden>
</div>
<div class="ZoneA ContentDefault uk-inline uk-margin-remove-top uk-root fdn-margin-vert ContentRowMultiple comp-content-contentmultirow" data-component-id="ContentRowMultiple">
<div class="content-multiple-item" fdn-content-multi-item="34565910" fdn-content-multi-item-headline="Detroit&rsquo;s Mezcal restaurant goes beyond familiar Mexican fare" fdn-content-multi-item-permalink="/food-drink/detroits-mezcal-restaurant-goes-beyond-familiar-mexican-fare-34565910" fdn-content-multi-item-canonical="https://www.metrotimes.com/food-drink/detroits-mezcal-restaurant-goes-beyond-familiar-mexican-fare-34565910" fdn-content-multi-item-title="Detroit&rsquo;s Mezcal restaurant goes beyond familiar Mexican fare" fdn-content-multi-item-thumb="https://media1.metrotimes.com/metrotimes/imager/u/slideshow/34565917/food-review-mezcal_copy.jpg?cb=1699520641" fdn-content-multi-item-thumb-width="600" fdn-content-multi-item-thumb-height="314" fdn-content-multi-item-index="1" ga-dimension1="content" ga-dimension2="food" ga-dimension4="Jane Slaughter">
<div>
<div class="uk-position-relative uk-visible-toggle">
<div class="uk-hidden-hover uk-position-top-right uk-padding-xsmall uk-position-absolute">
</div>
<div class="uk-grid-small uk-flex-wrap uk-margin-xsmall-bottom fdn-content-multiple-item-topic-row" uk-grid>
<div>
<a href="/category/restaurant-reviews-19138534">Restaurant reviews</a>
</div>
</div>
<h1 class="fdn-content-headline uk-margin-remove">
Detroits Mezcal restaurant goes beyond familiar Mexican fare
</h1>
<h2 class="fdn-content-subheadline uk-margin-remove-bottom uk-margin-xsmall-top">
The second location opened in Midtown following the first in Ferndale
</h2>
<div class="uk-flex uk-margin-xsmall-top">
<p class="uk-width-1-2 uk-margin-xsmall-bottom fdn-content-infoline">
<span>By</span>
<a href="https://www.metrotimes.com/author/jane-slaughter" rel="author">
Jane Slaughter
</a> on
Thu, Nov 9, 2023 at 4:00 am
</p>
<div class="uk-flex-1 uk-margin-auto-left uk-margin-xsmall-top">
<div class="uk-width-1-1 uk-flex uk-flex-row uk-flex-middle uk-flex-right uk-grid-small fdn-content-multi-row-share-tools-small " uk-grid>
<div class fdn-share-button-news-tip>
<a class="fdn-share-news-tip" href="/cdn-cgi/l/email-protection#3044594043705d5544425f44595d55431e535f5d0f4345525a5553440d63555e541051107e55474310645940" uk-tooltip="title:Send a News Tip" aria-expanded="false">
<span class="fdn-share-icon-submit-news-tip">
Send a News Tip
</span>
</a>
</div>
<div fdn-share-button-reddit>
<a href="https://www.reddit.com/submit?title=Detroit%E2%80%99s%20Mezcal%20restaurant%20goes%20beyond%20familiar%20Mexican%20fare&amp;url=https%3A%2F%2Fwww.metrotimes.com%2Ffood-drink%2Fdetroits-mezcal-restaurant-goes-beyond-familiar-mexican-fare-34565910" uk-tooltip="title: Share on Reddit" onClick="window.open('https://www.reddit.com/submit?title=Detroit%E2%80%99s%20Mezcal%20restaurant%20goes%20beyond%20familiar%20Mexican%20fare&amp;url=https%3A%2F%2Fwww.metrotimes.com%2Ffood-drink%2Fdetroits-mezcal-restaurant-goes-beyond-familiar-mexican-fare-34565910','_blank','resizable,height=700,width=700'); return false;">
<span class="uk-icon-button fdn-icon-button-smaller fdn-share-icon-reddit"><i class="fab fa-reddit-alien"></i><span style="text-indent:-9999rem">Share on Reddit</span></span>
</a>
</div>
<div fdn-share-button-facebook>
<a href="https://www.facebook.com/sharer/sharer.php?u=https:%2F%2Fwww.metrotimes.com%2Ffood-drink%2Fdetroits-mezcal-restaurant-goes-beyond-familiar-mexican-fare-34565910&redirect_uri=https:%2F%2Fwww.metrotimes.com%2Ffood-drink%2Fdetroits-mezcal-restaurant-goes-beyond-familiar-mexican-fare-34565910&app_id=310950202407744" onClick="window.open('https://www.facebook.com/sharer/sharer.php?u=https:%2F%2Fwww.metrotimes.com%2Ffood-drink%2Fdetroits-mezcal-restaurant-goes-beyond-familiar-mexican-fare-34565910&redirect_uri=https:%2F%2Fwww.metrotimes.com%2Ffood-drink%2Fdetroits-mezcal-restaurant-goes-beyond-familiar-mexican-fare-34565910&app_id=310950202407744','_blank','resizable,height=700,width=600'); return false;" target="_blank" uk-tooltip="title: Share on Facebook" aria-expanded="false">
<span class="uk-icon-button fdn-icon-button-smaller fdn-share-icon-facebook">
<i class="fab fa-facebook-f"></i><span style="text-indent:-9999rem">Share on Facebook</span>
</span>
</a>
</div>
<script data-cfasync="false" src="/cdn-cgi/scripts/5c5dd728/cloudflare-static/email-decode.min.js"></script><script> dnLoadScript("https://platform.twitter.com/widgets.js", true); </script>
<div class fdn-share-button-twitter>
<a href="https://twitter.com/intent/tweet?url=https:%2F%2Fwww.metrotimes.com%2Ffood-drink%2Fdetroits-mezcal-restaurant-goes-beyond-familiar-mexican-fare-34565910&redirect_uri=https:%2F%2Fwww.metrotimes.com%2Ffood-drink%2Fdetroits-mezcal-restaurant-goes-beyond-familiar-mexican-fare-34565910&text=Detroit%E2%80%99s%20Mezcal%20restaurant%20goes%20beyond%20familiar%20Mexican%20fare" onClick="window.open('https://twitter.com/intent/tweet?url=https:%2F%2Fwww.metrotimes.com%2Ffood-drink%2Fdetroits-mezcal-restaurant-goes-beyond-familiar-mexican-fare-34565910&redirect_uri=https:%2F%2Fwww.metrotimes.com%2Ffood-drink%2Fdetroits-mezcal-restaurant-goes-beyond-familiar-mexican-fare-34565910&text=Detroit%E2%80%99s%20Mezcal%20restaurant%20goes%20beyond%20familiar%20Mexican%20fare','_blank','resizable,height=700,width=600'); return false;" uk-tooltip="title: Share on X" aria-expanded="false" class="fdn-share-icon-x">
<img alt="Share on X" class=" fdn-icon-button-smaller" src="/foundation/images/social/icon-x-round.png" loading="lazy" width="28" height="28">
</a>
</div>
<div fdn-share-button-nextdoor>
<a uk-tooltip="Share on Nextdoor" target="_blank" href="https://nextdoor.com/sharekit/?body=Detroit%E2%80%99s%20Mezcal%20restaurant%20goes%20beyond%20familiar%20Mexican%20fare%20-%20https%3A%2F%2Fwww.metrotimes.com%2Ffood-drink%2Fdetroits-mezcal-restaurant-goes-beyond-familiar-mexican-fare-34565910&amp;source=Detroit%20Metro%20Times"><img alt="Share on Nextdoor" class="fdn-share-icon-nextdoor fdn-icon-button-smaller" src="/foundation/images/social/icon-nextdoor.png" loading="lazy" width="28" height="28"></a>
</div>
<div class fdn-share-button-email>
<a href="/cdn-cgi/l/email-protection#3d024e485f57585e49007958494f525449180f0d7058494f52180f0d695450584e180e7c180f0d7958494f52544918780f18050d1804044e180f0d7058475e5c51180f0d4f584e495c484f5c5349180f0d5a52584e180f0d5f5844525359180f0d5b5c505451545c4f180f0d705845545e5c53180f0d5b5c4f581b5f52594400180d7c180d7c7958494f52544918780f18050d1804044e180f0d7058475e5c51180f0d4f584e495c484f5c5349180f0d5a52584e180f0d5f5844525359180f0d5b5c505451545c4f180f0d705845545e5c53180f0d5b5c4f58180d7c180d7c5549494d4e0712124a4a4a135058494f52495450584e135e5250125b52525910594f545356125958494f5254494e105058475e5c51104f584e495c484f5c5349105a52584e105f5844525359105b5c505451545c4f10505845545e5c53105b5c4f58100e09080b08040c0d180d7c180d7c180d7c" onclick uk-tooltip="title: Share via Email" aria-expanded="false" rel="nofollow">
<span class="uk-icon-button fdn-icon-button-smaller fdn-icon-tool-core fdn-share-icon-email">
<i class="fal fa-envelope"></i><span style="text-indent:-9999rem">Share via email</span>
</span>
</a>
</div>
<div class fdn-share-button-print>
<a href="https://www.metrotimes.com/detroit/Print?oid=34565910" target="_blank" uk-tooltip="title:Print" title aria-expanded="false">
<span class="uk-icon-button fdn-icon-button-smaller fdn-icon-tool-core fdn-share-icon-email">
<i class="fal fa-print"></i><span style="text-indent:-9999rem">Print</span>
</span>
</a>
</div>
<div class fdn-share-button-text-size>
<a class="fdn-text-size-toggle" href="#size" uk-tooltip="title:Change Font Size" aria-expanded="false" uk-toggle="target: .fdn-content-body;cls: fdn-content-body-large;">
<span class="uk-icon-button fdn-icon-button-smaller fdn-icon-tool-core fdn-share-icon-email">
<i class="fas fa-text-size"></i><span style="text-indent:-9999rem">Adjust text size</span>
</span>
</a>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="uk-width-1-1 uk-flex uk-flex-row">
<div class="uk-width-expand uk-flex uk-flex-column" main-column>
<div class="uk-width-1-1 uk-flex uk-flex-row">
<div class="uk-width-expand fdn-content-multi-row show-first-image">
<pre debug hidden>[
{
"name": "Ad - NativeInline - Injected",
"component": "29509126",
"insertPoint": "3",
"requiredCountToDisplay": "5"
},{
"name": "Real 1 Player (r2) - Inline",
"component": "29509125",
"insertPoint": "2/3",
"requiredCountToDisplay": "9"
}
]</pre>
<div class="ZoneA ContentDefault uk-root fdn-margin-vert ContentRowMultiple comp-content-contentmultirow" data-component-id="ContentRowMultiple">
<div class="fdn-content-body">
<div uk-lightbox class="uk-position-relative fdn-content-image-center contentImageCenter"> <a href="https://media2.metrotimes.com/metrotimes/imager/u/original/34565916/food-review-mezcal.jpg" rel="contentImg_gal-34565910" title="Torre De Mariscos (Seafood Tower) is among the unique menu items at Mezcal Mexican. - Mezcal Mexican Bar &amp; Kitchen" data-caption="<span>Torre De Mariscos (Seafood Tower) is among the unique menu items at Mezcal Mexican.</span>&nbsp;&nbsp;
<em>Mezcal Mexican Bar &amp; Kitchen</em>" class="uk-display-block uk-position-relative uk-visible-toggle"> <span class="fdn-button-enlarge uk-position-absolute
uk-position-top-right uk-hidden-hover"> click to enlarge </span> <img src="https://media2.metrotimes.com/metrotimes/imager/u/blog/34565916/food-review-mezcal.jpg?cb=1699388720" alt="Torre De Mariscos (Seafood Tower) is among the unique menu items at Mezcal Mexican. - Mezcal Mexican Bar &amp; Kitchen" width="660" height="591" loading="lazy" /> </a> <div class="fdn-caption-block uk-margin-auto" style="max-width: 660px"> <div class="fdn-image-credit"> Mezcal Mexican Bar & Kitchen </div> <div class="fdn-image-caption"> Torre De Mariscos (Seafood Tower) is among the unique menu items at Mezcal Mexican. </div> </div> </div>
<p>
Mezcal is huge right now. Mezcal and tequila, the two agave-based cousins, are now the most purchased spirit in the U.S. by value — more than our homegrown whiskey — with mezcal sales expected to grow from $1.47 billion last year to $2.39 billion by 2030.
</p>
<p>
A quick explainer: To be called tequila, the spirit must be distilled only from the blue agave plant, which grows in Jalisco and a few other places. Manufacturers can add other sugars — cane, fruit, grain — up to 49%. Mezcal can be made from any species of agave, but it must be 100% agave. Oaxaca is mezcals home base, though it may come from elsewhere.
</p>
<p>
The flavor of artisanal mezcal, made by small producers in small batches, is very dependent on “terroir.” Flavors will vary based on which other crops are growing amongst the agave, the molds and insects that invade the fermenting mash, the types of firewood or vessels used in the production process, different waters added from springs or rivers, different yeasts in the air. Contrary to what you read, the flavor is not necessarily smoky, though some are.
</p>
<p>
Guanajuato natives José Granados and Sandra Haro are making the most of this moment that mezcals having with their eponymous spots in Ferndale, which launched in 2022, and Midtown, which opened in the former Savant space over the summer. Sandra said she and Granados chose their mezcals to give guests a good selection of the different types of agave, such as cuishe and tobalá, and one of the distillation variations, pechuga, which involves a raw chicken breast. Most are from Oaxaca.
</p>
<p>
At the Detroit location, I didnt try the mezcal flights because (a) it would have broken the <i>MT</i>s budget and (b) confession: despite a dozen trips to Oaxaca and many, many attempts, Ive never learned to like the stuff. Call me a philistine, I dont mind. Instead I tried a Dead Sea Mule, but even the lime, grenadine, and ginger beer didnt completely disguise the gasoliney taste of the mezcal. I admire the aficionados who can wax poetic about reposado, añejo, pechuga, jabalí, and the rest. Try it, you might like it. Almost all the restaurants cocktails are made with mezcal or tequila.
</p>
<p>
The food menu includes familiar items and some that are less so. Since youre paying top dollar at a non-Southwest Detroit Mexican place, you should go for the latter.
</p>
<p>
The Mezcal Soup (which does not include mezcal) went immediately on my list of “best things I ate this year.” The creamy (because of sour cream) golden broth is full of shredded chicken and avocado slices that almost melt. Like every dish I tried, it has just the right amount of zip, not enough to burn you. A second soup, Sopa de Lima, is also good, with shredded chicken, lots of flavors going on, and the astringent lime is the kicker.
</p>
<p>
If youve been to Mexico youve seen people lined up at stands in the town square in the evenings, buying elotes: corn on the cob slathered with mayo, crema, cotija cheese, and chili powder. Mezcal Mexican does esquites, which is the same with the corn scraped off the cob into a pretty bowl; its a bit sweet with a kick, recommended.
</p>
<p>
An empanada was much more highly stuffed than the usual, well-fried, with a good salsa. All three of the house salsas are complex, especially the grassy salsa verde and the just-right “mild.”
</p>
<p>
I was less enthusiastic about a taco al pastor for $4.50, the price youd pay for three elsewhere — and it included only one little tortilla. Ive had better. There are 11 tacos to choose from and some sound interesting, like a fish taco with beer butter, but no way am I eating a taco on a flour tortilla.
</p>
<p>
You can get nachos if you must. Or potstickers, described as “Oriental tortilla.”
</p>
<p>
Theres also a Torta Ahogada (drowned), where the sandwich is actually soaked in a thin tomato sauce — a Guadalajara specialty. Ive never seen the attraction, but its authentic.
</p>
<p>
We tried Aguachile de Ribeye, six ounces of fatty (in a good sense) beef atop cucumber slices with red onion, which uses an unusual spice combination. Aguachile is usually a soupy shrimp and chiles dish, so here the chef is riffing.
</p>
<p>
I was happy with a generous “Mole Dish,” which includes three gorditas (thick fried tortillas), but instead of being stuffed, they are topped with a giant mound of shredded chicken and dressed with a delectable sweet-spicy mole from a Mexico City recipe.
</p>
<p>
A memela, or toasted cake, was interesting for its size — 12 inches across. I think of memelas as little snacks — often theyre called memelitas — and not likely to be so upscale as to include meat. The thickish masa is pinched up on the sides like a pie crust, and filled with beans and cheese. These came with chewy steak and plenty of cotija.
</p>
<p>
For dessert I was tickled by a sweet corn ice cream that had been frozen in a mold to look exactly like corn on the cob, served on a corn leaf. Tres leches cake, big enough for two, was not the best Ive had; I like my tres leches to be pure rich dairy, no cinnamon. Arroz con leche and flan are other possibilities.
</p>
<p>
The Mariachi Mexico 2020 quartet plays every other Sunday and they are a treat — really good voices, and they take requests.
</p>
<p>
The other Mezcal Mexican is at 201 E. Nine Mile, Ferndale. Its menu as of this writing was quite different from Midtowns.
</p>
<div class="fdn-inline-connection fdn-inline-connection-location uk-card uk-card-body uk-card-default uk-card-small uk-margin-small"> <div class="fdn-inline-connection-title-block"> <h5 class="fdn-inline-connection-title">Location Details</h5> </div> <div class="uk-flex"> <div class="uk-width-1-2 uk-width-3-4@s uk-width-5-6@m uk-position-relative"> <h4 class="fdn-inline-connection-headline"> <a href="https://www.metrotimes.com/detroit/mezcal-mexican-bar-and-kitchen/Location?oid=34565912"> Mezcal Mexican Bar & Kitchen </a> </h4> <p class="fdn-inline-split-list fdn-teaser-infoline"> <span> 51 W. Forest St., Detroit </span> <span> Detroit </span> </p> <p class="fdn-teaser-infoline"> <span> 313-974-7441 </span> </p> <div class="fdn-teaser-infoline"> <span class="fdn-teaser-badge"> 1 article </span> </div> </div> <div class="uk-width-1-2 uk-width-1-4@s uk-width-1-5@m"> </div> </div> </div>
<div class="fdn-inline-connection fdn-inline-connection-location uk-card uk-card-body uk-card-default uk-card-small uk-margin-small"> <div class="fdn-inline-connection-title-block"> <h5 class="fdn-inline-connection-title">Location Details</h5> </div> <div class="uk-flex"> <div class="uk-width-1-2 uk-width-3-4@s uk-width-5-6@m uk-position-relative"> <h4 class="fdn-inline-connection-headline"> <a href="https://www.metrotimes.com/detroit/mezcal-mexican-bar-and-kitchen/Location?oid=34565913"> Mezcal Mexican Bar & Kitchen </a> </h4> <p class="fdn-inline-split-list fdn-teaser-infoline"> <span> 201 E. Nine Mile Rd., Ferndale </span> <span> Oakland County </span> </p> <p class="fdn-teaser-infoline"> <span> 248-268-3915 </span> </p> <div class="fdn-teaser-infoline"> <span class="fdn-teaser-badge"> 1 article </span> </div> </div> <div class="uk-width-1-2 uk-width-1-4@s uk-width-1-5@m"> </div> </div> </div>
<p>
<i><b><a href="https://www.metrotimes.com/detroit/NewsletterSignup/Page">Subscribe to Metro Times newsletters</a>.<br>
<br>
Follow us: <a href="https://news.google.com/publications/CAAiEBaz4BbOsacMp1gOcdQTFu0qFAgKIhAWs-AWzrGnDKdYDnHUExbt?hl=en-US&amp;gl=US&amp;ceid=US%3Aen">Google News</a> | <a href="https://www.newsbreak.com/@c/1599766?s=01">NewsBreak</a> | <a href="https://www.reddit.com/r/DetroitMetroTimes/">Reddit</a> | <a href="https://instagram.com/metrotimes">Instagram</a> | <a href="https://www.facebook.com/metrotimes">Facebook </a> | <a href="https://www.twitter.com/metrotimes">Twitter</a></b></i>
</p>
</div>
<script data-cfasync="false" src="/cdn-cgi/scripts/5c5dd728/cloudflare-static/email-decode.min.js"></script><script>
Foundation.ParagraphTool = Foundation.ParagraphTool || function (element) {
// Compile and store usable paragraph endings that are good for element insertion
// Avoides paragraph insertions immediately following a header or block element
// Includes paragraph endings before a <div>
this.bodyContainer = jQuery(element);
this.textNodeMatch = new RegExp('^(#text|A|I|B)$','i');
this.getPreviousNonEmptySibling = function (currentNode) {
let prevNode = currentNode ? currentNode.previousSibling : null;
let prevNodeFound = false;
while (prevNode && !prevNodeFound) {
let isText = prevNode.nodeType === Node.TEXT_NODE;
// Empty text node. Move on to the next node
if (isText && prevNode.nodeValue.trim() === '') {
prevNode = prevNode.previousSibling;
}
else {
prevNodeFound = true;
}
}
return prevNode;
}
this.getNextNonEmptySibling = function (currentNode) {
let nextNode = currentNode ? currentNode.nextSibling : null;
let nextNodeFound = false;
while (nextNode && !nextNodeFound) {
let isText = nextNode.nodeType === Node.TEXT_NODE;
// Empty text node. Move on to the next node
if (isText && nextNode.nodeValue.trim() === '') {
nextNode = nextNode.nextSibling;
}
else {
nextNodeFound = true;
}
}
return nextNode;
}
this.isDoubleBrParagraphBreak = function (currentNode) {
let prevNode = this.getPreviousNonEmptySibling(currentNode);
let prevPrevNode = this.getPreviousNonEmptySibling(prevNode);
if (currentNode && prevNode && prevPrevNode) {
let currentNodeIsBr = currentNode.nodeName === 'BR';
let prevNodeIsBr = prevNode.nodeName === 'BR';
let prevPrevNodeIsText = prevPrevNode.nodeName.match(this.textNodeMatch) !== null;
let isBrParagraphBreak = prevPrevNodeIsText && prevNodeIsBr && currentNodeIsBr;
if (isBrParagraphBreak) {
return true;
}
}
return false;
}
this.isBrParagraphBreakBeforeBlockElement = function (currentNode) {
let prevNode = this.getPreviousNonEmptySibling(currentNode);
let nextNode = this.getNextNonEmptySibling(currentNode);
if (prevNode && currentNode && nextNode) {
let prevNodeIsText = prevNode.nodeName.match(this.textNodeMatch) !== null;
let currentNodeIsBr = currentNode.nodeName.match(/^BR$/i) !== null;
let nextNodeIsBlock = nextNode.nodeName.match(/^DIV$/i) !== null;
let isParagraphBreakBeforeBlock = prevNodeIsText && currentNodeIsBr && nextNodeIsBlock;
if (isParagraphBreakBeforeBlock) {
return true;
}
}
return false;
}
this.isParagraphBreak = function (currentNode) {
let prevNode = this.getPreviousNonEmptySibling(currentNode);
if (currentNode && prevNode) {
let currentNodeIsP = currentNode.nodeName === 'P';
let currentNodeIsNotHeader = jQuery(currentNode).children().length
let prevNodeIsNotBlock = prevNode.nodeName.match(/^H\d|IMG|DIV|BLOCKQUOTE|UL|OL|hr$/i) === null;
// Check for only one <B> or <strong> tag and empty text nodes as children
let isPHeader = false;
if (currentNodeIsP && currentNode.childNodes.length >= 3) {
let textNodesHaveText = false;
let brStrongElementCount = 0;
let otherElementCount = 0;
currentNode.childNodes.forEach((item)=> {
if (item.nodeType === Node.TEXT_NODE) {
if (item.nodeValue.trim() !== '') {
textNodesHaveText = true;
}
}
else if (item.nodeType === Node.ELEMENT_NODE) {
if (item.nodeName.match(/^B|STRONG$/i) !== null) {
brStrongElementCount++;
}
else {
otherElementCount++;
}
}
})
if (brStrongElementCount === 1 && textNodesHaveText === false && otherElementCount === 0) {
isPHeader = true;
}
}
let isParagraphBreak = prevNodeIsNotBlock && currentNodeIsP && !isPHeader;
if (isParagraphBreak) {
return true;
}
}
return false;
}
this.isBlockAfterParagraph = function (currentNode) {
if (!currentNode) { return false; }
const prevNode = this.getPreviousNonEmptySibling(currentNode);
if (!prevNode) { return false; }
const currentNodeIsValidBlock = currentNode.nodeName.match(/^H\d|IMG|DIV|BLOCKQUOTE|UL|OL|hr$/i) !== null;
if (!currentNodeIsValidBlock) { return false; }
const prevNodeIsParagraph = prevNode.nodeName === 'P';
if (prevNodeIsParagraph) { return true; }
const prevNodeIsDoubleBr = this.isDoubleBrParagraphBreak(prevNode);
if (prevNodeIsDoubleBr) { return true; }
return false;
}
let myParagraphTool = this
this.paragraphEndNodes = myParagraphTool.bodyContainer.first().contents().filter(function(index, element) {
let isText = this.nodeType === Node.TEXT_NODE;
let isElement = this.nodeType === Node.ELEMENT_NODE;
// Empty text node. Move on
if (isText && this.nodeValue.trim() === '') {
return false;
}
let currentNode = this;
if (myParagraphTool.isParagraphBreak(currentNode)) { return true; }
if (myParagraphTool.isDoubleBrParagraphBreak(currentNode)) { return true; }
if (myParagraphTool.isBrParagraphBreakBeforeBlockElement(currentNode)) { return true; }
if (myParagraphTool.isBlockAfterParagraph(currentNode)) { return true; }
return false;
})
this.getParagraphEndNodeCount = function () {
return this.paragraphEndNodes.length;
}
this.insertElemenAtIndex = function (element, index) {
let isValidIndex = index < this.paragraphEndNodes.length;
if (isValidIndex) {
let currentNode = this.getNodeAtIndex(index);
if (this.isDoubleBrParagraphBreak(currentNode)
|| this.isBrParagraphBreakBeforeBlockElement(currentNode)) {
if (jQuery(element).get(0).tagName.match(/SCRIPT/i) !== null) {
jQuery('<br>').insertAfter(this.paragraphEndNodes[index]);
jQuery('<br>').insertAfter(this.paragraphEndNodes[index]);
}
else {
jQuery('div.fdn-content-body').append('<div line-height-check>&nbsp;</div>')
let lineHeight = jQuery('[line-height-check]').get(0).clientHeight;
jQuery('[line-height-check]').remove()
if (jQuery(element).prop('tagName').match(/HIDDEN/i) !== null) {
jQuery(element).children('div').last().css({ marginBottom: `${lineHeight*2}px` });
}
else {
jQuery(element).css({
marginTop: `${lineHeight*2}px`,
marginBottom: `${lineHeight}px`
});
}
}
}
jQuery(element).insertBefore(this.paragraphEndNodes[index]);
}
else {
console.warn('Foundation.ParagraphTool.insertElemenAt: invalid insertion index', index);
}
}
this.insertElemenAtEnd = function (element) {
if (this.paragraphEndNodes.length) {
let lastNode = this.getNodeAtIndex(this.paragraphEndNodes.length -1);
if (this.isDoubleBrParagraphBreak(lastNode)
|| this.isBrParagraphBreakBeforeBlockElement(lastNode)) {
if (jQuery(element).get(0).tagName.match(/SCRIPT/i) !== null) {
jQuery('<br>').insertAfter(this.paragraphEndNodes[index]);
jQuery('<br>').insertAfter(this.paragraphEndNodes[index]);
}
else {
jQuery('div.fdn-content-body').append('<div line-height-check>&nbsp;</div>')
let lineHeight = jQuery('[line-height-check]').get(0).clientHeight;
jQuery('[line-height-check]').remove()
if (jQuery(element).prop('tagName').match(/HIDDEN/i) !== null) {
jQuery(element).children('div').last().css({ marginBottom: `${lineHeight*2}px` });
}
else {
jQuery(element).css({
marginTop: `${lineHeight*2}px`,
marginBottom: `${lineHeight}px`
});
}
}
}
}
this.bodyContainer.append(element);
}
this.getNodeAtIndex = function (index) {
return this.paragraphEndNodes[index];
}
}
</script>
<script>
window.Foundation = window.Foundation || {};
Foundation.Content = Foundation.Content || {};
Foundation.Content['34565910'] = Foundation.Content['34565910'] || {};
Foundation.Content['34565910'].inlineComponents = [{
componentOid: '29509126',
parentWrapperClass: '',
insertPoint: '3',
startingPoint: '1',
requiredCountToDisplay: '5',
componentHtml: "<div ad-slot-div-id=\"DET_NativeInline\"\ndisplay-targets=\"all\"\nclass=\"uk-width-1-1 uk-text-center uk-margin\"\nad-deferred\nhidden>\n<script>\n\/\/ Define the slot\ngoogletag.cmd.push(function() {\nconst currentElement = jQuery('[ad-slot-div-id=\"DET_NativeInline\"]').first();\nconst adTemplateId = currentElement.attr('ad-slot-div-id');\nconst adTemplateItem = Foundation.Ad.getSlotConfigTemplate(adTemplateId);\nconst generatedDivId = Foundation.Ad.generateDivIdFromSlotConfigPresets(adTemplateId);\ncurrentElement.attr('ad-slot-div-id', generatedDivId);\ncurrentElement.attr('id', generatedDivId);\n\/\/ console.info(`[FdnAd] adTemplateId: ${adTemplateId}, generatedDivId: ${generatedDivId}, currentDivId: ${currentElement.attr('ad-slot-div-id')}`);\n\/\/ console.info(`[FdnAd] adTemplateItem && generatedDivId ${adTemplateItem !== null && generatedDivId !== null} ${adTemplateItem} ${generatedDivId}`);\nif (adTemplateItem !== null && generatedDivId !== null) {\nif (adTemplateItem.type.match(\/display|native\/i) !== null) {\nFoundation.Ad.slots[generatedDivId] = googletag.defineSlot(adTemplateItem.adUnit, adTemplateItem.sizes, generatedDivId)\n}\nelse if (adTemplateItem.type.match(\/outofpage\/i) !== null) {\nFoundation.Ad.slots[generatedDivId] = googletag.defineOutOfPageSlot(adTemplateItem.adUnit, generatedDivId)\n}\nif (adTemplateItem.targeting) {\nadTemplateItem.targeting.forEach(function (target, index) {\nFoundation.Ad.slots[generatedDivId].setTargeting(target.key, target.value)\n})\n}\nFoundation.Ad.slots[generatedDivId].addService(googletag.pubads())\nif (adTemplateItem.sizeMap) {\nFoundation.Ad.slots[generatedDivId].defineSizeMapping(Foundation.Ad.CreateSizeMapping(adTemplateItem.sizeMap))\n}\nFoundation.Ad.slots[generatedDivId].slotLoaded = false\n}\n\/\/ Small delay and queue up the show ad funciton\nsetTimeout(()=>{\ngoogletag.cmd.push(function() {\nFoundation.Ad.showAd(currentElement);\n});\n}, 200);\n});\n<\/script>\n<\/div>",
},{
componentOid: '29509125',
parentWrapperClass: '',
insertPoint: '2/3',
startingPoint: '1',
requiredCountToDisplay: '9',
componentHtml: "\n<script r1-script-hook>\n(function () {\nvar realOneHookElement = document.querySelector('[r1-script-hook]');\nvar realOneScriptElement = document.createElement('script');\nrealOneScriptElement.defer = true;\nrealOneScriptElement.src = 'https:\/\/www.voqally.com\/hub\/app\/r.js?key=18435a475af57fd3a59260a303a6397d';\ndocument.querySelector('[r1-script-hook]').after(realOneScriptElement);\nrealOneHookElement.remove();\n})();\n<\/script>\n",
}];
Foundation.Content['34565910'].setupInlineComponents = function (callback) {
setTimeout(() => {
let contentBody = jQuery('[fdn-content-multi-item="34565910"] .fdn-content-body');
// For multiple content scenarios
if (contentBody.length) {
Foundation.Content['34565910'].paragraphTool = new window.Foundation.ParagraphTool(contentBody);
}
// Assume only a single content
else {
contentBody = jQuery('.fdn-content-body');
Foundation.Content['34565910'].paragraphTool = new window.Foundation.ParagraphTool(contentBody);
}
var myParagraphTool = Foundation.Content['34565910'].paragraphTool
Foundation.Content['34565910'].inlineComponents.forEach((item,index) => {
if (item.parentWrapperClass.trim() === '') {
var componentElement = jQuery(item.componentHtml);
}
else {
var componentElement = jQuery(`<div class="${item.parentWrapperClass.trim()}">${item.componentHtml}</div>`);
}
var paragraphCount = myParagraphTool.getParagraphEndNodeCount();
// No need to insert if there aren't enough paragaphs
if (paragraphCount >= parseInt(item.requiredCountToDisplay)) {
// Matches specific paragraph insertion indexes
if (item.insertPoint.match(/^\d+$/) !== null) {
var insertIndex = parseInt(item.insertPoint) - 1;
// Insert within content
if (insertIndex < paragraphCount) {
myParagraphTool.insertElemenAtIndex(componentElement, insertIndex);
}
// Append to the end if the insert point is beyond the paragraph count
else {
myParagraphTool.insertElemenAtEnd(componentElement)
}
}
// Matches for 1/2, 1/4, 2/3, 5/6, etc
else if (item.insertPoint.match(/^[1223456]\/[23456]$/) !== null) {
var fractionMatch = new RegExp(/^([123456])(?:\/)([23456]$)/);
var fractionPart = parseInt(item.insertPoint.match(fractionMatch)[1]);
var fractionWhole = parseInt(item.insertPoint.match(fractionMatch)[2]);
var fractionValue = fractionPart / fractionWhole;
var fractionIndex = Math.floor(myParagraphTool.paragraphEndNodes.length * fractionValue) - 1;
myParagraphTool.insertElemenAtIndex(componentElement, fractionIndex);
}
// Matches for every Nth insertion point
else if (item.insertPoint.match(/^\d*th$/i) !== null) {
var intervalIndex = parseInt(item.insertPoint.match(/^(\d*)th$/i)[1]);
var startingIndex = parseInt(item.startingPoint) - 1;
var insertionMax = parseInt(item.maxInsertions) || 100;
var insertionCount = 0;
for (var i = startingIndex; i < myParagraphTool.paragraphEndNodes.length && insertionCount < insertionMax; i++) {
if ((i - startingIndex) % intervalIndex === 0) {
let currentNode = myParagraphTool.getNodeAtIndex(i);
const clonedComponent = componentElement.clone();
myParagraphTool.insertElemenAtIndex(clonedComponent, i);
insertionCount++;
}
}
}
}
});
Foundation.Content['34565910'].setupInlineComponents = function () { return true; };
if (typeof callback === 'function') {
callback();
}
}, 200);
}
Foundation.Content['34565910'].previewInsertionPoints = function () {
var myParagraphTool = Foundation.Content['34565910'].paragraphTool
myParagraphTool.paragraphEndNodes.each((index, item) => {
const insertionPointPlaceholder = jQuery(`
<div style="width:100%;padding:10px;background-color:lightgreen;border:1px solid darkgreen;box-sizing:border-box;">
Insertion point ${index+1}
</div>`)
myParagraphTool.insertElemenAtIndex(insertionPointPlaceholder, index);
});
return 'Paragraph insertion placeholders applied.';
}
</script>
<script>
jQuery(function () {
Foundation.Content['34565910'].setupInlineComponents();
});
</script>
</div>
</div>
</div>
<div class="uk-width-1-1">
<div class="ZoneA SiteSearchTagsresponsive uk-root fdn-margin-vert SiteSearchTags comp-sitesearch-tags" data-component-id="SiteSearchTags">
<div class="uk-flex uk-flex-row">
<h3 class="fdn-link-tag-title fdn-line-height-med uk-flex-top uk-flex-none uk-margin-xsmall-right uk-margin-remove-bottom">
Tags:
</h3>
<ul class="uk-list uk-margin-remove uk-flex-1 fdn-line-height-small">
<li class="uk-text-nowrap fdn-line-height-med uk-inline uk-margin-remove-top fdn-link-tag">
<a href="https://www.metrotimes.com/detroit/Search?tag=Mexican%20restaurants%20in%20Detroit">Mexican restaurants in Detroit</a>,
</li>
<li class="uk-text-nowrap fdn-line-height-med uk-inline uk-margin-remove-top fdn-link-tag">
<a href="https://www.metrotimes.com/detroit/Search?tag=Mexican%20restaurants%20in%20Ferndale">Mexican restaurants in Ferndale</a>,
</li>
<li class="uk-text-nowrap fdn-line-height-med uk-inline uk-margin-remove-top fdn-link-tag">
<a href="https://www.metrotimes.com/detroit/Search?tag=mezcal%20bars%20in%20metro%20Detroit">mezcal bars in metro Detroit</a>,
</li>
<li class="uk-text-nowrap fdn-line-height-med uk-inline uk-margin-remove-top fdn-link-tag">
<a href="https://www.metrotimes.com/detroit/Search?tag=Mezcal%20Mexican%20Bar%20%26%20Kitchen">Mezcal Mexican Bar & Kitchen</a>,
</li>
<li class="uk-text-nowrap fdn-line-height-med uk-inline uk-margin-remove-top fdn-link-tag">
<a href="https://www.metrotimes.com/detroit/Search?tag=Mezcal%20Mexican%20Bar%20%26%20Kitchen">Mezcal Mexican Bar & Kitchen</a>
</li>
</ul>
</div>
</div>
<div class="ZoneA AbouttheAuthorresponsive uk-root fdn-margin-vert AbouttheAuthor comp-content-abouttheauthor" data-component-id="AbouttheAuthor">
<div class="fdn-component-header-block uk-margin ">
<h3 class="fdn-component-header-text uk-margin-remove ">
About The Author
</h3>
</div>
<div class="uk-flex uk-margin-xsmall-bottom">
<div class="uk-width-1-4 uk-padding-small uk-padding-remove-vertical uk-padding-remove-left">
<a class="no-foundation-imgeditor" href="https://www.metrotimes.com/author/jane-slaughter">
<img src="/imager/jane-slaughter/b/r-bigsquare/2135244/d3bb/241105265_10158073946227330_3325431453924450110_n-5.jpg" alt width="400" height="400" class="no-foundation-imgeditor memberThumb" loading="lazy" />
</a>
</div>
<div class="uk-width-expand">
<h4 class="fdn-teaser-headline">
<a href="https://www.metrotimes.com/author/jane-slaughter">
Jane Slaughter
</a>
</h4>
<div class="uk-margin-small uk-flex uk-flex-row uk-flex-wrap uk-child-width-auto">
<div class>
<a href="/cdn-cgi/l/email-protection#c0a5a1b480ada5b4b2afb4a9ada5b3eea3afad" uk-tooltip="eat@metrotimes.com">
<span class="uk-margin-xsmall-right uk-icon-button fdn-icon-button-smaller"><i class="fal fa-envelope fa-sm"></i></span>
<div style="text-indent: -9999rem;font-size: 0; height: 0;">Email Jane Slaughter</div>
</a>
</div>
</div>
<div class="bio">
Jane Slaughter is a former editor of <i>Labor Notes</i> and co-author of <i>Secrets of a Successful Organizer</i>. Her writing has also appeared in <i>The Nation</i>, <i>The Progressive</i>, <i>Monthly Review</i>, and <i>In These Times</i>.
</div>
</div>
</div>
</div>
<div class="ZoneA Scrolldowntoreadmorearticlesresponsive uk-root fdn-margin-vert Scrolldowntoreadmorearticles comp-" data-component-id="Scrolldowntoreadmorearticles">
Scroll to read more Restaurant reviews articles
</div>
<div ad-slot-div-id="DET_NativeEndOfArticle" display-targets="all" class="uk-width-1-1 uk-text-center uk-margin" ad-deferred hidden>
<script data-cfasync="false" src="/cdn-cgi/scripts/5c5dd728/cloudflare-static/email-decode.min.js"></script><script>
// Define the slot
googletag.cmd.push(function() {
const currentElement = jQuery('[ad-slot-div-id="DET_NativeEndOfArticle"]').first();
const adTemplateId = currentElement.attr('ad-slot-div-id');
const adTemplateItem = Foundation.Ad.getSlotConfigTemplate(adTemplateId);
const generatedDivId = Foundation.Ad.generateDivIdFromSlotConfigPresets(adTemplateId);
currentElement.attr('ad-slot-div-id', generatedDivId);
currentElement.attr('id', generatedDivId);
// console.info(`[FdnAd] adTemplateId: ${adTemplateId}, generatedDivId: ${generatedDivId}, currentDivId: ${currentElement.attr('ad-slot-div-id')}`);
// console.info(`[FdnAd] adTemplateItem && generatedDivId ${adTemplateItem !== null && generatedDivId !== null} ${adTemplateItem} ${generatedDivId}`);
if (adTemplateItem !== null && generatedDivId !== null) {
if (adTemplateItem.type.match(/display|native/i) !== null) {
Foundation.Ad.slots[generatedDivId] = googletag.defineSlot(adTemplateItem.adUnit, adTemplateItem.sizes, generatedDivId)
}
else if (adTemplateItem.type.match(/outofpage/i) !== null) {
Foundation.Ad.slots[generatedDivId] = googletag.defineOutOfPageSlot(adTemplateItem.adUnit, generatedDivId)
}
if (adTemplateItem.targeting) {
adTemplateItem.targeting.forEach(function (target, index) {
Foundation.Ad.slots[generatedDivId].setTargeting(target.key, target.value)
})
}
Foundation.Ad.slots[generatedDivId].addService(googletag.pubads())
if (adTemplateItem.sizeMap) {
Foundation.Ad.slots[generatedDivId].defineSizeMapping(Foundation.Ad.CreateSizeMapping(adTemplateItem.sizeMap))
}
Foundation.Ad.slots[generatedDivId].slotLoaded = false
}
// Small delay and queue up the show ad funciton
setTimeout(()=>{
googletag.cmd.push(function() {
Foundation.Ad.showAd(currentElement);
});
}, 200);
});
</script>
</div>
</div>
</div>
<div class="uk-width-auto uk-visible@m uk-margin-left" style="width: 300px;">
<div class="ZoneA TrendingContentAllSectionsresponsive trending-by-day uk-root fdn-margin-vert TrendingContentAllSections comp-landing-trending" data-component-id="TrendingContentAllSections">
<div class="fdn-component-header-block uk-margin ">
<h3 class="fdn-component-header-text uk-margin-remove ">
Trending
</h3>
</div>
<ul class="pres-ContentListSquareBrief uk-list uk-list-divider">
<li class>
<div class="uk-flex">
<div class="uk-flex-1 uk-margin-remove">
<a href="https://www.metrotimes.com/news/most-us-voters-join-rashida-tlaibs-call-for-a-ceasefire-in-gaza-according-to-polls-34564164">
<p class="fdn-teaser-headline">
Most U.S. voters join Rashida Tlaibs call for a ceasefire in Gaza, according to polls
</p>
</a>
<div class="fdn-teaser-infoline fdn-inline-split-list">
<p>
By Lee DeVito
</p>
<time>
Nov 7, 2023
</time>
</div>
</div>
<div class="fdn-pres-image uk-width-1-3 uk-width-1-4@xs uk-flex-first">
<a href="https://www.metrotimes.com/news/most-us-voters-join-rashida-tlaibs-call-for-a-ceasefire-in-gaza-according-to-polls-34564164">
<img src="https://media1.metrotimes.com/metrotimes/imager/most-us-voters-join-rashida-tlaibs-call-for-a-ceasefire-in-gaza-according-to-polls/u/r-bigsquare/34564525/shutterstock_1397745368.jpg?cb=1699375182" alt="U.S. Rep. Rashida Tlaib is the lone Palestinian American in Congress." width="400" height="400" loading="lazy" />
</a>
</div>
</div>
</li>
<li class>
<div class="uk-flex">
<div class="uk-flex-1 uk-margin-remove">
<a href="https://www.metrotimes.com/music/detroit-music-scene-blasts-omar-s-following-alleged-assault-on-supercoolwicked-34571600">
<p class="fdn-teaser-headline">
Detroit music scene blasts Omar S following alleged assault on Supercoolwicked
</p>
</a>
<div class="fdn-teaser-infoline fdn-inline-split-list">
<p>
By Randiah Camille Green
</p>
<time>
Nov 8, 2023
</time>
</div>
</div>
<div class="fdn-pres-image uk-width-1-3 uk-width-1-4@xs uk-flex-first">
<a href="https://www.metrotimes.com/music/detroit-music-scene-blasts-omar-s-following-alleged-assault-on-supercoolwicked-34571600">
<img src="https://media1.metrotimes.com/metrotimes/imager/detroit-music-scene-blasts-omar-s-following-alleged-assault-on-supercoolwicked/u/r-bigsquare/34571608/dsc06872.jpg?cb=1699454805" alt="Omar S outside his FXHE Records HQ." width="400" height="400" loading="lazy" />
</a>
</div>
</div>
</li>
</ul>
</div>
<div ad-slot-div-id="DET_TowerInlineATF" display-targets="all" class="uk-width-1-1 uk-flex uk-flex-around uk-margin" ad-deferred hidden>
<script>
// Define the slot
googletag.cmd.push(function() {
const currentElement = jQuery('[ad-slot-div-id="DET_TowerInlineATF"]').first();
const adTemplateId = currentElement.attr('ad-slot-div-id');
const adTemplateItem = Foundation.Ad.getSlotConfigTemplate(adTemplateId);
const generatedDivId = Foundation.Ad.generateDivIdFromSlotConfigPresets(adTemplateId);
currentElement.attr('ad-slot-div-id', generatedDivId);
currentElement.attr('id', generatedDivId);
// console.info(`[FdnAd] adTemplateId: ${adTemplateId}, generatedDivId: ${generatedDivId}, currentDivId: ${currentElement.attr('ad-slot-div-id')}`);
// console.info(`[FdnAd] adTemplateItem && generatedDivId ${adTemplateItem !== null && generatedDivId !== null} ${adTemplateItem} ${generatedDivId}`);
if (adTemplateItem !== null && generatedDivId !== null) {
if (adTemplateItem.type.match(/display|native/i) !== null) {
Foundation.Ad.slots[generatedDivId] = googletag.defineSlot(adTemplateItem.adUnit, adTemplateItem.sizes, generatedDivId)
}
else if (adTemplateItem.type.match(/outofpage/i) !== null) {
Foundation.Ad.slots[generatedDivId] = googletag.defineOutOfPageSlot(adTemplateItem.adUnit, generatedDivId)
}
if (adTemplateItem.targeting) {
adTemplateItem.targeting.forEach(function (target, index) {
Foundation.Ad.slots[generatedDivId].setTargeting(target.key, target.value)
})
}
Foundation.Ad.slots[generatedDivId].addService(googletag.pubads())
if (adTemplateItem.sizeMap) {
Foundation.Ad.slots[generatedDivId].defineSizeMapping(Foundation.Ad.CreateSizeMapping(adTemplateItem.sizeMap))
}
Foundation.Ad.slots[generatedDivId].slotLoaded = false
}
// Small delay and queue up the show ad funciton
setTimeout(()=>{
googletag.cmd.push(function() {
Foundation.Ad.showAd(currentElement);
});
}, 200);
});
</script>
</div>
<div class="ZoneA NewsletterSignupresponsive uk-root fdn-margin-vert NewsletterSignup comp-landing-newslettersignup" data-component-id="NewsletterSignup">
<div class="fdn-component-header-block uk-margin ">
<h3 class="fdn-component-header-text uk-margin-remove ">
Newsletters
</h3>
</div>
<h4 class="uk-margin-remove-top uk-margin-small-bottom uk-text-bold">Join Detroit Metro Times Newsletters</h4>
<p class="uk-margin-remove">Subscribe now to get the latest news delivered right to your inbox.</p>
<div class="uk-text-center">
<a class="uk-flex-inline uk-flex-center uk-flex-middle uk-button fdn-button-control uk-margin-small-top" href="https://www.metrotimes.com/detroit/NewsletterSignup/Page">
<i class="fal fa-newspaper"></i> <span class="uk-margin-xsmall-left">Sign Up Now</span>
</a>
</div>
</div>
<div ad-slot-div-id="DET_300x250" display-targets="all" class="uk-width-1-1 uk-flex uk-flex-around uk-margin" ad-deferred hidden>
<script>
// Define the slot
googletag.cmd.push(function() {
const currentElement = jQuery('[ad-slot-div-id="DET_300x250"]').first();
const adTemplateId = currentElement.attr('ad-slot-div-id');
const adTemplateItem = Foundation.Ad.getSlotConfigTemplate(adTemplateId);
const generatedDivId = Foundation.Ad.generateDivIdFromSlotConfigPresets(adTemplateId);
currentElement.attr('ad-slot-div-id', generatedDivId);
currentElement.attr('id', generatedDivId);
// console.info(`[FdnAd] adTemplateId: ${adTemplateId}, generatedDivId: ${generatedDivId}, currentDivId: ${currentElement.attr('ad-slot-div-id')}`);
// console.info(`[FdnAd] adTemplateItem && generatedDivId ${adTemplateItem !== null && generatedDivId !== null} ${adTemplateItem} ${generatedDivId}`);
if (adTemplateItem !== null && generatedDivId !== null) {
if (adTemplateItem.type.match(/display|native/i) !== null) {
Foundation.Ad.slots[generatedDivId] = googletag.defineSlot(adTemplateItem.adUnit, adTemplateItem.sizes, generatedDivId)
}
else if (adTemplateItem.type.match(/outofpage/i) !== null) {
Foundation.Ad.slots[generatedDivId] = googletag.defineOutOfPageSlot(adTemplateItem.adUnit, generatedDivId)
}
if (adTemplateItem.targeting) {
adTemplateItem.targeting.forEach(function (target, index) {
Foundation.Ad.slots[generatedDivId].setTargeting(target.key, target.value)
})
}
Foundation.Ad.slots[generatedDivId].addService(googletag.pubads())
if (adTemplateItem.sizeMap) {
Foundation.Ad.slots[generatedDivId].defineSizeMapping(Foundation.Ad.CreateSizeMapping(adTemplateItem.sizeMap))
}
Foundation.Ad.slots[generatedDivId].slotLoaded = false
}
// Small delay and queue up the show ad funciton
setTimeout(()=>{
googletag.cmd.push(function() {
Foundation.Ad.showAd(currentElement);
});
}, 200);
});
</script>
</div>
</div>
</div>
</div>
<div ad-slot-div-id="DET_Billboard" display-targets="all" class="uk-width-1-1 uk-flex uk-flex-around uk-margin-top uk-margin-bottom" ad-deferred hidden>
<script>
// Define the slot
googletag.cmd.push(function() {
const currentElement = jQuery('[ad-slot-div-id="DET_Billboard"]').first();
const adTemplateId = currentElement.attr('ad-slot-div-id');
const adTemplateItem = Foundation.Ad.getSlotConfigTemplate(adTemplateId);
const generatedDivId = Foundation.Ad.generateDivIdFromSlotConfigPresets(adTemplateId);
currentElement.attr('ad-slot-div-id', generatedDivId);
currentElement.attr('id', generatedDivId);
// console.info(`[FdnAd] adTemplateId: ${adTemplateId}, generatedDivId: ${generatedDivId}, currentDivId: ${currentElement.attr('ad-slot-div-id')}`);
// console.info(`[FdnAd] adTemplateItem && generatedDivId ${adTemplateItem !== null && generatedDivId !== null} ${adTemplateItem} ${generatedDivId}`);
if (adTemplateItem !== null && generatedDivId !== null) {
if (adTemplateItem.type.match(/display|native/i) !== null) {
Foundation.Ad.slots[generatedDivId] = googletag.defineSlot(adTemplateItem.adUnit, adTemplateItem.sizes, generatedDivId)
}
else if (adTemplateItem.type.match(/outofpage/i) !== null) {
Foundation.Ad.slots[generatedDivId] = googletag.defineOutOfPageSlot(adTemplateItem.adUnit, generatedDivId)
}
if (adTemplateItem.targeting) {
adTemplateItem.targeting.forEach(function (target, index) {
Foundation.Ad.slots[generatedDivId].setTargeting(target.key, target.value)
})
}
Foundation.Ad.slots[generatedDivId].addService(googletag.pubads())
if (adTemplateItem.sizeMap) {
Foundation.Ad.slots[generatedDivId].defineSizeMapping(Foundation.Ad.CreateSizeMapping(adTemplateItem.sizeMap))
}
Foundation.Ad.slots[generatedDivId].slotLoaded = false
}
// Small delay and queue up the show ad funciton
setTimeout(()=>{
googletag.cmd.push(function() {
Foundation.Ad.showAd(currentElement);
});
}, 200);
});
</script>
</div>
<div class="content-multiple-item" fdn-content-multi-item="34501352" fdn-content-multi-item-headline="The smashburger at Kelly&rsquo;s Bar ends the &lsquo;best burger in Hamtramck&rsquo; debate" fdn-content-multi-item-permalink="/food-drink/the-smashburger-at-kellys-bar-ends-the-best-burger-in-hamtramck-debate-34501352" fdn-content-multi-item-canonical="https://www.metrotimes.com/food-drink/the-smashburger-at-kellys-bar-ends-the-best-burger-in-hamtramck-debate-34501352" fdn-content-multi-item-title="The smashburger at Kelly&rsquo;s Bar ends the &lsquo;best burger in Hamtramck&rsquo; debate" fdn-content-multi-item-thumb="https://media1.metrotimes.com/metrotimes/imager/u/slideshow/34501354/kelly_s-burg.jpg?cb=1699214649" fdn-content-multi-item-thumb-width="600" fdn-content-multi-item-thumb-height="419" fdn-content-multi-item-index="2" ga-dimension1="content" ga-dimension2="food" ga-dimension4="Tom Perkins" fdn-content-multi-item-loader="fetch">
</div>
<div ad-slot-div-id="DET_Billboard" display-targets="all" class="uk-width-1-1 uk-flex uk-flex-around uk-margin-top uk-margin-bottom" ad-deferred hidden>
<script>
// Define the slot
googletag.cmd.push(function() {
const currentElement = jQuery('[ad-slot-div-id="DET_Billboard"]').first();
const adTemplateId = currentElement.attr('ad-slot-div-id');
const adTemplateItem = Foundation.Ad.getSlotConfigTemplate(adTemplateId);
const generatedDivId = Foundation.Ad.generateDivIdFromSlotConfigPresets(adTemplateId);
currentElement.attr('ad-slot-div-id', generatedDivId);
currentElement.attr('id', generatedDivId);
// console.info(`[FdnAd] adTemplateId: ${adTemplateId}, generatedDivId: ${generatedDivId}, currentDivId: ${currentElement.attr('ad-slot-div-id')}`);
// console.info(`[FdnAd] adTemplateItem && generatedDivId ${adTemplateItem !== null && generatedDivId !== null} ${adTemplateItem} ${generatedDivId}`);
if (adTemplateItem !== null && generatedDivId !== null) {
if (adTemplateItem.type.match(/display|native/i) !== null) {
Foundation.Ad.slots[generatedDivId] = googletag.defineSlot(adTemplateItem.adUnit, adTemplateItem.sizes, generatedDivId)
}
else if (adTemplateItem.type.match(/outofpage/i) !== null) {
Foundation.Ad.slots[generatedDivId] = googletag.defineOutOfPageSlot(adTemplateItem.adUnit, generatedDivId)
}
if (adTemplateItem.targeting) {
adTemplateItem.targeting.forEach(function (target, index) {
Foundation.Ad.slots[generatedDivId].setTargeting(target.key, target.value)
})
}
Foundation.Ad.slots[generatedDivId].addService(googletag.pubads())
if (adTemplateItem.sizeMap) {
Foundation.Ad.slots[generatedDivId].defineSizeMapping(Foundation.Ad.CreateSizeMapping(adTemplateItem.sizeMap))
}
Foundation.Ad.slots[generatedDivId].slotLoaded = false
}
// Small delay and queue up the show ad funciton
setTimeout(()=>{
googletag.cmd.push(function() {
Foundation.Ad.showAd(currentElement);
});
}, 200);
});
</script>
</div>
<div class="content-multiple-item" fdn-content-multi-item="34455806" fdn-content-multi-item-headline="At Clawson&rsquo;s Three Cats restaurant, the menu is as eclectic as the decor" fdn-content-multi-item-permalink="/food-drink/at-clawsons-three-cats-restaurant-the-menu-and-decor-are-eclectic-34455806" fdn-content-multi-item-canonical="https://www.metrotimes.com/food-drink/at-clawsons-three-cats-restaurant-the-menu-and-decor-are-eclectic-34455806" fdn-content-multi-item-title="At Clawson&rsquo;s Three Cats restaurant, the menu is as eclectic as the decor" fdn-content-multi-item-thumb="https://media1.metrotimes.com/metrotimes/imager/u/slideshow/34455808/threecats_scallops.jpg?cb=1698325805" fdn-content-multi-item-thumb-width="600" fdn-content-multi-item-thumb-height="377" fdn-content-multi-item-index="3" ga-dimension1="content" ga-dimension2="food" ga-dimension4="Jane Slaughter" fdn-content-multi-item-loader="fetch">
</div>
<div ad-slot-div-id="DET_Billboard" display-targets="all" class="uk-width-1-1 uk-flex uk-flex-around uk-margin-top uk-margin-bottom" ad-deferred hidden>
<script>
// Define the slot
googletag.cmd.push(function() {
const currentElement = jQuery('[ad-slot-div-id="DET_Billboard"]').first();
const adTemplateId = currentElement.attr('ad-slot-div-id');
const adTemplateItem = Foundation.Ad.getSlotConfigTemplate(adTemplateId);
const generatedDivId = Foundation.Ad.generateDivIdFromSlotConfigPresets(adTemplateId);
currentElement.attr('ad-slot-div-id', generatedDivId);
currentElement.attr('id', generatedDivId);
// console.info(`[FdnAd] adTemplateId: ${adTemplateId}, generatedDivId: ${generatedDivId}, currentDivId: ${currentElement.attr('ad-slot-div-id')}`);
// console.info(`[FdnAd] adTemplateItem && generatedDivId ${adTemplateItem !== null && generatedDivId !== null} ${adTemplateItem} ${generatedDivId}`);
if (adTemplateItem !== null && generatedDivId !== null) {
if (adTemplateItem.type.match(/display|native/i) !== null) {
Foundation.Ad.slots[generatedDivId] = googletag.defineSlot(adTemplateItem.adUnit, adTemplateItem.sizes, generatedDivId)
}
else if (adTemplateItem.type.match(/outofpage/i) !== null) {
Foundation.Ad.slots[generatedDivId] = googletag.defineOutOfPageSlot(adTemplateItem.adUnit, generatedDivId)
}
if (adTemplateItem.targeting) {
adTemplateItem.targeting.forEach(function (target, index) {
Foundation.Ad.slots[generatedDivId].setTargeting(target.key, target.value)
})
}
Foundation.Ad.slots[generatedDivId].addService(googletag.pubads())
if (adTemplateItem.sizeMap) {
Foundation.Ad.slots[generatedDivId].defineSizeMapping(Foundation.Ad.CreateSizeMapping(adTemplateItem.sizeMap))
}
Foundation.Ad.slots[generatedDivId].slotLoaded = false
}
// Small delay and queue up the show ad funciton
setTimeout(()=>{
googletag.cmd.push(function() {
Foundation.Ad.showAd(currentElement);
});
}, 200);
});
</script>
</div>
<script>
if (typeof Foundation === 'undefined') window.Foundation = {};
// Prevent the browser from trying to scroll to the last scroll position before reload
if (history.scrollRestoration) {
history.scrollRestoration = 'manual'
}
Foundation.MultiItem = Foundation.MultiItem || function (options = {}) {
var multiItemId = options.id || ''
var componentSelector = options.componentSelector || '[data-component-id="ContentRowMultiple"]'
var itemSelector = options.itemSelector || '[fdn-content-multi-item]'
var scrollOffset = options.scrollOffset || -105
var contentOidAttr = 'fdn-content-multi-item'
var headlineAttr = 'fdn-content-multi-item-headline'
var permaLinkAttr = 'fdn-content-multi-item-permalink'
var canonicalAttr = 'fdn-content-multi-item-canonical'
var titleAttr = 'fdn-content-multi-item-title'
var thumbAttr = 'fdn-content-multi-item-thumb'
var thumbWidthAttr = 'fdn-content-multi-item-thumb-width'
var thumbHeightAttr = 'fdn-content-multi-item-thumb-height'
var contentLoaderAttr = 'fdn-content-multi-item-loader'
var originUrl = window.location.href
var contentComponentAjaxUrl = '/food-drink/detroits-mezcal-restaurant-goes-beyond-familiar-mexican-fare-34565910';
var contentComponentCacheBust = '1699520642';
var currentIndex = 0
var cmInstance = this
var onScrollTimeout = null
var onItemChangeTimeout = null
function ActionQueue () {
var actions = []
var doingActions = false
var doActions = function () {
var nextAction = dequeue()
if (nextAction) {
doingActions = true
var result = nextAction()
doActions()
}
else {
doingActions = false
}
}
function dequeue () {
return actions.shift()
}
this.push = function (action) {
if (typeof action === 'function') {
actions.push(action)
if (!doingActions) {
doActions()
}
}
}
}
this.queue = new ActionQueue()
this.items = []
jQuery(componentSelector).find(itemSelector).each(function () {
cmInstance.items.push(this)
})
// Percentage of view from top to bottom of window
this.inViewThreshold = options.inViewThreshold || 0.5
Object.defineProperties(this, {
'id': {
get: function() {
return multiItemId || 'idNotSupplied'
}
},
'currentItemIndex': {
get: function() {
return currentIndex || 0
}
},
'currentItem': {
get: function() {
return jQuery(this.items[currentIndex])[0] || null
}
},
'currentPermaLink': {
get: function() {
return (jQuery(this.currentItem).attr(permaLinkAttr) || '').trim()
}
},
'currentCanonical': {
get: function() {
return (jQuery(this.currentItem).attr(canonicalAttr) || '').trim()
}
},
'currentThumb': {
get: function() {
return (jQuery(this.currentItem).attr(thumbAttr) || '').trim()
}
},
'currentTitle': {
get: function() {
return (jQuery(this.currentItem).attr(titleAttr) || '').trim()
}
},
'currentHeadline': {
get: function() {
return (jQuery(this.currentItem).attr(headlineAttr) || '').trim()
}
}
})
this.headlineAtIndex = function (index) {
return (jQuery(this.items[index]).attr(headlineAttr) || '').trim()
}
this.permalinkAtIndex = function (index) {
return (jQuery(this.items[index]).attr(permaLinkAttr) || '').trim()
}
this.setToIndex = function (index) {
var nextIndex = Math.min(this.items.length - 1, index) // Clamp higher range of items
nextIndex = Math.max(0, nextIndex) // Clamp lower range of items
var topOffset = jQuery(this.items[nextIndex]).offset().top + scrollOffset
window.scrollTo({ top: topOffset, behavior: 'smooth' })
if (currentIndex !== nextIndex) {
clearTimeout(onScrollTimeout)
onScrollTimeout = setTimeout(function() {
// console.log('Foundation.MultiItem setToIndex')
updateFurthestDownInView()
}, 100);
}
}
if (typeof options.onItemChange === 'function') {
this.onItemChange = options.onItemChange
}
else {
this.onItemChange = function () {}
}
var fireEvent = function (name, options) {
var jQevent = jQuery.Event(name)
for (var property in options){
jQevent[property] = options[property]
}
jQuery(document).trigger(jQevent)
}
var checkInView = function (element) {
var boundingRect = jQuery(element)[0].getBoundingClientRect()
var viewHeight = window.innerHeight
var viewThreshold = viewHeight * cmInstance.inViewThreshold
var boundingTop = boundingRect.top
var boundingBottom = boundingRect.top + boundingRect.height
var topInView = boundingTop > 0 && boundingTop < viewThreshold
var bottomInView = boundingBottom > 0 && boundingBottom < viewThreshold
var middleCoversView = boundingTop < 0 && boundingBottom > viewThreshold
if (topInView || bottomInView || middleCoversView) {
return true
}
return false
}
var updateFurthestDownInView = function () {
var furthestInViewItem = null
var furthestInViewIndex = 0
cmInstance.items.forEach(function (currentItem, index) {
var currentInViewItem = jQuery(currentItem)
// console.log(currentInViewItem)
if (checkInView(currentInViewItem)) {
if (furthestInViewItem === null) {
furthestInViewItem = currentInViewItem
furthestInViewIndex = index
}
else {
var furthestInView = furthestInViewItem.position().top
var currentInViewItemTop = currentInViewItem.position().top
if (currentInViewItemTop > furthestInView) {
furthestInViewItem = currentInViewItem
furthestInViewIndex = index
}
}
}
})
if (furthestInViewIndex !== currentIndex) {
currentIndex = furthestInViewIndex
fireEvent('foundation:multiitem:itemchange')
}
}
var fetchUnloadedItems = function () {
var itemContainer = jQuery('[' + contentLoaderAttr + '="fetch"]').first()
if (itemContainer.length) {
var contentOid = itemContainer.attr(contentOidAttr)
var params = {
ajaxComponent: 'ContentRowMultiple',
loadItemOid: contentOid,
itemIndex: jQuery(`${itemSelector}`).index(itemContainer[0]) + 1,
cb: contentComponentCacheBust,
}
var presentResult = function (resultHTML, loaderValue, callback) {
console.log('itemContainer', itemContainer.attr(contentLoaderAttr));
if (loaderValue == 'remove') {
itemContainer.removeAttr(contentLoaderAttr)
}
else {
itemContainer.attr(contentLoaderAttr, loaderValue)
}
itemContainer.slideUp({
duration: 300,
done: function () {
//
var resultElements = jQuery.parseHTML(resultHTML, document, true)
itemContainer.empty().append(resultElements).slideDown({
duration: 300,
done: function() {
if (typeof callback === 'function') {
setTimeout(() => {
callback()
}, 100)
}
},
})
},
})
}
jQuery.ajax({
url: contentComponentAjaxUrl,
type: 'GET',
data: params,
dataType: 'json',
beforeSend: function () { presentResult('<div uk-spinner></div>', 'fetching') },
success: function (data) {
// console.log(data.result, data.error, data)
if (data) {
if (data.error) {
// presentResult('Trouble loading content.', 'error')
}
else if (data.result) {
if (typeof Foundation.Content === 'undefined') {
presentResult(data.result, 'remove');
}
else {
presentResult(data.result, 'remove', () => {
// Foundation.Content[contentOid].setupInlineComponents();
if (Foundation.Image.Editor && typeof Foundation.Image.Editor.setupEditButtons === 'function') {
Foundation.Image.Editor.setupEditButtons();
}
});
}
}
else {
// presentResult('How did we get here?', 'error')
}
}
else {
// presentResult('No result or error returned from content request.', 'error')
}
},
complete: function () {
cmInstance.queue.push(fetchUnloadedItems);
},
error: function (error) {
// presentResult('Ajax request error.', 'error')
}
})
}
}
cmInstance.queue.push(fetchUnloadedItems)
jQuery(document).on('scroll resize', function () {
// Prevent rapid firing of event stuff
clearTimeout(onScrollTimeout)
onScrollTimeout = setTimeout(function() {
// console.log('Foundation.MultiItem onScroll event')
updateFurthestDownInView()
}, 100);
})
jQuery(document).on('foundation:multiitem:itemchange', function () {
// Prevent rapid firing of event stuff
clearTimeout(onItemChangeTimeout)
onItemChangeTimeout = setTimeout(function() {
// console.log('Foundation.MultiItem foundation:multiitem:itemchange event ')
cmInstance.onItemChange()
}, 100);
})
};
Foundation.MultiItems = Foundation.MultiItems || {
add: function (multiItem) {
Foundation.MultiItems[multiItem.id] = multiItem;
}
};
Foundation.MultiItems.add(new Foundation.MultiItem({
id: 'ContentRowMultiple',
onItemChange: function () {
if (this.currentPermaLink) {
var state = {}
var title = ''
var url = this.currentPermaLink
history.pushState(state, title, url)
}
if (this.currentCanonical) {
document.querySelector('meta[property*=og\\:url]').href = this.currentCanonical
document.querySelector('link[rel*=canonical]').href = this.currentCanonical
}
if (this.currentThumb) {
document.querySelector('link[rel*=image_src]').href = this.currentThumb
document.querySelector('meta[name*=thumbnail]').content = this.currentThumb
document.querySelector('meta[property*=og\\:image]').content = this.currentThumb
document.querySelector('meta[name*=twitter\\:image]').content = this.currentThumb
}
if (this.currentTitle) {
document.querySelector('title').text = this.currentTitle
}
// Google track pageview
if (typeof ga === 'function') {
ga('set', 'location', window.location.href)
for (let i = 1; i <= 4; i++) {
let currentDimension = jQuery(Foundation.MultiItems["ContentRowMultiple"].currentItem).attr('ga-dimension'+i)
if (typeof currentDimension === 'string') {
ga('set', 'dimension' + i, currentDimension)
}
else {
ga('set', 'dimension' + i, '')
}
}
ga('send', 'pageview')
}
if (typeof (Foundation.Ad.slots['DET_LeaderboardHeader-1']) === 'object' && !false) {
Foundation.Ad.refresh('DET_LeaderboardHeader-1')
}
if (typeof (Foundation.Ad.slots['DET_Footer-1']) === 'object') {
Foundation.Ad.showFooter('DET_Footer-1');
}
}
}))
</script>
</div>
<div class="ZoneA ContentDefault trending-by-day uk-root fdn-margin-vert TrendingContentHome comp-landing-trending" data-component-id="TrendingContentHome">
<div class="fdn-component-header-block uk-margin ">
<h3 class="fdn-component-header-text uk-margin-remove ">
Trending
</h3>
</div>
<div class="pres-ContentTileRectangleBriefVariableAcross uk-grid uk-grid-small" uk-grid="true" data-ev-presentation="ContentTileRectangleBriefVariableAcross" uk-height-match=".fdn-pres-image">
<div class="uk-width-1-2@xs uk-width-1-2@s uk-width-1-4@m">
<a class="uk-flex uk-flex-column fdn-decoration-remove" href="https://www.metrotimes.com/food-drink/talking-what-else-turkey-34558151">
<div>
<p class="fdn-teaser-headline">
Talking (what else?) turkey
</p>
<div class="fdn-teaser-infoline fdn-inline-split-list">
<p>
By Robert Stempkowski
</p>
<time>
Nov 8, 2023
</time>
</div>
</div>
<div class="uk-margin-small-bottom uk-flex-first">
<img src="https://media2.metrotimes.com/metrotimes/imager/talking-what-else-turkey/u/golden-s/34558155/chowhound-shutterstock_334603004.jpg?cb=1699306418" alt="You can do this." width="600" height="371" loading="lazy" />
</div>
</a>
</div>
<div class="uk-width-1-2@xs uk-width-1-2@s uk-width-1-4@m">
<a class="uk-flex uk-flex-column fdn-decoration-remove" href="https://www.metrotimes.com/food-drink/the-smashburger-at-kellys-bar-ends-the-best-burger-in-hamtramck-debate-34501352">
<div>
<p class="fdn-teaser-headline">
The smashburger at Kellys Bar ends the best burger in Hamtramck debate
</p>
<div class="fdn-teaser-infoline fdn-inline-split-list">
<p>
By Tom Perkins
</p>
<time>
Nov 2, 2023
</time>
</div>
</div>
<div class="uk-margin-small-bottom uk-flex-first">
<img src="https://media1.metrotimes.com/metrotimes/imager/the-smashburger-at-kellys-bar-ends-the-best-burger-in-hamtramck-debate/u/golden-s/34501354/kelly_s-burg.jpg?cb=1699214649" alt="Among the smashburger options in Hamtramck, Kelly&rsquo;s Bar has quite possibly the best." width="600" height="371" loading="lazy" />
</div>
</a>
</div>
<div class="uk-width-1-2@xs uk-width-1-2@s uk-width-1-4@m">
<a class="uk-flex uk-flex-column fdn-decoration-remove" href="https://www.metrotimes.com/food-drink/lets-do-dinner-detroit-restaurant-week-to-raise-money-for-local-nonprofit-34515080">
<div>
<p class="fdn-teaser-headline">
Lets Do Dinner-Detroit restaurant week to raise money for local nonprofit
</p>
<div class="fdn-teaser-infoline fdn-inline-split-list">
<p>
By Layla McMurtrie
</p>
<time>
Nov 1, 2023
</time>
</div>
</div>
<div class="uk-margin-small-bottom uk-flex-first">
<img src="https://media2.metrotimes.com/metrotimes/imager/lets-do-dinner-detroit-restaurant-week-to-raise-money-for-local-nonprofit/u/golden-s/34516119/atheneum-145.jpg?cb=1698861476" alt="Greektown&rsquo;s Symposia is one of the restaurants participating in &ldquo;Let&rsquo;s Do Dinner-Detroit.&rdquo;" width="600" height="371" loading="lazy" />
</div>
</a>
</div>
<div class="uk-width-1-2@xs uk-width-1-2@s uk-width-1-4@m">
<a class="uk-flex uk-flex-column fdn-decoration-remove" href="https://www.metrotimes.com/food-drink/shell-shockd-tacos-is-open-for-late-night-munchies-in-midtown-34515075">
<div>
<p class="fdn-teaser-headline">
Shell Shockd Tacos is open for late-night munchies in Midtown
</p>
<div class="fdn-teaser-infoline fdn-inline-split-list">
<p>
By Randiah Camille Green
</p>
<time>
Nov 1, 2023
</time>
</div>
</div>
<div class="uk-margin-small-bottom uk-flex-first">
<img src="https://media1.metrotimes.com/metrotimes/imager/shell-shockd-tacos-is-open-for-late-night-munchies-in-midtown/u/golden-s/34515079/shell_shock_d_tacos.jpg?cb=1699049539" alt="Shell Shock&rsquo;d Tacos on Willis Street in Midtown." width="600" height="371" loading="lazy" />
</div>
</a>
</div>
</div>
</div>
<div class="componentGrid-ThreeAcross uk-width-1-1 uk-flex uk-flex-row uk-flex-wrap fdn-component-grid-row@m" uk-height-match data-component-grid-id="ContentFooterTriplet">
<div class="uk-width-1-1 uk-width-1-3@m uk-flex uk-flex-column uk-inline fdn-component-grid-zone">
<div ad-slot-div-id="DET_TowerAfterInfinite" display-targets="all" class="uk-width-1-1 uk-flex uk-flex-around uk-margin" ad-deferred hidden>
<script>
// Define the slot
googletag.cmd.push(function() {
const currentElement = jQuery('[ad-slot-div-id="DET_TowerAfterInfinite"]').first();
const adTemplateId = currentElement.attr('ad-slot-div-id');
const adTemplateItem = Foundation.Ad.getSlotConfigTemplate(adTemplateId);
const generatedDivId = Foundation.Ad.generateDivIdFromSlotConfigPresets(adTemplateId);
currentElement.attr('ad-slot-div-id', generatedDivId);
currentElement.attr('id', generatedDivId);
// console.info(`[FdnAd] adTemplateId: ${adTemplateId}, generatedDivId: ${generatedDivId}, currentDivId: ${currentElement.attr('ad-slot-div-id')}`);
// console.info(`[FdnAd] adTemplateItem && generatedDivId ${adTemplateItem !== null && generatedDivId !== null} ${adTemplateItem} ${generatedDivId}`);
if (adTemplateItem !== null && generatedDivId !== null) {
if (adTemplateItem.type.match(/display|native/i) !== null) {
Foundation.Ad.slots[generatedDivId] = googletag.defineSlot(adTemplateItem.adUnit, adTemplateItem.sizes, generatedDivId)
}
else if (adTemplateItem.type.match(/outofpage/i) !== null) {
Foundation.Ad.slots[generatedDivId] = googletag.defineOutOfPageSlot(adTemplateItem.adUnit, generatedDivId)
}
if (adTemplateItem.targeting) {
adTemplateItem.targeting.forEach(function (target, index) {
Foundation.Ad.slots[generatedDivId].setTargeting(target.key, target.value)
})
}
Foundation.Ad.slots[generatedDivId].addService(googletag.pubads())
if (adTemplateItem.sizeMap) {
Foundation.Ad.slots[generatedDivId].defineSizeMapping(Foundation.Ad.CreateSizeMapping(adTemplateItem.sizeMap))
}
Foundation.Ad.slots[generatedDivId].slotLoaded = false
}
// Small delay and queue up the show ad funciton
setTimeout(()=>{
googletag.cmd.push(function() {
Foundation.Ad.showAd(currentElement);
});
}, 200);
});
</script>
</div>
</div>
<div class="uk-width-1-1 uk-width-1-3@m uk-flex uk-flex-column uk-inline fdn-component-grid-zone">
<div class="ComponentZoneB ContentFooterTripletresponsive fdn-margin-medium-vert uk-root fdn-margin-vert LatestinSectionMultiContent comp-landing-sectionstories" data-component-id="LatestinSectionMultiContent">
<div class="fdn-component-header-block uk-margin ">
<h3 class="fdn-component-header-text uk-margin-remove ">
Also in Food & Drink
</h3>
</div>
<div class="pres-ContentTileRectangleBriefVariableAcross uk-grid uk-grid-small" uk-grid="true" data-ev-presentation="ContentTileRectangleBriefVariableAcross" uk-height-match=".fdn-pres-image">
<div class="uk-width-1-2@s uk-width-1-2@m">
<a class="uk-flex uk-flex-column fdn-decoration-remove" href="https://www.metrotimes.com/food-drink/talking-what-else-turkey-34558151">
<div>
<p class="fdn-teaser-headline">
Talking (what else?) turkey
</p>
<div class="fdn-teaser-infoline fdn-inline-split-list">
<p>
By Robert Stempkowski
</p>
<time>
Nov 8, 2023
</time>
</div>
</div>
<div class="uk-margin-small-bottom uk-flex-first">
<img src="https://media2.metrotimes.com/metrotimes/imager/talking-what-else-turkey/u/golden-s/34558155/chowhound-shutterstock_334603004.jpg?cb=1699306418" alt="You can do this." width="600" height="371" loading="lazy" />
</div>
</a>
</div>
<div class="uk-width-1-2@s uk-width-1-2@m">
<a class="uk-flex uk-flex-column fdn-decoration-remove" href="https://www.metrotimes.com/food-drink/lets-do-dinner-detroit-restaurant-week-to-raise-money-for-local-nonprofit-34515080">
<div>
<p class="fdn-teaser-headline">
Lets Do Dinner-Detroit restaurant week to raise money for local nonprofit
</p>
<div class="fdn-teaser-infoline fdn-inline-split-list">
<p>
By Layla McMurtrie
</p>
<time>
Nov 1, 2023
</time>
</div>
</div>
<div class="uk-margin-small-bottom uk-flex-first">
<img src="https://media2.metrotimes.com/metrotimes/imager/lets-do-dinner-detroit-restaurant-week-to-raise-money-for-local-nonprofit/u/golden-s/34516119/atheneum-145.jpg?cb=1698861476" alt="Greektown&rsquo;s Symposia is one of the restaurants participating in &ldquo;Let&rsquo;s Do Dinner-Detroit.&rdquo;" width="600" height="371" loading="lazy" />
</div>
</a>
</div>
<div class="uk-width-1-2@s uk-width-1-2@m">
<a class="uk-flex uk-flex-column fdn-decoration-remove" href="https://www.metrotimes.com/food-drink/shell-shockd-tacos-is-open-for-late-night-munchies-in-midtown-34515075">
<div>
<p class="fdn-teaser-headline">
Shell Shockd Tacos is open for late-night munchies in Midtown
</p>
<div class="fdn-teaser-infoline fdn-inline-split-list">
<p>
By Randiah Camille Green
</p>
<time>
Nov 1, 2023
</time>
</div>
</div>
<div class="uk-margin-small-bottom uk-flex-first">
<img src="https://media1.metrotimes.com/metrotimes/imager/shell-shockd-tacos-is-open-for-late-night-munchies-in-midtown/u/golden-s/34515079/shell_shock_d_tacos.jpg?cb=1699049539" alt="Shell Shock&rsquo;d Tacos on Willis Street in Midtown." width="600" height="371" loading="lazy" />
</div>
</a>
</div>
<div class="uk-width-1-2@s uk-width-1-2@m">
<a class="uk-flex uk-flex-column fdn-decoration-remove" href="https://www.metrotimes.com/food-drink/when-it-comes-to-food-whats-good-in-your-hood-34501333">
<div>
<p class="fdn-teaser-headline">
When it comes to food, whats good in your hood?
</p>
<div class="fdn-teaser-infoline fdn-inline-split-list">
<p>
By Robert Stempkowski
</p>
<time>
Nov 1, 2023
</time>
</div>
</div>
<div class="uk-margin-small-bottom uk-flex-first">
<img src="https://media2.metrotimes.com/metrotimes/imager/when-it-comes-to-food-whats-good-in-your-hood/u/golden-s/34501335/img_6325_copy.jpg?cb=1698825845" alt="When it comes to food, what&rsquo;s good in your hood?" width="600" height="371" loading="lazy" />
</div>
</a>
</div>
</div>
<div class="uk-margin-small uk-clearfix uk-text-right ">
<a class="uk-align-right uk-margin-remove fdn-more-link-primary uk-flex-inline uk-flex-middle" href="https://www.metrotimes.com/detroit/ArticleArchives?section=2124982">
More <i class="far fa-chevron-double-right fa-xs"></i>
</a>
</div>
</div>
</div>
<div class="uk-width-1-1 uk-width-1-3@m uk-flex uk-flex-column uk-inline fdn-component-grid-zone">
<div class="ComponentZoneC ContentFooterTripletresponsive uk-root fdn-margin-vert CurrentIssuu comp-landing-currentissuu" data-component-id="CurrentIssuu">
<div class="fdn-component-header-block uk-margin ">
<h3 class="fdn-component-header-text uk-margin-remove ">
Digital Issue
</h3>
</div>
<h3>November 8, 2023</h3>
<iframe title="Current Issue" src="https://e.issuu.com/embed.html?d=mt_110823&hideIssuuLogo=true&pageLayout=singlePage&u=euclidmediagroup" allowfullscreen allow="fullscreen" style="border:none;width:100%;height:300px;"></iframe>
<p>
<a class="more" href="https://www.metrotimes.com/detroit/IssueArchives">View more issues <i class="fas fa-angle-right fa-lg"></i></a>
</p>
</div>
</div>
</div>
</div>
</div>
<div class="ev-grid-zone ev-column-zone uk-flex uk-flex-wrap uk-child-width-1-2@m">
<div class="ev-grid-col" data-ev-zone="ZoneB">
</div>
<div class="ev-grid-col" data-ev-zone="ZoneC">
</div>
</div>
<div class="ev-grid-zone ev-secondary-zone" data-ev-zone="ZoneD">
<div class="ev-grid-col uk-width-1-1">
</div>
</div>
<div class="ev-grid-zone ev-footer-zone" data-ev-zone="GlobalFooter">
<div class="ev-grid-col uk-width-1-1">
<div class="GlobalFooter ContentDefault uk-root fdn-margin-vert FooterNavigationCustom comp-shell-footernavigation" data-component-id="FooterNavigationCustom">
<div class="uk-flex uk-flex-wrap uk-grid-small fdn-custom-footer-link-block" uk-grid>
<div class="fdn-custom-footer-section-column">
<div class="fdn-custom-footer-section-block fdn-custom-footer-section-block-news___views">
<ul class="uk-list">
<li class="fdn-custom-footer-section-header ">
<a href="/news" target="_self">News & Views</a>
</li>
<li>
<a href="/category/festival-guide-2365752" target="_self">Festival Guide</a>
</li>
<li>
<a href="/topic/abortion-rights-30602057" target="_self">Abortion Rights</a>
</li>
<li>
<a href="/category/metro-detroit-news-2135230" target="_self">Metro Detroit News</a>
</li>
<li>
<a href="/category/michigan-news-29051050" target="_self">Michigan News</a>
</li>
<li>
<a href="/category/politics-elections-29051043" target="_self">Politics & Elections</a>
</li>
<li>
<a href="/topic/flint-water-crisis-29050721" target="_self">Flint Water Crisis</a>
</li>
<li>
<a href="/category/detroit-sports-2475596" target="_self">Detroit Sports</a>
</li>
<li>
<a href="/category/icymi-27567459" target="_self">ICYMI</a>
</li>
<li>
<a href="/topic/views-and-opinions-29402262" target="_self">Views & Opinions</a>
</li>
<li>
<a href="/detroit/ArticleArchives?category=18222719" target="_self">Informed Dissent</a>
</li>
<li>
<a href="/category/the-incision-27435274" target="_self">The Incision</a>
</li>
<li>
<a href="https://savage.love/savagelove" target="_blank">Savage Love</a>
</li>
<li>
<a href="/category/this-modern-world-18223521" target="_self">This Modern World</a>
</li>
<li>
<a href="/detroit/IssueArchives?issue=this%20week" target="_self">Digital Issue</a>
</li>
<li>
<a href="/detroit-guides" target="_self">Detroit Guides</a>
</li>
<li>
<a href="/slideshows/?section=2135207" target="_self">News Slideshows</a>
</li>
</ul>
</div>
</div>
<div class="fdn-custom-footer-section-column">
<div class="fdn-custom-footer-section-block fdn-custom-footer-section-block-arts___culture">
<ul class="uk-list">
<li class="fdn-custom-footer-section-header ">
<a href="/arts" target="_self">Arts & Culture</a>
</li>
<li>
<a href="/category/arts-stories-interviews-2475566" target="_self">Arts Stories & Interviews</a>
</li>
<li>
<a href="/category/things-to-do-27347026" target="_self">Things to Do</a>
</li>
<li>
<a href="/category/culture-2135219" target="_self">Culture</a>
</li>
<li>
<a href="/topic/stage-29050717" target="_self">Stage</a>
</li>
<li>
<a href="/topic/visual-art-29050718" target="_self">Visual Art</a>
</li>
<li>
<a href="/topic/books-29050715" target="_self">Books</a>
</li>
<li>
<a href="/category/movies-2135216" target="_self">Movies</a>
</li>
<li>
<a href="/category/television-2135217" target="_self">Television</a>
</li>
<li>
<a href="/topic/gaming-29050716" target="_self">Gaming</a>
</li>
<li>
<a href="/category/horoscopes-2199660" target="_self">Horoscopes</a>
</li>
<li>
<a href="/slideshows/?section=2124977" target="_self">Arts & Culture Slideshows</a>
</li>
</ul>
</div>
<div class="fdn-custom-footer-section-block fdn-custom-footer-section-block-calendar">
<ul class="uk-list">
<li class="fdn-custom-footer-section-header ">
<a href="/detroit/EventSearch" target="_self">Calendar</a>
</li>
<li>
<a href="/detroit/EventSearch?narrowByDate=Today" target="_self">Today's Events</a>
</li>
<li>
<a href="/detroit/EventSearch?narrowByDate=This%20Weekend&sortType=date&v=d" target="_self">This Weekend</a>
</li>
<li>
<a href="/detroit/Events/AddEvent" target="_self">Submit an Event</a>
</li>
</ul>
</div>
</div>
<div class="fdn-custom-footer-section-column">
<div class="fdn-custom-footer-section-block fdn-custom-footer-section-block-food___drink">
<ul class="uk-list">
<li class="fdn-custom-footer-section-header ">
<a href="/food-drink" target="_self">Food & Drink</a>
</li>
<li>
<a href="/category/food-news-2475586" target="_self">Food News</a>
</li>
<li>
<a href="/category/drink-news-29051025" target="_self">Drink News</a>
</li>
<li>
<a href="/topic/food-and-drink-features-29402265" target="_self">Food & Drink Features</a>
</li>
<li>
<a href="/category/restaurant-reviews-19138534" target="_self">Restaurant Reviews</a>
</li>
<li>
<a href="/detroit/LocationSearch?locationSection=2124727&guide=2124367" target="_self">Find a Restaurant</a>
</li>
<li>
<a href="/slideshows/?section=2124982" target="_self">Food & Drink Slideshows</a>
</li>
</ul>
</div>
<div class="fdn-custom-footer-section-block fdn-custom-footer-section-block-detroit_guides">
<ul class="uk-list">
<li class="fdn-custom-footer-section-header ">
<a href="/detroit-guides" target="_self">Detroit Guides</a>
</li>
<li>
<a href="/detroit-guides/the-2023-metro-times-fiction-issue-33131771" target="_self">The Fiction Issue</a>
</li>
<li>
<a href="/detroit/IssueArchives?issue=29509405" target="_self">City Guide</a>
</li>
<li>
<a href="/category/fall-arts-guide-2249726" target="_self">Fall Arts Guide</a>
</li>
<li>
<a href="/category/flavor-2477494" target="_self">Flavor</a>
</li>
<li>
<a href="/category/music-issue-2135228" target="_self">New Detroit Music</a>
</li>
<li>
<a href="/category/made-in-michigan-2216644" target="_self">Made in Michigan</a>
</li>
<li>
<a href="/category/the-halloween-issue-2261605" target="_self">The Halloween Issue</a>
</li>
<li>
<a href="/category/winter-guide-15917857" target="_self">Winter Guide</a>
</li>
<li>
<a href="/category/year-in-review-2274039" target="_self">Year in Review</a>
</li>
<li>
<a href="/sponsored" target="_self">Sponsored Articles</a>
</li>
</ul>
</div>
</div>
<div class="fdn-custom-footer-section-column">
<div class="fdn-custom-footer-section-block fdn-custom-footer-section-block-music">
<ul class="uk-list">
<li class="fdn-custom-footer-section-header ">
<a href="/music" target="_self">Music</a>
</li>
<li>
<a href="/category/music-23600534" target="_self">Music News</a>
</li>
<li>
<a href="/category/local-music-2135218" target="_self">Local Music</a>
</li>
<li>
<a href="/topic/music-feature-29402266" target="_self">Music Feature</a>
</li>
<li>
<a href="/category/concert-announcements-27347032" target="_self">Concert Announcements</a>
</li>
<li>
<a href="/topic/concert-reviews-29402267" target="_self">Concert Reviews</a>
</li>
<li>
<a href="/detroit/EventSearch?eventCategory=2167821&sortType=date&v=d" target="_self">Find a Concert</a>
</li>
<li>
<a href="/slideshows/?section=2124980" target="_self">Music Slideshows</a>
</li>
</ul>
</div>
<div class="fdn-custom-footer-section-block fdn-custom-footer-section-block-weed">
<ul class="uk-list">
<li class="fdn-custom-footer-section-header ">
<a href="/weed" target="_self">Weed</a>
</li>
<li>
<a href="/category/marijuana-news-2135229" target="_self">Marijuana News</a>
</li>
<li>
<a href="/category/canna-business-20864832" target="_self">Canna-Business</a>
</li>
<li>
<a href="/category/one-hitters-20864837" target="_self">One Hitters</a>
</li>
<li>
<a href="/detroit/LocationSearch?locationSection=20649182" target="_self">Business Directory</a>
</li>
<li>
<a href="/slideshows/?section=20864826" target="_self">Weed Slideshows</a>
</li>
</ul>
</div>
<div class="fdn-custom-footer-section-block fdn-custom-footer-section-block-about_us">
<ul class="uk-list">
<li class="fdn-custom-footer-section-header ">
<a href="/detroit/AboutMetroTimes/Page" target="_self">About Us</a>
</li>
<li>
<a href="/detroit/WhereToFindDetroitMetroTimes/Page" target="_self">Find Us in Print</a>
</li>
<li>
<a href="/detroit/StaffDirectory/Page" target="_self">Contact Us</a>
</li>
<li>
<a href="/detroit/AdvertiseWithDetroitMetroTimes/Page" target="_self">Advertise</a>
</li>
<li>
<a href="/detroit/StaffDirectory/Page" target="_self">Staff</a>
</li>
<li>
<a href="/detroit/Careers/Page" target="_self">Jobs</a>
</li>
<li>
<a href="/detroit/Policies/Page" target="_self">Policies</a>
</li>
</ul>
</div>
</div>
<div class="fdn-custom-footer-section-column">
<div class="fdn-custom-footer-section-block fdn-custom-footer-section-block-best_of_detroit">
<ul class="uk-list">
<li class="fdn-custom-footer-section-header ">
<a href="/best-of" target="_self">Best Of Detroit</a>
</li>
<li>
<a href="/best-of/food" target="_self">Food</a>
</li>
<li>
<a href="/best-of/bars-clubs" target="_self">Bars & Clubs</a>
</li>
<li>
<a href="/best-of/drinks" target="_self">Drinks</a>
</li>
<li>
<a href="/best-of/best-bet" target="_self">Best Bet</a>
</li>
<li>
<a href="/best-of/shops-services" target="_self">Shops & Services</a>
</li>
<li>
<a href="/best-of/arts-entertainment" target="_self">Arts & Entertainment</a>
</li>
<li>
<a href="/best-of/weed" target="_self">Weed</a>
</li>
</ul>
</div>
<div class="fdn-custom-footer-section-block fdn-custom-footer-section-block-support">
<ul class="uk-list">
<li class="fdn-custom-footer-section-header ">
<a href="/detroit/SupportLocalJournalism/Page" target="_self">Support</a>
</li>
<li>
<a href="/detroit/SupportLocalJournalism/Page" target="_self">Donate</a>
</li>
<li>
<a href="/detroit/NewsletterSignup/Page" target="_self">Subscribe</a>
</li>
<li>
<a href="/detroit/AdvertiseWithDetroitMetroTimes/Page" target="_self">Advertise</a>
</li>
<li>
<a href="https://www.instagram.com/metrotimes/" target="_self">Instagram</a>
</li>
<li>
<a href="https://twitter.com/metrotimes" target="_self">Twitter</a>
</li>
<li>
<a href="/facebook" target="_self">Facebook</a>
</li>
</ul>
</div>
</div>
</div>
</div>
<div class="GlobalFooter ContentDefault uk-root fdn-margin-vert FooterSisterPublications comp-shell-footersisterpublications" data-component-id="FooterSisterPublications">
<style>
.fdn-custom-footer-publications-logo-metrotimes {
display: none !important;
}
</style>
<div class="uk-text-center fdn-custom-footer-publications-header">
<h3 class="uk-margin-remove">Big Lou Holdings, LLC</h3>
<p class="uk-margin-remove">Read our sister publications</p>
</div>
<div class="uk-flex uk-flex-wrap uk-child-width-1-5 uk-child-width-expand@s uk-flex-around uk-padding-small fdn-custom-footer-publications-logos">
<a class="uk-padding-small fdn-custom-footer-publications-logo fdn-custom-footer-publications-logo-citybeat" uk-tooltip="Cincinnati CityBeat" href="https://www.citybeat.com/" target="_blank">
<img alt="Cincinnati CityBeat" src="/images/air/citybeat.png" loading="lazy">
</a>
<a class="uk-padding-small fdn-custom-footer-publications-logo fdn-custom-footer-publications-logo-metrotimes" uk-tooltip="Detroit Metro Times" href="https://www.metrotimes.com" target="_blank">
<img alt="Detroit Metro Times" src="/images/air/metrotimes.jpg" loading="lazy">
</a>
<a class="uk-padding-small fdn-custom-footer-publications-logo fdn-custom-footer-publications-logo-leo" uk-tooltip="LEO Weekly" href="https://www.leoweekly.com/" target="_blank">
<img alt="LEO Weekly" src="/images/air/leo-weekly.png" loading="lazy">
</a>
<a class="uk-padding-small fdn-custom-footer-publications-logo fdn-custom-footer-publications-logo-riverfronttimes" uk-tooltip="St Louis Riverfront Times" href="https://www.riverfronttimes.com" target="_blank">
<img alt="St Louis Riverfront Times" src="/images/air/riverfront.png" loading="lazy">
</a>
<a class="uk-padding-small fdn-custom-footer-publications-logo fdn-custom-footer-publications-logo-outinstl" uk-tooltip="Out in STL" href="https://outinstl.com/" target="_blank">
<img alt="Out in STL" src="/images/air/outinstl.png" loading="lazy">
</a>
</div>
</div>
<div id="FooterInfo" class="GlobalFooter ContentDefault uk-root fdn-margin-vert FooterInfo comp-shell-footerinfo" data-component-id="FooterInfo">
<div class="uk-flex uk-flex-wrap fdn-custom-footer-info-block">
<div class="uk-width-1-1 fdn-custom-footer-info-address">
<h3 class="uk-margin-remove">
Metro Times
</h3>
<p class="uk-margin-remove">P.O. Box 20734</p>
<p class="uk-margin-remove">Ferndale, MI 48220</p>
</div>
<div class="uk-width-1-1 uk-flex fdn-custom-footer-info-links">
<div class="uk-grid-small uk-flex-middle fdn-custom-footer-info-social-links" uk-grid>
<a href="https://www.facebook.com/metrotimes" target="_blank" uk-tooltip="Facebook Icon">
<img src="https://media2.metrotimes.com/metrotimes/imager/facebook-icon/u/square/27008106/f_logo_rgb-blue_512.png?cb=1691532303" alt="Facebook Icon" width="120" height="120" class="no-foundation-imgeditor" loading="lazy" />
</a>
<a href="https://www.twitter.com/metrotimes" target="_blank" uk-tooltip="X">
<img src="https://media2.metrotimes.com/metrotimes/imager/twitter-icon/u/square/34509464/unnamed-3.jpg?cb=1698783959" alt="Twitter Icon" width="120" height="120" class="no-foundation-imgeditor" loading="lazy" />
</a>
<a href="https://www.threads.net/@metrotimes" target="_self" uk-tooltip="Threads icon">
<img src="https://media1.metrotimes.com/metrotimes/imager/threads-icon/u/square/33544852/threadsicon.jpg?cb=1688603995" alt="Threads icon" width="120" height="120" class="no-foundation-imgeditor" loading="lazy" />
</a>
<a href="https://instagram.com/metrotimes" target="_blank" uk-tooltip="Instagram Icon">
<img src="https://media1.metrotimes.com/metrotimes/imager/instagram-icon/u/square/27008107/instagram_appicon_aug2017.png?cb=1643053013" alt="Instagram Icon" width="120" height="120" class="no-foundation-imgeditor" loading="lazy" />
</a>
<a href="https://www.tiktok.com/@metrotimes" target="_self" uk-tooltip="TikTok icon">
<img src="https://media2.metrotimes.com/metrotimes/imager/tiktok-icon/u/square/33110021/tiktokicon.jpg?cb=1684012641" alt="TikTok icon" width="120" height="120" class="no-foundation-imgeditor" loading="lazy" />
</a>
<a href="https://apple.news/TgWqI-RWaTvyCYgCVZBjOLg" target="_blank" uk-tooltip="Apple News Icon">
<img src="https://media2.metrotimes.com/metrotimes/imager/apple-news-icon/u/square/33026105/c8269638ca74fdcb0896367bbc1eff24.png?cb=1683132808" alt="Apple News Icon" width="120" height="120" class="no-foundation-imgeditor" loading="lazy" />
</a>
<a href="https://www.linkedin.com/company/metro-times/" target="_self" uk-tooltip="LinkedIn icon">
<img src="https://media2.metrotimes.com/metrotimes/imager/linkedin-icon/u/square/33107261/shutterstock-1376872499.jpg?cb=1683982447" alt="LinkedIn icon" width="120" height="120" class="no-foundation-imgeditor" loading="lazy" />
</a>
<a href="https://news.google.com/publications/CAAiEBaz4BbOsacMp1gOcdQTFu0qFAgKIhAWs-AWzrGnDKdYDnHUExbt?hl=en-US&gl=US&ceid=US%3Aen" target="_blank" uk-tooltip="Google News Icon">
<img src="https://media2.metrotimes.com/metrotimes/imager/google-news-icon/u/square/27008110/google_news_icon.png?cb=1643054796" alt="Google News Icon" width="120" height="120" class="no-foundation-imgeditor" loading="lazy" />
</a>
</div>
</div>
</div>
</div>
<script>
if (typeof window.__uspapi === 'function') {
window.__uspapi('uspPing', 1, function(obj, status) {
if (status && obj.mode.includes('USP') && obj.jurisdiction.includes(obj.location.toUpperCase())) {
var message = document.createElement("p");
message.setAttribute("class", "ccpaNotice");
message.innerHTML = 'Our website uses technical, analytical, marketing, and preference cookies to provide the best experience for our readers and to give us information about how our site is used. You may request that your data not be shared with third parties here: '
+ `<a href="#" onclick="window.__uspapi('displayUspUi');"`
+ '>Do Not Sell My Data</a>'
+ '.';
document.getElementById('FooterInfo').append(message);
window.__uspapi('setUspDftData', 1, function(obj, status) {
if (!status) {
console.log("Error: USP string not updated!")
}
});
}
});
}
</script>
<div class="GlobalFooter ContentDefault uk-root fdn-margin-vert FooterCopyright comp-shell-footercopyright" data-component-id="FooterCopyright">
<div class="uk-text-center">
<div class="fdn-copyright-text">
© 2023 Detroit Metro Times
</div>
<div class="fdn-copyright-text uk-margin-small-top">
<a class="fdn-copyright-link" href="https://publishwithfoundation.com/" target="_blank">
<img width="110" alt="Powered By Foundation" src="/foundation/images/PoweredByFoundation.svg" loading="lazy">
</a>
</div>
</div>
</div>
<script type="text/javascript">
(function(e,t,o,n,p,r,i){e.visitorGlobalObjectAlias=n;e[e.visitorGlobalObjectAlias]=e[e.visitorGlobalObjectAlias]||function(){(e[e.visitorGlobalObjectAlias].q=e[e.visitorGlobalObjectAlias].q||[]).push(arguments)};e[e.visitorGlobalObjectAlias].l=(new Date).getTime();r=t.createElement("script");r.src=o;r.async=true;i=t.getElementsByTagName("script")[0];i.parentNode.insertBefore(r,i)})(window,document,"https://diffuser-cdn.app-us1.com/diffuser/diffuser.js","vgo");
vgo('setAccount', '26668640');
vgo('setTrackByDefault', true);
vgo('process');
</script>
</div>
</div>
<div class="ev-grid-zone ev-closer-zone" data-ev-zone="Closer">
<div class="ev-grid-col uk-width-1-1">
<div class="Closer ContentDefault uk-root fdn-margin-vert SupportUs comp-shell-supportus" data-component-id="SupportUs">
<div class="fdn-support-us-button-block">
<a href="/detroit/SupportLocalJournalism/Page">Support Us</a>
</div>
</div>
</div>
</div>
</div>
</div>
</body>
</html>