
@font-face { font-family: "Cormorant"; font-weight: 300; font-display: swap; src: url("../schriften/cormorant-300.woff2") format("woff2"); }
@font-face { font-family: "Cormorant"; font-weight: 300; font-style: italic; font-display: swap; src: url("../schriften/cormorant-300i.woff2") format("woff2"); }
@font-face { font-family: "Cormorant"; font-weight: 400; font-style: italic; font-display: swap; src: url("../schriften/cormorant-400i.woff2") format("woff2"); }
@font-face { font-family: "Instrument Sans"; font-weight: 400 700; font-display: swap; src: url("../schriften/instrument-sans.woff2") format("woff2"); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: "Instrument Sans"; font-weight: 400 700; font-display: swap; src: url("../schriften/instrument-sans-ext.woff2") format("woff2"); unicode-range: U+0100-02AF, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF; }
:root { --grund: #f6f6f6; --text: #5a544d; --text-2: #8b847b; --linie: #dad7d2; --dunkel: #26221f; --hell: #f3f1ee; --gold: #d6b777; --gold-2: #a8864a;
  --serif: "Cormorant", Georgia, serif; --sans: "Instrument Sans", system-ui, sans-serif; }
*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; }
body { margin: 0; background: var(--grund); color: var(--text); font: 400 1.05rem/1.6 var(--sans); overflow-x: hidden; }
img { display: block; max-width: 100%; height: auto; }
a { color: inherit; }
h1, h2, h3, h4 { font-family: var(--serif); font-weight: 300; line-height: 1.02; margin: 0; letter-spacing: -.01em; overflow-wrap: break-word; }
p { margin: 0; }
.icon { width: 1.25em; height: 1.25em; flex: none; }
.klein { font-size: .8rem; letter-spacing: .14em; text-transform: uppercase; color: var(--text-2); }
.text h1 { font-size: clamp(2.6rem, 6vw, 4.5rem); margin-bottom: 30px; }
.text h2 { font-size: 1.9rem; margin: 40px 0 10px; } .text h3 { font-size: 1.4rem; margin: 30px 0 6px; }
.text p, .text li { margin: 0 0 12px; } .text a { color: var(--gold-2); }
.gerichte { display: grid; gap: 10px; }
.g { display: flex; align-items: baseline; gap: 10px; min-width: 0; }
.g .n { display: flex; flex-direction: column; min-width: 0; } .g .n small { font-size: .85rem; color: var(--text-2); }
.g i { flex: 1; border-bottom: 1px dotted var(--linie); min-width: 16px; transform: translateY(-.3em); }
.g .p { white-space: nowrap; font-variant-numeric: tabular-nums; display: flex; flex-direction: column; align-items: flex-end; }
.g .p small { font-size: .8rem; color: var(--text-2); white-space: nowrap; }
.teil .hinweis { color: var(--text-2); font-size: .95rem; margin: 6px 0 16px; }
@media (prefers-reduced-motion: reduce) { *, *::before, *::after { animation: none !important; transition: none !important; } html { scroll-behavior: auto; } }

