/* ============================================
   ZUM GOLDENEN OCHSEN — Editorial Restaurant Site
   ============================================ */

/* ---------- Self-hosted fonts (DSGVO-konform) ---------- */
@font-face{
  font-family:'Cormorant Garamond';
  font-style:normal;
  font-weight:400 500;
  font-display:swap;
  src:url('fonts/cormorant-garamond-normal-latin.woff2') format('woff2');
  unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;
}
@font-face{
  font-family:'Cormorant Garamond';
  font-style:normal;
  font-weight:400 500;
  font-display:swap;
  src:url('fonts/cormorant-garamond-normal-latin-ext.woff2') format('woff2');
  unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;
}
@font-face{
  font-family:'Cormorant Garamond';
  font-style:italic;
  font-weight:400 500;
  font-display:swap;
  src:url('fonts/cormorant-garamond-italic-latin.woff2') format('woff2');
  unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;
}
@font-face{
  font-family:'Cormorant Garamond';
  font-style:italic;
  font-weight:400 500;
  font-display:swap;
  src:url('fonts/cormorant-garamond-italic-latin-ext.woff2') format('woff2');
  unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;
}
@font-face{
  font-family:'Inter';
  font-style:normal;
  font-weight:400 600;
  font-display:swap;
  src:url('fonts/inter-normal-latin.woff2') format('woff2');
  unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;
}
@font-face{
  font-family:'Inter';
  font-style:normal;
  font-weight:400 600;
  font-display:swap;
  src:url('fonts/inter-normal-latin-ext.woff2') format('woff2');
  unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;
}

:root{
  --bg: #f3ede2;          /* warm bone */
  --bg-alt: #ebe3d4;      /* slightly deeper paper */
  --ink: #1a1612;         /* near-black */
  --ink-soft: #4a4239;
  --ink-mute: #8a7f70;
  --line: #d6cdbb;
  --burgundy: #6a1d27;    /* deep oxblood */
  --burgundy-deep: #4a131a;
  --brass: #b08d57;       /* warm brass */
  --brass-soft: #d8b482;
  --cream: #faf6ec;

  --serif: 'Cormorant Garamond', 'Times New Roman', serif;
  --sans:  'Inter', -apple-system, BlinkMacSystemFont, system-ui, sans-serif;
  --mono:  'JetBrains Mono', ui-monospace, monospace;

  --container: 1320px;
  --gutter: clamp(1.25rem, 4vw, 3rem);

  --ease: cubic-bezier(.22,.61,.36,1);
}

/* ---------- Reset ---------- */
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{
  font-family:var(--sans);
  background:var(--bg);
  color:var(--ink);
  font-size:16px;
  line-height:1.6;
  font-weight:400;
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
  overflow-x:hidden;
}
img{max-width:100%;display:block;height:auto}
a{color:inherit;text-decoration:none;transition:color .3s var(--ease)}
button{font:inherit;cursor:pointer;border:none;background:none;color:inherit}
ul,ol{list-style:none}

/* ---------- Type scale ---------- */
.eyebrow{
  font-family:var(--sans);
  font-size:.72rem;
  font-weight:500;
  letter-spacing:.22em;
  text-transform:uppercase;
  color:var(--burgundy);
}
.eyebrow--brass{color:var(--brass)}
.eyebrow--mute{color:var(--ink-mute)}

h1,h2,h3,h4{
  font-family:var(--serif);
  font-weight:400;
  line-height:1.05;
  letter-spacing:-.01em;
  color:var(--ink);
}
h1{font-size:clamp(2.8rem,7vw,6.4rem)}
h2{font-size:clamp(2.2rem,5vw,4.4rem)}
h3{font-size:clamp(1.6rem,3vw,2.6rem)}
h4{font-size:clamp(1.2rem,2vw,1.6rem)}
h1 em,h2 em,h3 em{font-style:italic;color:var(--burgundy);font-weight:400}

p.lede{
  font-family:var(--serif);
  font-size:clamp(1.25rem,2vw,1.6rem);
  line-height:1.45;
  color:var(--ink-soft);
  font-weight:300;
}

/* ---------- Layout ---------- */
.container{
  width:100%;
  max-width:var(--container);
  margin:0 auto;
  padding-left:var(--gutter);
  padding-right:var(--gutter);
}
section{padding:clamp(4rem,9vw,9rem) 0}
.section-tight{padding:clamp(3rem,5vw,5rem) 0}

/* ---------- Navigation ---------- */
.nav{
  position:fixed;top:0;left:0;right:0;z-index:100;
  padding:1.1rem 0;
  background:transparent;
  transition:background .4s var(--ease), padding .4s var(--ease), box-shadow .4s var(--ease);
}
.nav.scrolled{
  background:rgba(243,237,226,.96);
  backdrop-filter:blur(14px);
  -webkit-backdrop-filter:blur(14px);
  padding:.7rem 0;
  box-shadow:0 1px 0 var(--line);
}
/* menu-open: solid background, NO backdrop-filter (would create a containing block
   for the position:fixed nav__links overlay and break full-viewport sizing) */
.nav.menu-open{
  background:var(--cream);
  backdrop-filter:none;
  -webkit-backdrop-filter:none;
  padding:.7rem 0;
  box-shadow:0 1px 0 var(--line);
}
.nav.menu-open .nav__brand{color:var(--ink)}
.nav.menu-open .nav__brand small{color:var(--burgundy)}
.nav.menu-open .nav__toggle span{background:var(--ink)}
.nav.menu-open .nav__brand-mark .mark-light{opacity:0}
.nav.menu-open .nav__brand-mark .mark-dark{opacity:1}
.nav__inner{
  display:flex;align-items:center;justify-content:space-between;
  gap:2rem;
}
.nav__brand{
  font-family:var(--serif);
  font-size:1.35rem;
  letter-spacing:.01em;
  color:var(--cream);
  transition:color .4s var(--ease);
  line-height:1;
  display:flex;align-items:center;gap:.7rem;
}
.nav__brand-mark{
  width:38px;height:38px;flex-shrink:0;
  position:relative;
}
.nav__brand-mark img{
  position:absolute;inset:0;width:100%;height:100%;
  object-fit:contain;
  transition:opacity .4s var(--ease);
}
.nav__brand-mark .mark-light{opacity:1}
.nav__brand-mark .mark-dark{opacity:0}
.nav.scrolled .nav__brand-mark .mark-light{opacity:0}
.nav.scrolled .nav__brand-mark .mark-dark{opacity:1}
.nav__brand-text{display:flex;flex-direction:column;line-height:1}
.nav__brand small{
  font-family:var(--sans);
  font-size:.6rem;
  letter-spacing:.32em;
  text-transform:uppercase;
  color:var(--brass-soft);
  margin-top:.2rem;
  transition:color .4s var(--ease);
}
.nav.scrolled .nav__brand{color:var(--ink)}
.nav.scrolled .nav__brand small{color:var(--burgundy)}

