.nl-wrap *{margin:0;padding:0;box-sizing:border-box}
.nl-wrap{
--ink:#1e2a22;--ink-soft:#4f5a52;--paper:#faf5e9;--sand:#ecdcc1;
--terracotta:#c8623f;--terracotta-deep:#a04a2c;--gold:#c9a86a;
font-family:'Inter',sans-serif;color:#1e2a22;line-height:1.6;-webkit-font-smoothing:antialiased;
}
.nl-wrap{
position:relative !important;width:100vw !important;max-width:100vw !important;
left:50% !important;right:50% !important;margin-left:-50vw !important;margin-right:-50vw !important;
overflow-x:hidden;
}
.elementor-widget-html > .elementor-widget-container,
.elementor-widget-text-editor > .elementor-widget-container,
.elementor-element > .elementor-widget-container{padding:0 !important;margin:0 !important}
.elementor-widget-html,.elementor-section:first-child,.e-con:first-child{padding-top:0 !important;margin-top:0 !important}
.entry-title,.page-title,.page-header,h1.page-title,.wp-block-post-title{display:none !important}
/* Hero */
.nl-hero{position:relative;min-height:clamp(360px,52vh,560px);display:flex;align-items:center;justify-content:center;text-align:center;background:#1e2a22;overflow:hidden}
.nl-hero-bg{position:absolute;inset:0;background-image:url('https://norrlyst.dk/wp-content/uploads/2026/06/Vaeksthuset_selskab_-5-scaled.jpg');background-size:cover;background-position:center;filter:brightness(.55);transform:scale(1.02)}
.nl-hero-inner{position:relative;z-index:2;padding:64px 24px;max-width:820px}
.nl-hero-back{position:absolute;top:18px;left:clamp(16px,4vw,32px);z-index:3;color:#faf5e9;font-family:'Inter',sans-serif;font-size:12px;letter-spacing:.14em;text-transform:uppercase;text-decoration:none;opacity:.85;display:inline-flex;align-items:center;gap:6px;transition:opacity .2s ease,color .2s ease}
.nl-hero-back:hover{opacity:1;color:#c9a86a}
.nl-hero-kicker{color:#ecdcc1;font-size:12px;letter-spacing:.32em;text-transform:uppercase;font-weight:500;margin-bottom:18px}
.nl-hero h1{font-family:'Cormorant Garamond',serif;color:#faf5e9;font-weight:500;font-size:clamp(34px,5.2vw,60px);line-height:1.06;letter-spacing:.005em}
.nl-hero h1 em{font-style:italic}
.nl-hero p{color:#ecdcc1;font-size:clamp(15px,1.5vw,18px);font-weight:300;margin-top:20px;max-width:560px;margin-left:auto;margin-right:auto}
/* Intro */
.nl-intro{background:#faf5e9;padding:clamp(48px,7vw,84px) 24px;text-align:center}
.nl-intro-inner{max-width:760px;margin:0 auto}
.nl-intro h2{font-family:'Cormorant Garamond',serif;font-weight:500;font-size:clamp(26px,3.4vw,40px);line-height:1.12;color:#1e2a22;margin-bottom:22px}
.nl-intro h2 em{font-style:italic}
.nl-intro p{color:#4f5a52;font-size:clamp(15px,1.4vw,17px);font-weight:300}
/* Grid */
.nl-grid-section{background:#ecdcc1;padding:clamp(40px,6vw,72px) clamp(16px,4vw,48px)}
.nl-grid{max-width:1240px;margin:0 auto;display:grid;grid-template-columns:repeat(3,1fr);gap:30px 28px}
.nl-card{background:#fdfaf0;border:2px solid transparent;border-radius:16px;overflow:hidden;display:flex;flex-direction:column;box-shadow:0 4px 16px rgba(30,42,34,.07);transition:transform .3s ease,box-shadow .3s ease,border-color .3s ease}
.nl-card:hover{transform:translateY(-6px);border-color:#1e2a22;box-shadow:7px 9px 0 #1e2a22}
.nl-card:hover .nl-card-img{transform:scale(1.06)}
.nl-card-imgwrap{position:relative;overflow:hidden}
.nl-card-img{width:100% !important;height:220px !important;object-fit:cover !important;object-position:center;display:block;transition:transform .55s ease}
.nl-michelin{position:absolute;top:12px;left:12px;width:46px;height:46px;border-radius:50%;background:#fff;padding:5px;box-shadow:0 2px 8px rgba(0,0,0,.25);object-fit:contain}
.nl-card-panel{padding:18px 20px 22px;flex:1;display:flex;flex-direction:column}
.nl-card h3{font-family:'Cormorant Garamond',serif;font-weight:600;font-size:24px;color:#1e2a22;line-height:1.1}
.nl-card-desc{color:#4f5a52;font-size:14px;font-weight:300;margin-top:8px;min-height:3.4em}
.nl-status{display:flex;align-items:center;gap:7px;margin-top:14px;font-size:12px;font-weight:400;color:#4f5a52;min-height:18px}
.nl-dot{width:8px;height:8px;border-radius:50%;flex:0 0 auto;background:#b0b0a8}
.nl-dot.open{background:#3f9b58}
.nl-dot.closed{background:#c0553f}
.nl-status b{font-weight:600;color:#1e2a22}
.nl-card-meta{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:10px}
.nl-card-addr{color:#4f5a52;font-size:11.5px;letter-spacing:.02em;cursor:pointer;transition:color .2s ease}
.nl-card-addr:hover{color:#1e2a22;text-decoration:underline}
.nl-tag{flex:0 0 auto;font-family:'Inter',sans-serif;font-size:10px;font-weight:500;letter-spacing:.12em;text-transform:uppercase;color:#1e2a22;background:#ecdcc1;border:1px solid rgba(30,42,34,.5);border-radius:999px;padding:4px 10px;white-space:nowrap}
.nl-card-actions{margin-top:16px}
.nl-btn{display:inline-flex;align-items:center;justify-content:center;width:100%;background:#1e2a22 !important;color:#faf5e9 !important;font-family:'Inter',sans-serif !important;font-size:12px !important;font-weight:500 !important;letter-spacing:.2em;text-transform:uppercase;padding:13px 18px !important;border:none !important;border-radius:8px;cursor:pointer;text-decoration:none !important;-webkit-appearance:none;appearance:none;transition:background .25s ease}
.nl-btn:hover{background:#33473b !important}
/* Map */
.nl-map-section{background:#faf5e9;padding:clamp(40px,6vw,72px) clamp(16px,4vw,48px);text-align:center}
.nl-map-section h2{font-family:'Cormorant Garamond',serif;font-weight:500;font-size:clamp(24px,3vw,36px);color:#1e2a22;margin-bottom:8px}
.nl-map-section h2 em{font-style:italic}
.nl-map-section p{color:#4f5a52;font-weight:300;font-size:15px;margin-bottom:26px}
.nl-map-frame{position:relative;max-width:1100px;width:100%;height:480px;margin:0 auto;border-radius:14px;border:2px solid #1e2a22;overflow:hidden}
.nl-map-frame iframe{position:absolute;left:0;top:-64px;width:100%;height:calc(100% + 64px);border:0;display:block}
/* Footer */
.nl-foot{background:#1e2a22;color:#faf5e9;text-align:center;padding:clamp(44px,6vw,72px) 24px}
.nl-foot h2{font-family:'Cormorant Garamond',serif;font-weight:500;font-size:clamp(24px,3vw,36px);color:#faf5e9}
.nl-foot h2 em{font-style:italic}
.nl-foot p{color:#ecdcc1;font-weight:300;margin-top:14px;max-width:520px;margin-left:auto;margin-right:auto}
/* Booking popup */
.nl-booking-overlay{display:none;position:fixed;inset:0;background:rgba(15,20,16,.72);z-index:99999;align-items:center;justify-content:center;padding:20px}
.nl-booking-overlay.open{display:flex}
.nl-booking-modal{background:#fff;border-radius:6px;width:100%;max-width:560px;height:min(720px,86svh);display:flex;flex-direction:column;overflow:hidden;box-shadow:0 20px 60px rgba(0,0,0,.4)}
.nl-booking-head{display:flex;align-items:center;justify-content:space-between;padding:14px 18px;background:#1e2a22;color:#faf5e9;font-family:'Inter',sans-serif;font-size:13px;letter-spacing:.18em;text-transform:uppercase}
.nl-booking-head button{background:none;border:none;color:#faf5e9;cursor:pointer;font-size:22px;line-height:1;padding:0 4px}
.nl-booking-modal iframe{flex:1;border:none;width:100%}
/* SEO */
.nl-seo{background:#faf5e9;padding:clamp(40px,6vw,72px) 24px;border-top:1px solid rgba(30,42,34,.12)}
.nl-seo-inner{max-width:880px;margin:0 auto}
.nl-seo h2{font-family:'Cormorant Garamond',serif;font-weight:500;font-size:clamp(24px,3vw,34px);color:#1e2a22;margin-bottom:16px}
.nl-seo h2 em{font-style:italic}
.nl-seo h3{font-family:'Cormorant Garamond',serif;font-weight:600;font-size:clamp(19px,2.2vw,24px);color:#1e2a22;margin:28px 0 10px}
.nl-seo p{color:#4f5a52;font-size:15px;font-weight:300;margin-bottom:12px}
.nl-seo ul{color:#4f5a52;font-size:15px;font-weight:300;margin:6px 0 0 20px}
.nl-seo li{margin-bottom:6px}
/* Filters */
.nl-filters{max-width:1240px;margin:0 auto 28px;display:flex;flex-wrap:wrap;gap:10px;justify-content:center}
.nl-chip{font-family:'Inter',sans-serif;font-size:11px;font-weight:500;letter-spacing:.14em;text-transform:uppercase;color:#1e2a22 !important;background:transparent !important;border:1px solid rgba(30,42,34,.4) !important;border-radius:999px;padding:8px 16px;cursor:pointer;transition:all .2s ease;-webkit-appearance:none;appearance:none}
.nl-chip:hover{border-color:#1e2a22 !important;color:#1e2a22 !important;background:#ecdcc1 !important}
.nl-chip.active{background:#1e2a22 !important;color:#faf5e9 !important;border-color:#1e2a22 !important}
.nl-card.nl-hidden{display:none}
/* Share */
.nl-share{position:absolute;top:12px;right:12px;z-index:2;width:36px;height:36px;border-radius:50%;background:rgba(30,42,34,.55);border:none;cursor:pointer;display:flex;align-items:center;justify-content:center;color:#faf5e9;transition:background .2s ease;-webkit-appearance:none;appearance:none;padding:0}
.nl-share:hover{background:#1e2a22}
.nl-share svg{width:16px;height:16px}
/* Toast */
.nl-toast{position:fixed;left:50%;bottom:28px;transform:translateX(-50%) translateY(20px);background:#1e2a22;color:#faf5e9;font-family:'Inter',sans-serif;font-size:13px;letter-spacing:.04em;padding:12px 20px;border-radius:8px;box-shadow:0 8px 24px rgba(0,0,0,.3);opacity:0;pointer-events:none;transition:opacity .3s ease,transform .3s ease;z-index:100000}
.nl-toast.show{opacity:1;transform:translateX(-50%) translateY(0)}
.nl-fade{opacity:0;transform:translateY(20px);transition:opacity .7s ease,transform .7s ease}
.nl-fade.nl-visible{opacity:1;transform:translateY(0)}
@media (max-width:1000px){.nl-grid{grid-template-columns:repeat(2,1fr);gap:26px 22px}}
@media (max-width:640px){.nl-grid{grid-template-columns:1fr;max-width:460px}.nl-card-img{height:210px !important}.nl-card-desc{min-height:0}.nl-map-frame{height:380px}}
One city. Fourteen restaurants. Endless ways to dine.
Norrlyst is a collection of unique restaurants in central Copenhagen—from a glasshouse in Opera Park and a table high up in the tower of Christiansborg Palace, to intimate dining rooms on cobblestone streets and tables with a view of the lakes. Whatever you’re in the mood for, you’ll find a table with us. Choose a restaurant below and book directly on this page.
All
Open now
Michelin
Old Town
By the water
Væksthuset
A glasshouse restaurant in Opera Park, surrounded by greenery and natural light.
📍 Ekvipagemestervej 18 Opera Park
Book a table
Restaurant Norrlyst
Modern Danish cuisine and classic smørrebrød in the heart of the old town.
📍 Kompagnistræde 8 Old Town
Book a table
Norrlyst in Tårnet
Dining with sweeping views from the tower of Christiansborg Palace.
📍 Christiansborg Slotsplads 1 The Tower
Book a table
Odette
A charming, intimate restaurant on a cobblestone street in the city center.
📍 Kompagnistræde 18 Old Town
Book a table
Restaurant Gemini
Refined dining with a view of the Copenhagen lakes.
📍 10 Gl. Kongevej Lake View
Book a table
Lille Norrlyst
An intimate, private dining experience tucked away in the old town.
📍 Badstuestræde 6A Private Dining
Book a table
Lago
Mediterranean flavors by the lakes in vibrant Nørrebro.
📍 Korsgade 1 Lake View
Book a table
Sukaiba
Delicious pan-Asian cuisine, cocktails, and a lively lounge.
📍 5 Martha Christensen Street City View
Book a table
Gabrielle
A warm, French-inspired bistro right in the heart of the city.
📍 Vestergade 3 City Center
Book a table
Theo
Seasonal cuisine served in an elegant dining room in the old town.
📍 Skindergade 29 Old Town
Book a table
Abigail
An intimate dining room for a memorable evening out.
📍 Nørregade 30 City Center
Book a table
Kjærbølling's House
A restaurant and green surroundings at Copenhagen Zoo in Frederiksberg.
📍 Roskildevej 32 Copenhagen Zoo
Sixteen Twelve
All-day dining and brunch on bustling Jægersborggade in Nørrebro.
📍 Jægersborggade 8 Nørrebro
Book a table
Small Mill
An intimate evening meal by the historic windmill in Christianshavn.
📍 52 Voldgade, Christianshavn Christianshavn
Find us on the map
Most of our restaurants are within walking distance in central Copenhagen. Tap an address to find it here.
Where to Eat in Copenhagen
Looking for restaurants in Copenhagen? Norrlyst brings together twelve distinctive restaurants across the city, most of which are within easy walking distance of each other in the heart of Copenhagen’s city center (Indre By). Whether you’re looking for good restaurants nearby after a day of sightseeing, a special place for dinner, or somewhere to get together with friends and family, you’ll find a table that’s perfect for the occasion.
Dining in Central Copenhagen
Our restaurants are located in some of the city’s most memorable settings—a glasshouse restaurant in Opera Park, a dining room high in the tower of Christiansborg Palace, tables with a view of the Copenhagen lakes, and intimate dining rooms tucked away along the cobblestone streets of the old town. From classic Danish cuisine and smørrebrød to Mediterranean and pan-Asian menus, there’s something for every taste, right in the heart of the city.
Book a table online
You can book any restaurant in just a few clicks right here on this page—simply choose your restaurant and select a time. Planning a celebration, a business dinner, or a private event? Many of our venues also accommodate private dining and larger groups. Explore the restaurants above and reserve your table in Copenhagen today.
Popular with visitors looking for:
Restaurants in Copenhagen's city center and the Old Town
Where to Eat Near the Main Attractions—Christiansborg, Nyhavn, and Strøget
Dining with a view of the city and the lakes
Michelin Guide restaurants and fine dining for a special evening
Traditional Danish cuisine, smørrebrød, and international cuisines
Group bookings, private dining, and celebrations
{
"@context": "https://schema.org",
"@type": "ItemList",
"name": "Norrlyst restaurants in Copenhagen",
"itemListElement": [
{
"@type": "ListItem",
"position": 1,
"item": {
"@type": "Restaurant",
"name": "Væksthuset",
"address": {
"@type": "PostalAddress",
"streetAddress": "Ekvipagemestervej 18",
"postalCode": "1438",
"addressLocality": "København",
"addressCountry": "DK"
},
"geo": {
"@type": "GeoCoordinates",
"latitude": 55.6808847,
"longitude": 12.5999326
},
"acceptsReservations": true,
"openingHoursSpecification": [
{
"@type": "OpeningHoursSpecification",
"dayOfWeek": "Sunday",
"opens": "09:00",
"closes": "11:00"
},
{
"@type": "OpeningHoursSpecification",
"dayOfWeek": "Sunday",
"opens": "11:30",
"closes": "14:30"
},
{
"@type": "OpeningHoursSpecification",
"dayOfWeek": "Sunday",
"opens": "17:00",
"closes": "23:00"
},
{
"@type": "OpeningHoursSpecification",
"dayOfWeek": "Monday",
"opens": "09:00",
"closes": "11:00"
},
{
"@type": "OpeningHoursSpecification",
"dayOfWeek": "Monday",
"opens": "11:30",
"closes": "14:30"
},
{
"@type": "OpeningHoursSpecification",
"dayOfWeek": "Monday",
"opens": "17:00",
"closes": "23:00"
},
{
"@type": "OpeningHoursSpecification",
"dayOfWeek": "Tuesday",
"opens": "09:00",
"closes": "11:00"
},
{
"@type": "OpeningHoursSpecification",
"dayOfWeek": "Tuesday",
"opens": "11:30",
"closes": "14:30"
},
{
"@type": "OpeningHoursSpecification",
"dayOfWeek": "Tuesday",
"opens": "17:00",
"closes": "23:00"
},
{
"@type": "OpeningHoursSpecification",
"dayOfWeek": "Wednesday",
"opens": "09:00",
"closes": "11:00"
},
{
"@type": "OpeningHoursSpecification",
"dayOfWeek": "Wednesday",
"opens": "11:30",
"closes": "14:30"
},
{
"@type": "OpeningHoursSpecification",
"dayOfWeek": "Wednesday",
"opens": "17:00",
"closes": "23:00"
},
{
"@type": "OpeningHoursSpecification",
"dayOfWeek": "Thursday",
"opens": "09:00",
"closes": "11:00"
},
{
"@type": "OpeningHoursSpecification",
"dayOfWeek": "Thursday",
"opens": "11:30",
"closes": "14:30"
},
{
"@type": "OpeningHoursSpecification",
"dayOfWeek": "Thursday",
"opens": "17:00",
"closes": "23:00"
},
{
"@type": "OpeningHoursSpecification",
"dayOfWeek": "Friday",
"opens": "09:00",
"closes": "11:00"
},
{
"@type": "OpeningHoursSpecification",
"dayOfWeek": "Friday",
"opens": "11:30",
"closes": "14:30"
},
{
"@type": "OpeningHoursSpecification",
"dayOfWeek": "Friday",
"opens": "17:00",
"closes": "23:00"
},
{
"@type": "OpeningHoursSpecification",
"dayOfWeek": "Saturday",
"opens": "09:00",
"closes": "11:00"
},
{
"@type": "OpeningHoursSpecification",
"dayOfWeek": "Saturday",
"opens": "11:30",
"closes": "14:30"
},
{
"@type": "OpeningHoursSpecification",
"dayOfWeek": "Saturday",
"opens": "17:00",
"closes": "23:00"
}
]
}
},
{
"@type": "ListItem",
"position": 2,
"item": {
"@type": "Restaurant",
"name": "Restaurant Norrlyst",
"address": {
"@type": "PostalAddress",
"streetAddress": "Kompagnistræde 8",
"postalCode": "1208",
"addressLocality": "København",
"addressCountry": "DK"
},
"geo": {
"@type": "GeoCoordinates",
"latitude": 55.6776306,
"longitude": 12.5763016
},
"acceptsReservations": true,
"openingHoursSpecification": [
{
"@type": "OpeningHoursSpecification",
"dayOfWeek": "Sunday",
"opens": "11:30",
"closes": "16:00"
},
{
"@type": "OpeningHoursSpecification",
"dayOfWeek": "Sunday",
"opens": "17:00",
"closes": "23:00"
},
{
"@type": "OpeningHoursSpecification",
"dayOfWeek": "Monday",
"opens": "11:30",
"closes": "16:00"
},
{
"@type": "OpeningHoursSpecification",
"dayOfWeek": "Monday",
"opens": "17:00",
"closes": "23:00"
},
{
"@type": "OpeningHoursSpecification",
"dayOfWeek": "Tuesday",
"opens": "11:30",
"closes": "16:00"
},
{
"@type": "OpeningHoursSpecification",
"dayOfWeek": "Tuesday",
"opens": "17:00",
"closes": "23:00"
},
{
"@type": "OpeningHoursSpecification",
"dayOfWeek": "Wednesday",
"opens": "11:30",
"closes": "16:00"
},
{
"@type": "OpeningHoursSpecification",
"dayOfWeek": "Wednesday",
"opens": "17:00",
"closes": "23:00"
},
{
"@type": "OpeningHoursSpecification",
"dayOfWeek": "Thursday",
"opens": "11:30",
"closes": "16:00"
},
{
"@type": "OpeningHoursSpecification",
"dayOfWeek": "Thursday",
"opens": "17:00",
"closes": "23:00"
},
{
"@type": "OpeningHoursSpecification",
"dayOfWeek": "Friday",
"opens": "11:30",
"closes": "16:00"
},
{
"@type": "OpeningHoursSpecification",
"dayOfWeek": "Friday",
"opens": "17:00",
"closes": "23:00"
},
{
"@type": "OpeningHoursSpecification",
"dayOfWeek": "Saturday",
"opens": "11:30",
"closes": "16:00"
},
{
"@type": "OpeningHoursSpecification",
"dayOfWeek": "Saturday",
"opens": "17:00",
"closes": "23:00"
}
],
"award": "Bib Gourmand, MICHELIN Guide 2026"
}
},
{
"@type": "ListItem",
"position": 3,
"item": {
"@type": "Restaurant",
"name": "Norrlyst i Tårnet",
"address": {
"@type": "PostalAddress",
"streetAddress": "Christiansborg Slotsplads 1",
"postalCode": "1218",
"addressLocality": "København",
"addressCountry": "DK"
},
"geo": {
"@type": "GeoCoordinates",
"latitude": 55.6762787,
"longitude": 12.5804461
},
"acceptsReservations": true,
"openingHoursSpecification": [
{
"@type": "OpeningHoursSpecification",
"dayOfWeek": "Tuesday",
"opens": "11:15",
"closes": "16:00"
},
{
"@type": "OpeningHoursSpecification",
"dayOfWeek": "Tuesday",
"opens": "17:00",
"closes": "22:00"
},
{
"@type": "OpeningHoursSpecification",
"dayOfWeek": "Wednesday",
"opens": "11:15",
"closes": "16:00"
},
{
"@type": "OpeningHoursSpecification",
"dayOfWeek": "Wednesday",
"opens": "17:00",
"closes": "22:00"
},
{
"@type": "OpeningHoursSpecification",
"dayOfWeek": "Thursday",
"opens": "11:15",
"closes": "16:00"
},
{
"@type": "OpeningHoursSpecification",
"dayOfWeek": "Thursday",
"opens": "17:00",
"closes": "22:00"
},
{
"@type": "OpeningHoursSpecification",
"dayOfWeek": "Friday",
"opens": "11:15",
"closes": "16:00"
},
{
"@type": "OpeningHoursSpecification",
"dayOfWeek": "Friday",
"opens": "17:00",
"closes": "22:00"
},
{
"@type": "OpeningHoursSpecification",
"dayOfWeek": "Saturday",
"opens": "11:15",
"closes": "16:00"
},
{
"@type": "OpeningHoursSpecification",
"dayOfWeek": "Saturday",
"opens": "17:00",
"closes": "22:00"
},
{
"@type": "OpeningHoursSpecification",
"dayOfWeek": "Sunday",
"opens": "11:15",
"closes": "16:00"
}
]
}
},
{
"@type": "ListItem",
"position": 4,
"item": {
"@type": "Restaurant",
"name": "Odette",
"address": {
"@type": "PostalAddress",
"streetAddress": "Kompagnistræde 18",
"postalCode": "1208",
"addressLocality": "København",
"addressCountry": "DK"
},
"geo": {
"@type": "GeoCoordinates",
"latitude": 55.6771927,
"longitude": 12.5754676
},
"acceptsReservations": true,
"openingHoursSpecification": [
{
"@type": "OpeningHoursSpecification",
"dayOfWeek": "Monday",
"opens": "11:30",
"closes": "16:00"
},
{
"@type": "OpeningHoursSpecification",
"dayOfWeek": "Monday",
"opens": "17:00",
"closes": "23:00"
},
{
"@type": "OpeningHoursSpecification",
"dayOfWeek": "Tuesday",
"opens": "11:30",
"closes": "16:00"
},
{
"@type": "OpeningHoursSpecification",
"dayOfWeek": "Tuesday",
"opens": "17:00",
"closes": "23:00"
},
{
"@type": "OpeningHoursSpecification",
"dayOfWeek": "Wednesday",
"opens": "11:30",
"closes": "16:00"
},
{
"@type": "OpeningHoursSpecification",
"dayOfWeek": "Wednesday",
"opens": "17:00",
"closes": "23:00"
},
{
"@type": "OpeningHoursSpecification",
"dayOfWeek": "Thursday",
"opens": "11:30",
"closes": "16:00"
},
{
"@type": "OpeningHoursSpecification",
"dayOfWeek": "Thursday",
"opens": "17:00",
"closes": "23:00"
},
{
"@type": "OpeningHoursSpecification",
"dayOfWeek": "Friday",
"opens": "11:30",
"closes": "16:00"
},
{
"@type": "OpeningHoursSpecification",
"dayOfWeek": "Friday",
"opens": "17:00",
"closes": "23:00"
},
{
"@type": "OpeningHoursSpecification",
"dayOfWeek": "Saturday",
"opens": "11:30",
"closes": "16:00"
},
{
"@type": "OpeningHoursSpecification",
"dayOfWeek": "Saturday",
"opens": "17:00",
"closes": "23:00"
}
]
}
},
{
"@type": "ListItem",
"position": 5,
"item": {
"@type": "Restaurant",
"name": "Restaurant Gemini",
"address": {
"@type": "PostalAddress",
"streetAddress": "Gammel Kongevej 10",
"postalCode": "1610",
"addressLocality": "København",
"addressCountry": "DK"
},
"geo": {
"@type": "GeoCoordinates",
"latitude": 55.6744087,
"longitude": 12.5576238
},
"acceptsReservations": true,
"openingHoursSpecification": [
{
"@type": "OpeningHoursSpecification",
"dayOfWeek": "Sunday",
"opens": "11:30",
"closes": "16:00"
},
{
"@type": "OpeningHoursSpecification",
"dayOfWeek": "Sunday",
"opens": "17:00",
"closes": "23:00"
},
{
"@type": "OpeningHoursSpecification",
"dayOfWeek": "Monday",
"opens": "11:30",
"closes": "16:00"
},
{
"@type": "OpeningHoursSpecification",
"dayOfWeek": "Monday",
"opens": "17:00",
"closes": "23:00"
},
{
"@type": "OpeningHoursSpecification",
"dayOfWeek": "Tuesday",
"opens": "11:30",
"closes": "16:00"
},
{
"@type": "OpeningHoursSpecification",
"dayOfWeek": "Tuesday",
"opens": "17:00",
"closes": "23:00"
},
{
"@type": "OpeningHoursSpecification",
"dayOfWeek": "Wednesday",
"opens": "11:30",
"closes": "16:00"
},
{
"@type": "OpeningHoursSpecification",
"dayOfWeek": "Wednesday",
"opens": "17:00",
"closes": "23:00"
},
{
"@type": "OpeningHoursSpecification",
"dayOfWeek": "Thursday",
"opens": "11:30",
"closes": "16:00"
},
{
"@type": "OpeningHoursSpecification",
"dayOfWeek": "Thursday",
"opens": "17:00",
"closes": "23:00"
},
{
"@type": "OpeningHoursSpecification",
"dayOfWeek": "Friday",
"opens": "11:30",
"closes": "16:00"
},
{
"@type": "OpeningHoursSpecification",
"dayOfWeek": "Friday",
"opens": "17:00",
"closes": "23:00"
},
{
"@type": "OpeningHoursSpecification",
"dayOfWeek": "Saturday",
"opens": "11:30",
"closes": "16:00"
},
{
"@type": "OpeningHoursSpecification",
"dayOfWeek": "Saturday",
"opens": "17:00",
"closes": "23:00"
}
]
}
},
{
"@type": "ListItem",
"position": 6,
"item": {
"@type": "Restaurant",
"name": "Lille Norrlyst",
"address": {
"@type": "PostalAddress",
"streetAddress": "Badstuestræde 6A",
"postalCode": "1209",
"addressLocality": "København",
"addressCountry": "DK"
},
"geo": {
"@type": "GeoCoordinates",
"latitude": 55.678363,
"longitude": 12.5747569
},
"acceptsReservations": true,
"openingHoursSpecification": [
{
"@type": "OpeningHoursSpecification",
"dayOfWeek": "Sunday",
"opens": "11:30",
"closes": "16:00"
},
{
"@type": "OpeningHoursSpecification",
"dayOfWeek": "Sunday",
"opens": "18:00",
"closes": "23:00"
},
{
"@type": "OpeningHoursSpecification",
"dayOfWeek": "Monday",
"opens": "11:30",
"closes": "16:00"
},
{
"@type": "OpeningHoursSpecification",
"dayOfWeek": "Monday",
"opens": "18:00",
"closes": "23:00"
},
{
"@type": "OpeningHoursSpecification",
"dayOfWeek": "Tuesday",
"opens": "11:30",
"closes": "16:00"
},
{
"@type": "OpeningHoursSpecification",
"dayOfWeek": "Tuesday",
"opens": "18:00",
"closes": "23:00"
},
{
"@type": "OpeningHoursSpecification",
"dayOfWeek": "Wednesday",
"opens": "11:30",
"closes": "16:00"
},
{
"@type": "OpeningHoursSpecification",
"dayOfWeek": "Wednesday",
"opens": "18:00",
"closes": "23:00"
},
{
"@type": "OpeningHoursSpecification",
"dayOfWeek": "Thursday",
"opens": "11:30",
"closes": "16:00"
},
{
"@type": "OpeningHoursSpecification",
"dayOfWeek": "Thursday",
"opens": "18:00",
"closes": "23:00"
},
{
"@type": "OpeningHoursSpecification",
"dayOfWeek": "Friday",
"opens": "11:30",
"closes": "16:00"
},
{
"@type": "OpeningHoursSpecification",
"dayOfWeek": "Friday",
"opens": "18:00",
"closes": "23:00"
},
{
"@type": "OpeningHoursSpecification",
"dayOfWeek": "Saturday",
"opens": "11:30",
"closes": "16:00"
},
{
"@type": "OpeningHoursSpecification",
"dayOfWeek": "Saturday",
"opens": "18:00",
"closes": "23:00"
}
]
}
},
{
"@type": "ListItem",
"position": 7,
"item": {
"@type": "Restaurant",
"name": "Lago",
"address": {
"@type": "PostalAddress",
"streetAddress": "Korsgade 1",
"postalCode": "2200",
"addressLocality": "København",
"addressCountry": "DK"
},
"geo": {
"@type": "GeoCoordinates",
"latitude": 55.6844665,
"longitude": 12.5595205
},
"acceptsReservations": true,
"openingHoursSpecification": [
{
"@type": "OpeningHoursSpecification",
"dayOfWeek": "Sunday",
"opens": "17:00",
"closes": "23:59"
},
{
"@type": "OpeningHoursSpecification",
"dayOfWeek": "Monday",
"opens": "17:00",
"closes": "23:59"
},
{
"@type": "OpeningHoursSpecification",
"dayOfWeek": "Tuesday",
"opens": "17:00",
"closes": "23:59"
},
{
"@type": "OpeningHoursSpecification",
"dayOfWeek": "Wednesday",
"opens": "17:00",
"closes": "23:59"
},
{
"@type": "OpeningHoursSpecification",
"dayOfWeek": "Thursday",
"opens": "17:00",
"closes": "23:59"
},
{
"@type": "OpeningHoursSpecification",
"dayOfWeek": "Friday",
"opens": "17:00",
"closes": "23:59"
},
{
"@type": "OpeningHoursSpecification",
"dayOfWeek": "Saturday",
"opens": "17:00",
"closes": "23:59"
}
]
}
},
{
"@type": "ListItem",
"position": 8,
"item": {
"@type": "Restaurant",
"name": "Sukaiba",
"address": {
"@type": "PostalAddress",
"streetAddress": "Martha Christensens Vej 5",
"postalCode": "1799",
"addressLocality": "København",
"addressCountry": "DK"
},
"geo": {
"@type": "GeoCoordinates",
"latitude": 55.6397251,
"longitude": 12.577772
},
"acceptsReservations": true,
"openingHoursSpecification": [
{
"@type": "OpeningHoursSpecification",
"dayOfWeek": "Monday",
"opens": "17:00",
"closes": "23:00"
},
{
"@type": "OpeningHoursSpecification",
"dayOfWeek": "Tuesday",
"opens": "17:00",
"closes": "23:00"
},
{
"@type": "OpeningHoursSpecification",
"dayOfWeek": "Wednesday",
"opens": "17:00",
"closes": "23:00"
},
{
"@type": "OpeningHoursSpecification",
"dayOfWeek": "Thursday",
"opens": "17:00",
"closes": "23:00"
},
{
"@type": "OpeningHoursSpecification",
"dayOfWeek": "Friday",
"opens": "11:30",
"closes": "16:00"
},
{
"@type": "OpeningHoursSpecification",
"dayOfWeek": "Friday",
"opens": "17:00",
"closes": "23:59"
},
{
"@type": "OpeningHoursSpecification",
"dayOfWeek": "Saturday",
"opens": "11:30",
"closes": "16:00"
},
{
"@type": "OpeningHoursSpecification",
"dayOfWeek": "Saturday",
"opens": "17:00",
"closes": "23:59"
},
{
"@type": "OpeningHoursSpecification",
"dayOfWeek": "Sunday",
"opens": "11:30",
"closes": "16:00"
},
{
"@type": "OpeningHoursSpecification",
"dayOfWeek": "Sunday",
"opens": "17:00",
"closes": "23:00"
}
]
}
},
{
"@type": "ListItem",
"position": 9,
"item": {
"@type": "Restaurant",
"name": "Gabrielle",
"address": {
"@type": "PostalAddress",
"streetAddress": "Vestergade 3",
"postalCode": "1456",
"addressLocality": "København",
"addressCountry": "DK"
},
"geo": {
"@type": "GeoCoordinates",
"latitude": 55.6778608,
"longitude": 12.5713563
},
"acceptsReservations": true,
"openingHoursSpecification": [
{
"@type": "OpeningHoursSpecification",
"dayOfWeek": "Monday",
"opens": "12:00",
"closes": "16:00"
},
{
"@type": "OpeningHoursSpecification",
"dayOfWeek": "Monday",
"opens": "17:00",
"closes": "23:00"
},
{
"@type": "OpeningHoursSpecification",
"dayOfWeek": "Tuesday",
"opens": "12:00",
"closes": "16:00"
},
{
"@type": "OpeningHoursSpecification",
"dayOfWeek": "Tuesday",
"opens": "17:00",
"closes": "23:00"
},
{
"@type": "OpeningHoursSpecification",
"dayOfWeek": "Wednesday",
"opens": "12:00",
"closes": "16:00"
},
{
"@type": "OpeningHoursSpecification",
"dayOfWeek": "Wednesday",
"opens": "17:00",
"closes": "23:00"
},
{
"@type": "OpeningHoursSpecification",
"dayOfWeek": "Thursday",
"opens": "12:00",
"closes": "16:00"
},
{
"@type": "OpeningHoursSpecification",
"dayOfWeek": "Thursday",
"opens": "17:00",
"closes": "23:00"
},
{
"@type": "OpeningHoursSpecification",
"dayOfWeek": "Friday",
"opens": "12:00",
"closes": "16:00"
},
{
"@type": "OpeningHoursSpecification",
"dayOfWeek": "Friday",
"opens": "17:00",
"closes": "23:00"
},
{
"@type": "OpeningHoursSpecification",
"dayOfWeek": "Saturday",
"opens": "12:00",
"closes": "16:00"
},
{
"@type": "OpeningHoursSpecification",
"dayOfWeek": "Saturday",
"opens": "17:00",
"closes": "23:00"
}
],
"award": "Bib Gourmand, MICHELIN Guide 2026"
}
},
{
"@type": "ListItem",
"position": 10,
"item": {
"@type": "Restaurant",
"name": "Theo",
"address": {
"@type": "PostalAddress",
"streetAddress": "Skindergade 29",
"postalCode": "1159",
"addressLocality": "København",
"addressCountry": "DK"
},
"geo": {
"@type": "GeoCoordinates",
"latitude": 55.6792999,
"longitude": 12.5744671
},
"acceptsReservations": true,
"openingHoursSpecification": [
{
"@type": "OpeningHoursSpecification",
"dayOfWeek": "Monday",
"opens": "11:30",
"closes": "16:00"
},
{
"@type": "OpeningHoursSpecification",
"dayOfWeek": "Monday",
"opens": "17:00",
"closes": "23:30"
},
{
"@type": "OpeningHoursSpecification",
"dayOfWeek": "Tuesday",
"opens": "11:30",
"closes": "16:00"
},
{
"@type": "OpeningHoursSpecification",
"dayOfWeek": "Tuesday",
"opens": "17:00",
"closes": "23:30"
},
{
"@type": "OpeningHoursSpecification",
"dayOfWeek": "Wednesday",
"opens": "11:30",
"closes": "16:00"
},
{
"@type": "OpeningHoursSpecification",
"dayOfWeek": "Wednesday",
"opens": "17:00",
"closes": "23:30"
},
{
"@type": "OpeningHoursSpecification",
"dayOfWeek": "Thursday",
"opens": "11:30",
"closes": "16:00"
},
{
"@type": "OpeningHoursSpecification",
"dayOfWeek": "Thursday",
"opens": "17:00",
"closes": "23:30"
},
{
"@type": "OpeningHoursSpecification",
"dayOfWeek": "Friday",
"opens": "11:30",
"closes": "16:00"
},
{
"@type": "OpeningHoursSpecification",
"dayOfWeek": "Friday",
"opens": "17:00",
"closes": "23:30"
},
{
"@type": "OpeningHoursSpecification",
"dayOfWeek": "Saturday",
"opens": "11:30",
"closes": "16:00"
},
{
"@type": "OpeningHoursSpecification",
"dayOfWeek": "Saturday",
"opens": "17:00",
"closes": "23:30"
}
],
"award": "MICHELIN Guide 2026"
}
},
{
"@type": "ListItem",
"position": 11,
"item": {
"@type": "Restaurant",
"name": "Abigail",
"address": {
"@type": "PostalAddress",
"streetAddress": "Nørregade 30",
"postalCode": "1165",
"addressLocality": "København",
"addressCountry": "DK"
},
"geo": {
"@type": "GeoCoordinates",
"latitude": 55.6817423,
"longitude": 12.5712303
},
"acceptsReservations": true,
"openingHoursSpecification": [
{
"@type": "OpeningHoursSpecification",
"dayOfWeek": "Tuesday",
"opens": "17:00",
"closes": "23:59"
},
{
"@type": "OpeningHoursSpecification",
"dayOfWeek": "Wednesday",
"opens": "17:00",
"closes": "23:59"
},
{
"@type": "OpeningHoursSpecification",
"dayOfWeek": "Thursday",
"opens": "17:00",
"closes": "23:59"
},
{
"@type": "OpeningHoursSpecification",
"dayOfWeek": "Friday",
"opens": "17:00",
"closes": "23:59"
},
{
"@type": "OpeningHoursSpecification",
"dayOfWeek": "Saturday",
"opens": "17:00",
"closes": "23:59"
}
],
"award": "MICHELIN Guide 2026"
}
},
{
"@type": "ListItem",
"position": 12,
"item": {
"@type": "Restaurant",
"name": "Kjærbøllings Hus",
"address": {
"@type": "PostalAddress",
"streetAddress": "Roskildevej 32",
"postalCode": "2000",
"addressLocality": "Frederiksberg",
"addressCountry": "DK"
},
"geo": {
"@type": "GeoCoordinates",
"latitude": 55.6717296,
"longitude": 12.5225476
},
"acceptsReservations": true,
"openingHoursSpecification": [
{
"@type": "OpeningHoursSpecification",
"dayOfWeek": "Sunday",
"opens": "11:00",
"closes": "16:00"
},
{
"@type": "OpeningHoursSpecification",
"dayOfWeek": "Monday",
"opens": "11:00",
"closes": "16:00"
},
{
"@type": "OpeningHoursSpecification",
"dayOfWeek": "Tuesday",
"opens": "11:00",
"closes": "16:00"
},
{
"@type": "OpeningHoursSpecification",
"dayOfWeek": "Wednesday",
"opens": "11:00",
"closes": "16:00"
},
{
"@type": "OpeningHoursSpecification",
"dayOfWeek": "Thursday",
"opens": "11:00",
"closes": "16:00"
},
{
"@type": "OpeningHoursSpecification",
"dayOfWeek": "Friday",
"opens": "11:00",
"closes": "16:00"
},
{
"@type": "OpeningHoursSpecification",
"dayOfWeek": "Saturday",
"opens": "11:00",
"closes": "16:00"
}
]
}
},
{
"@type": "ListItem",
"position": 13,
"item": {
"@type": "Restaurant",
"name": "Sixteen Twelve",
"address": {
"@type": "PostalAddress",
"streetAddress": "Jægersborggade 8",
"postalCode": "2200",
"addressLocality": "København",
"addressCountry": "DK"
},
"geo": {
"@type": "GeoCoordinates",
"latitude": 55.6919857,
"longitude": 12.5451002
},
"acceptsReservations": true,
"openingHoursSpecification": [
{
"@type": "OpeningHoursSpecification",
"dayOfWeek": "Sunday",
"opens": "09:00",
"closes": "16:00"
},
{
"@type": "OpeningHoursSpecification",
"dayOfWeek": "Monday",
"opens": "09:00",
"closes": "16:00"
},
{
"@type": "OpeningHoursSpecification",
"dayOfWeek": "Tuesday",
"opens": "09:00",
"closes": "16:00"
},
{
"@type": "OpeningHoursSpecification",
"dayOfWeek": "Wednesday",
"opens": "09:00",
"closes": "16:00"
},
{
"@type": "OpeningHoursSpecification",
"dayOfWeek": "Wednesday",
"opens": "17:00",
"closes": "21:00"
},
{
"@type": "OpeningHoursSpecification",
"dayOfWeek": "Thursday",
"opens": "09:00",
"closes": "16:00"
},
{
"@type": "OpeningHoursSpecification",
"dayOfWeek": "Thursday",
"opens": "17:00",
"closes": "21:00"
},
{
"@type": "OpeningHoursSpecification",
"dayOfWeek": "Friday",
"opens": "09:00",
"closes": "16:00"
},
{
"@type": "OpeningHoursSpecification",
"dayOfWeek": "Friday",
"opens": "17:00",
"closes": "22:00"
},
{
"@type": "OpeningHoursSpecification",
"dayOfWeek": "Saturday",
"opens": "09:00",
"closes": "16:00"
},
{
"@type": "OpeningHoursSpecification",
"dayOfWeek": "Saturday",
"opens": "17:00",
"closes": "22:00"
}
]
}
},
{
"@type": "ListItem",
"position": 14,
"item": {
"@type": "Restaurant",
"name": "Lille Mølle",
"address": {
"@type": "PostalAddress",
"streetAddress": "Christianshavns Voldgade 52",
"postalCode": "1424",
"addressLocality": "København",
"addressCountry": "DK"
},
"geo": {
"@type": "GeoCoordinates",
"latitude": 55.671478,
"longitude": 12.59637
},
"acceptsReservations": true,
"openingHoursSpecification": [
{
"@type": "OpeningHoursSpecification",
"dayOfWeek": "Wednesday",
"opens": "18:00",
"closes": "23:59"
},
{
"@type": "OpeningHoursSpecification",
"dayOfWeek": "Thursday",
"opens": "18:00",
"closes": "23:59"
},
{
"@type": "OpeningHoursSpecification",
"dayOfWeek": "Friday",
"opens": "18:00",
"closes": "23:59"
},
{
"@type": "OpeningHoursSpecification",
"dayOfWeek": "Saturday",
"opens": "18:00",
"closes": "23:59"
}
],
"award": "One MICHELIN Star, MICHELIN Guide 2026"
}
}
]
}
(function(){
/* ---------- Booking popup ---------- */
var overlay=document.getElementById('nlBookingOverlay'),iframe=document.getElementById('nlBookingIframe'),titleEl=document.getElementById('nlBookingTitle');
window.nlOpenBooking=function(url,name){iframe.src=url;titleEl.textContent=name?('Book a table - '+name):'Book a table';overlay.classList.add('open');document.body.style.overflow='hidden'};
window.nlCloseBooking=function(){overlay.classList.remove('open');document.body.style.overflow='';iframe.src=''};
window.nlOverlayClick=function(e){if(e.target===overlay)window.nlCloseBooking()};
document.addEventListener('keydown',function(e){if(e.key==='Escape')window.nlCloseBooking()});
/* ---------- Fade-in ---------- */
var obs=new IntersectionObserver(function(en){en.forEach(function(e){if(e.isIntersecting)e.target.classList.add('nl-visible')})},{threshold:0.1});
document.querySelectorAll('.nl-fade').forEach(function(el){obs.observe(el)});
/* ---------- Opening hours ("Open today") ----------
Day keys: 0=Sun,1=Mon,2=Tue,3=Wed,4=Thu,5=Fri,6=Sat.
Each day = array of [openMin, closeMin] intervals (minutes from midnight).
All hours confirmed by Norrlyst (July 2026). */
function t(s){var p=s.split(':');return (+p[0])*60+(+p[1])}
function pat(days,iv){var o={};days.forEach(function(d){o[d]=iv.map(function(x){return [t(x[0]),t(x[1])]})});return o}
var LD=[['11:30','16:00'],['17:00','23:00']];
var HOURS={
norrlyst: pat([0,1,2,3,4,5,6], LD),
gemini: pat([0,1,2,3,4,5,6], LD),
odette: pat([1,2,3,4,5,6], LD),
theo: pat([1,2,3,4,5,6], [['11:30','16:00'],['17:00','23:30']]),
gabrielle: pat([1,2,3,4,5,6], [['12:00','16:00'],['17:00','23:00']]),
lago: pat([0,1,2,3,4,5,6], [['17:00','24:00']]),
taarnet: Object.assign(pat([2,3,4,5,6], [['11:15','16:00'],['17:00','22:00']]), pat([0], [['11:15','16:00']])),
vaeksthuset: pat([0,1,2,3,4,5,6], [['09:00','11:00'],['11:30','14:30'],['17:00','23:00']]),
lillenorrlyst: pat([0,1,2,3,4,5,6], [['11:30','16:00'],['18:00','23:00']]),
sukaiba: Object.assign(pat([1,2,3,4], [['17:00','23:00']]), pat([5,6], [['11:30','16:00'],['17:00','24:30']]), pat([0], [['11:30','16:00'],['17:00','23:00']])),
abigail: pat([2,3,4,5,6], [['17:00','24:00']]),
kjaerboellings:pat([0,1,2,3,4,5,6], [['11:00','16:00']]),
sixteentwelve: Object.assign(pat([0,1,2],[['09:00','16:00']]), pat([3,4],[['09:00','16:00'],['17:00','21:00']]), pat([5,6],[['09:00','16:00'],['17:00','22:00']])),
lillemoelle: pat([3,4,5,6],[['18:00','24:00']])
};
function fmt(m){var h=Math.floor(m/60)%24,mm=m%60;return (h<10?'0':'')+h+':'+(mm=r[0]&&mins<r[1]){openNow=true;closeAt=r[1]} if(mins<r[0]&&nextOpen===null)nextOpen=r[0]});
return {iv:iv,openNow:openNow,closeAt:closeAt,nextOpen:nextOpen};
}
document.querySelectorAll('.nl-card').forEach(function(card){
var key=card.getAttribute('data-key');var el=card.querySelector('[data-status]');if(!el)return;
var s=todayHours(key);
var dot='
';
var label,hours='';
if(s.iv.length){hours=' · '+s.iv.map(function(r){return fmt(r[0])+'-'+fmt(r[1])}).join(', ');}
if(s.openNow){label='
Open now ';}
else if(s.nextOpen!==null){label='
Opens '+fmt(s.nextOpen)+' ';}
else if(s.iv.length){label='
Closed now ';}
else{label='
Closed today ';hours='';}
el.innerHTML=dot+'
'+label+hours+' ';
card.dataset.open=s.openNow?'1':'0';
});
/* ---------- Click address -> scroll to map + centre on restaurant ---------- */
var COORDS={
vaeksthuset:[55.6808847,12.5999326],norrlyst:[55.6776306,12.5763016],taarnet:[55.6762787,12.5804461],
odette:[55.6771927,12.5754676],gemini:[55.6744087,12.5576238],lillenorrlyst:[55.678363,12.5747569],
lago:[55.6844665,12.5595205],sukaiba:[55.6397251,12.577772],gabrielle:[55.6778608,12.5713563],
theo:[55.6792999,12.5744671],abigail:[55.6817423,12.5712303],kjaerboellings:[55.6717296,12.5225476],
sixteentwelve:[55.6919857,12.5451002],lillemoelle:[55.671478,12.59637]
};
var MAP_BASE='https://www.google.com/maps/d/embed?mid=1pp1UZeYD56_f819SQDojnlNhuAsWIdo';
document.querySelectorAll('.nl-card').forEach(function(card){
var addr=card.querySelector('.nl-card-addr');if(!addr)return;
addr.setAttribute('role','button');addr.setAttribute('tabindex','0');addr.title='Show on map';
function go(){
var c=COORDS[card.getAttribute('data-key')];
var f=document.getElementById('nlMapFrame');
if(c&&f){f.src=MAP_BASE+'&ll='+c[0]+','+c[1]+'&z=17';}
var sec=document.getElementById('nlMapSection');
if(sec)sec.scrollIntoView({behavior:'smooth',block:'start'});
}
addr.addEventListener('click',go);
addr.addEventListener('keydown',function(e){if(e.key==='Enter'||e.key===' '){e.preventDefault();go();}});
});
/* ---------- Filter chips ---------- */
(function(){
var chips=document.querySelectorAll('.nl-chip');
var cards=document.querySelectorAll('.nl-card');
function apply(fl){
cards.forEach(function(c){
var show = fl==='all' ? true
: fl==='open' ? c.dataset.open==='1'
: (' '+(c.getAttribute('data-cat')||'')+' ').indexOf(' '+fl+' ')>-1;
c.classList.toggle('nl-hidden', !show);
});
}
chips.forEach(function(ch){ch.addEventListener('click',function(){
chips.forEach(function(x){x.classList.remove('active')});
ch.classList.add('active');
apply(ch.getAttribute('data-filter'));
});});
})();
/* ---------- Share ("Send to a friend") ---------- */
function nlToast(msg){var t=document.getElementById('nlToast');if(!t)return;t.textContent=msg;t.classList.add('show');clearTimeout(t._t);t._t=setTimeout(function(){t.classList.remove('show')},2200);}
document.addEventListener('click', async function(ev){
var b=ev.target.closest('.nl-share'); if(!b) return;
ev.preventDefault(); ev.stopPropagation();
var card=b.closest('.nl-card'); var name=b.getAttribute('data-name');
var url=location.origin+location.pathname+(card&&card.id?('#'+card.id):'');
var text='Check out '+name+' - Norrlyst, Copenhagen';
if(navigator.share){try{await navigator.share({title:name,text:text,url:url});}catch(e){}}
else if(navigator.clipboard){try{await navigator.clipboard.writeText(url);nlToast('Link copied to clipboard');}catch(e){nlToast('Could not copy link');}}
else{window.location.href='mailto:?subject='+encodeURIComponent(name)+'&body='+encodeURIComponent(text+' '+url);}
});
})();