.elementor:has(.vls-city-guide),.elementor-element-7b6060e:has(.vls-city-guide),.elementor-element-7b6060e:has(.vls-city-guide)>.elementor-container,.elementor-element-4a64097:has(.vls-city-guide),.elementor-element-4a64097:has(.vls-city-guide)>.elementor-widget-wrap,.elementor-element-c8dfb60:has(.vls-city-guide),.elementor-element-c8dfb60:has(.vls-city-guide)>.elementor-widget-container{display:block!important;box-sizing:border-box!important;width:100%!important;max-width:100%!important;min-width:0!important;float:none!important;flex:0 1 auto!important;margin-inline:0!important}.elementor-element-c8dfb60:has(.vls-city-guide)>.elementor-widget-container{margin:0!important;padding:0!important}.elementor:has(.vls-city-guide) .elementor-element-vhcss1,.elementor:has(.vls-city-guide) .elementor-element-vhmedia{display:none!important} .vls-city-guide.vls-directory,.vls-city-guide>.content-wrapper{display:block!important;width:100%!important;max-width:100%!important;min-width:0!important;margin:0!important;padding:0!important;float:none!important;flex:none!important;position:relative!important;transform:none!important;container-type:normal!important;container-name:none!important;contain:none!important;writing-mode:horizontal-tb!important} .vls-city-guide{--vls-ink:#142e25;--vls-body:#45594e;--vls-green:#176443;--vls-deep:#0b3327;--vls-lime:#d5ef91;--vls-line:#dfe8df;--vls-font:system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Arial,sans-serif;font:16px/1.75 var(--vls-font);color:var(--vls-body);text-align:left}.vls-city-guide,.vls-city-guide *,.vls-city-guide *::before,.vls-city-guide *::after{box-sizing:border-box}.vls-city-guide :is(p,li,td,th,summary){font-family:var(--vls-font)!important;font-size:16px!important;line-height:1.75!important;text-align:left!important;word-break:normal!important;overflow-wrap:break-word!important;white-space:normal!important;hyphens:none!important;letter-spacing:normal}.vls-city-guide p{margin:0 0 18px}.vls-city-guide :is(h2,h3){font-family:var(--vls-font)!important;font-weight:760!important;line-height:1.18!important;letter-spacing:-.035em!important;text-align:left!important;text-transform:none!important;color:var(--vls-ink)!important;word-break:normal!important;overflow-wrap:break-word!important}.vls-city-guide h2{font-size:30px!important;margin:44px 0 22px}.vls-city-guide h3{font-size:23px!important;margin:0 0 12px}.vls-city-guide a{color:var(--vls-green);text-decoration:underline;text-underline-offset:4px;overflow-wrap:anywhere;transition:background-color .18s,color .18s,border-color .18s}.vls-city-guide a:hover{color:var(--vls-deep)}.vls-city-guide :is(a,summary,button):focus-visible{outline:3px solid #a46b19;outline-offset:4px;border-radius:5px}.vls-city-guide [id]{scroll-margin-top:100px}.vls-city-guide>.content-wrapper>:is(header,nav,section){width:100%!important;max-width:100%!important;min-width:0!important;float:none!important;margin-inline:0!important}.vls-city-guide .restaurant-section{display:block;clear:both;float:none;width:100%;max-width:100%;min-width:0;margin:48px 0;padding:0;background:transparent;border:0;box-shadow:none;border-radius:0}.vls-city-guide .restaurant-section>h2:first-child{margin-top:0} .vls-city-guide .vlsd-intro{display:block;position:relative;isolation:isolate;overflow:hidden;padding:44px 42px 28px!important;border:1px solid #174e39;border-radius:28px;background:radial-gradient(ellipse at 100% 0%,#2c6746 0%,transparent 53%),linear-gradient(135deg,#0c3126,#154630);box-shadow:0 18px 44px -26px #153d2f66;color:#e3eddf}.vls-city-guide .vlsd-intro::after{content:"";position:absolute;z-index:-1;top:-140px;right:-160px;width:440px;height:440px;border:1px solid #d5ef912e;border-radius:50%;box-shadow:0 0 0 34px #d5ef9109,0 0 0 78px #d5ef9107,0 0 0 124px #d5ef9105;pointer-events:none}.vls-city-guide .vlsd-eyebrow{display:inline-flex;align-items:center;gap:9px;margin:0 0 23px;padding:7px 12px;background:#d5ef9117;border:1px solid #d5ef9133;border-radius:999px;color:#e2f4b6;font-size:11px!important;line-height:1.5!important;font-weight:750;letter-spacing:.13em!important;text-transform:uppercase}.vls-city-guide .vlsd-eyebrow::before{content:"";width:6px;height:6px;border-radius:50%;background:#d5ef91}.vls-city-guide .vlsd-heading{font-size:46px!important;line-height:1.08!important;letter-spacing:-.05em!important;color:#fff!important;max-width:19ch;margin:0 0 23px!important}.vls-city-guide .vlsd-heading span{color:var(--vls-lime)}.vls-city-guide .vlsd-lead{max-width:58ch;color:#e4edde;font-size:18px!important;line-height:1.65!important}.vls-city-guide .vlsd-intro>p:not(.vlsd-eyebrow):not(.vlsd-lead){max-width:76ch;color:#c5d9cc;font-size:14px!important;line-height:1.7!important}.vls-city-guide .vlsd-intro strong{color:#eff6de}.vls-city-guide .vlsd-meta{display:flex;flex-wrap:wrap;align-items:center;gap:10px 14px;margin:26px 0 0;padding:20px 0 0;border-top:1px solid #e5f5d72e;font:500 12px/1.55 var(--vls-font);color:#dbe8d6}.vls-city-guide .vlsd-meta>span{display:inline-flex;align-items:center;min-height:40px;padding:8px 12px;border:1px solid #e5f5d71a;border-radius:10px;background:#ffffff07} .vls-city-guide .vlsd-nav{display:flex;flex-wrap:wrap;gap:8px;margin:18px 0 30px;padding:0}.vls-city-guide .vlsd-nav a{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:46px;max-width:100%;min-width:0;padding:11px 16px;border:1px solid var(--vls-line);border-radius:999px;background:#fff;color:#314c3d;font:650 13px/1.4 var(--vls-font);text-decoration:none!important}.vls-city-guide .vlsd-nav a:first-child{background:#edf5e2;border-color:#d7e7c1;color:#254829}.vls-city-guide .vlsd-nav a:hover{background:#e5efdb;border-color:#9bb887}.vls-city-guide .vlsd-intro-copy{margin-bottom:30px}.vls-city-guide .vlsd-shortlist{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin:0 0 44px}.vls-city-guide .vlsd-shortcut{min-width:0;padding:24px;border:1px solid #ede4d2;border-radius:20px;background:linear-gradient(140deg,#fff8e9,#fffdfa)}.vls-city-guide .vlsd-shortcut:nth-child(2){background:linear-gradient(140deg,#f1edf9,#fbfaff);border-color:#e6dff1}.vls-city-guide .vlsd-shortcut:nth-child(3){background:linear-gradient(140deg,#edf5df,#fafcf5);border-color:#dfe9ce}.vls-city-guide .vlsd-shortcut::before{content:"";display:block;width:32px;height:32px;background:#846331;mask:var(--vls-icon-cup) center/contain no-repeat;-webkit-mask:var(--vls-icon-cup) center/contain no-repeat;margin:0 0 20px}.vls-city-guide .vlsd-shortcut:nth-child(2)::before{background:#685887;mask-image:var(--vls-icon-menu);-webkit-mask-image:var(--vls-icon-menu)}.vls-city-guide .vlsd-shortcut:nth-child(3)::before{background:#547c2e;mask-image:var(--vls-icon-leaf);-webkit-mask-image:var(--vls-icon-leaf)}.vls-city-guide .vlsd-shortcut h3{font-size:19px!important;line-height:1.25!important;margin:0 0 10px}.vls-city-guide .vlsd-shortcut p{font-size:14px!important;line-height:1.75!important;margin:0;color:#4f5f51}.vls-city-guide .vlsd-shortcut a{font-weight:650} .vls-city-guide .vlsd-section-head{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:10px 20px;margin:44px 0 24px}.vls-city-guide .vlsd-section-head h2{margin:0}.vls-city-guide .vlsd-section-head>span{font:500 12px/1.6 var(--vls-font);color:#637366}.vls-city-guide .vlsd-card.restaurant-section{position:relative;margin:0 0 30px;padding:28px;border:1px solid var(--vls-line);border-radius:26px;background:#fff;box-shadow:0 5px 12px -8px #183d2726,0 18px 42px -30px #183d2740;overflow:visible}.vls-city-guide .vlsd-card-head{display:flex;position:relative;isolation:isolate;overflow:hidden;align-items:center;gap:20px;width:100%;min-width:0;padding:24px 26px;margin:0 0 18px;border:1px solid #d5e3cf;border-radius:20px;background:radial-gradient(circle at 100% 0%,#dceacb80 0,transparent 60%),linear-gradient(120deg,#eef5e6,#f9fcf5);box-shadow:inset 0 1px 0 #ffffffb3,0 6px 18px -14px #163d2b55}.vls-city-guide .vlsd-card-head::before{content:"";position:absolute;inset:0 auto 0 0;width:4px;background:linear-gradient(180deg,#176443,#81a955);pointer-events:none}.vls-city-guide .vlsd-card-head::after{content:"";position:absolute;top:-62px;right:-34px;width:180px;height:180px;border:1px solid #6d915a24;border-radius:50%;box-shadow:0 0 0 24px #6d915a09,0 0 0 48px #6d915a05;z-index:-1;pointer-events:none}.vls-city-guide .vlsd-number{display:flex;align-items:center;justify-content:center;flex:0 0 56px;width:56px;height:56px;border:1px solid #25583e;border-radius:16px;background:linear-gradient(145deg,#20563d,#0b3327);color:#e0f4aa!important;box-shadow:inset 0 1px 0 #ffffff21,0 7px 15px -9px #123f2c80;font:800 22px/1 var(--vls-font);font-variant-numeric:tabular-nums}.vls-city-guide .vlsd-card-title{flex:1;min-width:0}.vls-city-guide .vlsd-card-title h3{color:#12382a!important;font-size:32px!important;line-height:1.15!important;margin:0 0 9px}.vls-city-guide .vlsd-location{display:flex;align-items:flex-start;gap:6px;color:#526a58!important;font-weight:500;font-size:13px!important;line-height:1.55!important;margin:0} .vls-city-guide .vlsd-tags{display:flex;flex-wrap:wrap;gap:7px;margin:0 0 23px;padding:0}.vls-city-guide .vlsd-tag{display:inline-flex;align-items:center;gap:6px;max-width:100%;padding:6px 11px;border:1px solid #e4eae1;border-radius:999px;background:#f6f8f3;color:#4b6350;font:600 12px/1.5 var(--vls-font)}.vls-city-guide .vlsd-tag--options{background:#fff4e2;border-color:#eddbb9;color:#80541d}.vls-city-guide .vlsd-tag--vegan{background:#edf6de;border-color:#d2e3b6;color:#346029}.vls-city-guide .vlsd-tag--vegetarian{background:#f3eefb;border-color:#e2d6f1;color:#674a82}.vls-city-guide :is(.vlsd-tag--options,.vlsd-tag--vegan,.vlsd-tag--vegetarian)::before{content:"";width:5px;height:5px;border-radius:50%;background:currentColor}.vls-city-guide .vlsd-card-kicker{font-size:13px!important;font-weight:650;color:#53674d}.vls-city-guide .restaurant-text{margin:0 0 20px;color:var(--vls-body)}.vls-city-guide .vlsd-order{margin:0 0 24px;padding:20px;border:1px solid #dbe8c7;border-radius:16px;background:linear-gradient(135deg,#f0f7e6,#f7faef);color:#3d5736;font-size:14px!important;line-height:1.75!important}.vls-city-guide .vlsd-order>strong{display:block;margin:0 0 9px;color:#28542f;font-size:13px} .vls-city-guide .table-container{width:100%!important;max-width:100%!important;min-width:0;margin:0 0 24px!important;padding:0!important;border:1px solid #e3e8df;border-radius:16px;background:#f8faf5;overflow:hidden;box-shadow:none}.vls-city-guide table{display:table;width:100%!important;max-width:100%;min-width:0!important;margin:0;border:0;border-collapse:collapse;table-layout:auto;background:transparent}.vls-city-guide thead{position:absolute!important;width:1px!important;height:1px!important;overflow:hidden!important;clip-path:inset(50%);clip:rect(0,0,0,0)}.vls-city-guide tbody{display:table-row-group}.vls-city-guide tbody tr{display:table-row;border-bottom:1px solid #e2e8dd;color:#173126!important;background:transparent!important}.vls-city-guide tbody tr:last-child{border-bottom:0}.vls-city-guide tbody :is(th,td){display:table-cell;width:auto;padding:15px 18px!important;border:0!important;background:transparent!important;vertical-align:top;font-size:14px!important;line-height:1.65!important;color:#173126!important;-webkit-text-fill-color:currentColor!important;opacity:1!important}.vls-city-guide tbody th{width:30%;color:#50674f!important;font-size:11px!important;font-weight:750;letter-spacing:.07em!important;text-transform:uppercase}.vls-city-guide tbody :is(th,td):hover,.vls-city-guide tbody :is(th,td):hover *{color:#173126!important;-webkit-text-fill-color:currentColor!important;opacity:1!important}.vls-city-guide tbody tr:is(:hover,:focus-within){background:#edf4e7!important}.vls-city-guide .vlsd-links{display:grid;grid-template-columns:1.15fr 1fr 1fr;gap:10px;margin:2px 0 0;padding:0}.vls-city-guide .vlsd-links--two{grid-template-columns:1fr 1fr}.vls-city-guide .vlsd-links a{display:flex;align-items:center;justify-content:center;gap:8px;min-width:0;max-width:100%;min-height:49px;padding:12px;border:1px solid #cfddce;border-radius:13px;background:#fff;color:#285437;font:700 14px/1.5 var(--vls-font);text-decoration:none!important}.vls-city-guide .vlsd-links a.vlsd-link--primary{background:var(--vls-green);border-color:var(--vls-green);color:#fff!important;box-shadow:0 5px 12px -7px #17644380}.vls-city-guide .vlsd-card a:is(:hover,:focus-visible):not(.vlsd-link--primary){color:#174c34!important;-webkit-text-fill-color:currentColor!important}.vls-city-guide .vlsd-links a:hover{background:#edf4e5;border-color:#8da87b}.vls-city-guide .vlsd-links a.vlsd-link--primary:is(:hover,:focus-visible){background:#0b3327!important;color:#fff!important;-webkit-text-fill-color:currentColor!important;border-color:#0b3327!important}.vls-city-guide .vlsd-sources{margin:18px 0 0;padding:18px 0 0;border-top:1px solid #e5ebe2;color:#556952;font:500 12px/1.8 var(--vls-font)}.vls-city-guide .vlsd-sources>strong{display:block}.vls-city-guide .vlsd-note{margin:16px 0 0;color:#64705f;font-size:12px!important;line-height:1.75!important} .vls-city-guide .vlsd-tips{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin:24px 0}.vls-city-guide .vlsd-tip{min-width:0;padding:27px;border:1px solid #dfe8d4;border-radius:20px;background:linear-gradient(145deg,#f1f6e8,#fafcf6)}.vls-city-guide .vlsd-tip h3{font-size:20px!important;margin:0 0 12px}.vls-city-guide .vlsd-tip p{font-size:15px!important;line-height:1.75!important;margin:0;color:#53664e}.vls-city-guide .vlsd-comparison ul{list-style:none;margin:0;padding:0}.vls-city-guide .vlsd-comparison li{padding:13px 18px;margin:0 0 8px;border:1px solid var(--vls-line);border-radius:13px;background:#fafcf7}.vls-city-guide .vlsd-faq{display:block;margin:24px 0}.vls-city-guide .vlsd-faq details{min-width:0;margin:0 0 10px;padding:0;border:1px solid var(--vls-line);border-radius:16px;background:#fff;overflow:hidden}.vls-city-guide .vlsd-faq summary{display:flex;align-items:center;justify-content:space-between;gap:20px;min-height:70px;padding:20px 23px;list-style:none;cursor:pointer;color:var(--vls-ink);font-size:16px!important;font-weight:650}.vls-city-guide .vlsd-faq summary::-webkit-details-marker{display:none}.vls-city-guide .vlsd-faq summary::after{content:"+";display:flex;align-items:center;justify-content:center;flex:0 0 30px;width:30px;height:30px;border:1px solid #dce7d2;border-radius:50%;background:#f1f6e9;color:#315432;font:400 22px/1 var(--vls-font)}.vls-city-guide .vlsd-faq details[open]{border-color:#a8c28f;background:#f4f8ec}.vls-city-guide .vlsd-faq details[open] summary::after{content:"−";background:var(--vls-deep);color:var(--vls-lime)}.vls-city-guide .vlsd-faq details>div{padding:0 23px 23px}.vls-city-guide .vlsd-faq details p{font-size:15px!important;margin:0}.vls-city-guide .vlsd-method{margin:44px 0 0;padding:25px 0 0;border-top:1px solid var(--vls-line)}.vls-city-guide .vlsd-method h2{font-size:18px!important;margin:0 0 14px}.vls-city-guide .vlsd-method p{font-size:13px!important;color:#65715f} @media(min-width:1100px){.vls-city-guide .vlsd-card.restaurant-section{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,1fr);column-gap:26px;align-items:start}.vls-city-guide .vlsd-card-head{grid-column:1/-1;grid-row:1}.vls-city-guide .vlsd-tags{grid-column:1/-1;grid-row:2}.vls-city-guide .vlsd-copy{grid-column:1;grid-row:3;min-width:0}.vls-city-guide .vlsd-card .table-container{grid-column:2;grid-row:3}.vls-city-guide .vlsd-card>:is(.vlsd-links,.vlsd-sources,.vlsd-note){grid-column:1/-1}.vls-city-guide .vlsd-card.vls-has-photos>.vlsd-copy,.vls-city-guide .vlsd-card.vls-has-photos>.table-container{grid-row:4}} @media(max-width:800px){.vls-city-guide .vlsd-shortlist{grid-template-columns:minmax(0,1fr);gap:12px}.vls-city-guide .vlsd-shortcut{padding:22px}.vls-city-guide .vlsd-heading{font-size:40px!important}.vls-city-guide .vlsd-intro{padding:35px 30px 27px!important}} @media(max-width:600px){.vls-city-guide h2{font-size:27px!important;margin:36px 0 20px}.vls-city-guide .vlsd-intro{padding:28px 22px 24px!important;border-radius:23px}.vls-city-guide .vlsd-heading{font-size:34px!important;line-height:1.1!important;max-width:100%}.vls-city-guide .vlsd-lead{font-size:16px!important}.vls-city-guide .vlsd-eyebrow{font-size:10px!important}.vls-city-guide .vlsd-meta{display:grid;grid-template-columns:1fr;gap:7px}.vls-city-guide .vlsd-nav{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.vls-city-guide .vlsd-nav a{font-size:12px;padding:10px}.vls-city-guide .vlsd-card.restaurant-section{padding:18px;border-radius:23px;margin-bottom:24px}.vls-city-guide .vlsd-card-head{padding:18px 14px;gap:13px;border-radius:16px;align-items:flex-start}.vls-city-guide .vlsd-number{flex-basis:42px;width:42px;height:46px;border-radius:12px;font-size:19px}.vls-city-guide .vlsd-card-title h3{font-size:24px!important;line-height:1.16!important}.vls-city-guide .vlsd-location{font-size:12px!important}.vls-city-guide .vlsd-tag{font-size:11px;padding:6px 9px}.vls-city-guide .vlsd-order{padding:17px}.vls-city-guide table,.vls-city-guide tbody,.vls-city-guide tbody tr{display:block;width:100%}.vls-city-guide tbody tr{padding:14px 16px}.vls-city-guide tbody :is(th,td){display:block;width:100%!important;padding:0!important}.vls-city-guide tbody th{margin-bottom:6px;font-size:11px!important}.vls-city-guide tbody td{font-size:15px!important}.vls-city-guide .vlsd-links{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.vls-city-guide .vlsd-links:not(.vlsd-links--two) a:first-child{grid-column:1/-1}.vls-city-guide .vlsd-links a{font-size:13px;padding:11px 8px}.vls-city-guide .vlsd-tips{grid-template-columns:1fr;gap:12px}.vls-city-guide .vlsd-tip{padding:23px}.vls-city-guide .vlsd-faq summary{font-size:15px!important;padding:18px}.vls-city-guide .vlsd-faq details>div{padding:0 18px 20px}} @media(max-width:360px){.vls-city-guide .vlsd-heading{font-size:31px!important}.vls-city-guide .vlsd-card.restaurant-section{padding:15px}.vls-city-guide .vlsd-card-head{padding:15px 11px;gap:10px}.vls-city-guide .vlsd-card-title h3{font-size:23px!important}.vls-city-guide .vlsd-number{flex-basis:36px;width:36px;height:42px;font-size:17px}}@media(prefers-reduced-motion:reduce){.vls-city-guide *{transition:none!important;scroll-behavior:auto!important}}@media print{.vls-city-guide .vlsd-nav,.vls-city-guide .vls-photo-panel{display:none!important}.vls-city-guide .vlsd-card.restaurant-section{display:block;box-shadow:none;break-inside:avoid}.vls-city-guide .vlsd-faq details::details-content{content-visibility:visible!important}} .vls-city-guide{--vls-icon-cup:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.7'%3E%3Cpath d='M4 8h12v7a5 5 0 0 1-5 5H9a5 5 0 0 1-5-5Zm12 1h2a3 3 0 0 1 0 6h-2M7 3v2m4-2v2'/%3E%3C/svg%3E");--vls-icon-menu:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.7'%3E%3Crect x='5' y='3' width='14' height='18' rx='2'/%3E%3Cpath d='M9 8h6M9 12h6M9 16h4'/%3E%3C/svg%3E");--vls-icon-leaf:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.7'%3E%3Cpath d='M20 4c0 8-2 14-8 14a6 6 0 0 1-6-6c0-6 6-8 14-8Z M4 20l10-10'/%3E%3C/svg%3E");--vls-icon-pin:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.7'%3E%3Cpath d='M19 10c0 5-7 11-7 11S5 15 5 10a7 7 0 1 1 14 0Z'/%3E%3Ccircle cx='12' cy='10' r='2.5'/%3E%3C/svg%3E")}.vls-city-guide .vlsd-location::before{content:"";display:block;flex:0 0 15px;width:15px;height:17px;margin-top:1px;background:currentColor;mask:var(--vls-icon-pin) center/contain no-repeat;-webkit-mask:var(--vls-icon-pin) center/contain no-repeat} .vls-city-guide .vls-photo-panel[hidden],.vls-city-guide .vls-photo-panel [hidden]{display:none!important}.vls-city-guide .vls-photo-panel{box-sizing:border-box;grid-column:1/-1;grid-row:3;min-width:0;max-width:100%;margin:0 0 24px;border:1px solid #dce6d5;border-radius:18px;background:#fff;color:#173126;font-family:var(--vls-font)}.vls-city-guide .vls-photo-panel>header{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:10px;padding:12px 17px;border-bottom:1px solid #e4eadf;border-radius:18px 18px 0 0;background:#f5f8f0}.vls-city-guide .vls-photo-panel h4{margin:0!important;color:#12382a!important;font:700 14px/1.5 var(--vls-font)}.vls-city-guide .vls-photo-panel a{color:#174c34!important;font-size:12px;text-decoration:underline;text-underline-offset:3px}.vls-city-guide .vls-photo-status{margin:0!important;padding:12px 17px;color:#405844!important;font-size:13px!important;line-height:1.6!important}.vls-city-guide .vls-photo-map-grid{display:grid;grid-template-columns:minmax(0,1fr);align-items:start;gap:18px;padding:16px;min-width:0;width:100%;box-sizing:border-box}.vls-city-guide .vls-photo-panel.vls-map-side-by-side .vls-photo-map-grid{grid-template-columns:minmax(250px,1fr) minmax(250px,1fr);gap:22px}.vls-city-guide .vls-photo-frame{max-width:100%;min-width:0;overflow-x:auto;background:#fff}.vls-city-guide .vls-photo-frame :is(gmp-place-search,gmp-place-details){display:block;box-sizing:border-box;width:100%;max-width:400px;min-width:250px;margin:0 auto;border:0;background:#fff;color-scheme:light;font-size:16px;--gmp-mat-font-family:system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;--gmp-mat-color-primary:#176443;--gmp-mat-color-on-surface:#173126;--gmp-mat-color-surface:#fff;--gmp-mat-color-on-surface-variant:#405844;--gmp-collage-border-radius-outer:12px}.vls-city-guide .vls-photo-caption{margin:0!important;padding:11px 17px;border-top:1px solid #e4eadf;color:#51634f!important;font-size:11px!important;line-height:1.6!important}.vls-city-guide .vls-photo-retry{appearance:none;min-height:44px;margin:0 17px 14px;padding:10px 15px;border:1px solid #176443;border-radius:10px;background:#176443!important;color:#fff!important;-webkit-text-fill-color:currentColor!important;cursor:pointer;font:650 13px/1.5 var(--vls-font);text-transform:none}.vls-city-guide .vls-mini-map-block{min-width:0;width:100%;max-width:100%;align-self:center}.vls-city-guide .vls-mini-map-top{display:flex;align-items:center;justify-content:space-between;gap:10px;margin:0 0 10px}.vls-city-guide .vls-mini-map-top h5{margin:0;color:#173126;font:700 13px/1.5 var(--vls-font);text-transform:none;letter-spacing:normal}.vls-city-guide .vls-mini-map-stage{position:relative;min-width:200px;width:100%;height:270px;border:1px solid #dce6d5;border-radius:13px;background:#f2f6ee;overflow:hidden;box-sizing:border-box}.vls-city-guide .vls-mini-map-canvas{width:100%;height:100%;min-height:200px;background:#f2f6ee;text-align:left}.vls-city-guide .vls-mini-map-canvas img{max-width:none!important;max-height:none!important}.vls-city-guide .vls-mini-map-status{margin:9px 0 0!important;color:#51634f!important;font-size:12px!important;line-height:1.55!important}.vls-city-guide .vls-mini-map-info{padding:2px;max-width:210px;color:#173126;font:500 13px/1.6 system-ui,sans-serif}.vls-city-guide .vls-mini-map-info strong{display:block;margin:0 0 6px}.vls-city-guide .vls-photo-privacy{font-size:12px!important;line-height:1.7!important}.vls-city-guide .vls-photo-privacy a{color:#174c34;text-decoration:underline}@media(max-width:600px){.vls-city-guide .vls-photo-map-grid{gap:16px;padding:10px}.vls-city-guide .vls-mini-map-stage{height:240px}.vls-city-guide .vls-photo-panel>header{padding:11px 13px}}@media(max-width:360px){.vls-city-guide .vls-photo-map-grid{padding:4px}.vls-city-guide .vls-photo-frame{padding:0}}@media(forced-colors:active){.vls-city-guide .vls-photo-panel,.vls-city-guide .vls-photo-panel>header{background:Canvas!important;color:CanvasText!important;border-color:CanvasText}.vls-city-guide .vls-photo-panel :is(p,h4){color:CanvasText!important}.vls-city-guide .vls-photo-retry{background:Canvas!important;color:LinkText!important;border-color:LinkText}}

Michigan · United States

Find your next vegan meal in Ann Arbor

Five current Ann Arbor stops spanning a fully vegan downtown restaurant, long-running vegetarian institutions, breakfast, brunch and build-your-own bowls.

Ann Arbor’s university-town food scene has unusually strong plant-based depth for its size. Destination Ann Arbor even publishes a three-day vegetarian and vegan itinerary, and this guide cross-checks those local favorites against current 2026 operator information.

5 restaurant profilesDowntown + west-side locationsResearch: 20 Sep 2026

Ann Arbor works especially well for vegan travelers because dedicated plant-based food, vegetarian restaurants and breakfast options are spread across both the downtown core and the west side. Recent reopening information matters: Juicy Kitchen is active again after its long fire-related closure.

Choose your kind of meal

100% vegan downtown

Detroit Street Filling Station is the clearest fully vegan option in this guide and sits in walkable Kerrytown.

Breakfast & brunch

Juicy Kitchen reopened in 2026 and starts at 7:00 am Wednesday through Friday, while Fresh Forage adds vegan pastries and bowls.

Vegetarian classics

Seva and Earthen Jar are long-running vegetarian restaurants with substantial vegan choices.

Restaurants in this guide

Editorial selection · not a ranking

Detroit Street Filling Station

Kerrytown · Detroit Street

100% veganComfort foodKerrytown

Ann Arbor’s dedicated vegan downtown anchor

Detroit Street Filling Station serves an exclusively plant-based menu in Kerrytown. Destination Ann Arbor describes the restaurant as fully plant-based, and its current menu continues to focus on hearty vegan comfort food rather than a small side section.

Before you order:The kitchen is vegan, but diners with food allergies should still ask about nuts, gluten, soy and other ingredients used in specific dishes.

Highlights: Fully vegan comfort food in a central, walkable Ann Arbor location.

InformationDetails
Vegan status100% vegan / exclusively plant-based menu.
Address300 Detroit St
Ann Arbor, MI 48104
Current listed hoursMon–Fri: 11:30 am–8:00 pm
Sat–Sun: 12:00–8:00 pm
Best fitDowntown lunch or dinner with no need to modify a mixed menu.

Seva Ann Arbor

Westgate · Jackson Avenue

Vegetarian restaurantMany vegan dishesLunch & dinner

A long-running vegetarian restaurant with broad vegan coverage

Seva’s Ann Arbor location serves a completely vegetarian menu with many dishes already vegan or available with vegan modifications. Destination Ann Arbor highlights Seva as one of the city’s established plant-forward restaurants.

Before you order:Vegetarian does not automatically mean vegan. Follow the current menu’s vegan labels and ask about cheese, dairy-based sauces and desserts when modifying an item.

Highlights: A broad vegetarian menu with many vegan choices and a full-service restaurant setting.

InformationDetails
Vegan status100% vegetarian restaurant with many vegan meals and accommodations.
Address2541 Jackson Ave
Ann Arbor, MI 48103
Current listed hoursMon–Sat: around 11:00 am–9:00 pm; verify Sunday before travel.
Best fitMixed vegetarian/vegan groups and full-service lunch or dinner.

Earthen Jar

Downtown · South Fifth Avenue

Vegetarian IndianVegan optionsPunjabi buffet

Casual Punjabi food with clearly vegan-friendly choices

Earthen Jar is a vegetarian Indian restaurant built around Punjabi dishes, with vegan choices clearly part of the concept. Lentils, chickpeas, vegetables and rice make it one of the easiest downtown choices for naturally plant-forward food.

Before you order:Ask which current buffet or counter dishes are vegan because some vegetarian Indian preparations may contain ghee, cream or paneer.

Highlights: Punjabi-style vegetarian food with substantial vegan choices near downtown.

InformationDetails
Vegan statusVegetarian restaurant with vegan options.
Address311 S 5th Ave
Ann Arbor, MI 48104
Current listed hoursTue–Sat: roughly 12:00–7:00 pm; verify the current day before travel.
Best fitCasual lunch or dinner with Indian comfort food.

Juicy Kitchen

Northwest Ann Arbor · North Maple Road

Vegan-friendly brunch7am weekdaysReopened 2026

A breakfast and lunch favorite that reopened in 2026

Juicy Kitchen returned in 2026 after an approximately eleven-month closure following a fire. The current cafe hours are live again, and Destination Ann Arbor has long highlighted the restaurant for vegan-friendly brunch food and vegan baked goods.

Before you order:Juicy Kitchen is not fully vegan. Use the vegan labels and confirm eggs, cheese, honey or other animal ingredients in breakfast dishes. The reopening is recent, so current operator hours should take priority over older listings.

Highlights: Early breakfast, brunch-style food and a verified August 2026 return to service.

InformationDetails
Vegan statusMixed breakfast/lunch cafe with vegan options.
Address1506 N Maple Rd
Ann Arbor, MI 48103
Current hoursWed–Fri: 7:00 am–2:00 pm
Sat–Sun: 8:00 am–2:00 pm
Mon–Tue: closed
2026 statusReopened after an extended fire-related closure.

Fresh Forage

West Ann Arbor · Jackson Road

Vegan bowlsVegan pastriesBuild your own

Customizable bowls plus a notable vegan pastry selection

Fresh Forage supports vegan ordering through customizable bowls with tofu, seitan, chickpeas or black beans, while its current ordering page also lists multiple vegan croissants, scones, buns and cookies.

Before you order:The restaurant is mixed and also serves animal products. Follow the vegan labels and choose sauces and toppings carefully when building a bowl.

Highlights: Vegan pastries plus customizable grain, noodle and greens-based meals.

InformationDetails
Vegan statusMixed restaurant with clearly identified vegan food and pastries.
Address5060 Jackson Rd, Suite A
Ann Arbor, MI 48103
Current hoursMon–Sat: 9:30 am–7:45 pm
Sun: closed
Best fitLate breakfast, lunch, takeaway pastries and build-your-own bowls.

Vegan breakfast and brunch in Ann Arbor

Earliest current option

Juicy Kitchen opens at 7:00 am Wednesday through Friday and at 8:00 am on weekends, making it the strongest early breakfast profile here.

Vegan pastries and bowls

Fresh Forage opens at 9:30 am Monday through Saturday and currently lists several vegan croissants, scones, buns and cookies alongside customizable bowls.

Detroit Street Filling Station starts later, but its entirely vegan menu is useful for a late brunch-style meal or lunch in Kerrytown.

Plan your Ann Arbor vegan food stops

Use the tourism itinerary

Destination Ann Arbor’s dedicated three-day vegetarian and vegan itinerary is a useful cross-check for travelers building a longer plant-based weekend.

Watch current operating days

Earthen Jar and Juicy Kitchen have more limited weekly schedules than Detroit Street Filling Station. Check the current operator page before a special trip.

Downtown/Kerrytown locations are walkable together, while Seva, Juicy Kitchen and Fresh Forage are better treated as separate west-side destinations.

Frequently asked questions

Which featured Ann Arbor restaurant is fully vegan?

Detroit Street Filling Station serves an exclusively plant-based menu. Seva and Earthen Jar are vegetarian, while Juicy Kitchen and Fresh Forage are mixed restaurants with vegan options.

Is Juicy Kitchen open again?

Yes. Juicy Kitchen reopened in 2026 after an extended fire-related closure, and its current operator site lists active breakfast and lunch hours.

Where can I get vegan breakfast in Ann Arbor?

Juicy Kitchen is the earliest profile here, opening at 7:00 am Wednesday through Friday. Fresh Forage opens at 9:30 am and currently lists several vegan pastries.

Does Ann Arbor have a vegan travel itinerary?

Yes. Destination Ann Arbor publishes a three-day vegetarian and vegan itinerary with restaurants and meal ideas around the city.

Research notes and image credit

Current restaurant sites, live ordering pages, Destination Ann Arbor’s vegan dining resources and the August 2026 Juicy Kitchen reopening report were reviewed on September 20, 2026.

Featured image: Ann Arbor, Michigan Skyline by Dwight Burdette, licensed under CC BY 3.0.

Optional Google photos and mini-maps load after Google Maps consent in the site’s central privacy banner. Food shown is not necessarily vegan. Privacy settings · Privacy policy

(function(){ 'use strict'; function init(){ var root=document.querySelector('.vls-city-guide[data-city-guide]');if(!root||root.dataset.mediaBound==='2')return;var list=root.querySelector('[data-restaurant-list]');if(!list)return;root.dataset.mediaBound='2'; var bounds=(root.dataset.mapBounds||'').split(/[|,]/).map(Number);if(bounds.length!==4||bounds.some(function(n){return !Number.isFinite(n);}))return; var records=[],allowed=false,epoch=0,reloading=false,requested=false,loader=null,mapLoader=null,queued=false;var KEY='AIzaSyBKywHJbXO23hwm3hPFsTDdjbLAJIeop_4',SERVICE='maps'; function consent(){try{var b=window.BorlabsCookie,s=b&&b.Services&&b.Services.findByServiceId(SERVICE);return !!(s&&s.id===SERVICE&&s.serviceGroupId&&s.serviceGroupId!=='essential'&&b.Consents.hasConsent(SERVICE,s.serviceGroupId)===true);}catch(e){return false;}} function active(){return allowed&&!reloading&&consent();}function el(tag,cl,text){var x=document.createElement(tag);if(cl)x.className=cl;if(text)x.textContent=text;return x;} function fold(x){return String(x||'').normalize('NFKD').replace(/[\u0300-\u036f]/g,'').toLowerCase().replace(/[^a-z0-9]+/g,' ').trim();}function matches(r,p){var n=p&&p.displayName;n=n&&typeof n==='object'?n.text:n;return !n||r.matches.some(function(m){return fold(n).indexOf(fold(m))!==-1;});} function config(){var c=el('gmp-place-content-config'),m=el('gmp-place-media'),a=el('gmp-place-attribution');m.setAttribute('lightbox-preferred','');m.setAttribute('preferred-size','large');a.setAttribute('light-scheme-color','black');a.setAttribute('dark-scheme-color','white');c.append(m,el('gmp-place-address'),a);return c;} function status(r,s,msg){r.state=s;r.panel.dataset.state=s;r.status.textContent=msg||'';r.status.hidden=!msg;}function fail(r,code){clearTimeout(r.timer);status(r,'error','Google preview unavailable. Use Open in Maps. (Reference '+code+')');r.retry.hidden=r.attempts>=2;}function good(r,g){return active()&&r.generation===g&&r.state!=='error';} function load(){if(!active())return Promise.reject(new Error('Consent required'));if(loader)return loader;requested=true;var e=epoch;loader=new Promise(function(resolve,reject){var settled=false,t=setTimeout(function(){end(new Error('Timeout'));},25000);function end(err){if(settled)return;settled=true;clearTimeout(t);err?reject(err):resolve();}async function ready(){try{if(!active()||e!==epoch)throw new Error('Consent changed');await google.maps.importLibrary('places');await Promise.all(['gmp-place-search','gmp-place-details','gmp-place-text-search-request','gmp-place-details-place-request','gmp-place-content-config','gmp-place-media'].map(function(n){return customElements.whenDefined(n);}));if(!active()||e!==epoch)throw new Error('Consent changed');end();}catch(err){end(err);}}var old=window.gm_authFailure;window.gm_authFailure=function(){end(new Error('Authentication'));if(active())records.forEach(function(r){if(r.state!=='off')fail(r,'G02');});if(typeof old==='function')old();};if(window.google&&google.maps&&google.maps.importLibrary){ready();return;}window.__vlsCityGuideGoogleReady=ready;var u=new URL('https://maps.googleapis.com/maps/api/js');u.search=new URLSearchParams({key:KEY,v:'weekly',libraries:'places',loading:'async',callback:'__vlsCityGuideGoogleReady',language:'en',region:'US'}).toString();var script=el('script');script.src=u.toString();script.async=true;script.setAttribute('data-cfasync','false');script.setAttribute('data-nowprocket','');script.referrerPolicy='strict-origin-when-cross-origin';script.onerror=function(){end(new Error('Script blocked'));};var nonce=document.querySelector('script[nonce]');if(nonce)script.nonce=nonce.nonce;document.head.appendChild(script);});return loader;} function locationFor(r,p){if(!p||!p.location||!matches(r,p))return false;var lat=typeof p.location.lat==='function'?p.location.lat():p.location.lat,lng=typeof p.location.lng==='function'?p.location.lng():p.location.lng;if(!Number.isFinite(lat)||!Number.isFinite(lng)||latbounds[2]||lngbounds[3])return false;r.location={lat:lat,lng:lng};return true;} function showDetails(r,id,g){if(!good(r,g))return;r.placeId=String(id).replace(/^places\//,'');var d=el('gmp-place-details'),q=el('gmp-place-details-place-request');q.setAttribute('place',r.placeId);d.append(q,config());d.addEventListener('gmp-load',function(){if(!good(r,g))return;if(!matches(r,d.place)){r.host.replaceChildren();fail(r,'G05');return;}clearTimeout(r.timer);status(r,'ready','');r.retry.hidden=true;var u=new URL('https://www.google.com/maps/dir/');u.search=new URLSearchParams({api:'1',destination:r.name+', '+r.address,destination_place_id:r.placeId}).toString();r.directions.href=u.toString();if(!locationFor(r,d.place)){r.mapStatus.textContent='Location preview unavailable. Use Get directions.';return;}schedule();});d.addEventListener('gmp-error',function(){if(good(r,g))fail(r,'G06');});r.host.replaceChildren(d);} async function start(r){if(!active()||r.state==='ready'||r.state==='loading'||r.attempts>=2)return;r.attempts++;var g=++r.generation;r.panel.hidden=false;r.card.classList.add('vls-has-photos');r.retry.hidden=true;status(r,'loading','Loading available Google photos…');clearTimeout(r.timer);r.timer=setTimeout(function(){if(good(r,g))fail(r,'G03');},30000);try{await load();if(!good(r,g))return;if(r.placeId){showDetails(r,r.placeId,g);return;}var s=el('gmp-place-search'),q=el('gmp-place-text-search-request');s.setAttribute('orientation','horizontal');s.setAttribute('attribution-position','top');q.setAttribute('max-result-count','1');q.setAttribute('location-restriction',root.dataset.mapBounds);q.setAttribute('text-query',r.name+', '+r.address);s.append(q,config());var moved=false;s.addEventListener('gmp-load',function(){if(moved||!good(r,g))return;var p=s.places&&s.places[0];if(!p||!p.id||!matches(r,p)){fail(r,'G05');return;}moved=true;showDetails(r,p.id,g);});s.addEventListener('gmp-error',function(){if(!moved&&good(r,g))fail(r,'G04');});r.host.replaceChildren(s);}catch(err){if(good(r,g))fail(r,'G01');}} function visible(r){var b=r.stage.getBoundingClientRect();return !document.hidden&&!r.panel.hidden&&b.width>=200&&b.height>=200&&b.top0&&b.left0;} async function startMap(r){if(!active()||!r.location||!visible(r)||r.map||r.mapStarting||r.mapFailed)return;r.mapStarting=true;var e=epoch;r.mapStatus.textContent='Loading restaurant location…';try{if(!mapLoader)mapLoader=Promise.all([google.maps.importLibrary('maps'),google.maps.importLibrary('marker')]);var libs=await mapLoader;if(!active()||e!==epoch||!visible(r)){r.mapStarting=false;return;}r.map=new libs[0].Map(r.canvas,{center:r.location,zoom:16,mapId:'DEMO_MAP_ID',gestureHandling:'cooperative',mapTypeControl:false,streetViewControl:false,fullscreenControl:true,zoomControl:true,clickableIcons:false,keyboardShortcuts:true});r.mapLoads++;r.marker=new libs[1].AdvancedMarkerElement({map:r.map,position:r.location,title:r.name,gmpClickable:true});var content=el('div','vls-mini-map-info');content.append(el('strong','',r.name),r.directions.cloneNode(true));r.info=new libs[0].InfoWindow({content:content,ariaLabel:r.name});r.marker.addEventListener('gmp-click',function(){if(active())r.info.open({map:r.map,anchor:r.marker,shouldFocus:false});});r.map.addListener('tilesloaded',function(){if(active()&&e===epoch){clearTimeout(r.mapTimer);r.mapReady=true;r.mapStatus.textContent='';r.mapStatus.hidden=true;}});r.mapTimer=setTimeout(function(){if(active()&&e===epoch&&!r.mapReady)r.mapStatus.textContent='Map is taking longer to load. Get directions remains available.';},20000);r.mapStarting=false;}catch(err){r.mapStarting=false;if(active()&&e===epoch){r.mapFailed=true;r.mapStatus.textContent='Map preview unavailable. Use Get directions.';}}} function update(){queued=false;if(!active())return;records.forEach(function(r){r.panel.classList.toggle('vls-map-side-by-side',r.panel.getBoundingClientRect().width>=620&&innerWidth>=768);startMap(r);});}function schedule(){if(!queued){queued=true;requestAnimationFrame(update);}} var io='IntersectionObserver'in window?new IntersectionObserver(function(entries){entries.forEach(function(en){if(en.isIntersecting){var r=records.find(function(a){return a.stage===en.target;});if(r)startMap(r);}});},{rootMargin:'0px',threshold:0}):null;var ro='ResizeObserver'in window?new ResizeObserver(schedule):null; list.querySelectorAll('.vlsd-card[data-google-name]').forEach(function(card){var panel=el('section','vls-photo-panel');panel.hidden=true;panel.id='vls-photos-'+card.id;panel.setAttribute('aria-label',card.dataset.googleName+' photos and location');panel.innerHTML='

Photos & location · Google Maps

Open in Maps

External Google Maps photos. Food shown is not necessarily vegan.

';var r={card:card,panel:panel,name:card.dataset.googleName,address:card.dataset.googleAddress,matches:(card.dataset.googleMatch||card.dataset.googleName).split('|'),host:panel.querySelector('.vls-photo-frame'),status:panel.querySelector('.vls-photo-status'),retry:panel.querySelector('.vls-photo-retry'),stage:panel.querySelector('.vls-mini-map-stage'),canvas:panel.querySelector('.vls-mini-map-canvas'),mapStatus:panel.querySelector('.vls-mini-map-status'),directions:panel.querySelector('.vls-mini-directions'),state:'off',generation:0,attempts:0,placeId:'',location:null,map:null,mapStarting:false,mapFailed:false,mapLoads:0,mapReady:false};var u=new URL('https://www.google.com/maps/search/');u.search=new URLSearchParams({api:'1',query:r.name+', '+r.address}).toString();panel.querySelector('.vls-photo-map').href=u.toString();r.directions.href=u.toString();r.canvas.setAttribute('aria-label','Google map showing '+r.name);panel.querySelector('aside').setAttribute('aria-label','Location of '+r.name);card.querySelector('.vlsd-tags').after(panel);r.retry.addEventListener('click',function(){if(active()&&r.state==='error'&&r.attempts<2){loader=null;start(r);}});records.push(r);if(io)io.observe(r.stage);if(ro)ro.observe(panel);}); function cleanup(r){clearTimeout(r.timer);clearTimeout(r.mapTimer);r.generation++;if(r.info)r.info.close();if(r.marker)r.marker.map=null;if(r.map&&window.google){google.maps.event.clearInstanceListeners(r.map);r.map.unbindAll();}r.map=null;r.location=null;r.host.replaceChildren();r.canvas.replaceChildren();r.panel.hidden=true;r.card.classList.remove('vls-has-photos');status(r,'off','');} function sync(){if(reloading)return;var yes=consent();root.dataset.googleConsent=yes?'granted':'not-granted';if(yes&&!allowed){allowed=true;records.forEach(start);schedule();}else if(!yes&&allowed){allowed=false;epoch++;records.forEach(cleanup);if(requested){reloading=true;location.reload();}}} ['borlabs-cookie-after-init','borlabs-cookie-consent-saved','borlabs-cookie-dialog-closing','pageshow','focus'].forEach(function(n){window.addEventListener(n,sync);});window.addEventListener('scroll',schedule,{passive:true});window.addEventListener('resize',schedule);document.addEventListener('visibilitychange',function(){if(!document.hidden){sync();schedule();}});setInterval(function(){if(!document.hidden){sync();schedule();}},2000);window.__vlsCityGuideMediaStatus=function(){return{city:root.dataset.cityGuide,consent:consent(),venues:records.map(function(r){return{id:r.card.id,photos:r.state,mapLoads:r.mapLoads,mapReady:r.mapReady,hasLocation:!!r.location};})};};sync(); } if(document.readyState==='loading')document.addEventListener('DOMContentLoaded',init,{once:true});else init(); })();

Related

Similar posts

Leave a Reply