.nav__links{
  display:flex;align-items:center;gap:2.2rem;
}
.nav__links-foot{display:none}
.nav__links a{
  font-size:.78rem;
  font-weight:500;
  letter-spacing:.18em;
  text-transform:uppercase;
  color:var(--cream);
  position:relative;padding:.4rem 0;
}
.nav__links a::after{
  content:'';position:absolute;bottom:.1rem;left:0;
  height:1px;width:0;background:currentColor;
  transition:width .35s var(--ease);
}
.nav__links a:hover::after{width:100%}
.nav.scrolled .nav__links a{color:var(--ink)}

.btn-reserve{
  font-family:var(--sans);
  font-size:.74rem;
  font-weight:600;
  letter-spacing:.2em;
  text-transform:uppercase;
  padding:1rem 3rem!important;
  background:var(--burgundy);
  color:var(--cream)!important;
  border:1px solid var(--burgundy);
  transition:all .3s var(--ease);
}
.btn-reserve:hover{background:var(--burgundy-deep);border-color:var(--burgundy-deep);transform:translateY(-1px)}
.btn-reserve::after{display:none!important}

.nav__toggle{
  display:none;width:36px;height:36px;position:relative;
  background:none;border:none;outline:none;cursor:pointer;-webkit-tap-highlight-color:transparent;
}
.nav__toggle:focus{outline:none}
.nav__toggle:focus-visible{outline:none}
.nav__toggle span{
  position:absolute;left:6px;right:6px;height:1.5px;background:var(--cream);
  transition:all .3s var(--ease);
}
.nav__toggle span:nth-child(1){top:13px}
.nav__toggle span:nth-child(2){top:20px}
.nav.scrolled .nav__toggle span{background:var(--ink)}
.nav__toggle.open span:nth-child(1){top:17px;transform:rotate(45deg);background:var(--burgundy)}
.nav__toggle.open span:nth-child(2){top:17px;transform:rotate(-45deg);background:var(--burgundy)}

/* ---------- Hero ---------- */
.hero{
  position:relative;
  height:100vh;min-height:680px;
  display:flex;align-items:center;justify-content:center;
  overflow:hidden;
  color:var(--cream);
}
.hero__media{
  position:absolute;inset:0;z-index:0;
  will-change:transform;
}
.hero__media img{
  width:100%;height:100%;object-fit:cover;
  transform:scale(1.05);
  animation:slowZoom 18s ease-out forwards;
}
@keyframes slowZoom{to{transform:scale(1)}}

.hero__media::after{
  content:'';position:absolute;inset:0;
  background:
    linear-gradient(180deg,
      rgba(15,12,10,.55) 0%,
      rgba(15,12,10,.42) 10%,
      rgba(15,12,10,.38) 22%,
      rgba(15,12,10,.38) 45%,
      rgba(15,12,10,.38) 78%,
      rgba(15,12,10,.88) 100%);
}
@media (max-width:720px){
  .hero__media::after{
    background:rgba(15,12,10,.40);
  }
}
.hero__inner{
  position:relative;z-index:2;
  text-align:center;max-width:920px;
  padding:0 var(--gutter);
  margin-top:16vh;
}
@media (max-width:720px){
  .hero__inner{margin-top:8vh}
}
.hero__logo{
  width:clamp(140px,15vw,200px);
  height:auto;
  margin:0 auto 1.6rem;
  display:block;
  opacity:0;animation:fadeUp 1.2s var(--ease) .15s forwards;
  filter:drop-shadow(0 2px 18px rgba(0,0,0,.45));
}
.hero__crest{
  display:flex;align-items:center;justify-content:center;gap:1rem;
  margin-bottom:2rem;
  opacity:0;animation:fadeUp 1s var(--ease) .35s forwards;
}
.hero__crest::before,.hero__crest::after{
  content:'';width:48px;height:1px;background:var(--brass-soft);
}
.hero__crest span{
  font-size:.7rem;letter-spacing:.4em;text-transform:uppercase;
  color:var(--brass-soft);font-weight:500;
}
.hero h1{
  color:var(--cream);
  margin-bottom:1.5rem;
  text-wrap:balance;
  text-shadow:0 2px 30px rgba(0,0,0,.55), 0 1px 6px rgba(0,0,0,.3);
  opacity:0;animation:fadeUp 1.2s var(--ease) .55s forwards;
}
.hero__sub{text-shadow:0 1px 16px rgba(0,0,0,.4)}
.hero h1 em{color:var(--brass-soft)}
.hero__sub{
  font-family:var(--serif);
  font-size:clamp(1.1rem,1.6vw,1.35rem);
  font-style:italic;
  font-weight:300;
  color:rgba(250,246,236,.88);
  max-width:580px;margin:0 auto 2.8rem;
  line-height:1.5;
  opacity:0;animation:fadeUp 1.2s var(--ease) .8s forwards;
}
.hero__cta{
  display:flex;gap:1rem;justify-content:center;flex-wrap:wrap;
  opacity:0;animation:fadeUp 1.2s var(--ease) 1.05s forwards;
}
.btn-ghost{
  font-size:.74rem;font-weight:600;letter-spacing:.2em;text-transform:uppercase;
  padding:.95rem 1.7rem;
  border:1px solid rgba(250,246,236,.5);
  color:var(--cream);
  transition:all .3s var(--ease);
  background:transparent;
}
.btn-ghost:hover{background:var(--cream);color:var(--ink);border-color:var(--cream)}
.btn-solid{
  font-size:.74rem;font-weight:600;letter-spacing:.2em;text-transform:uppercase;
  padding:.95rem 1.7rem;
  background:var(--burgundy);
  color:var(--cream);
  border:1px solid var(--burgundy);
  transition:all .3s var(--ease);
}
.btn-solid:hover{background:var(--burgundy-deep);border-color:var(--burgundy-deep);transform:translateY(-2px)}