.haus { display: grid; grid-template-columns: 300px minmax(0, 1fr); min-height: 100vh; }
.haus > * { min-width: 0; }
.plan { position: sticky; top: 0; height: 100vh; padding: 36px 30px; border-right: 1px solid var(--linie); display: flex; flex-direction: column; gap: 30px; overflow: auto; }
.plan img { width: 110px; }
.plan ol { list-style: none; margin: 0; padding: 0; display: grid; gap: 2px; counter-reset: raum; }
.plan li { counter-increment: raum; }
.plan nav { min-width: 0; }
.plan ol a { display: flex; align-items: baseline; gap: 12px; padding: 7px 0; text-decoration: none; font-family: var(--serif); font-size: 1.35rem; line-height: 1.1; border-bottom: 1px solid transparent; }
.plan ol a::before { content: counter(raum, decimal-leading-zero); font: 400 .72rem var(--sans); letter-spacing: .1em; color: var(--text-2); width: 22px; flex: none; }
.plan ol a:hover { color: var(--gold-2); }
.plan .unten { margin-top: auto; font-size: .85rem; color: var(--text-2); display: grid; gap: 4px; }
.plan .unten a { font: inherit; padding: 0; display: inline; color: var(--text); }
.raum { padding: 60px clamp(24px, 5vw, 80px); border-bottom: 1px solid var(--linie); display: grid; gap: 30px; scroll-margin-top: 0; }
.raum__kopf { display: flex; align-items: baseline; gap: 20px; flex-wrap: wrap; }
.raum__kopf .nr { font-size: .8rem; letter-spacing: .14em; color: var(--text-2); }
.raum h2 { font-size: clamp(2.6rem, 5.5vw, 5rem); }
.raum__bilder { display: grid; gap: 14px; grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); }
.raum__bilder img { width: 100%; aspect-ratio: 3 / 2; object-fit: cover; border-radius: 4px; }
.raum__bilder.vier img { aspect-ratio: 1; }
.raum__text { display: grid; grid-template-columns: minmax(0, 1.4fr) minmax(0, 1fr); gap: 30px 60px; align-items: start; }
.raum__text p { font-family: var(--serif); font-size: 1.55rem; line-height: 1.35; }
.raum__text dl { margin: 0; display: grid; gap: 10px; }
.raum__text dl div { display: grid; grid-template-columns: 130px 1fr; gap: 10px; border-bottom: 1px solid var(--linie); padding-bottom: 8px; }
.raum__text dt { font-size: .78rem; letter-spacing: .12em; text-transform: uppercase; color: var(--text-2); padding-top: .25em; }
.raum__text dd { margin: 0; }
.raum__text .link { grid-column: 2; font-size: .95rem; }
.raum__text .link a { color: var(--gold-2); text-decoration: none; border-bottom: 1px solid var(--gold); }
.willkommen { padding: 60px clamp(24px, 5vw, 80px) 20px; }
.willkommen h1 { font-size: clamp(3rem, 7vw, 6.5rem); max-width: 14ch; }
.willkommen h1 em { font-style: italic; color: var(--gold-2); }
.willkommen p { margin-top: 20px; max-width: 560px; color: var(--text-2); }
.schluss { padding: 60px clamp(24px, 5vw, 80px); display: flex; flex-wrap: wrap; gap: 16px 40px; font-size: .9rem; color: var(--text-2); }
.schluss a { text-decoration: none; } .schluss a:hover { color: var(--gold-2); }
.karte, .text { padding: 60px clamp(24px, 5vw, 80px) 100px; }
.karte h1, .text h1 { font-size: clamp(3rem, 7vw, 6.5rem); margin-bottom: 40px; }
.karte .spalten { columns: 2; column-gap: 70px; max-width: 1200px; }
.karte .teil { break-inside: avoid; margin-bottom: 44px; } .karte h3 { font-size: 2rem; margin-bottom: 8px; }
.karte .schlusswort { margin-top: 30px; color: var(--text-2); font-size: .95rem; max-width: 700px; }
@media (max-width: 900px) {
  .haus { grid-template-columns: 1fr; }
  .plan { position: sticky; height: auto; padding: 14px 20px; display: grid; grid-template-columns: 70px minmax(0, 1fr); align-items: center; gap: 18px; overflow: visible; border-right: 0; border-bottom: 1px solid var(--linie); background: var(--grund); z-index: 5; }
  .plan img { width: 70px; max-width: none; } .plan ol { display: flex; gap: 0; overflow: auto; -webkit-overflow-scrolling: touch; scrollbar-width: none; }
  .plan ol::-webkit-scrollbar { display: none; }
  .plan ol a { font-size: 1.05rem; padding: 6px 12px 6px 0; white-space: nowrap; gap: 6px; } .plan ol a::before { width: auto; }
  .plan .unten { display: none; }
  .raum { scroll-margin-top: 80px; } .raum__text { grid-template-columns: 1fr; } .raum__text .link { grid-column: 1; }
  .karte .spalten { columns: 1; }
}
