:root{
  /* aus dem Raum bei Kerzenlicht: Nussbaum, Leinen, Messing, Wein */
  --nacht:#141311;
  --raum:#1E1C19;
  --leinen:#EAE4D9;
  --messing:#C09A55;
  --wein:#8A3548;
  --grau:#A79E90;

  --s--2:clamp(.73rem,.71rem + .1vw,.8rem);
  --s--1:clamp(.85rem,.82rem + .13vw,.94rem);
  --s-0:clamp(1.02rem,.99rem + .16vw,1.12rem);
  --s-1:clamp(1.18rem,1.08rem + .4vw,1.45rem);
  --s-2:clamp(1.5rem,1.18rem + 1.45vw,2.5rem);
  --s-3:clamp(2.1rem,1.35rem + 3.3vw,4.25rem);
  --s-gang:clamp(1.35rem,1.15rem + .9vw,1.95rem);
  --space:clamp(1.4rem,1.1rem + 1.5vw,2.5rem);
  --edge:clamp(1.25rem,.75rem + 2.6vw,3.5rem);
}
*,*::before,*::after{box-sizing:border-box;}
body,h1,h2,h3,h4,p,ul,ol,li,figure,dl,dt,dd{margin:0;padding:0;}
body{
  font-family:'Jost',system-ui,sans-serif;
  font-size:var(--s-0);line-height:1.68;font-weight:300;
  color:var(--leinen);background:var(--nacht);
  -webkit-font-smoothing:antialiased;
}
img{display:block;max-width:100%;}
ul,ol{list-style:none;}
a{color:inherit;}
:focus-visible{outline:2px solid var(--messing);outline-offset:4px;}
[id]{scroll-margin-top:4rem;}

.k-serif{font-family:'Newsreader',Georgia,serif;font-weight:300;line-height:1.14;letter-spacing:-.006em;}
.k-wrap{width:min(68rem,100%);margin-inline:auto;padding-inline:var(--edge);}
.k-mark{display:block;font-size:var(--s--2);letter-spacing:.28em;text-transform:uppercase;color:var(--messing);font-weight:400;}