.hero__scroll{
  position:absolute;bottom:1.6rem;left:50%;transform:translateX(-50%);
  display:flex;flex-direction:column;align-items:center;
  z-index:2;
  opacity:0;animation:fadeUp 1s var(--ease) 1.4s forwards;
  pointer-events:none;
}
.hero__scroll span{display:none}
.hero__scroll::after{
  content:'';width:1px;height:36px;background:rgba(250,246,236,.45);
  animation:scrollLine 2.4s ease-in-out infinite;
  transform-origin:top;
}
@keyframes scrollLine{0%,100%{transform:scaleY(.3);opacity:.4}50%{transform:scaleY(1);opacity:.9}}
@keyframes fadeUp{from{opacity:0;transform:translateY(24px)}to{opacity:1;transform:translateY(0)}}

/* ---------- Marquee (info bar) ---------- */
.infobar{
  background:var(--ink);
  color:var(--cream);
  padding:.95rem 0;
  overflow:hidden;
}
.infobar__track{
  display:flex;gap:3.5rem;
  white-space:nowrap;
  animation:slide 38s linear infinite;
}
.infobar__track span{
  font-size:.72rem;
  letter-spacing:.28em;
  text-transform:uppercase;
  color:var(--brass-soft);
  display:inline-flex;align-items:center;gap:3.5rem;
}
.infobar__track span::after{
  content:'✦';color:var(--burgundy);font-size:.6rem;
}
@keyframes slide{from{transform:translateX(0)}to{transform:translateX(-50%)}}

/* ---------- Manifest ---------- */
.manifest{
  background:var(--bg);
  text-align:center;
}
.manifest__inner{max-width:880px;margin:0 auto;text-align:center}
.manifest .eyebrow{margin-bottom:1.5rem}
.manifest h2{margin-bottom:2rem;text-wrap:balance}
.manifest p.lede{text-wrap:pretty}
.manifest__sig{
  font-family:var(--serif);font-style:italic;font-size:1.1rem;
  color:var(--ink-mute);margin-top:2.4rem;
}
.manifest__sig::before{content:'— '}

/* ---------- Räume ---------- */
.raeume{background:var(--bg-alt)}
.raeume__head{
  display:grid;grid-template-columns:1fr 1fr;gap:3rem;align-items:end;
  margin-bottom:5rem;
}
.raeume__head .eyebrow{margin-bottom:1rem}
.raeume__head p{color:var(--ink-soft);max-width:38ch;margin-left:auto}

.raum{
  display:grid;
  grid-template-columns:1.15fr 1fr;
  gap:clamp(2rem,5vw,5rem);
  align-items:center;
  margin-bottom:clamp(4rem,7vw,7rem);
}
.raum:last-child{margin-bottom:0}
.raum:nth-child(even){grid-template-columns:1fr 1.15fr}
.raum:nth-child(even) .raum__media{order:2}
.raum:nth-child(even) .raum__text{order:1}

.raum__media{position:relative;aspect-ratio:5/4;overflow:hidden}
.raum__media img{width:100%;height:100%;object-fit:cover;transition:transform 1.4s var(--ease)}
.raum__media:hover img{transform:scale(1.04)}
.raum__media .raum__num{
  position:absolute;top:1.4rem;left:1.4rem;
  font-family:var(--serif);font-size:1.1rem;font-style:italic;
  color:var(--cream);
  background:rgba(26,22,18,.65);
  width:48px;height:48px;
  display:flex;align-items:center;justify-content:center;
  border-radius:50%;
  backdrop-filter:blur(8px);
}

.raum__text .eyebrow{margin-bottom:1.1rem}
.raum__text h3{margin-bottom:1.2rem;text-wrap:balance}
.raum__text p{color:var(--ink-soft);font-size:1.05rem;line-height:1.7;max-width:46ch}

.raum__meta{
  display:flex;gap:2.5rem;margin-top:2rem;
  padding-top:1.6rem;border-top:1px solid var(--line);
}
.raum__meta div{display:flex;flex-direction:column;gap:.2rem}
.raum__meta dt{
  font-size:.62rem;letter-spacing:.28em;text-transform:uppercase;
  color:var(--ink-mute);
}
.raum__meta dd{font-family:var(--serif);font-size:1.4rem;color:var(--ink)}

/* ---------- Küche ---------- */
.kueche{
  background:var(--ink);
  color:var(--cream);
  position:relative;
}
.kueche__grid{
  display:grid;grid-template-columns:1.1fr 1fr;
  gap:clamp(2rem,6vw,6rem);align-items:center;
}
.kueche .eyebrow{color:var(--brass-soft);margin-bottom:1.4rem}
.kueche h2{color:var(--cream);margin-bottom:1.8rem}
.kueche h2 em{color:var(--brass-soft)}
.kueche p{color:rgba(250,246,236,.78);font-size:1.05rem;line-height:1.7;max-width:48ch;margin-bottom:1.2rem}
.kueche__cta{margin-top:2.4rem;display:flex;gap:1rem;flex-wrap:wrap}
.kueche__media{display:grid;grid-template-columns:1fr 1fr;gap:1rem}
.kueche__media .a{aspect-ratio:3/4;overflow:hidden}
.kueche__media .b{aspect-ratio:3/4;overflow:hidden;margin-top:3rem}
.kueche__media img{width:100%;height:100%;object-fit:cover}

.kueche__highlights{
  margin-top:2.4rem;display:grid;grid-template-columns:repeat(2,1fr);gap:1.4rem 2rem;
}
.kueche__highlights li{
  display:flex;align-items:flex-start;gap:.8rem;
  font-family:var(--serif);font-size:1.05rem;color:rgba(250,246,236,.92);
}
.kueche__highlights li::before{
  content:'✦';color:var(--brass);font-size:.65rem;margin-top:.55rem;flex-shrink:0;
}

