/* Classic by Nature, Restaurant. Die Speisekarte als Buch: erst nur der Ledereinband mit Logo,
   beim Klick schlägt er auf (links ein Bild, rechts die Seite mit Text), am Buchrand sitzen
   pastellfarbene Reiter als Navigation. Alle Maße in cqw der Buchbreite, damit das Buch mitskaliert. */
:root {
  --bg: #0A120E; --ink: #F2EBDD; --acc: #C9A765; --mut: #B7B09F; --line: rgba(242, 235, 221, .16);
  --paper: #F4EEE2; --paper-2: #EAE1CE; --paper-ink: #2B2A24; --paper-mut: #5A5446; --gold-dark: #7A5F25;
  --script: "Snell Roundhand", "Segoe Script", "Lucida Handwriting", "Apple Chancery", "Monotype Corsiva", cursive;
  --serif: "Iowan Old Style", "Palatino Linotype", Palatino, Georgia, serif;
  --sans: "Avenir Next", "Segoe UI", system-ui, -apple-system, Roboto, sans-serif;
  --ease: cubic-bezier(.65, 0, .2, 1);
  --gut: clamp(1.25rem, 5vw, 4rem); --max: 1200px;
  --grain: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='200' height='200'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.8' numOctaves='3' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 .55 0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
  --grain-soft: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='200' height='200'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 .35 0 0 0 0 .28 0 0 0 0 .15 0 0 0 .16 0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
  --pebble: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='90' height='90'%3E%3Cfilter id='p'%3E%3CfeTurbulence type='turbulence' baseFrequency='.09' numOctaves='2' seed='4'/%3E%3CfeColorMatrix values='0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 .5 0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23p)'/%3E%3C/svg%3E");
}
.sr-only { position: absolute; width: 1px; height: 1px; margin: -1px; padding: 0; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0; }