/* ── Präsenzo-Leiste ── */
.pz{background:var(--messing);color:#241C0C;font-size:var(--s--1);}
.pz__in{width:min(68rem,100%);margin-inline:auto;padding:.6rem var(--edge);
  display:flex;flex-wrap:wrap;gap:.25rem 1rem;align-items:center;justify-content:center;text-align:center;}
.pz__cta{color:#241C0C;font-weight:500;text-decoration:underline;text-underline-offset:3px;white-space:nowrap;}

/* ── Kopf ── */
.kopf{border-bottom:1px solid rgba(234,228,217,.14);}
.kopf__in{width:min(68rem,100%);margin-inline:auto;padding:1.15rem var(--edge);
  display:flex;align-items:baseline;gap:var(--space);flex-wrap:wrap;}
.haus{font-family:'Newsreader',serif;font-weight:300;font-size:var(--s-2);letter-spacing:.04em;text-decoration:none;line-height:1;}
.haus em{font-style:italic;color:var(--messing);}
.nav{margin-inline-start:auto;display:flex;gap:1.6rem;flex-wrap:wrap;
  font-size:var(--s--2);letter-spacing:.2em;text-transform:uppercase;}
.nav a{text-decoration:none;color:var(--grau);padding-bottom:.2rem;border-bottom:1px solid transparent;}
.nav a:hover,.nav a[aria-current="page"]{color:var(--leinen);border-bottom-color:var(--messing);}

/* ── Hero ── */
.saal{padding-block:clamp(2.5rem,1.9rem + 3.2vw,4.5rem) 0;}
.saal h1{font-size:var(--s-3);max-width:16ch;margin-top:1.1rem;}
.saal h1 em{font-style:italic;color:var(--messing);}
.saal__lede{margin-top:1.35rem;max-width:44ch;font-size:var(--s-1);line-height:1.55;color:var(--grau);}
.saal__reihe{margin-top:2rem;display:flex;flex-wrap:wrap;gap:.7rem;}

.m-voll{display:inline-block;background:var(--messing);color:#241C0C;text-decoration:none;
  font-size:var(--s--2);font-weight:500;letter-spacing:.2em;text-transform:uppercase;padding:1rem 1.9rem;
  border:1px solid var(--messing);}
.m-voll:hover{background:transparent;color:var(--messing);}
.m-linie{display:inline-block;text-decoration:none;border:1px solid rgba(234,228,217,.32);
  font-size:var(--s--2);font-weight:500;letter-spacing:.2em;text-transform:uppercase;padding:1rem 1.9rem;color:var(--leinen);}
.m-linie:hover{border-color:var(--leinen);}

/* ── Signatur: die Karte ── */
.karte{margin-top:clamp(2.5rem,2rem + 2.5vw,4rem);border-top:1px solid var(--messing);padding-top:1.4rem;}
.karte__kopf{display:flex;flex-wrap:wrap;gap:.5rem 2rem;align-items:baseline;justify-content:space-between;}
.karte__kopf h2{font-family:'Newsreader',serif;font-weight:300;font-style:italic;font-size:var(--s-1);}
.karte__preis{font-size:var(--s--2);letter-spacing:.2em;text-transform:uppercase;color:var(--messing);}

.gaenge{margin-top:clamp(1.75rem,1.4rem + 1.6vw,2.75rem);}
.gang{display:grid;grid-template-columns:2.6rem 1fr;gap:.2rem .9rem;
  padding-block:1.15rem;border-bottom:1px solid rgba(234,228,217,.11);}
.gang:first-child{border-top:1px solid rgba(234,228,217,.11);}
.gang__nr{font-family:'Newsreader',serif;font-size:var(--s--1);color:var(--messing);
  letter-spacing:.08em;padding-top:.35rem;}
.gang__speise{font-family:'Newsreader',serif;font-weight:300;font-size:var(--s-gang);line-height:1.25;}
.gang__speise span{color:var(--grau);}
.gang__wein{grid-column:2;font-size:var(--s--1);color:var(--grau);font-style:italic;}
@media (min-width:54rem){
  .gang{grid-template-columns:2.6rem minmax(0,1.35fr) minmax(11rem,.85fr);align-items:baseline;gap:.2rem 2rem;}
  .gang__wein{grid-column:3;grid-row:1;text-align:right;font-style:normal;}
}
.karte__fuss{margin-top:1.6rem;font-size:var(--s--1);color:var(--grau);max-width:56ch;}
.karte__fuss strong{color:var(--leinen);font-weight:400;}

/* ── Abschnitte ── */
.gedeck{padding-block:clamp(3rem,2.2rem + 4vw,5.5rem);border-top:1px solid rgba(234,228,217,.14);}
.gedeck--raum{background:var(--raum);}
.gedeck--leinen{background:var(--leinen);color:var(--nacht);border-top-color:var(--leinen);}
.gedeck--leinen .k-mark{color:#8A6A24;}
.gedeck__kopf{max-width:50ch;}
.gedeck__kopf h2{font-size:var(--s-2);margin-top:.75rem;}
.gedeck__kopf p{margin-top:.95rem;color:var(--grau);}
.gedeck--leinen .gedeck__kopf p{color:#5C554A;}

/* ── Hinweise ── */
.hinweise{margin-top:clamp(2rem,1.5rem + 2vw,3rem);border-top:1px solid rgba(234,228,217,.24);}
.gedeck--leinen .hinweise{border-top-color:rgba(20,19,17,.26);}
.hinweis{display:grid;gap:.3rem 2rem;grid-template-columns:1fr;
  padding-block:1.25rem;border-bottom:1px solid rgba(234,228,217,.11);}
.gedeck--leinen .hinweis{border-bottom-color:rgba(20,19,17,.13);}
@media (min-width:50rem){.hinweis{grid-template-columns:minmax(11rem,.75fr) minmax(0,1.8fr) auto;align-items:baseline;}}
.hinweis__name{font-family:'Newsreader',serif;font-weight:300;font-size:var(--s-1);}
.hinweis__text{font-size:var(--s--1);color:var(--grau);}
.gedeck--leinen .hinweis__text{color:#5C554A;}
.hinweis__wert{font-size:var(--s--2);letter-spacing:.16em;text-transform:uppercase;color:var(--messing);white-space:nowrap;}
.gedeck--leinen .hinweis__wert{color:#8A6A24;}

/* ── Karten ── */
.felder{display:grid;gap:var(--space);grid-template-columns:1fr;margin-top:clamp(2rem,1.5rem + 2vw,3rem);}
@media (min-width:44rem){.felder{grid-template-columns:1fr 1fr;}}
@media (min-width:66rem){.felder{grid-template-columns:repeat(3,1fr);}}
.feld{border-top:1px solid var(--messing);padding-top:1.1rem;}
.feld h3{font-family:'Newsreader',serif;font-weight:300;font-size:var(--s-1);}
.feld p{margin-top:.55rem;font-size:var(--s--1);color:var(--grau);}
.gedeck--leinen .feld p{color:#5C554A;}

/* ── Bild ── */
.bild{margin-top:clamp(2rem,1.5rem + 2vw,3rem);}
.bild img{width:100%;height:auto;aspect-ratio:16/9;object-fit:cover;}
.bild figcaption{margin-top:.75rem;font-size:var(--s--2);letter-spacing:.18em;text-transform:uppercase;color:var(--grau);}

/* ── Kontakt ── */
.paare{display:grid;gap:var(--space);grid-template-columns:1fr;margin-top:clamp(2rem,1.5rem + 2vw,3rem);}
@media (min-width:44rem){.paare{grid-template-columns:1fr 1fr;}}
.paar h3{font-size:var(--s--2);letter-spacing:.22em;text-transform:uppercase;color:var(--messing);margin-bottom:.9rem;}
.gedeck--leinen .paar h3{color:#8A6A24;}
.paar__zeile{display:flex;justify-content:space-between;gap:1rem;padding-block:.55rem;
  border-bottom:1px solid rgba(234,228,217,.13);font-size:var(--s--1);}
.gedeck--leinen .paar__zeile{border-bottom-color:rgba(20,19,17,.13);}
.paar__zeile span:last-child{text-align:right;}

/* ── Unterseiten ── */
.oben{padding-block:clamp(2.5rem,1.9rem + 3vw,4.25rem) 0;}
.oben h1{font-size:var(--s-2);max-width:21ch;margin-top:.8rem;}
.oben h1 em{font-style:italic;color:var(--messing);}
.oben p{margin-top:1rem;max-width:50ch;color:var(--grau);font-size:var(--s-1);line-height:1.55;}

.fuss{border-top:1px solid rgba(234,228,217,.14);padding-block:2.5rem;font-size:var(--s--1);color:var(--grau);}
.fuss a{color:var(--messing);}
.fuss p + p{margin-top:.5rem;}

@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.001ms !important;transition-duration:.001ms !important;}
}