/* ---------- Wein ---------- */
.wein{background:var(--bg)}
.wein__head{text-align:center;margin-bottom:4.5rem}
.wein__head .eyebrow{margin-bottom:1.2rem}
.wein__head h2{margin-bottom:1.4rem;text-wrap:balance}
.wein__head p.lede{max-width:680px;margin:0 auto}
.wein__grid{
  display:grid;grid-template-columns:repeat(3,1fr);gap:2rem;
  margin-bottom:3rem;
}
.wein-card{
  background:var(--cream);
  border:1px solid var(--line);
  padding:2.4rem 2rem;
  transition:all .4s var(--ease);
  position:relative;
}
.wein-card:hover{transform:translateY(-4px);box-shadow:0 24px 50px -28px rgba(26,22,18,.25);border-color:var(--brass)}
.wein-card__num{
  position:absolute;top:1rem;right:1.2rem;
  font-family:var(--serif);font-style:italic;font-size:.95rem;
  color:var(--brass);
}
.wein-card .eyebrow{margin-bottom:1rem;font-size:.65rem;color:var(--brass)}
.wein-card h4{font-size:1.4rem;margin-bottom:.4rem;line-height:1.2}
.wein-card .winzer{
  font-size:.78rem;color:var(--ink-mute);margin-bottom:1rem;
  font-style:italic;
}
.wein-card p{font-size:.95rem;color:var(--ink-soft);line-height:1.55;margin-bottom:1.4rem}
.wein-card__foot{
  display:flex;justify-content:space-between;align-items:baseline;
  padding-top:1rem;border-top:1px solid var(--line);
}
.wein-card__price{
  font-family:var(--serif);font-size:1.3rem;color:var(--burgundy);
}
.wein-card__size{
  font-size:.7rem;letter-spacing:.2em;text-transform:uppercase;
  color:var(--ink-mute);
}
.wein__cta{text-align:center}
.btn-link{
  font-size:.78rem;font-weight:600;letter-spacing:.2em;text-transform:uppercase;
  color:var(--burgundy);
  display:inline-flex;align-items:center;gap:.7rem;
  padding:1rem 0;
  border-bottom:1px solid var(--burgundy);
  transition:all .3s var(--ease);
}
.btn-link:hover{gap:1.1rem;color:var(--burgundy-deep)}
.btn-link::after{content:'→'}

/* ---------- Anlässe (events) ---------- */
.anlaesse{background:var(--bg-alt);text-align:center}
.anlaesse__inner{max-width:880px;margin:0 auto}
.anlaesse .eyebrow{margin-bottom:1.2rem}
.anlaesse h2{margin-bottom:1.6rem}
.anlaesse h2 em{color:var(--burgundy)}
.anlaesse p{color:var(--ink-soft);font-size:1.05rem;line-height:1.7;max-width:620px;margin:0 auto 2.4rem}
.anlaesse__list{
  display:flex;justify-content:center;gap:1.4rem;flex-wrap:wrap;
  margin-bottom:2.4rem;
}
.anlaesse__select-label{
  font-size:.7rem;letter-spacing:.24em;text-transform:uppercase;
  font-weight:500;color:var(--ink-mute);
  margin-bottom:1.4rem;display:block;
}
.anlaesse__list label{
  font-family:var(--serif);font-size:1.2rem;font-style:italic;color:var(--ink);
  padding:.55rem 1.5rem;
  border:1px solid var(--line);
  background:var(--cream);
  cursor:pointer;
  transition:all .25s var(--ease);
  user-select:none;
}
.anlaesse__list label:hover{
  border-color:var(--brass);
  background:#fff;
  transform:translateY(-1px);
}
.anlaesse__list input[type="radio"]{
  position:absolute;opacity:0;width:1px;height:1px;pointer-events:none;
}
.anlaesse__list input[type="radio"]:checked + label{
  background:var(--burgundy);
  color:var(--cream);
  border-color:var(--burgundy);
  box-shadow:0 6px 18px -8px rgba(106,29,39,.6);
}
.anlaesse__list input[type="radio"]:focus-visible + label{
  outline:2px solid var(--brass);outline-offset:2px;
}
.anlaesse__hint{
  display:block;font-size:.78rem;color:var(--ink-mute);
  margin-top:1rem;font-style:italic;font-family:var(--serif);
}

/* ---------- Testimonial ---------- */
.testimonial{background:var(--bg);padding:clamp(4rem,8vw,8rem) 0}
.testimonial__inner{
  display:grid;grid-template-columns:1fr 1.4fr;
  gap:clamp(2rem,5vw,5rem);align-items:center;
  max-width:1180px;margin:0 auto;
}
.testimonial__media{display:grid;grid-template-columns:1fr;gap:1rem;position:relative}
.testimonial__portrait{
  aspect-ratio:4/5;overflow:hidden;
  position:relative;
}
.testimonial__portrait img{width:100%;height:100%;object-fit:cover}
.testimonial__dish{
  position:absolute;bottom:-2.6rem;right:-2rem;
  width:55%;aspect-ratio:1;overflow:hidden;
  border:6px solid var(--bg);
  z-index:2;
}
.testimonial__dish img{width:100%;height:100%;object-fit:cover}
.testimonial__text .eyebrow{margin-bottom:1.6rem;color:var(--burgundy)}
.testimonial__text blockquote{
  font-family:var(--serif);
  font-size:clamp(1.45rem,2.4vw,2rem);
  line-height:1.4;
  font-weight:300;
  color:var(--ink);
  letter-spacing:-.005em;
  margin-bottom:2.4rem;
  text-wrap:balance;
}
.testimonial__text blockquote::before{
  content:'„';
  font-family:var(--serif);
  font-size:4rem;color:var(--brass);
  display:block;line-height:.5;margin-bottom:.4rem;
}
.testimonial__text cite{
  font-style:normal;
  display:flex;flex-direction:column;gap:.2rem;
  padding-top:1.4rem;border-top:1px solid var(--line);
  max-width:280px;
}
.testimonial__text cite strong{
  font-family:var(--serif);font-size:1.2rem;color:var(--ink);font-weight:500;
}
.testimonial__text cite span{
  font-size:.72rem;letter-spacing:.22em;text-transform:uppercase;color:var(--ink-mute);
}

.testimonial__google{
  margin-top:2.4rem;padding-top:2rem;border-top:1px solid var(--line);
  display:flex;align-items:center;gap:1.2rem;flex-wrap:wrap;
}
.testimonial__google-stars{
  display:inline-flex;align-items:center;gap:.4rem;
  font-family:var(--serif);font-size:1.3rem;color:var(--ink);
}
.testimonial__google-stars::before{content:'★★★★★';color:var(--brass);letter-spacing:.05em;font-size:1.05rem}
.testimonial__google-link{
  font-size:.72rem;letter-spacing:.2em;text-transform:uppercase;
  font-weight:600;color:var(--burgundy);
  display:inline-flex;align-items:center;gap:.5rem;
  border-bottom:1px solid var(--burgundy);padding-bottom:.3rem;
  transition:gap .3s var(--ease);
}
.testimonial__google-link:hover{gap:.8rem}
.testimonial__google-link::after{content:'↗'}

