/* ===== Nordlicht (Premium-Vorschau) — gemeinsames Design, mehrseitig ===== */
:root{
  --bg:#0B0F1A; --bg2:#121A2E; --bg3:#0e1626; --gold:#E8B873; --gold-soft:#F3D6A6;
  --cream:#F7F1E7; --ink:#F7F1E7; --muted:#A7B0C4; --line:rgba(247,241,231,0.12);
}
*{ margin:0; padding:0; box-sizing:border-box; }
html{ scroll-behavior:smooth; }
body{ font-family:'Source Sans 3',system-ui,sans-serif; color:var(--ink); background:var(--bg); line-height:1.7; overflow-x:hidden; }
h1,h2,h3{ font-family:'Space Grotesk',sans-serif; letter-spacing:-0.02em; line-height:1.1; }
a{ color:inherit; text-decoration:none; }
img{ max-width:100%; display:block; }
.wrap{ max-width:1120px; margin:0 auto; padding:0 28px; }
.btn{ display:inline-block; background:linear-gradient(120deg,var(--gold),var(--gold-soft)); color:#2A1E0A; padding:14px 30px; border-radius:40px; font-weight:700; transition:.25s; cursor:pointer; border:none; font-family:inherit; font-size:0.98rem; }
.btn:hover{ transform:translateY(-3px); box-shadow:0 16px 34px -12px rgba(232,184,115,0.6); }
.btn-line{ background:transparent; color:var(--gold); border:1.5px solid var(--gold); }

/* Digimato-Vorschau-Leiste */
.dm-bar{ position:sticky; top:0; z-index:60; background:#0A1B3D; color:#EAF1FF; display:flex; align-items:center; justify-content:center; gap:16px; flex-wrap:wrap; padding:10px 18px; font-size:0.85rem; }
.dm-bar strong{ color:#fff; }
.dm-bar a{ background:#1D6FE8; color:#fff; padding:6px 14px; border-radius:8px; font-weight:600; font-size:0.82rem; }

/* Navigation (mehrseitig) */
header{ position:sticky; top:41px; z-index:50; background:rgba(11,15,26,0.72); backdrop-filter:blur(14px); border-bottom:1px solid var(--line); }
.nav{ display:flex; align-items:center; height:70px; gap:20px; }
.logo{ font-family:'Space Grotesk',sans-serif; font-weight:700; font-size:1.45rem; letter-spacing:0.04em; }
.logo b{ color:var(--gold); }
nav.links{ margin-left:auto; display:flex; gap:4px; align-items:center; }
nav.links a{ padding:8px 15px; border-radius:8px; color:var(--muted); font-weight:500; transition:.2s; }
nav.links a:hover{ color:var(--gold); }
nav.links a.active{ color:var(--gold); }
.lang{ display:flex; gap:4px; margin-left:10px; border:1px solid var(--line); border-radius:30px; padding:3px; }
.lang button{ background:none; border:none; color:var(--muted); font-family:inherit; font-weight:600; font-size:0.82rem; padding:5px 11px; border-radius:20px; cursor:pointer; transition:.2s; }
.lang button.active{ background:var(--gold); color:#2A1E0A; }
.burger{ display:none; background:none; border:none; color:var(--cream); cursor:pointer; padding:6px; margin-left:auto; }
.burger svg{ width:26px; height:26px; }
@media(max-width:860px){
  .burger{ display:block; }
  nav.links{ position:fixed; inset:111px 0 auto 0; flex-direction:column; align-items:stretch; gap:2px; margin:0; background:#0b1120; border-bottom:1px solid var(--line); padding:14px 22px 20px; transform:translateY(-140%); transition:transform .3s; }
  nav.links.open{ transform:translateY(0); }
  nav.links a{ padding:13px 12px; font-size:1.05rem; }
  .lang{ margin:10px 0 0; align-self:flex-start; }
}

/* Sektionen & Reveal */
section{ padding:96px 0; }
.reveal{ opacity:0; transform:translateY(30px); transition:opacity .8s ease, transform .8s ease; }
.reveal.in{ opacity:1; transform:none; }
.kick{ color:var(--gold); font-weight:600; letter-spacing:0.2em; text-transform:uppercase; font-size:0.76rem; }
.sec-head{ max-width:640px; margin:0 auto 54px; text-align:center; }
.sec-head h2{ font-size:clamp(2rem,4vw,3.2rem); margin-top:12px; }
.sec-head p{ color:var(--muted); margin-top:14px; }
.page-hero{ padding:80px 0 40px; text-align:center; background:radial-gradient(ellipse 60% 60% at 50% 0%, rgba(232,184,115,0.14), transparent 60%); }
.page-hero .kick{ opacity:0; animation:fadeUp .8s ease .1s forwards; }
.page-hero h1{ font-size:clamp(2.4rem,5.5vw,4rem); margin:16px 0 18px; opacity:0; animation:fadeUp .8s ease .25s forwards; }
.page-hero h1 em{ font-style:normal; background:linear-gradient(120deg,var(--gold),var(--gold-soft)); -webkit-background-clip:text; background-clip:text; -webkit-text-fill-color:transparent; }
.page-hero p{ color:var(--muted); max-width:52ch; margin:0 auto; font-size:1.15rem; opacity:0; animation:fadeUp .8s ease .4s forwards; }
@keyframes fadeUp{ from{ opacity:0; transform:translateY(28px);} to{ opacity:1; transform:none; } }

/* Start-Hero groß */
.hero{ position:relative; min-height:82vh; display:flex; align-items:center; overflow:hidden; background:radial-gradient(ellipse 60% 50% at 72% 18%, rgba(232,184,115,0.16), transparent 60%), linear-gradient(160deg,#0B0F1A,#121A2E); }
.hero-content{ position:relative; z-index:2; max-width:680px; }
.hero .kick{ opacity:0; animation:fadeUp .9s ease .1s forwards; }
.hero h1{ font-size:clamp(2.6rem,6.5vw,5rem); margin:18px 0 22px; opacity:0; animation:fadeUp .9s ease .28s forwards; }
.hero h1 em{ font-style:normal; background:linear-gradient(120deg,var(--gold),var(--gold-soft)); -webkit-background-clip:text; background-clip:text; -webkit-text-fill-color:transparent; }
.hero p{ font-size:1.24rem; color:var(--muted); max-width:48ch; opacity:0; animation:fadeUp .9s ease .46s forwards; }
.hero-actions{ display:flex; gap:14px; margin-top:34px; flex-wrap:wrap; opacity:0; animation:fadeUp .9s ease .64s forwards; }
.scroll-hint{ position:absolute; bottom:26px; left:50%; transform:translateX(-50%); color:var(--muted); font-size:0.72rem; letter-spacing:0.2em; text-transform:uppercase; z-index:2; }

/* Highlight-Kacheln (Start) */
.highlights{ display:grid; grid-template-columns:repeat(3,1fr); gap:22px; }
.hl{ background:var(--bg2); border:1px solid var(--line); border-radius:18px; padding:30px 26px; text-align:center; transition:.25s; }
.hl:hover{ transform:translateY(-6px); border-color:rgba(232,184,115,0.5); }
.hl .em{ font-size:2.4rem; margin-bottom:14px; }
.hl h3{ font-size:1.25rem; margin-bottom:8px; }
.hl p{ color:var(--muted); font-size:0.95rem; }
@media(max-width:820px){ .highlights{ grid-template-columns:1fr; } }

/* Split-Bereich */
.split{ display:grid; grid-template-columns:1fr 1fr; gap:56px; align-items:center; }
.split-visual{ height:380px; border-radius:24px; display:flex; align-items:center; justify-content:center; font-size:7rem; box-shadow:0 40px 80px -40px rgba(0,0,0,0.7); border:1px solid var(--line); }
.split h2{ font-size:2.3rem; margin-bottom:16px; }
.split p{ color:var(--muted); margin-bottom:14px; }
@media(max-width:820px){ .split{ grid-template-columns:1fr; } }

/* Speisekarte */
.menu-cat{ margin-bottom:48px; }
.menu-cat h3{ font-size:1.6rem; color:var(--gold); margin-bottom:8px; }
.menu-cat .sep{ height:1px; background:var(--line); margin:14px 0 22px; }
.dish{ display:flex; align-items:baseline; gap:14px; padding:14px 0; border-bottom:1px dashed var(--line); }
.dish .d-main{ flex:1; }
.dish .d-name{ font-family:'Space Grotesk',sans-serif; font-weight:600; font-size:1.1rem; }
.dish .d-desc{ color:var(--muted); font-size:0.92rem; }
.dish .d-price{ font-family:'Space Grotesk',sans-serif; color:var(--gold); font-weight:600; white-space:nowrap; }
.menu-tabs{ display:flex; gap:10px; justify-content:center; flex-wrap:wrap; margin-bottom:44px; }
.menu-tabs a{ border:1px solid var(--line); border-radius:30px; padding:8px 18px; color:var(--muted); font-weight:600; font-size:0.88rem; transition:.2s; }
.menu-tabs a:hover, .menu-tabs a.active{ background:var(--gold); color:#2A1E0A; border-color:var(--gold); }

/* Galerie + Lightbox */
.gallery{ display:grid; grid-template-columns:repeat(4,1fr); grid-auto-rows:200px; gap:14px; }
.gcell{ border-radius:16px; overflow:hidden; cursor:pointer; position:relative; border:1px solid var(--line); transition:.3s; }
.gcell:hover{ transform:scale(1.03); z-index:2; box-shadow:0 20px 40px -18px rgba(0,0,0,0.6); }
.gcell::after{ content:"🔍"; position:absolute; inset:0; display:flex; align-items:center; justify-content:center; font-size:1.6rem; opacity:0; background:rgba(11,15,26,0.4); transition:.3s; }
.gcell:hover::after{ opacity:1; }
.gcell.big{ grid-column:span 2; grid-row:span 2; }
.g-emoji{ width:100%; height:100%; display:flex; align-items:center; justify-content:center; font-size:3.4rem; }
@media(max-width:820px){ .gallery{ grid-template-columns:repeat(2,1fr); } .gcell.big{ grid-column:span 2; grid-row:span 1; } }
.lightbox{ position:fixed; inset:0; z-index:100; background:rgba(6,9,15,0.94); display:none; align-items:center; justify-content:center; padding:30px; }
.lightbox.open{ display:flex; }
.lightbox .frame{ width:min(680px,90vw); height:min(70vh,520px); border-radius:20px; display:flex; align-items:center; justify-content:center; font-size:9rem; box-shadow:0 40px 90px -30px rgba(0,0,0,0.9); }
.lightbox .close{ position:absolute; top:24px; right:30px; color:#fff; font-size:2.2rem; cursor:pointer; line-height:1; }
.lightbox .cap{ position:absolute; bottom:36px; left:50%; transform:translateX(-50%); color:var(--cream); font-family:'Space Grotesk',sans-serif; font-size:1.1rem; }

/* Reservierung */
.book-card{ max-width:760px; margin:0 auto; background:linear-gradient(160deg,#141d33,#0e1626); border:1px solid var(--line); border-radius:24px; padding:40px; box-shadow:0 40px 80px -40px rgba(0,0,0,0.7); }
.book-card label{ display:block; font-size:0.82rem; font-weight:600; margin:16px 0 7px; color:var(--cream); }
.book-card input, .book-card select{ width:100%; padding:12px 14px; border:1px solid var(--line); border-radius:10px; background:#0b1120; color:var(--cream); font-family:inherit; font-size:0.96rem; }
.book-row{ display:grid; grid-template-columns:repeat(4,1fr); gap:10px; margin:8px 0 4px; }
.slot{ border:1px solid var(--line); border-radius:12px; padding:14px 6px; text-align:center; cursor:pointer; transition:.2s; font-weight:600; }
.slot:hover{ border-color:var(--gold); }
.slot.sel{ background:var(--gold); color:#2A1E0A; border-color:var(--gold); }
.slot small{ display:block; font-size:0.72rem; color:var(--muted); font-weight:500; }
.slot.sel small{ color:#5a4413; }
.two{ display:grid; grid-template-columns:1fr 1fr; gap:16px; }
.book-status{ text-align:center; margin-top:18px; color:var(--gold); font-weight:600; min-height:1.4em; }
@media(max-width:620px){ .book-row{ grid-template-columns:repeat(2,1fr); } .two{ grid-template-columns:1fr; } }

/* Kontakt */
.contact-grid{ display:grid; grid-template-columns:1fr 1fr; gap:40px; }
.contact-info .row{ display:flex; align-items:center; gap:12px; margin-bottom:16px; color:var(--muted); }
.contact-info .row strong{ color:var(--cream); }
.map-mock{ border-radius:18px; overflow:hidden; border:1px solid var(--line); min-height:340px; position:relative; background:linear-gradient(0deg, rgba(232,184,115,0.05), rgba(232,184,115,0.05)), repeating-linear-gradient(0deg,#141d33 0 38px,#0e1626 38px 40px), repeating-linear-gradient(90deg,#141d33 0 38px,#0e1626 38px 40px); }
.map-mock .pin{ position:absolute; left:46%; top:40%; font-size:2.4rem; filter:drop-shadow(0 6px 6px rgba(0,0,0,0.5)); }
.map-mock .lbl{ position:absolute; left:50%; top:58%; transform:translateX(-50%); background:#0b1120; border:1px solid var(--line); border-radius:10px; padding:8px 14px; font-size:0.85rem; font-weight:600; white-space:nowrap; }
@media(max-width:820px){ .contact-grid{ grid-template-columns:1fr; } }

footer{ background:#080B12; color:var(--muted); text-align:center; padding:44px 20px; font-size:0.9rem; border-top:1px solid var(--line); }
.hidden{ display:none !important; }
@media (prefers-reduced-motion:reduce){ .reveal{ opacity:1; transform:none; transition:none; } .page-hero .kick,.page-hero h1,.page-hero p,.hero .kick,.hero h1,.hero p,.hero-actions{ animation:none; opacity:1; } }