/* ---------- Raum ---------- */
.room { position: relative; isolation: isolate; display: grid; place-items: center; min-height: calc(100svh - 2.7rem); padding: clamp(1rem, 3vw, 2.5rem) clamp(1rem, 3vw, 2.5rem) clamp(3.5rem, 6vw, 5rem); background: #070d09; overflow: hidden; }
.room::before { content: ""; position: absolute; inset: 0; z-index: -2; background: url("../assets/cbn-szene.webp") 50% 78% / cover; }
.room::after { content: ""; position: absolute; inset: 0; z-index: -1; background: radial-gradient(ellipse 80% 70% at 50% 46%, transparent 0%, rgba(3, 6, 4, .35) 72%, rgba(2, 4, 3, .78) 100%); }

/* ---------- Buch ---------- */
.book { --bw: min(1120px, calc((100svh - 10rem) * 1.4623), calc(100vw - 14rem)); position: relative; container-type: inline-size; width: var(--bw); aspect-ratio: 1.4623 / 1; perspective: 2800px; }
.book::before { content: ""; position: absolute; left: 3%; right: 3%; bottom: -2.6cqw; height: 4.6cqw; border-radius: 50%; background: radial-gradient(ellipse at 50% 38%, rgba(0, 0, 0, .92) 0, rgba(0, 0, 0, .55) 48%, transparent 72%); filter: blur(1.1cqw); }
.book-in { position: absolute; inset: 0; transform-style: preserve-3d; transition: transform 1.5s var(--ease); }
.book[data-state="closed"] .book-in { transform: translateX(-25%); }
.hint { position: absolute; left: 50%; top: calc(100% + 3.4cqw); translate: -50% 0; color: var(--acc); font: italic 400 1.05rem var(--serif); letter-spacing: .04em; white-space: nowrap; transition: opacity .6s ease; }
.book[data-state="open"] .hint { opacity: 0; pointer-events: none; }

/* Leder: grobe und feine Narbung, Lichtkante, doppelte Rückenfalz, Glanzstreifen, Kantenabdunklung */
.base {
  background:
    linear-gradient(112deg, transparent 24%, rgba(255, 255, 255, .12) 38%, rgba(255, 255, 255, .03) 48%, transparent 58%),
    radial-gradient(120% 90% at 26% 4%, rgba(255, 255, 255, .1), transparent 56%),
    radial-gradient(110% 80% at 88% 114%, rgba(0, 0, 0, .55), transparent 62%),
    url("../assets/cbn-leder.webp") center / cover,
    #1A3724;
}
.base { position: absolute; top: 0; height: 100%; width: 50%; z-index: 0; }
.base--r { left: 50%; border-radius: 0 1cqw 1cqw 0; translate: 1.05cqw 1.05cqw; box-shadow: 0 .6cqw 1.4cqw rgba(0, 0, 0, .6); }
.base--l { left: 0; border-radius: 1cqw 0 0 1cqw; translate: -1.05cqw 1.05cqw; opacity: 0; transition: opacity .8s ease .3s; box-shadow: 0 .6cqw 1.4cqw rgba(0, 0, 0, .6); }
.book[data-state="open"] .base--l { opacity: 1; }
/* Seitenblock zwischen Einband und Rückdeckel: helle Papierkanten rechts und unten */
.block { position: absolute; left: 50%; top: 0; z-index: 0; width: 50%; height: 100%; translate: .55cqw .55cqw; border-radius: 0 .6cqw .6cqw 0; background: repeating-linear-gradient(90deg, #F1E9D8 0 .22cqw, #D5C8AC .22cqw .32cqw), #E9DFC9; box-shadow: inset -.4cqw 0 .8cqw rgba(0, 0, 0, .18), inset 0 -.4cqw .8cqw rgba(0, 0, 0, .2); }
.block::after { content: ""; position: absolute; inset: auto 0 0 0; height: .5cqw; background: repeating-linear-gradient(0deg, #F1E9D8 0 .2cqw, #D0C3A6 .2cqw .3cqw); border-radius: 0 0 .6cqw .6cqw; }
/* Lesebändchen */
.ribbon { position: absolute; left: 71%; top: 100%; z-index: 0; width: 2.3cqw; height: 9cqw; margin-top: .3cqw; background: linear-gradient(90deg, #6E1A28, #B03A4A 45%, #7C1F2D); clip-path: polygon(0 0, 100% 0, 100% 100%, 50% 90%, 0 100%); filter: drop-shadow(.2cqw .5cqw .4cqw rgba(0, 0, 0, .55)); }

/* ---------- Einband (Blatt, das aufklappt) ---------- */
.leaf { position: absolute; left: 50%; top: 0; z-index: 3; width: 50%; height: 100%; transform-origin: 0 50%; transform-style: preserve-3d; transition: transform 1.5s var(--ease); }
.book[data-state="open"] .leaf { transform: rotateY(-180deg); }
.book[data-state="closed"] .leaf:hover { transform: rotateY(-9deg); }
.leaf-front, .leaf-back { position: absolute; inset: 0; -webkit-backface-visibility: hidden; backface-visibility: hidden; }
.leaf-back { transform: rotateY(180deg); border-radius: .9cqw 0 0 .9cqw; background: var(--grain-soft), var(--paper); color: var(--paper-ink); box-shadow: inset -2.4cqw 0 3cqw -1.6cqw rgba(0, 0, 0, .35); }

/* Der Einband ist ein Foto: Leder, Heftnaht, Messingecken und die goldene Prägung gehören zum Bild */
.cover { position: absolute; inset: 0; display: block; width: 100%; height: 100%; margin: 0; padding: 0; border: 0; border-radius: .7cqw 1cqw 1cqw .7cqw; overflow: hidden; background: #1A3724; cursor: pointer; box-shadow: inset 0 0 0 1px rgba(0, 0, 0, .55), 0 1.6cqw 3.6cqw -1cqw rgba(0, 0, 0, .85); transition: filter .4s ease; }
.cover img { display: block; width: 100%; height: 100%; max-width: none; object-fit: cover; }
.cover:hover { filter: brightness(1.1); }
.cover:focus-visible { outline: 3px solid var(--acc); outline-offset: 6px; }
/* Licht über dem Foto: Glanzstreifen, Randlicht, Kantenabdunklung (nur Beleuchtung, kein Inhalt) */
.cover::after { content: ""; position: absolute; inset: 0; border-radius: inherit; pointer-events: none; background: linear-gradient(112deg, transparent 26%, rgba(255, 255, 255, .09) 40%, transparent 56%), radial-gradient(110% 80% at 90% 112%, rgba(0, 0, 0, .35), transparent 62%); box-shadow: inset 0 1px 0 rgba(255, 255, 255, .16), inset 0 0 1.6cqw rgba(0, 0, 0, .45); }

/* Innenseite links: Bild als eingeklebter Druck */
.print { position: absolute; inset: 7% 10% 20% 9%; margin: 0; overflow: hidden; border-radius: 999px 999px .5cqw .5cqw; outline: 1px solid var(--gold-dark); outline-offset: .9cqw; box-shadow: 0 .5cqw 1.2cqw -.3cqw rgba(0, 0, 0, .45); background: #1a1a14; }
.print img.shot { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; opacity: 0; transform: scale(1.07); transition: opacity .8s ease, transform 2.2s var(--ease); }
.print img.shot.on { opacity: 1; transform: scale(1); }
.cap { position: absolute; left: 9%; right: 10%; bottom: 9.6%; color: var(--paper-mut); font: italic 400 clamp(.85rem, 1.5cqw, 1.1rem)/1.35 var(--serif); text-align: center; }
.close { position: absolute; left: 9%; bottom: 2.6%; min-height: 2.6rem; padding: 0 .2rem; border: 0; background: none; color: var(--gold-dark); font: 600 clamp(.78rem, 1.2cqw, .92rem) var(--sans); letter-spacing: .12em; text-transform: uppercase; text-decoration: underline; text-underline-offset: .35em; cursor: pointer; }
.close:hover { color: var(--paper-ink); }
.close:focus-visible, .tab:focus-visible, .panel:focus-visible { outline: 3px solid var(--gold-dark); outline-offset: 3px; }

/* ---------- rechte Seite ---------- */
.pages { position: absolute; left: 50%; top: 0; z-index: 1; width: 50%; height: 100%; border-radius: 0 .9cqw .9cqw 0; background: var(--grain-soft), var(--paper); color: var(--paper-ink); box-shadow: .3cqw 0 0 #E4DAC6, .6cqw 0 0 #D8CDB6, .9cqw 0 0 #E4DAC6, 1.2cqw 0 0 #CFC3AA, 1.6cqw .3cqw 1.4cqw rgba(0, 0, 0, .55); visibility: hidden; transition: visibility 0s 1.5s; }
.pages::before { content: ""; position: absolute; inset: 0 auto 0 0; width: 9%; border-radius: 0; background: linear-gradient(90deg, rgba(0, 0, 0, .3), transparent); pointer-events: none; }
.book[data-state="open"] .pages { visibility: visible; transition-delay: 0s; }
.panels { position: absolute; inset: 0; padding: 9% 9% 9% 12%; overflow: auto; scrollbar-width: thin; scrollbar-color: rgba(122, 95, 37, .5) transparent; }
.panel { font-size: clamp(.92rem, 1.5cqw, 1.1rem); }
.panel[hidden] { display: none; }
.panel.turn { animation: turn .8s var(--ease) both; transform-origin: 0 50%; }
@keyframes turn { from { opacity: 0; transform: perspective(1400px) rotateY(-14deg) translateX(1.2rem); } to { opacity: 1; transform: none; } }
.eyebrow { color: var(--gold-dark); font: 700 clamp(.66rem, 1.05cqw, .8rem) var(--sans); letter-spacing: .24em; text-transform: uppercase; }
.panel h2 { margin-top: .7rem; font: italic 400 clamp(2rem, 4.9cqw, 3.8rem)/1.02 var(--serif); letter-spacing: -.01em; }
.panel h3 { margin-bottom: .7rem; color: var(--gold-dark); font: 400 clamp(.9rem, 1.5cqw, 1.1rem) var(--serif); letter-spacing: .16em; text-transform: uppercase; }
.panel p { margin-top: 1rem; }
.panel p.eyebrow { margin-top: 0; }
.lead { color: var(--paper-mut); font-size: 1.08em; max-width: 26rem; }
.today { margin-top: 2.4rem !important; padding-top: 1rem; border-top: 1px solid rgba(43, 42, 36, .2); max-width: 26rem; }
.today b { display: block; margin-top: .25rem; font: italic 400 1.2em var(--serif); }
.today span { color: var(--paper-mut); font-size: .9em; }
.open-now { color: var(--paper-mut); font-size: .92em; }
.actions { display: flex; flex-wrap: wrap; align-items: center; gap: .8rem 1.6rem; margin-top: 1.6rem !important; }
.btn { display: inline-flex; align-items: center; min-height: 3rem; padding: 0 1.6rem; border: 1px solid var(--gold-dark); background: var(--gold-dark); color: #FBF6EA; font: 700 .95rem var(--sans); letter-spacing: .02em; text-decoration: none; transition: background-color .35s ease, color .35s ease; }
.btn:hover { background: transparent; color: var(--gold-dark); }
.link { display: inline-flex; align-items: center; min-height: 2.75rem; color: var(--paper-ink); font-weight: 600; }
.menu-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 clamp(1rem, 3cqw, 2.4rem); margin-top: 1.2rem; }
.menu-grid dl div { display: flex; align-items: baseline; gap: .6rem; padding: .55rem 0; border-bottom: 1px solid rgba(43, 42, 36, .16); }
.menu-grid dt { min-width: 0; flex: 1; }
.menu-grid dd { margin: 0 0 0 auto; color: var(--gold-dark); font-weight: 700; }
.fine { color: var(--paper-mut); font-size: .84em; }
.events { display: grid; gap: 1.1rem; margin-top: 1.2rem; }
.events li { padding-top: .9rem; border-top: 1px solid var(--gold-dark); }
.events h3 { margin-bottom: .2rem; color: var(--paper-ink); font: italic 400 1.35em var(--serif); letter-spacing: 0; text-transform: none; }
.events p { margin-top: 0; color: var(--paper-mut); }
.contact { color: var(--gold-dark); font: italic 400 1.25em/1.4 var(--serif); }
.res-grid { display: grid; grid-template-columns: minmax(0, 1fr); gap: 1.2rem 0; margin-top: 1.2rem; }
.res-grid p { margin-top: 0; }
.res-grid .anfahrt { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.15fr); gap: 0 1rem; align-items: stretch; }
.res-grid .anfahrt h3 { grid-column: 1 / -1; }
/* Karte so hoch wie der Text daneben: oben mit der ersten, unten mit der letzten Zeile bündig (Karte füllt die Zeile, bestimmt aber nicht ihre Höhe) */
.res-grid .anfahrt .kmap--mini { position: relative; margin: 0; min-height: 5rem; }
.res-grid .anfahrt .kmap--mini .m-svg { position: absolute; inset: 0; width: 100%; height: 100%; aspect-ratio: auto; }
.hours div { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: baseline; gap: 0 1.2rem; padding: .45rem 0; border-bottom: 1px solid rgba(43, 42, 36, .16); }
.hours dd { margin: 0; color: var(--paper-mut); text-align: right; white-space: nowrap; }
.folio { position: absolute; right: 9%; bottom: 3.2%; color: var(--paper-mut); font: italic 400 .95rem var(--serif); }

/* ---------- Reiter am Buchrand (pastell) ---------- */
.tabs { position: absolute; left: calc(100% + .6cqw); top: 7%; display: flex; flex-direction: column; gap: 1cqw; opacity: 0; translate: -3cqw 0; transition: opacity .5s ease 0s, translate .6s var(--ease) 0s; }
.book[data-state="open"] .tabs { opacity: 1; translate: 0 0; transition-delay: .95s; }
.tab { position: relative; min-width: 9em; padding: .9em 1.5em .9em 1.2em; border: 0; border-radius: 0 .8em .8em 0; background: var(--tc); color: #2B2A24; font: 600 clamp(.8rem, 1.25cqw, .98rem)/1.2 var(--sans); text-align: left; cursor: pointer; box-shadow: 1px 2px 4px rgba(0, 0, 0, .45), inset 0 1px 0 rgba(255, 255, 255, .55); transition: translate .35s var(--ease), box-shadow .35s ease, filter .3s ease; }
.tab:hover { translate: .35em 0; filter: brightness(1.04); }
.tab[aria-selected="true"] { translate: .9em 0; font-weight: 800; box-shadow: 2px 3px 8px rgba(0, 0, 0, .55), inset 0 1px 0 rgba(255, 255, 255, .6); }
.tab[aria-selected="true"]::before { content: ""; position: absolute; left: .55em; top: 50%; width: .42em; height: .42em; margin-top: -.21em; border-radius: 50%; background: #2B2A24; }
.tab[aria-selected="true"] { padding-left: 1.5em; }
.tab:focus-visible { outline-color: #F2EBDD; }

.ft { padding-block: 1.6rem; border-top: 1px solid var(--line); background: #060b08; }
.ft .wrap { display: flex; flex-wrap: wrap; align-items: center; justify-content: center; }
.ft .note { color: var(--mut); font-size: .88rem; text-align: center; }

/* ---------- Schrift: eine Familie wie auf einer echten Karte ----------
   Antiqua für alles Gedruckte (Fließtext, Namen, Versalien), Schreibschrift nur für die Seitentitel.
   Gerichte: Name fett, Beilagen kursiv; Preise rechts mit Punktlinie. */
.book { --body: "Iowan Old Style", "Palatino Linotype", Palatino, "Book Antiqua", Georgia, serif; font-family: var(--body); }
.panel { font-size: clamp(1rem, 1.72cqw, 1.2rem); line-height: 1.6; }
.panel h2 { font: 400 clamp(2.3rem, 5.6cqw, 4.4rem)/1.08 var(--script); font-style: normal; letter-spacing: 0; }
.eyebrow { font: 600 clamp(.7rem, 1.1cqw, .84rem) var(--body); letter-spacing: .26em; }
.panel h3 { margin-bottom: .6rem; color: var(--gold-dark); font: 600 clamp(.8rem, 1.25cqw, .95rem) var(--body); letter-spacing: .22em; text-transform: uppercase; }
.panel .events h3 { margin-bottom: .2rem; color: var(--paper-ink); font: italic 400 1.3em var(--body); letter-spacing: 0; text-transform: none; }
.btn { font: 700 clamp(.78rem, 1.2cqw, .92rem) var(--body); letter-spacing: .16em; text-transform: uppercase; }
.link { font-family: var(--body); font-style: italic; font-weight: 400; font-size: 1.05em; }
.tab { font: 600 clamp(.82rem, 1.28cqw, 1rem)/1.2 var(--body); letter-spacing: .05em; }
.close { font: 600 clamp(.72rem, 1.1cqw, .86rem) var(--body); letter-spacing: .18em; }
.tip { font-family: var(--body); }
.fine { font-size: .86em; }
.contact { font-family: var(--body); }
.today b, .events h3 { font-family: var(--body); }

/* Speisekarte: mittig gesetzt, Zierlinien, Gericht fett mit kursiven Beilagen, Preis rechts */
.panel--menu { text-align: center; }
.panel--menu .eyebrow { letter-spacing: .24em; }
.panel--menu h2::after { content: ""; display: block; width: 7rem; height: 1px; margin: .55rem auto 0; background: linear-gradient(90deg, transparent, var(--gold-dark), transparent); }
.panel--menu h3 { display: flex; align-items: center; gap: .8rem; margin: 1.2rem 0 .5rem; text-align: center; }
.panel--menu h3::before, .panel--menu h3::after { content: ""; flex: 1; height: 1px; background: rgba(122, 95, 37, .45); }
.menu-grid { margin-top: .4rem; gap: 0 clamp(1.2rem, 3.4cqw, 2.8rem); text-align: left; }
.menu-grid dl div { align-items: flex-start; gap: .6rem; padding: .5rem 0; border-bottom: 1px dotted rgba(43, 42, 36, .38); }
.dish { display: block; width: 100%; margin: 0; padding: 0; border: 0; border-radius: 0; background: none; color: var(--paper-ink); font: 400 1em/1.25 var(--body); letter-spacing: 0; text-align: left; cursor: pointer; transition: color .25s ease; }
.dish:focus-visible { outline: 2px solid var(--gold-dark); outline-offset: 3px; }
.dish b { display: block; font-weight: 700; }
.dish i { display: block; color: var(--paper-mut); font-size: .92em; font-style: italic; }
.dish:hover, .dish:focus-visible, .dish.on { padding-left: 0; color: var(--gold-dark); }
.dish:hover i, .dish:focus-visible i, .dish.on i { color: var(--gold-dark); }
.menu-grid dd { font: 700 1em/1.25 var(--body); font-variant-numeric: lining-nums; }
.panel--menu .fine { text-align: center; }

/* ---------- schmale Schirme: eine Seite, Reiter oben ---------- */
@media (max-width: 899px) {
  .room { place-items: start center; padding-top: 1.4rem; }
  .room:has(.book[data-state="closed"]) { place-items: center; padding-top: 0; padding-bottom: 3rem; }
  .book { --bw: min(100%, 34rem); width: var(--bw); aspect-ratio: auto; perspective: none; }
  .book::before { display: none; }
  .book-in { position: relative; display: flex; flex-direction: column; transform: none !important; }
  .leaf { order: -1; }
  .base { display: none; }
  .hint { position: static; translate: none; display: block; margin-top: 1.4rem; text-align: center; }
  /* zu: nur der Einband als Karte */
  .book[data-state="closed"] .pages, .book[data-state="closed"] .leaf-back { display: none; }
  .book[data-state="closed"] .leaf { position: relative; left: auto; width: min(100%, 22rem); aspect-ratio: 854 / 1168; margin-inline: auto; }
  /* offen: Bild oben, darunter Reiter und Text */
  .book[data-state="open"] .leaf { position: relative; left: auto; width: 100%; height: auto; transform: none; transform-style: flat; }
  .book[data-state="open"] .leaf-front { display: none; }
  .leaf-back { position: relative; inset: auto; transform: none; display: block; height: clamp(17rem, 80vw, 24rem); border-radius: .9rem .9rem 0 0; box-shadow: none; }
  .print { inset: 1.4rem 1.4rem 3.8rem; border-radius: 999px 999px .5rem .5rem; outline-offset: .5rem; }
  .cap { left: 1.2rem; right: 1.2rem; bottom: 1rem; font-size: .9rem; }
  .close { top: .6rem; right: .8rem; left: auto; bottom: auto; background: rgba(244, 238, 226, .9); }
  .pages { position: relative; left: auto; width: 100%; height: auto; border-radius: 0 0 .9rem .9rem; box-shadow: 0 1.2rem 2.4rem rgba(0, 0, 0, .55); }
  .pages::before { display: none; }
  .tabs { position: static; flex-direction: row; gap: .35rem; padding: .9rem 1rem 0; overflow-x: auto; opacity: 1; translate: none; border-bottom: 1px solid rgba(43, 42, 36, .15); }
  .book[data-state="open"] .tabs { transition-delay: 0s; }
  .tab { flex: none; min-width: 0; padding: .75em 1em; border-radius: .7em .7em 0 0; }
  .tab:hover, .tab[aria-selected="true"] { translate: 0 0; }
  .tab[aria-selected="true"]::before { display: none; }
  .tab[aria-selected="true"] { padding-left: 1em; box-shadow: 0 -2px 0 #2B2A24 inset, 1px 1px 3px rgba(0, 0, 0, .35); }
  .panels { position: static; padding: 1.6rem 1.3rem 4.2rem; overflow: visible; }
  .panel { font-size: 1rem; }
  .panel h2 { font-size: clamp(2rem, 9vw, 2.8rem); }
  .menu-grid, .res-grid { grid-template-columns: minmax(0, 1fr); }
  .menu-grid > div + div { margin-top: 1.4rem; }
  .res-grid { gap: 0; }
  .res-grid > div + div { margin-top: 1.4rem; }
  .res-grid .anfahrt { grid-template-columns: minmax(0, 1fr); }
  .res-grid .anfahrt .kmap--mini { margin-top: .8rem; min-height: 0; }
  .res-grid .anfahrt .kmap--mini .m-svg { position: static; height: auto; aspect-ratio: 16 / 10; }
  .folio { right: 1.3rem; bottom: 1rem; }
}

/* Beim Springen auf eine Seite (Link mit #seite) ohne Aufklappen. */
.book.no-anim, .book.no-anim * { transition: none !important; animation: none !important; }