/* ---------- Google Reviews grid ---------- */
.reviews{
  background:var(--bg-alt);
}
.reviews__head{
  text-align:center;max-width:680px;margin:0 auto 4rem;
}
.reviews__head .eyebrow{margin-bottom:1rem}
.reviews__head h2{margin-bottom:1rem}
.reviews__head h2 em{color:var(--burgundy)}
.reviews__head p{color:var(--ink-soft);font-style:italic;font-family:var(--serif);font-size:1.05rem}
.reviews__grid{
  display:grid;grid-template-columns:repeat(3,1fr);gap:1.6rem;
}
.review-card{
  background:var(--cream);
  border:1px solid var(--line);
  padding:2.2rem 1.8rem;
  display:flex;flex-direction:column;
  transition:transform .4s var(--ease),box-shadow .4s var(--ease);
  position:relative;
}
.review-card:hover{
  transform:translateY(-3px);
  box-shadow:0 18px 40px -24px rgba(26,22,18,.18);
}
.review-card__stars{
  color:var(--brass);font-size:.85rem;letter-spacing:.1em;
  margin-bottom:1rem;
}
.review-card blockquote{
  font-family:var(--serif);
  font-size:1.05rem;line-height:1.55;color:var(--ink);
  font-weight:400;
  flex:1;
  margin-bottom:1.6rem;
}
.review-card blockquote::before{content:'„';color:var(--brass);font-size:1.4rem;line-height:0}
.review-card cite{
  font-style:normal;
  padding-top:1.2rem;border-top:1px solid var(--line);
  display:flex;flex-direction:column;gap:.2rem;
}
.review-card cite strong{
  font-family:var(--serif);font-size:1.1rem;font-weight:500;color:var(--ink);
}
.review-card cite span{
  font-size:.66rem;letter-spacing:.18em;text-transform:uppercase;color:var(--ink-mute);
}
.review-card cite small{
  font-size:.7rem;color:var(--brass);font-style:italic;
  font-family:var(--serif);margin-top:.3rem;
}
.reviews__foot{
  text-align:center;margin-top:3.5rem;
}

/* ---------- Language Toggle ---------- */
.lang-toggle{
  display:inline-flex;align-items:center;
  border:1px solid rgba(250,246,236,.4);
  font-size:.66rem;letter-spacing:.18em;text-transform:uppercase;
  font-weight:600;
  margin-right:.4rem;
  transition:border-color .4s var(--ease);
}
.nav.scrolled .lang-toggle{border-color:var(--line)}
.lang-toggle a{
  padding:.45rem .7rem;
  color:rgba(250,246,236,.6)!important;
  transition:all .3s var(--ease);
  display:block;
}
.nav.scrolled .lang-toggle a{color:var(--ink-mute)!important}
.lang-toggle a:hover{color:var(--cream)!important}
.nav.scrolled .lang-toggle a:hover{color:var(--ink)!important}
.lang-toggle a.active{
  background:var(--burgundy);color:var(--cream)!important;
}
.lang-toggle a::after{display:none!important}

@media (max-width:1024px){
  .reviews__grid{grid-template-columns:1fr;gap:1.2rem}
}
@media (max-width:720px){
  .lang-toggle{margin-right:0}
}

/* ---------- Reservierung ---------- */
.reserve{
  background:var(--burgundy);
  color:var(--cream);
  text-align:center;position:relative;overflow:hidden;
}
.reserve::before{
  content:'';position:absolute;inset:0;
  background:
    radial-gradient(ellipse at top,rgba(176,141,87,.18),transparent 60%),
    radial-gradient(ellipse at bottom,rgba(74,19,26,.5),transparent 60%);
}
.reserve__inner{position:relative;z-index:1;max-width:780px;margin:0 auto}
.reserve .eyebrow{color:var(--brass-soft);margin-bottom:1.4rem}
.reserve h2{color:var(--cream);margin-bottom:1.8rem;text-wrap:balance}
.reserve h2 em{color:var(--brass-soft)}
.reserve p{
  color:rgba(250,246,236,.85);font-size:1.1rem;
  max-width:540px;margin:0 auto 2.8rem;line-height:1.7;
}
.reserve__methods{
  display:flex;justify-content:center;gap:1rem;flex-wrap:wrap;
}
.btn-reserve-large{
  font-size:.78rem;font-weight:600;letter-spacing:.22em;text-transform:uppercase;
  padding:1.1rem 2.2rem;
  background:var(--cream);
  color:var(--burgundy);
  border:1px solid var(--cream);
  transition:all .3s var(--ease);
  display:inline-flex;align-items:center;gap:.8rem;
}
.btn-reserve-large:hover{background:transparent;color:var(--cream);transform:translateY(-2px)}
.btn-reserve-outline{
  font-size:.78rem;font-weight:600;letter-spacing:.22em;text-transform:uppercase;
  padding:1.1rem 2.2rem;
  background:transparent;color:var(--cream);
  border:1px solid rgba(250,246,236,.5);
  transition:all .3s var(--ease);
  display:inline-flex;align-items:center;gap:.8rem;
}
.btn-reserve-outline:hover{border-color:var(--cream);background:rgba(250,246,236,.08)}

.reserve__note{
  margin-top:2rem!important;
  font-size:.78rem!important;
  font-style:italic;
  color:rgba(250,246,236,.55)!important;
  font-family:var(--serif);
  max-width:560px;margin-left:auto;margin-right:auto;
}

/* Central Planner iframe slot */
.reserve__embed{
  margin:2.6rem auto 0;
  max-width:680px;
  background:var(--cream);
  border:1px solid rgba(250,246,236,.18);
  min-height:560px;
  position:relative;
  text-align:left;
  color:var(--ink);
  display:none; /* hidden until iframe is added */
}
.reserve__embed.is-active{display:block}
.reserve__embed iframe{width:100%;border:0;display:block;min-height:560px}
.reserve__embed-placeholder{
  padding:3rem 2rem;text-align:center;
  font-family:var(--serif);font-style:italic;color:var(--ink-mute);
}

