The Forte dei Marmi List
Five editorial picks, ranked by the only filter that matters: why you are dining.
Lorenzo
Marcello Tori's forty-year Michelin-starred institution — Forte dei Marmi's longest-running Michelin star and the village's most reliable serious dining.
Bistrot
Andrea Mattei's contemporary one-star — the Forte dei Marmi seafood Michelin star that runs the most reliable serious-but-relaxed evening in the village.
La Magnolia
Hotel Byron's intimate one-star — Cristoforo Trapani cooks modern Italian in a Liberty-villa garden room with the most romantic terrace in Forte dei Marmi.
Lux Lucis
Principe Forte dei Marmi's rooftop one-star — Valentino Cassanelli's contemporary Italian cooking with the village's most photographed Apuan Alps view.
Sciabola
The St. Mauritius Hotel's chef-driven one-star — the village's most reachable Michelin tasting menu and the room first-time Forte visitors should book first.
Best for First Date in Forte dei Marmi
Intimate, conversation-friendly rooms. Impressive without being intimidating. The tables where first impressions are made.
La Magnolia
Hotel Byron's intimate one-star — Cristoforo Trapani cooks modern Italian in a Liberty-villa garden room with the most romantic terrace in Forte dei Marmi.
Sciabola
The St. Mauritius Hotel's chef-driven one-star — the village's most reachable Michelin tasting menu and the room first-time Forte visitors should book first.
Best for Business Dinner in Forte dei Marmi
Power tables, private rooms, considered wine lists. Where the deal gets done.
Lorenzo
Marcello Tori's forty-year Michelin-starred institution — Forte dei Marmi's longest-running Michelin star and the village's most reliable serious dining.
Bistrot
Andrea Mattei's contemporary one-star — the Forte dei Marmi seafood Michelin star that runs the most reliable serious-but-relaxed evening in the village.
The Top Five in Forte dei Marmi
Ranked against a single question: if you had one night in Forte dei Marmi, where would you go?
Lorenzo
Marcello Tori's forty-year Michelin-starred institution — Forte dei Marmi's longest-running Michelin star and the village's most reliable serious dining.
Bistrot
Andrea Mattei's contemporary one-star — the Forte dei Marmi seafood Michelin star that runs the most reliable serious-but-relaxed evening in the village.
La Magnolia
Hotel Byron's intimate one-star — Cristoforo Trapani cooks modern Italian in a Liberty-villa garden room with the most romantic terrace in Forte dei Marmi.
Lux Lucis
Principe Forte dei Marmi's rooftop one-star — Valentino Cassanelli's contemporary Italian cooking with the village's most photographed Apuan Alps view.
Sciabola
The St. Mauritius Hotel's chef-driven one-star — the village's most reachable Michelin tasting menu and the room first-time Forte visitors should book first.
The Forte dei Marmi Dining Guide
Forte dei Marmi sits on the Tuscan coast at the foot of the Apuan Alps — between Pisa and the Cinque Terre, with a five-kilometre run of fine-sand beach and a backdrop of marble-quarry mountains that have produced the marble for every major Italian sculpture from Michelangelo's David onward. The town has been the summer dinner address of Milanese aristocracy since the 1920s and of Russian oligarchs since the 1990s; the village holds about 7,500 year-round residents and trebles in summer.
The dining is the densest Michelin-starred concentration on the Italian Riviera — five Michelin stars across four kitchens within the village proper. Lorenzo holds one star and is the institutional anchor (since the early 1980s, Marcello Tori running it for forty years); Bistrot holds another (Andrea Mattei, seafood); La Magnolia holds a third at Hotel Byron (Cristoforo Trapani, modern); Lux Lucis holds a fourth at Principe Forte dei Marmi (Valentino Cassanelli, with a rooftop view of the Apuan Alps); Sciabola at St. Mauritius Hotel rounds out the cluster.
Neighbourhoods
Reservations & Practical Notes
Lorenzo, Bistrot, La Magnolia and Lux Lucis must be booked four to six weeks ahead in July-August peak; two to three weeks shoulder. Sciabola is three to four weeks. Bagni-restaurants (the private beach clubs) take walk-ins for lunch outside peak weeks. Dress is Riviera-elegant — linen rather than tailored, sandals are acceptable everywhere. Tipping is not expected in Italy; a 5–10 per cent round-up is polite. Most kitchens close 14:30–19:00; do not arrive expecting late lunches.
/* RFK_UNIVERSAL_FILTER_V2 - sitewide occasion filter; reads data-occ + aliases */ (function(){ var SLUGS = {'first-date':'First Date','close-a-deal':'Close a Deal','birthday':'Birthday','impress-clients':'Impress Clients','proposal':'Proposal','solo-dining':'Solo Dining','team-dinner':'Team Dinner'}; var ALIASES = {'date-night':'first-date','anniversary':'birthday','romantic':'proposal'}; function canonical(s){ s=(s||'').trim().toLowerCase(); return ALIASES[s]||s; } function parseHash(){ var h=(location.hash||'').replace(/^#/,''); var m=h.match(/occasion=([a-z-]+)/i); return m?canonical(m[1]):''; } function tagSlug(t){ var s = canonical(t.getAttribute('data-occasion')||''); if (s) return s; var href = t.getAttribute('href')||''; var m = href.match(/#occasion=([a-z-]+)/i); return m ? canonical(m[1]) : ''; } function isAllTag(t){ if (tagSlug(t)) return false; var href = (t.getAttribute('href')||'').trim(); if (!href || href === '#' || href === '#all') return true; return /^\/city\/[^\/?#]+\/?$/.test(href.split('#')[0].split('?')[0]); } function cardOccasions(card){ var raw = (card.getAttribute('data-occ') || card.getAttribute('data-occasions') || card.getAttribute('data-occasion') || ''); var set = {}; raw.split(/[,;\s]+/).forEach(function(s){ var c=canonical(s); if(c) set[c]=1; }); return set; } function badgeMatches(card, slug){ var label = SLUGS[slug]; if (!label) return false; var found = false; card.querySelectorAll('.card-occasion-badge, .card-occasion, .card-occ, .occasion-badge, .card-badge').forEach(function(b){ var t = (b.textContent||'').trim().toLowerCase(); if (t === label.toLowerCase()) found = true; }); return found; } function cardMatches(card, slug){ if (!slug) return true; var occ = cardOccasions(card); if (Object.keys(occ).length) return !!occ[slug]; return badgeMatches(card, slug); } function ensureEmptyState(){ var grid = document.querySelector('.restaurant-grid'); if (!grid) return; var msg = document.getElementById('rfk-empty-state'); if (!msg) { msg = document.createElement('div'); msg.id = 'rfk-empty-state'; msg.style.cssText = 'display:none;padding:48px 24px;margin:24px 0 64px;border:1px solid rgba(201,168,76,0.3);background:rgba(22,20,15,0.5);text-align:center;font-family:DM Sans,sans-serif;color:#B8B5A8;'; grid.parentNode.insertBefore(msg, grid.nextSibling); } } function renderEmptyState(slug, shown){ var msg = document.getElementById('rfk-empty-state'); if (!msg) return; if (shown > 0 || !slug) { msg.style.display='none'; return; } var label = SLUGS[slug] || slug; msg.innerHTML = '
No '+label+' picks listed for this city yet.
'+ 'See the global guide to '+label+' restaurants curated across every city we cover.
'+ 'View '+label+' Guide →'; msg.style.display = 'block'; } function applyFilter(slug){ slug = canonical(slug); var label = SLUGS[slug] || ''; document.querySelectorAll('.occasion-tag').forEach(function(t){ var ts = tagSlug(t); var all = isAllTag(t); if ((!slug && all) || (slug && ts===slug)) t.classList.add('active'); else t.classList.remove('active'); }); var cards = document.querySelectorAll('.restaurant-card'); var shown = 0; cards.forEach(function(card){ if (cardMatches(card, slug)) { card.style.display=''; shown++; } else card.style.display='none'; }); var count = document.querySelector('.result-count') || document.querySelector('.section-header [style*="font-size:13px"]') || document.querySelector('.section-header div[style*="muted"]'); if (count) count.textContent = label ? (shown + ' ' + label + ' picks') : (shown + ' restaurants listed'); ensureEmptyState(); renderEmptyState(slug, shown); } function wire(){ document.querySelectorAll('.occasion-tag').forEach(function(t){ t.addEventListener('click', function(e){ var slug = tagSlug(t); var all = isAllTag(t); if (slug || all) { e.preventDefault(); if (slug) history.replaceState(null,'','#occasion='+slug); else history.replaceState(null,'', location.pathname + location.search); applyFilter(slug); var grid = document.querySelector('.restaurant-grid'); if (grid) grid.scrollIntoView({behavior:'smooth', block:'start'}); } }); }); applyFilter(parseHash()); window.addEventListener('hashchange', function(){ applyFilter(parseHash()); }); } if (document.readyState === 'loading') document.addEventListener('DOMContentLoaded', wire); else wire(); })();