@font-face {
  font-family: "Cormorant Garamond";
  src: url("fonts/cormorant.woff2") format("woff2");
  font-weight: 300 700;
  font-display: swap;
}
@font-face {
  font-family: "Cormorant Garamond";
  src: url("fonts/cormorant-italic.woff2") format("woff2");
  font-weight: 300 700;
  font-style: italic;
  font-display: swap;
}
@font-face {
  font-family: "Source Sans 3";
  src: url("fonts/source-sans.woff2") format("woff2");
  font-weight: 200 900;
  font-display: swap;
}

:root{color-scheme:light;--paper:#f7f0e4;--ink:#2b2019;--rust:#963d27;--line:#d8c6b1;--olive:#303a2b;--display:"Cormorant Garamond",Georgia,serif}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--paper);color:var(--ink);font:16px/1.6 "Source Sans 3",sans-serif}
a{color:inherit;text-underline-offset:.25em}
:focus-visible{outline:3px solid #bf7337;outline-offset:5px}
h1,h2,h3,p,figure{margin:0}
h1,h2,h3{font-family:var(--display);font-weight:600;line-height:1.04}
em{font-weight:inherit}
.top,footer{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:12px max(5vw,20px)}
.top nav{display:flex;gap:clamp(1rem,4vw,3rem);font-size:.9rem;font-weight:700}
.top a,footer a,.visit-strip a{text-decoration:none}
.top nav a:hover,footer a:hover,.visit-strip a:hover{text-decoration:underline}
.button{border:0;text-decoration:none;display:inline-flex;align-items:center;justify-content:center;gap:1rem;padding:.85rem 1.2rem;color:#fff7ea;background:var(--rust);font:700 .88rem/1.4 "Source Sans 3",sans-serif;cursor:pointer}
.button:hover{background:#752f1d}
.button.small{padding:.65rem .9rem}
.hero{min-height:clamp(510px,69vh,740px);display:grid;align-items:center;color:#fff8ec;background:linear-gradient(90deg,#201710e8 0%,#201710c4 35%,#20171030 66%,transparent 86%),#38261c url(restaurant-terrasse.jpg) center/cover}
.hero-copy{padding:clamp(2rem,7vw,8rem);max-width:850px}
.eyebrow{font-size:.7rem;font-weight:700;letter-spacing:.19em;display:flex;align-items:center;gap:.7rem;margin-bottom:1rem}
.eyebrow i{display:inline-block;width:25px;height:1px;background:currentColor}
.hero h1{font-size:clamp(4rem,8.4vw,8rem);letter-spacing:-.035em}
.hero h1 em{color:#f0c59d}
.hero p:not(.eyebrow){margin:1.35rem 0 1.7rem;font-size:1.1rem}
.visit-strip{background:var(--olive);color:#fff7ea;display:flex;justify-content:space-between;gap:1rem;padding:.9rem max(5vw,20px);font-size:.86rem;font-weight:600}
.wrap{width:min(1120px,90%);margin:auto}
.menu,.booking-grid,.location{display:grid;grid-template-columns:1fr 1.32fr;gap:clamp(2rem,7vw,7rem);padding-block:clamp(3.5rem,8vw,7.5rem)}
h2{font-size:clamp(3rem,6vw,5.8rem);letter-spacing:-.035em}
h2 em{color:var(--rust)}
.section-intro p:not(.eyebrow),.booking p:not(.eyebrow){margin:1.35rem 0;max-width:35ch}
.underlined{font-weight:700;font-size:.87rem}
details{border-top:1px solid var(--line)}
details:last-child{border-bottom:1px solid var(--line)}
summary{cursor:pointer;display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:1.05rem 0;font:700 clamp(1.55rem,3vw,2.15rem)/1.2 var(--display);list-style:none}
summary::-webkit-details-marker{display:none}
summary::after{content:"+";font:400 1.55rem/1 "Source Sans 3",sans-serif;color:var(--rust)}
details[open] summary::after{content:"−"}
summary small{font:600 .72rem/1.3 "Source Sans 3",sans-serif;color:#745a49;display:block;margin-top:.28rem}
details ul,.dish-list{list-style:none;padding:0;margin:0 0 1rem}
details li,.dish-list li{border-top:1px dashed var(--line);padding:.55rem 0}
details .underlined{display:inline-block;margin:0 0 1.2rem}
.booking{background:var(--olive);color:#fff7ea}
.booking h2 em{color:#f0c59d}
.booking form{background:var(--paper);color:var(--ink);padding:clamp(1.3rem,4vw,2.5rem)}
h3{font-size:2rem;margin-bottom:1.2rem}
.fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.8rem;margin-bottom:1rem}
.fields .full{grid-column:1/-1}
label{display:grid;gap:.3rem;font-size:.82rem;font-weight:700}
input{min-width:0;width:100%;border:1px solid #a8937c;background:#fffbf4;color:var(--ink);border-radius:0;padding:.65rem;font:inherit;font-weight:400}
.booking p.form-note{font-size:.8rem;margin:.65rem 0 0}
.location{align-items:center}
.location address{font:500 1.65rem/1.35 var(--display)}
.location p:not(.eyebrow){margin:.65rem 0}
footer{background:#271c16;color:#fff7ea;flex-wrap:wrap}
.category{min-height:68vh;padding-block:clamp(3rem,9vw,8rem)}
.category h1{font-size:clamp(3.4rem,8vw,7rem);margin:1.4rem 0;color:var(--rust)}
.category .dish-list{max-width:640px;margin:1.8rem 0}
.category .dish-list li{font:500 1.4rem/1.4 var(--display);padding:1rem 0}
@media(max-width:650px){.top nav{display:none}.hero{background-position:63% center}.hero-copy{padding-inline:5vw}.menu,.booking-grid,.location{grid-template-columns:1fr}.visit-strip{font-size:.76rem}.hero{background-image:linear-gradient(90deg,#201710e8,#201710a8 62%,#20171066),url(restaurant-terrasse.jpg)}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;scroll-behavior:auto!important}}
.top{background:#271c16;color:#fff7ea}
.original-logo{display:block;width:clamp(115px,13vw,185px);flex:none}
.original-logo img{display:block;width:100%;height:auto}
footer{padding-block:1.5rem}
footer .original-logo{width:125px}
.full-menu{max-width:790px;margin-top:2.25rem}
.dish-name{display:flex;justify-content:space-between;gap:1rem;font-size:1rem}
.dish-name strong{font-weight:650}
.dish-name span{white-space:nowrap;color:var(--rust)}
.dish-list small{display:block;color:#674f40;font:400 .9rem/1.5 "Source Sans 3",sans-serif;margin-top:.3rem}
.dish-list .dish-heading{border:0;padding-top:1.5rem}
.dish-heading h2{font-size:1.65rem;letter-spacing:-.03em}
.actions{display:flex;align-items:center;flex-wrap:wrap;gap:1.3rem;margin-top:1.5rem}
@media(max-width:650px){.top{flex-wrap:wrap}.top nav{display:flex;order:3;flex-basis:100%;justify-content:space-between;padding-top:.5rem;border-top:1px solid #705745;font-size:.82rem}}

.gallery, .anniversary {
  padding-block: clamp(2.8rem, 6vw, 5.2rem);
  border-top: 1px solid var(--line);
}
.gallery h2, .anniversary h2 {
  letter-spacing: -.03em;
  font-size: clamp(2.7rem, 6vw, 5.2rem);
  margin-bottom: clamp(1.25rem, 3vw, 2.25rem);
}
.food-gallery {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: clamp(.55rem, 1.4vw, 1.15rem);
}
.food-gallery a, .anniversary-portrait {
  display: block;
  overflow: hidden;
  border-radius: 12px;
}
.food-gallery-wide { grid-column: 1 / -1; }
.food-gallery img, .anniversary-portrait img { display: block; width: 100%; height: auto; }
.anniversary {
  display: grid;
  grid-template-columns: minmax(0, 1.05fr) minmax(0, .95fr);
  align-items: center;
  gap: clamp(1.5rem, 6vw, 5rem);
}
.anniversary h2 { margin-bottom: 1rem; }
.anniversary p { max-width: 36ch; color: #674f40; }
.anniversary-motif {
  display: block;
  width: min(175px, 50%);
  margin-top: 1.5rem;
}
.anniversary-motif img { display: block; width: 100%; height: auto; }
.anniversary-portrait { border: 1px solid var(--line); }
.anniversary-portrait figcaption { padding: .7rem 1rem; color: #674f40; background: #ede1d1; }
@media (max-width: 650px) {
  .food-gallery { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .anniversary { grid-template-columns: 1fr; }
}

.gallery { padding-top: 0; border-top: 0; }
.anniversary { margin-bottom: clamp(2rem, 6vw, 5rem); }
.anniversary-portrait { border-radius: 0; }
.anniversary-motif img { background: #271c16; padding: .55rem; }
.restaurant-gallery { grid-column: 1 / -1; margin-top: .5rem; }
.restaurant-gallery img { display: block; width: 100%; height: auto; }
.restaurant-gallery figcaption { margin-top: .4rem; color: #674f40; font-size: .85rem; }
.top nav a[aria-current] { text-decoration: underline; text-underline-offset: .35em; }
@media(max-width:380px) {
  .top { padding-inline: 14px; gap: .6rem; }
  .top nav a { font-size: .75rem; }
  .hero h1 { font-size: 3.5rem; }
}

.top nav { gap: clamp(.65rem, 2.75vw, 2.6rem); }
.button-back { background: transparent; border: 1px solid var(--line); color: var(--ink); }
.button-back:hover { background: #ede1d1; color: var(--ink); }
.button-back + .underlined { margin-inline-start: .8rem; }
.dish-name .dish-price-sizes { white-space: normal; text-align: right; flex: 0 1 47%; }
.anniversary-portrait { position: relative; overflow: visible; }
.anniversary-motif {
  position: absolute;
  z-index: 1;
  inset: .9rem .9rem auto auto;
  display: grid;
  place-items: center;
  width: clamp(72px, 20%, 112px);
  aspect-ratio: 1;
  margin: 0;
  padding: clamp(.45rem, 1.1vw, .8rem);
  border: 1px solid #e7c773;
  border-radius: 50%;
  background: #271c16;
  box-shadow: 0 3px 12px #271c1660;
}
.anniversary-motif img { width: 100%; height: auto; padding: 0; background: transparent; }

footer .back-to-top {
  border: 1px solid #ae8d69;
  background: transparent;
  color: #fff7ea;
  text-decoration: none;
}
footer .back-to-top:hover {
  background: #4b3526;
  text-decoration: none;
}

footer a[href^="tel:"],
footer a[href^="mailto:"],
footer a[href="impressum.html"] {
  font: 700 1.2rem/1.2 var(--display);
}
.takeaway-layout {
  display: grid;
  grid-template-columns: minmax(0, 1.25fr) minmax(0, 1fr);
  gap: clamp(2rem, 6vw, 5rem);
  align-items: center;
  margin-top: clamp(1.8rem, 5vw, 4rem);
}
.takeaway-copy h1 {
  margin: 0 0 1.25rem;
  font-size: clamp(3.5rem, 7vw, 6.4rem);
}
.takeaway-copy h2 {
  margin: 1.7rem 0 .55rem;
  font-size: 2rem;
  letter-spacing: 0;
}
.takeaway-copy p { max-width: 45ch; }
.takeaway-photo img {
  display: block;
  width: 100%;
  height: auto;
  aspect-ratio: 5 / 6;
  object-fit: cover;
  border-radius: 12px;
}
@media (max-width: 650px) {
  .takeaway-layout { grid-template-columns: 1fr; }
}

@media (max-width: 768px), (pointer: coarse) {
  .booking input {
    font-size: 1rem;
    min-height: 44px;
  }
  .button, .top nav a, .visit-strip a {
    min-height: 44px;
  }
  .top nav a, .visit-strip a {
    display: inline-flex;
    align-items: center;
  }
  .visit-strip {
    padding-block: .3rem;
  }
}
@media (max-width: 420px) {
  .fields {
    grid-template-columns: minmax(0, 1fr);
  }
}