/* ---------- Anfahrt / Directions ---------- */
.anfahrt{
  background:var(--bg);
  padding:clamp(3.5rem,6vw,6rem) 0;
}
.anfahrt__inner{
  display:grid;grid-template-columns:1.1fr 1fr;
  gap:clamp(2rem,5vw,5rem);
  align-items:center;
  max-width:1180px;margin:0 auto;
}
.anfahrt__text .eyebrow{margin-bottom:1.2rem}
.anfahrt__text h2{margin-bottom:1.4rem;text-wrap:balance}
.anfahrt__text h2 em{color:var(--burgundy)}
.anfahrt__text p{
  color:var(--ink-soft);font-size:1.05rem;line-height:1.7;
  margin-bottom:1.6rem;max-width:42ch;
}
.anfahrt__address{
  font-family:var(--serif);font-size:1.5rem;
  line-height:1.4;color:var(--ink);
  margin-bottom:2rem;
}
.anfahrt__cta{
  display:flex;flex-direction:column;gap:.7rem;align-items:flex-start;
}
.anfahrt__cta a{
  display:inline-flex;align-items:center;gap:.7rem;
  font-size:.74rem;font-weight:600;letter-spacing:.2em;text-transform:uppercase;
  padding:.95rem 1.6rem;
  border:1px solid var(--burgundy);
  color:var(--burgundy);
  transition:all .3s var(--ease);
  min-width:280px;
}
.anfahrt__cta a:hover{background:var(--burgundy);color:var(--cream);transform:translateY(-1px)}
.anfahrt__cta a.primary{background:var(--burgundy);color:var(--cream)}
.anfahrt__cta a.primary:hover{background:var(--burgundy-deep);border-color:var(--burgundy-deep)}
.anfahrt__cta a::after{content:'→';margin-left:auto}
.anfahrt__map{
  aspect-ratio:5/4;
  position:relative;overflow:hidden;
  border:1px solid var(--line);
  background:var(--bg-alt);
}
.anfahrt__map a{
  position:absolute;inset:0;
  display:flex;align-items:center;justify-content:center;
  flex-direction:column;gap:1rem;
  background:linear-gradient(135deg,var(--bg-alt) 0%,#dccfb6 100%);
  text-align:center;
  transition:filter .3s var(--ease);
}
.anfahrt__map a:hover{filter:brightness(1.04)}
.anfahrt__map svg{width:64px;height:64px;color:var(--burgundy);opacity:.85}
.anfahrt__map span{
  font-family:var(--serif);font-style:italic;
  font-size:1.1rem;color:var(--ink);
}
.anfahrt__map small{
  font-size:.66rem;letter-spacing:.22em;text-transform:uppercase;
  color:var(--burgundy);font-weight:600;
}

@media (max-width:1024px){
  .anfahrt__inner{grid-template-columns:1fr;gap:2.5rem}
  .anfahrt__map{aspect-ratio:16/9}
}
@media (max-width:720px){
  .anfahrt__cta a{width:100%;min-width:0}
}

/* ---------- Footer ---------- */
.footer{background:var(--ink);color:rgba(250,246,236,.78);padding:5rem 0 2rem}
.footer__grid{
  display:grid;grid-template-columns:1.4fr 1fr 1fr 1fr;
  gap:3rem;
  margin-bottom:4rem;
}
.footer__logo{
  width:90px;height:auto;margin-bottom:1.4rem;
  opacity:.9;
}
.footer__brand h4{
  color:var(--cream);font-family:var(--serif);
  font-size:1.7rem;margin-bottom:.4rem;
}
.footer__brand small{
  font-size:.6rem;letter-spacing:.32em;text-transform:uppercase;
  color:var(--brass-soft);display:block;margin-bottom:1.2rem;
}
.footer__brand p{font-size:.92rem;line-height:1.6;max-width:34ch}

.footer__col h5{
  font-family:var(--sans);
  font-size:.7rem;letter-spacing:.28em;text-transform:uppercase;
  color:var(--brass-soft);margin-bottom:1.4rem;font-weight:600;
}
.footer__col ul li{margin-bottom:.7rem;font-size:.92rem}
.footer__col ul li a:hover{color:var(--cream)}

.footer__hours{font-family:var(--serif);font-size:1.05rem;line-height:1.7}
.footer__hours strong{font-family:var(--sans);font-size:.78rem;letter-spacing:.16em;text-transform:uppercase;color:var(--cream);font-weight:500;display:block;margin-top:.7rem}
.footer__hours strong:first-child{margin-top:0}

.footer__bottom{
  display:flex;justify-content:space-between;align-items:center;
  padding-top:2rem;border-top:1px solid rgba(250,246,236,.12);
  font-size:.78rem;color:var(--ink-mute);flex-wrap:wrap;gap:1rem;
}
.footer__bottom a{margin-left:1.5rem}
.footer__bottom a:hover{color:var(--cream)}
.footer__credit{
  text-align:center;
  margin-top:2rem;padding-top:1.4rem;
  border-top:1px solid rgba(250,246,236,.08);
  font-family:var(--serif);
  font-style:italic;
  font-size:1rem;
  letter-spacing:0;
  text-transform:none;
  color:rgba(250,246,236,.55);
}
.footer__credit a{
  margin-left:0;color:var(--brass-soft);font-weight:500;font-style:italic;
  border-bottom:1px solid var(--brass-soft);
  transition:color .3s var(--ease), border-color .3s var(--ease);
}
.footer__credit a:hover{color:var(--brass);border-color:var(--brass)}

/* ---------- Back to top ---------- */
.back-top{
  position:fixed;
  bottom:1.6rem;right:1.6rem;
  width:48px;height:48px;
  background:var(--burgundy);
  border-radius:50%;
  display:flex;align-items:center;justify-content:center;
  color:var(--brass-soft);
  z-index:95;
  opacity:0;visibility:hidden;
  transform:translateY(10px);
  transition:opacity .3s var(--ease), visibility .3s var(--ease), transform .3s var(--ease), background .3s var(--ease);
  cursor:pointer;
  border:1px solid rgba(176,141,87,.4);
  box-shadow:0 8px 24px -8px rgba(0,0,0,.35);
  text-decoration:none;
  -webkit-tap-highlight-color:transparent;
}
.back-top.visible{opacity:1;visibility:visible;transform:translateY(0)}
.back-top:hover{background:var(--burgundy-deep);color:var(--brass);transform:translateY(-3px)}
.back-top svg{width:18px;height:18px;display:block}

/* ---------- Reveal animations ---------- */
.reveal{opacity:0;transform:translateY(28px);transition:opacity 1s var(--ease),transform 1s var(--ease)}
.reveal.is-visible{opacity:1;transform:translateY(0)}
.reveal-delay-1{transition-delay:.1s}
.reveal-delay-2{transition-delay:.2s}
.reveal-delay-3{transition-delay:.3s}

/* ---------- Speisekarte page ---------- */
.page-hero{
  height:62vh;min-height:440px;
  position:relative;color:var(--cream);
  overflow:hidden;
}
.page-hero__media{position:absolute;inset:0;z-index:0}
.page-hero__media img{width:100%;height:100%;object-fit:cover;transform:scale(1.05);animation:slowZoom 18s ease-out forwards}
.page-hero__media::after{
  content:'';position:absolute;inset:0;
  background:linear-gradient(180deg,rgba(15,12,10,.25) 0%,rgba(15,12,10,.35) 45%,rgba(15,12,10,.85) 100%);
}
.page-hero__inner{
  position:absolute;left:0;right:0;
  bottom:clamp(2rem,5vh,4rem);
  z-index:2;
  padding-bottom:0;
}
.page-hero .eyebrow{color:var(--brass-soft);margin-bottom:1rem}
.page-hero h1{color:var(--cream);font-size:clamp(2.6rem,6vw,5.4rem);margin-bottom:1rem}
.page-hero h1 em{color:var(--brass-soft)}
.page-hero p{font-family:var(--serif);font-style:italic;font-size:1.2rem;color:rgba(250,246,236,.85);max-width:560px}

.menu{padding:clamp(4rem,7vw,7rem) 0}
.menu__intro{
  text-align:center;max-width:680px;margin:0 auto 5rem;
}
.menu__intro p{color:var(--ink-soft);font-size:1.05rem;line-height:1.7}

.menu__section{padding:0;margin-bottom:2.1rem}
.menu__section-head{
  display:flex;align-items:baseline;gap:1.5rem;margin-bottom:1.4rem;
  padding-bottom:1.2rem;border-bottom:1px solid var(--line);
}
.menu__section-head h2{
  font-size:clamp(1.8rem,3.5vw,2.6rem);
}
.menu__section-head h2 em{color:var(--burgundy);font-style:italic}
.menu__section-head .eyebrow{margin-left:auto}

.menu__list{
  display:flex;flex-direction:column;
  max-width:820px;margin:0 auto;
}
.menu-item{
  display:grid;grid-template-columns:1fr auto;gap:.3rem 1.2rem;
  padding-bottom:1rem;margin-bottom:1rem;
  border-bottom:1px dotted var(--line);
  align-items:baseline;
}
.menu-item:last-child{margin-bottom:0;border-bottom:0}
.menu-item h4{
  font-family:var(--serif);font-size:1.25rem;font-weight:500;
  color:var(--ink);
}
.menu-item__price{
  font-family:var(--serif);font-size:1.15rem;color:var(--burgundy);
  white-space:nowrap;
}
.menu-item p{
  grid-column:1/-1;font-size:.92rem;color:var(--ink-soft);line-height:1.55;
  font-family:var(--serif);font-style:italic;font-weight:300;
}
.menu-item__tags{
  grid-column:1/-1;display:flex;gap:.5rem;flex-wrap:wrap;margin-top:.4rem;
}
.menu-item__tags span{
  font-size:.62rem;letter-spacing:.18em;text-transform:uppercase;
  color:var(--brass);background:rgba(176,141,87,.1);
  padding:.25rem .6rem;border:1px solid rgba(176,141,87,.3);
}

.menu__footer{
  margin-top:5rem;padding-top:3rem;border-top:1px solid var(--line);
  text-align:center;
}
.menu__footer p{color:var(--ink-mute);font-size:.92rem;font-style:italic;font-family:var(--serif)}

/* ---------- Weinkarte page ---------- */
.wine-page{padding:clamp(4rem,7vw,7rem) 0;background:var(--bg)}
.wine-section{padding:0;margin-bottom:2.1rem}
.wine-section__head{
  display:grid;grid-template-columns:auto 1fr;gap:2rem;align-items:end;
  margin-bottom:1.4rem;padding-bottom:1.2rem;border-bottom:1px solid var(--line);
}
.wine-section__head h2{
  font-size:clamp(2rem,4vw,3.2rem);
}
.wine-section__head h2 em{color:var(--burgundy);font-style:italic}
.wine-section__head p{
  font-family:var(--serif);font-style:italic;color:var(--ink-mute);
  font-size:1.05rem;text-align:right;
}
.wine-list{display:grid;gap:1.4rem}
.wine-list__sub{
  font-family:var(--sans);font-size:.7rem;letter-spacing:.28em;
  text-transform:uppercase;color:var(--burgundy);
  margin-top:1.5rem;margin-bottom:.5rem;font-weight:600;
}
.wine-list__sub:first-child{margin-top:0}

.wine-row{
  display:grid;grid-template-columns:1fr auto;gap:.3rem 2rem;
  padding-bottom:1.2rem;border-bottom:1px dotted var(--line);
  align-items:baseline;
}
.wine-row__name{
  font-family:var(--serif);font-size:1.2rem;font-weight:500;color:var(--ink);
  letter-spacing:.01em;
}
.wine-row__source{
  grid-column:1/-1;font-size:.78rem;color:var(--ink-mute);
  letter-spacing:.06em;font-style:italic;font-family:var(--serif);
  margin-top:-.2rem;
}
.wine-row__desc{
  grid-column:1/-1;font-size:.92rem;color:var(--ink-soft);line-height:1.55;
  font-family:var(--serif);font-style:italic;font-weight:300;margin-top:.3rem;
}
.wine-row__prices{
  font-family:var(--serif);font-size:1.05rem;color:var(--burgundy);
  display:flex;gap:1.2rem;white-space:nowrap;
}
.wine-row__prices span small{
  display:block;font-family:var(--sans);font-size:.55rem;letter-spacing:.22em;
  text-transform:uppercase;color:var(--ink-mute);font-style:normal;font-weight:500;
  margin-bottom:.1rem;
}

/* ---------- Responsive ---------- */
/* Testimonial + Reviews: schon ab Tablet einspaltig
   Reihenfolge mobil: Eyebrow → Quote → Bild → Name → Google */
@media (max-width:1100px){
  .testimonial__inner{
    grid-template-columns:1fr!important;
    gap:1.6rem;
  }
  .testimonial__text{display:contents}
  .testimonial__text .eyebrow{order:1;margin-bottom:0}
  .testimonial__text blockquote{order:2;margin-bottom:0}
  .testimonial__media{
    order:3;max-width:420px;margin:1rem auto 2.6rem;width:100%;
    justify-self:center;
  }
  .testimonial__text cite{order:4;margin-top:.5rem}
  .testimonial__text .testimonial__google{order:5;margin-top:1rem}
  .testimonial__portrait{aspect-ratio:4/5}
  .testimonial__dish{width:46%;bottom:-1.6rem;right:-1rem;border-width:5px}
  .reviews__grid{grid-template-columns:1fr!important;gap:1.2rem;max-width:640px;margin:0 auto}
}

@media (max-width:1024px){
  .raum, .raum:nth-child(even){grid-template-columns:1fr;gap:2rem}
  .raum:nth-child(even) .raum__media,.raum:nth-child(even) .raum__text{order:initial}
  .kueche__grid{grid-template-columns:1fr;gap:3rem}
  .raeume__head{grid-template-columns:1fr;gap:1rem}
  .raeume__head p{margin-left:0}
  .wein__grid{grid-template-columns:1fr;gap:1.4rem}
  .footer__grid{grid-template-columns:1fr 1fr;gap:2.4rem}
  .menu__list{columns:1}
}
@media (max-width:720px){
  /* Filter erzeugt Containing-Block für position:fixed Kinder.
     Auf Mobile MUSS backdrop-filter weg, sonst bricht das Overlay. */
  .nav,
  .nav.scrolled,
  .nav.menu-open{
    backdrop-filter:none!important;
    -webkit-backdrop-filter:none!important;
  }
  .nav__links{
    position:fixed;top:0;left:0;right:0;bottom:0;
    display:flex;flex-direction:column;justify-content:center;align-items:center;
    background:var(--cream);
    padding:5rem var(--gutter) 3rem;
    gap:1.8rem;
    transform:translateY(-101%);
    transition:transform .45s var(--ease);
    z-index:99;
  }
  .nav__links.open{transform:translateY(0)}
  .nav__links a{color:var(--ink)!important;font-size:.95rem!important;letter-spacing:.22em!important}
  .nav__links .btn-reserve{color:var(--cream)!important}
  .nav__links .lang-toggle{margin-right:0;border-color:var(--line)}
  .nav__links .lang-toggle a{font-size:.72rem!important;padding:.55rem 1rem!important}
  .nav__links .btn-reserve{margin-top:.4rem;padding:1.05rem 2.8rem!important;font-size:.78rem!important}
  .nav__links-foot{
    display:flex!important;flex-direction:column;align-items:center;gap:1.4rem;
    margin-top:2.4rem;padding-top:2rem;
    border-top:1px solid var(--line);
    width:80%;
  }
  .nav__links-foot-item{
    display:flex;flex-direction:column;align-items:center;gap:.35rem;
    text-align:center;
  }
  .nav__links-foot-item .meta{
    font-family:var(--serif);
    font-style:italic;
    font-size:1.05rem;
    color:var(--ink);
    letter-spacing:0;
    text-transform:none;
  }
  .nav__links-foot-item a{
    color:var(--burgundy)!important;
    font-family:var(--sans)!important;
    font-style:normal!important;
    font-size:.7rem!important;
    font-weight:600;
    letter-spacing:.2em!important;
    text-transform:uppercase!important;
    display:inline-flex;align-items:center;gap:.4rem;
  }
  .nav__links-foot-item a::after{display:none!important}
  .nav__toggle{display:block;position:relative;z-index:101}
  .hero__cta{flex-direction:column;align-items:stretch}
  .hero__cta a{width:100%;text-align:center}
  .reserve__methods{flex-direction:column;align-items:stretch}
  .reserve__methods a{justify-content:center}
  .footer__grid{grid-template-columns:1fr;gap:2.4rem}
  .footer__bottom{flex-direction:column;text-align:center}
  .footer__bottom a{margin:0 .8rem}
  .raeume__head, .wine-section__head{grid-template-columns:1fr;text-align:left}
  .wine-section__head p{text-align:left}
  .raum__meta{gap:1.5rem}
  .menu__section-head{flex-wrap:wrap}
  .menu__section-head .eyebrow{margin-left:0;width:100%}
  .kueche__highlights{grid-template-columns:1fr}
  .kueche__media .b{margin-top:0}
}

/* ---------- Legal pages (Impressum / Datenschutz) ---------- */
.legal{
  padding:clamp(3rem,6vw,5rem) 0 clamp(4rem,7vw,6rem);
  background:var(--bg);
}
.legal__inner{
  max-width:760px;margin:0 auto;
}
.legal__inner h2{
  font-family:var(--serif);
  font-size:clamp(1.4rem,2.4vw,1.8rem);
  color:var(--ink);font-weight:500;
  margin-top:2.4rem;margin-bottom:.8rem;
  letter-spacing:0;
}
.legal__inner h2 em{color:var(--burgundy);font-style:italic}
.legal__inner h3{
  font-family:var(--sans);
  font-size:.78rem;letter-spacing:.18em;text-transform:uppercase;
  color:var(--burgundy);font-weight:600;
  margin-top:1.6rem;margin-bottom:.5rem;
}
.legal__inner p, .legal__inner li{
  font-size:.95rem;line-height:1.7;color:var(--ink-soft);
  margin-bottom:.9rem;
}
.legal__inner ul{
  list-style:disc;padding-left:1.2rem;margin-bottom:1rem;
}
.legal__inner ul li{margin-bottom:.4rem}
.legal__inner a{color:var(--burgundy);border-bottom:1px solid rgba(106,29,39,.3);transition:border-color .3s var(--ease)}
.legal__inner a:hover{border-color:var(--burgundy)}
.legal__inner address{
  font-style:normal;line-height:1.7;
  font-size:.95rem;color:var(--ink-soft);
}
.legal__updated{
  margin-top:3rem;padding-top:1.4rem;border-top:1px solid var(--line);
  font-size:.78rem;color:var(--ink-mute);font-style:italic;font-family:var(--serif);
}

/* Print friendliness for menu/wine pages */
@media print{
  .nav,.footer,.btn-reserve,.reserve{display:none!important}
  body{background:#fff;color:#000}
}
