  @font-face { font-family:'Plus Jakarta Sans'; font-style:normal; font-weight:400; font-display:swap; src:url(fonts/PlusJakartaSans-400.woff2) format('woff2'); }
  @font-face { font-family:'Plus Jakarta Sans'; font-style:normal; font-weight:500; font-display:swap; src:url(fonts/PlusJakartaSans-500.woff2) format('woff2'); }
  @font-face { font-family:'Plus Jakarta Sans'; font-style:normal; font-weight:600; font-display:swap; src:url(fonts/PlusJakartaSans-600.woff2) format('woff2'); }
  @font-face { font-family:'Playfair Display'; font-style:normal; font-weight:400; font-display:swap; src:url(fonts/PlayfairDisplay-400.woff2) format('woff2'); }
  @font-face { font-family:'Playfair Display'; font-style:normal; font-weight:500; font-display:swap; src:url(fonts/PlayfairDisplay-500.woff2) format('woff2'); }
  @font-face { font-family:'Playfair Display'; font-style:italic; font-weight:400; font-display:swap; src:url(fonts/PlayfairDisplay-400i.woff2) format('woff2'); }
  @font-face { font-family:'Playfair Display'; font-style:italic; font-weight:500; font-display:swap; src:url(fonts/PlayfairDisplay-500i.woff2) format('woff2'); }
  @font-face { font-family:'JetBrains Mono'; font-style:normal; font-weight:400; font-display:swap; src:url(fonts/JetBrainsMono-400.woff2) format('woff2'); }
  @font-face { font-family:'JetBrains Mono'; font-style:normal; font-weight:500; font-display:swap; src:url(fonts/JetBrainsMono-500.woff2) format('woff2'); }
  @font-face { font-family:'JetBrains Mono'; font-style:normal; font-weight:600; font-display:swap; src:url(fonts/JetBrainsMono-600.woff2) format('woff2'); }
  :root { --hh:68px; }
  html { scroll-behavior:smooth; }
  body { font-family:'Plus Jakarta Sans',system-ui,sans-serif; -webkit-font-smoothing:antialiased; }
  ::selection { background:#C88A3A; color:#121316; }
  :focus-visible { outline:2px solid #C88A3A; outline-offset:3px; }
  .cat-tab { border:1px solid rgba(18,19,22,.12); border-radius:9999px; padding:.55rem 1.1rem; font-size:.875rem; font-weight:500; white-space:nowrap; transition:all .2s; background:#fff; }
  .cat-tab:hover { border-color:#233831; }
  .cat-tab[aria-selected="true"] { background:#233831; border-color:#233831; color:#fff; }
  .menu-item { animation:rise .45s both; }
  @keyframes rise { from { opacity:0; transform:translateY(10px); } to { opacity:1; transform:none; } }
  /* Reservierung */
  .seg-btn { padding:.65rem 0; border-radius:9999px; font-size:.9rem; transition:all .2s; }
  .seg-btn[aria-checked="true"] { background:#121316; color:#fff; }
  .slot-btn { border:1px solid rgba(18,19,22,.15); border-radius:9999px; padding:.55rem 1.05rem; font-size:.875rem; background:#fff; transition:all .2s; }
  .slot-btn:hover:not(:disabled) { border-color:#233831; }
  .slot-btn[aria-checked="true"] { background:#233831; border-color:#233831; color:#fff; }
  .slot-btn:disabled { opacity:.3; cursor:not-allowed; }
  .fl { width:100%; border:1px solid rgba(18,19,22,.12); background:#fff; border-radius:.75rem; padding:1.4rem 1rem .5rem; font-size:.95rem; }
  .fl:focus { outline:none; border-color:#233831; }
  .fl-label { position:absolute; left:1rem; top:.95rem; font-size:.95rem; color:rgba(18,19,22,.5); pointer-events:none; transition:all .15s; transform-origin:left top; }
  .fl:focus ~ .fl-label, .fl:not(:placeholder-shown) ~ .fl-label { top:.4rem; font-size:.7rem; letter-spacing:.04em; }
  .hp { position:absolute !important; left:-9999px; width:1px; height:1px; overflow:hidden; }
  input[type=date] { color-scheme:light; }

  /* Interaktion & Feinschliff */
  @media (scripting: enabled) { .rv { opacity:0; transform:translateY(18px); transition:opacity .8s cubic-bezier(.22,.8,.3,1), transform .8s cubic-bezier(.22,.8,.3,1); transition-delay:var(--d,0ms); }
  .rv.in { opacity:1; transform:none; } }
  .nav-a[aria-current="true"] { background:rgba(18,19,22,.07); }
  .zoomable { cursor:zoom-in; }
  .zimg { transition:transform .9s cubic-bezier(.22,.8,.3,1); }
  .zwrap:hover .zimg { transform:scale(1.045); }
  .lift { transition:transform .35s cubic-bezier(.22,.8,.3,1), box-shadow .35s; }
  .lift:hover { transform:translateY(-3px); box-shadow:0 14px 30px -18px rgba(18,19,22,.35); }
  .fav { width:2rem; height:2rem; display:grid; place-items:center; border-radius:9999px; color:rgba(18,19,22,.35); transition:all .2s; flex-shrink:0; }
  .fav:hover { color:#C88A3A; background:rgba(200,138,58,.12); }
  .fav[aria-pressed="true"] { color:#C88A3A; }
  .fav[aria-pressed="true"] svg { fill:#C88A3A; }
  .fav.pop svg { animation:pop .35s; }
  @keyframes pop { 50% { transform:scale(1.35); } }
  .day-btn { min-width:3.6rem; border:1px solid rgba(18,19,22,.15); border-radius:.9rem; padding:.5rem .4rem; background:#fff; text-align:center; transition:all .2s; flex-shrink:0; }
  .day-btn:hover:not(:disabled) { border-color:#233831; }
  .day-btn[aria-checked="true"] { background:#233831; border-color:#233831; color:#fff; }
  .day-btn:disabled { opacity:.35; cursor:not-allowed; text-decoration:line-through; }
  #lb { position:fixed; inset:0; z-index:90; background:rgba(18,19,22,.92); display:none; align-items:center; justify-content:center; padding:1.5rem; }
  #lb.open { display:flex; animation:fade .25s; }
  @keyframes fade { from { opacity:0; } }
  #lb img { max-width:100%; max-height:86vh; border-radius:1rem; }
  .lb-btn { position:absolute; width:3rem; height:3rem; border-radius:9999px; border:1px solid rgba(255,255,255,.3); color:#fff; display:grid; place-items:center; background:rgba(18,19,22,.4); }
  .lb-btn:hover { border-color:#C88A3A; color:#C88A3A; }
  .check-draw { stroke-dasharray:30; stroke-dashoffset:30; animation:draw .6s .15s forwards; }
  @keyframes draw { to { stroke-dashoffset:0; } }
  .scroller { scrollbar-width:none; } .scroller::-webkit-scrollbar { display:none; }
  @media (prefers-reduced-motion: reduce) { .rv { opacity:1; transform:none; } .zimg, .lift { transition:none !important; transform:none !important; } html{scroll-behavior:auto;} *,*::before,*::after{animation:none !important; transition:none !important;} }

/* Rechtstexte */
.legal h2 { font-family:'Playfair Display',Georgia,serif; font-size:1.5rem; line-height:1.25; margin:2.5rem 0 .75rem; }
.legal p, .legal li { line-height:1.75; color:rgba(18,19,22,.78); }
.legal p { margin:.75rem 0; }
.legal ul { list-style:disc; padding-left:1.25rem; margin:.75rem 0; }
.legal a { text-decoration:underline; text-underline-offset:3px; text-decoration-color:#C88A3A; }
.legal a:hover { color:#233831; }

/* ===== Feinschliff 2 ===== */
#siteHeader { transition:box-shadow .3s; }
#siteHeader > div { transition:height .3s cubic-bezier(.22,.8,.3,1); }
#siteHeader.scrolled { --hh:58px; box-shadow:0 8px 24px -18px rgba(18,19,22,.45); }
:root:has(#siteHeader.scrolled) { --hh:58px; }
.sticky-tabs { top:var(--hh); transition:top .3s cubic-bezier(.22,.8,.3,1); }
.hline { display:block; overflow:hidden; padding:0 .1em .12em .1em; margin:0 -.1em -.12em -.1em; }
.hline > span { display:block; animation:lineUp 1s cubic-bezier(.22,.8,.3,1) both; animation-delay:calc(var(--i,0) * 130ms + 80ms); }
@keyframes lineUp { from { transform:translateY(105%); } to { transform:none; } }
/* Tabs mit gleitender Markierung */
.ind-tabs .cat-tab { background:transparent; border-color:transparent; position:relative; z-index:1; transition:color .25s; }
.ind-tabs .cat-tab:hover { border-color:rgba(35,56,49,.35); }
.ind-tabs .cat-tab[aria-selected="true"] { background:transparent; border-color:transparent; color:#fff; }
.cat-tab sup { font-family:'JetBrains Mono',monospace; font-size:.6rem; margin-left:.35rem; opacity:.55; }
#tabInd { position:absolute; top:0; left:0; height:100%; width:0; border-radius:9999px; background:#233831; transition:transform .45s cubic-bezier(.22,.8,.3,1), width .45s cubic-bezier(.22,.8,.3,1); z-index:0; }
/* Termine */
.fade-edges { position:relative; }
.fade-edges::after { content:''; position:absolute; top:0; right:0; bottom:.5rem; width:4rem; background:linear-gradient(90deg, rgba(243,244,246,0), #F3F4F6); pointer-events:none; transition:opacity .3s; }
.fade-edges.end::after { opacity:0; }
.dragging { cursor:grabbing !important; scroll-snap-type:none !important; user-select:none; }
.chip-soon { background:#C88A3A; color:#121316; }
/* Karte */
.map-ph { background:#F3F4F6 radial-gradient(circle at 50% 45%, rgba(35,56,49,.07), transparent 55%); }
.map-ph::before { content:''; position:absolute; inset:0; background-image:linear-gradient(rgba(18,19,22,.05) 1px, transparent 1px), linear-gradient(90deg, rgba(18,19,22,.05) 1px, transparent 1px); background-size:36px 36px; mask-image:radial-gradient(circle at 50% 50%, #000, transparent 75%); -webkit-mask-image:radial-gradient(circle at 50% 50%, #000, transparent 75%); }
.pin { display:inline-grid; place-items:center; width:3.5rem; height:3.5rem; border-radius:9999px; background:#233831; color:#C88A3A; position:relative; }
.pin::before, .pin::after { content:''; position:absolute; inset:0; border-radius:9999px; border:1px solid #233831; animation:ring 2.6s ease-out infinite; }
.pin::after { animation-delay:1.3s; }
@keyframes ring { from { transform:scale(1); opacity:.6; } to { transform:scale(2.2); opacity:0; } }
#mapBox iframe { animation:fade .6s; filter:grayscale(.35) contrast(1.03); }
/* Toast & Kopieren */
.toast { background:#121316; color:#fff; padding:.7rem 1.1rem; border-radius:9999px; font-size:.875rem; font-weight:500; box-shadow:0 14px 30px -12px rgba(18,19,22,.5); animation:toastIn .35s cubic-bezier(.22,.8,.3,1) both; display:flex; gap:.5rem; align-items:center; }
.toast.out { animation:toastOut .3s both; }
@keyframes toastIn { from { opacity:0; transform:translateY(14px) scale(.96); } }
@keyframes toastOut { to { opacity:0; transform:translateY(8px); } }
.copy-btn { font-size:.75rem; font-weight:600; border:1px solid rgba(18,19,22,.15); border-radius:9999px; padding:.4rem .8rem; transition:all .2s; }
.copy-btn:hover { background:#121316; color:#fff; border-color:#121316; }
/* Menükarte */
.menu-item { transition:background-color .25s, padding .25s; }
@media (hover:hover) { .menu-item:not(.relative):hover { background:linear-gradient(90deg, rgba(200,138,58,.07), transparent); } }
.btn-arrow span { display:inline-block; transition:transform .25s; }
.btn-arrow:hover span { transform:translateX(4px); }
