@font-face{font-family:'Bricolage Grotesque';font-style:normal;font-weight:600;font-display:swap;src:url(/assets/fonts/BricolageGrotesque-600.woff2) format('woff2')}@font-face{font-family:'Bricolage Grotesque';font-style:normal;font-weight:800;font-display:swap;src:url(/assets/fonts/BricolageGrotesque-800.woff2) format('woff2')}@font-face{font-family:'Hanken Grotesk';font-style:normal;font-weight:400;font-display:swap;src:url(/assets/fonts/HankenGrotesk-400.woff2) format('woff2')}@font-face{font-family:'Hanken Grotesk';font-style:normal;font-weight:500;font-display:swap;src:url(/assets/fonts/HankenGrotesk-500.woff2) format('woff2')}@font-face{font-family:'Hanken Grotesk';font-style:normal;font-weight:700;font-display:swap;src:url(/assets/fonts/HankenGrotesk-700.woff2) format('woff2')}*{-webkit-tap-highlight-color:transparent}
html,body{max-width:100%;overflow-x:clip}
html{scroll-behavior:smooth}
/* Masonry-Galerie als FESTES CSS (Tailwind-CDN generiert columns/h-auto unzuverlaessig -> sonst Raster) */
.dg-masonry{column-count:2;column-gap:.75rem}
@media(min-width:640px){.dg-masonry{column-count:3}}
.dg-masonry>*{break-inside:avoid;-webkit-column-break-inside:avoid;page-break-inside:avoid;margin:0 0 .75rem;width:100%;display:block}
.dg-masonry img{display:block;width:100%;height:auto}
/* Sanftes Mosaik: NUR bei flach-querformatigen Galerien (leichter Zuschnitt -> Staffelung), Fokus leicht oben (schont Koepfe) */
.dg-mosaik{display:grid;grid-template-columns:repeat(2,1fr);grid-auto-rows:9px;gap:.75rem;grid-auto-flow:row dense}
@media(min-width:640px){.dg-mosaik{grid-template-columns:repeat(3,1fr)}}
@media(min-width:1024px){.dg-mosaik{grid-template-columns:repeat(4,1fr)}}
.dg-mosaik>*{grid-row:span 25;margin:0;overflow:hidden}
.dg-mosaik>*:nth-child(5n+1){grid-row:span 30}
.dg-mosaik>*:nth-child(5n+3){grid-row:span 33}
.dg-mosaik>*:nth-child(5n+5){grid-row:span 22}
.dg-mosaik img{display:block;width:100%;height:100%;object-fit:cover;object-position:center 38%}
/* Hero-Foto-Band: Spaltenzahl = Bildzahl (1-3), damit bei wenigen Fotos keine Luecke bleibt */
.dg-band{display:grid}
.dg-band-1{grid-template-columns:1fr}
.dg-band-2{grid-template-columns:repeat(2,1fr)}
.dg-band-3{grid-template-columns:repeat(2,1fr)}
@media(min-width:768px){.dg-band-3{grid-template-columns:repeat(3,1fr)}}
body{-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
.dg-stars{position:relative;display:inline-block;white-space:nowrap;color:var(--star-off,#e2dccf);line-height:1;letter-spacing:.04em}
.dg-stars-on{position:absolute;left:0;top:0;overflow:hidden;color:var(--star,#b4801f);white-space:nowrap}
.dg-lb{position:fixed;inset:0;background:rgba(24,18,14,.95);z-index:120;display:none;align-items:center;justify-content:center;backdrop-filter:blur(3px)}
.dg-lb.open{display:flex}
.dg-lb img{max-width:92vw;max-height:84vh;object-fit:contain;box-shadow:0 30px 80px rgba(0,0,0,.6)}
[class*="rounded"]:not([class*="rounded-full"]){border-radius:0!important}
img{transition:transform .8s cubic-bezier(.16,1,.3,1)!important;backface-visibility:hidden}
.group:hover img{will-change:transform}
.nb-track{scrollbar-width:none;-ms-overflow-style:none}
.nb-track::-webkit-scrollbar{display:none}
/* Nearby-Pfeile mittig auf Bildhoehe (aspect-4/3, fixer Container ab 1400px wo Pfeile sichtbar); robust gegen variable Textzeilen. Ersetzt top-[34%], das durch sprintf-%% nicht in tailwind.css kompiliert wurde */
.nb-arrow{top:88px;transform:translateY(-50%)}
.dg-lb.open #lbimg{animation:lbin .28s cubic-bezier(.22,1,.36,1)}
@keyframes lbin{from{opacity:0;transform:scale(.9)}to{opacity:1;transform:none}}
.dg-lb-cap{position:absolute;bottom:44px;left:50%;transform:translateX(-50%);color:#f2e7da;font-size:13px;max-width:80vw;text-align:center;opacity:.9}
.g-ov{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.35rem;background:rgba(26,17,10,.5);backdrop-filter:blur(2px);color:#fff;opacity:0;transition:opacity .25s}
.g-tile:hover .g-ov,button:hover>.g-ov{opacity:1}
.dg-lb-close{position:absolute;top:14px;right:22px;color:#fff;font-size:40px;line-height:1;background:none;border:0;cursor:pointer;opacity:.8}
.dg-lb-close:hover{opacity:1}
.dg-lb-nav{position:absolute;top:50%;transform:translateY(-50%);background:rgba(255,255,255,.12);color:#fff;border:0;width:54px;height:54px;border-radius:50%;cursor:pointer;display:grid;place-items:center;transition:.2s}
.dg-lb-nav:hover{background:rgba(255,255,255,.24)}
.dg-lb-prev{left:18px}.dg-lb-next{right:18px}
.dg-lb-count{position:absolute;bottom:20px;left:50%;transform:translateX(-50%);color:#fff;font-size:13px;letter-spacing:.08em;opacity:.85}
@media(max-width:640px){.dg-lb-nav{width:44px;height:44px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important}}
body{background:#ffffff;color:#1f1e18;--star:#c0862b;--star-off:#e5e0d4}
.hair{border-color:#e7e3da}
/* ===== Globale Topbar + Hauptnavigation ===== */
.dg-topbar{position:sticky;top:0;z-index:40;background:rgba(255,255,255,.92);backdrop-filter:blur(8px);border-bottom:1px solid #e7e3da}
.dg-topbar-in{max-width:80rem;margin:0 auto;padding:0 20px;height:60px;display:flex;align-items:center;gap:20px}
.dg-brand{display:inline-flex;align-items:center;flex:none}
.dg-brand img{display:block;width:auto}
.dg-nav{display:flex;align-items:center;gap:2px;margin-left:8px;flex:1 1 auto;flex-wrap:wrap}
.dg-nav-a{font-size:.95rem;font-weight:600;color:#4c473b;text-decoration:none;padding:8px 12px;line-height:1;border-bottom:2px solid transparent;transition:color .15s,border-color .15s;white-space:nowrap;text-transform:uppercase;letter-spacing:.02em}
.dg-nav-a:hover{color:#5a6a2c}
.dg-nav-a.is-active{color:#1f1e18;border-bottom-color:#5a6a2c}
.dg-topbar-extra{flex:none;margin-left:auto}
.dg-nav-toggle{display:none;flex:none;margin-left:auto;background:none;border:0;color:#1f1e18;cursor:pointer;padding:6px}
@media(max-width:900px){
  .dg-nav-toggle{display:inline-flex}
  .dg-nav{position:absolute;left:0;right:0;top:60px;background:#fff;border-bottom:1px solid #e7e3da;flex-direction:column;align-items:stretch;gap:0;margin:0;padding:6px 0;box-shadow:0 16px 34px -18px rgba(31,30,24,.35);display:none}
  .dg-topbar.is-open .dg-nav{display:flex}
  .dg-nav-a{padding:13px 22px;border-bottom:1px solid #f0ece2}
  .dg-nav-a.is-active{border-bottom-color:#f0ece2;box-shadow:inset 3px 0 0 #5a6a2c}
  .dg-topbar-extra{display:none}
}

/* Globaler Abstand: Seiteninhalt soll nicht an der Footer-Oberkante (1px-Linie) kleben (~40px, ueberall) */
body > footer{margin-top:40px}

/* Globale Vorgabe: ALLE Text-Links werden beim Hover unterstrichen (site-weit).
   Ausnahmen, damit es sauber bleibt: Button-Flaechen mit eigenem Hintergrund (inline
   background oder bg-/hover:bg-Utility) sowie reine Bild-/Logo-/Karten-Links (a > img). */
a:hover{text-decoration:underline;text-underline-offset:2px}
a[style*="background"]:hover,
a[class*="bg-"]:hover,
a:has(img):hover{text-decoration:none}

/* Speisekarte-CTA (grün). Eigene Klassen statt Tailwind-Arbitrary-Werte (bg-[#..]), weil das
   vorgebaute/purged Tailwind-CSS diese Klassen NICHT enthält -> sonst transparenter Button. */
.dg-menu-cta{display:flex;align-items:center;justify-content:space-between;gap:1rem;background:#5a6a2c;color:#fff;padding:1.1rem 1.5rem;border-radius:14px;box-shadow:0 2px 10px rgba(31,30,24,.12);transition:background .15s}
.dg-menu-cta:hover{background:#4a5a22;text-decoration:none}
.dg-menu-cta .dg-menu-cta-t{display:block;font-weight:700;font-size:1.15rem;line-height:1.2}
.dg-menu-cta .dg-menu-cta-s{display:block;font-size:.9rem;color:rgba(255,255,255,.85);margin-top:2px}
.dg-menu-cta svg{flex:none}
.dg-menu-cta-arr{transition:transform .15s}
.dg-menu-cta:hover .dg-menu-cta-arr{transform:translateX(4px)}
.dg-menu-cta-side{display:flex;align-items:center;justify-content:center;gap:.5rem;background:#5a6a2c;color:#fff;padding:.9rem 1rem;font-weight:600;transition:background .15s}
.dg-menu-cta-side:hover{background:#4a5a22;text-decoration:none}
.dg-menu-cta-side svg{flex:none}

/* Restaurant-Beschreibung: breiter + SEO-sicheres Einklappen langer Texte (voller Text bleibt im DOM,
   nur per CSS optisch gekuerzt -> kein SEO-Nachteil). */
.dg-desc{max-width:none}
.dg-desc-lead{font-size:1.15rem;line-height:1.7;color:#3a382e;margin-bottom:1rem}
.dg-desc-body{color:#514c40;line-height:1.75}
.dg-desc-body>*+*{margin-top:1rem}
.dg-desc.is-collapsible .dg-desc-body{position:relative;max-height:17em;overflow:hidden;transition:max-height .35s ease}
.dg-desc.is-collapsible .dg-desc-body::after{content:"";position:absolute;left:0;right:0;bottom:0;height:5.5em;background:linear-gradient(rgba(255,255,255,0),#fff);pointer-events:none;transition:opacity .2s}
.dg-desc.is-open .dg-desc-body{max-height:2000px}
.dg-desc.is-open .dg-desc-body::after{opacity:0}
.dg-desc-toggle{margin-top:1rem;display:inline-flex;align-items:center;gap:.35rem;font-weight:600;color:#5a6a2c;background:none;border:0;padding:0;cursor:pointer;font-size:.95rem}
.dg-desc-toggle:hover{text-decoration:underline}
.dg-desc-toggle svg{transition:transform .2s}
.dg-desc.is-open .dg-desc-toggle svg{transform:rotate(180deg)}
