*,*::before,*::after {
  box-sizing:border-box
}
html {
  scroll-behavior:smooth
}
body {
  margin:0
}
img {
  display:block;
  max-width:100%
}
a {
  color:inherit;
  text-decoration:none
}
button,input,textarea,select {
  font:inherit
}
button {
  cursor:pointer
}
button:focus-visible,a:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible {
  outline:3px solid #f2ab56;
  outline-offset:3px
}
section[id] {
  scroll-margin-top:90px
}
.wrap {
  width:min(1200px,calc(100% - 48px));
  margin:auto
}
.demo {
  position:fixed;
  bottom:12px;
  left:12px;
  z-index:40;
  background:#101010d9;
  color:white;
  padding:7px 10px;
  border:1px solid #ffffff4a;
  border-radius:4px;
  font:600 10px/1.2 system-ui;
  letter-spacing:.08em
}
.menu {
  display:none;
  background:none;
  border:1px solid currentColor;
  padding:10px 13px;
  color:inherit
}
.links {
  display:flex;
  align-items:center;
  gap:28px
}
.links a {
  transition:opacity .2s
}
.links a:hover {
  opacity:.65
}
footer {
  padding:32px 0
}
footer .wrap {
  display:flex;
  justify-content:space-between;
  gap:20px;
  flex-wrap:wrap
}
footer small {
  opacity:.65
}
@media(max-width:720px) {
  .wrap {
    width:min(100% - 32px,1200px)
  }
  .menu {
    display:block
  }
  .links {
    display:none;
    position:absolute;
    top:100%;
    left:0;
    right:0;
    background:var(--nav-bg,#171717);
    padding:24px;
    flex-direction:column;
    align-items:stretch;
    gap:18px;
    z-index:20
  }
  .links.open {
    display:flex
  }
}
@media(prefers-reduced-motion:reduce) {
  html {
    scroll-behavior:auto
  }
  *,*:before,*:after {
    animation:none!important;
    transition:none!important
  }
}
body {
  font:400 15px/1.7 'DM Sans',sans-serif;
  color:#352622;
  background:#f8f0e5;
  --nav-bg:#481c22
}
h1,h2,h3,blockquote {
  font-family:'Playfair Display',serif;
  font-weight:400;
  letter-spacing:-.045em
}
h1 em,h2 em,blockquote em {
  font-weight:400
}
header {
  background:#4c191c;
  color:#fff5e8;
  position:relative;
  z-index:20
}
.head {
  min-height:86px;
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:20px
}
.wordmark {
  font:600 24px 'Playfair Display';
  letter-spacing:.045em
}
.wordmark span {
  color:#d3a363;
  font-style:italic
}
.wordmark small {
  display:block;
  letter-spacing:.27em;
  font:600 8px 'DM Sans';
  text-align:center
}
.links {
  font-size:12px;
  letter-spacing:.055em
}
.book {
  border:1px solid #cda471;
  padding:11px 20px;
  color:#f5d5aa
}
.hero {
  height:min(780px,85vh);
  min-height:580px;
  position:relative;
  isolation:isolate;
  color:#fff7ed;
  background:#26100e
}
.hero-bg {
  position:absolute;
  inset:0;
  z-index:-2;
  background:url('https://images.unsplash.com/photo-1517248135467-4c7edcad34c4?auto=format&fit=crop&w=2200&q=90') center/cover
}
.hero-overlay {
  position:absolute;
  inset:0;
  z-index:-1;
  background:#190e0a97
}
.hero-content {
  height:100%;
  display:flex;
  flex-direction:column;
  justify-content:space-between;
  padding:35px 0
}
.micro {
  font:700 10px 'DM Sans';
  letter-spacing:.2em
}
.hero-centered {
  text-align:center;
  margin:auto
}
.ornament {
  font-size:43px;
  color:#d9ad71
}
.hero h1 {
  font-size:clamp(55px,7.4vw,111px);
  line-height:1.1;
  margin:10px 0 22px
}
.hero h1 em {
  color:#e4b77f
}
.hero-centered p {
  font-size:17px;
  max-width:510px;
  margin:0 auto 30px;
  color:#f6e8dd
}
.pill {
  display:inline-flex;
  align-items:center;
  justify-content:space-between;
  gap:45px;
  border-radius:35px;
  background:#d6a16e;
  color:#331d17;
  padding:14px 24px;
  border:0;
  font-weight:700;
  font-size:12px
}
.hero-low {
  display:flex;
  justify-content:space-between;
  gap:20px;
  letter-spacing:.19em;
  font-size:10px
}
.welcome {
  padding:130px 0
}
.welcome-grid {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:10%;
  align-items:center
}
.welcome-visual {
  position:relative;
  padding:20px 36px 0 0
}
.welcome-visual img {
  width:100%;
  height:600px;
  object-fit:cover;
  border-radius:48% 48% 0 0
}
.welcome-visual span {
  position:absolute;
  right:0;
  bottom:0;
  writing-mode:vertical-rl;
  font:700 10px 'DM Sans';
  letter-spacing:.2em
}
.terracotta {
  color:#b26b47
}
.welcome-copy {
  text-align:center
}
.star {
  display:block;
  color:#b26b47;
  font-size:52px;
  margin:25px auto
}
.welcome h2,.menu-title h2,.visit h2 {
  font-size:clamp(41px,4.7vw,68px);
  line-height:1.18;
  margin:0 0 20px
}
.welcome p {
  max-width:480px;
  margin:25px auto;
  line-height:2;
  color:#736058
}
.signature {
  font:italic 23px 'Playfair Display';
  color:#9b613f;
  margin:26px
}
.underlink {
  font-size:12px;
  font-weight:700;
  letter-spacing:.07em;
  border-bottom:1px solid #a87255;
  padding-bottom:8px
}
.menu-section {
  background:#efe2d0;
  padding:110px 0 140px
}
.menu-title {
  text-align:center;
  margin-bottom:55px
}
.menu-title h2 {
  margin-top:18px
}
.menu-title p {
  color:#837069
}
.menu-layout {
  display:grid;
  grid-template-columns:1fr 1.15fr;
  align-items:stretch;
  min-height:560px
}
.menu-image img {
  height:100%;
  width:100%;
  object-fit:cover
}
.menu-paper {
  background:#fff9ef;
  padding:55px 55px 30px
}
.menu-tabs {
  display:flex;
  gap:19px;
  border-bottom:1px solid #dccabb;
  flex-wrap:wrap
}
.menu-tabs button {
  background:none;
  border:0;
  padding:0 0 20px;
  color:#806e64;
  font-size:12px
}
.menu-tabs button.active {
  color:#902d32;
  border-bottom:2px solid #902d32;
  font-weight:700
}
#food-list article {
  display:flex;
  justify-content:space-between;
  gap:18px;
  border-bottom:1px solid #e5dace;
  padding:26px 0
}
#food-list h3 {
  font-size:24px;
  margin:0 0 5px
}
#food-list p {
  margin:0;
  font-size:12px;
  color:#8b7c72
}
#food-list b {
  font-size:13px;
  color:#8f3834
}
.sample-note {
  font-size:11px;
  color:#87766e;
  margin-top:24px
}
.quote {
  text-align:center;
  color:#f6e5d1;
  background:#4c191c;
  padding:110px 0
}
.quote .star {
  color:#d3a16c
}
.quote blockquote {
  font-size:clamp(38px,5.5vw,78px);
  line-height:1.2;
  max-width:910px;
  margin:35px auto
}
.quote blockquote em {
  color:#d8a369
}
.quote p {
  color:#d9bbb0
}
.gallery-grid {
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:7px
}
.gallery img {
  height:340px;
  width:100%;
  object-fit:cover
}
.visit {
  background:#f8f0e5;
  padding:125px 0
}
.visit-grid {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:100px;
  align-items:center
}
.visit h2 {
  margin-top:20px
}
.visit p {
  color:#735d55
}
.hours {
  border-top:1px solid #dbcaba;
  padding-top:22px;
  margin-top:50px;
  display:grid;
  gap:5px
}
.hours span {
  font-size:11px;
  letter-spacing:.2em
}
.hours strong {
  font-size:12px
}
.booking {
  padding:45px;
  background:white;
  box-shadow:0 20px 55px #4b241512
}
.booking h3 {
  font-size:39px;
  margin:10px 0 20px
}
.booking form {
  display:grid;
  gap:17px
}
.booking label {
  font:700 11px 'DM Sans';
  display:grid;
  gap:6px
}
.booking input,.booking select {
  padding:13px;
  border:1px solid #e0d3ca;
  background:#fffcf8;
  min-width:0;
  width:100%
}
.form-grid {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:12px
}
.booking .pill {
  justify-content:center
}
.booking small {
  font-size:10px;
  color:#8a7971
}
footer {
  background:#381819;
  color:#f4e2d0
}
footer strong {
  font-family:'Playfair Display';
  font-size:19px
}
@media(max-width:800px) {
  .welcome-grid,.menu-layout,.visit-grid {
    grid-template-columns:1fr;
    gap:40px
  }
  .welcome,.menu-section,.visit {
    padding:75px 0
  }
  .welcome-visual img {
    height:430px
  }
  .menu-image img {
    height:320px
  }
  .quote {
    padding:80px 0
  }
  .gallery img {
    height:210px
  }
}
@media(max-width:540px) {
  .menu-paper {
    padding:32px 23px
  }
  .gallery-grid {
    grid-template-columns:1fr 1fr
  }
  .gallery img {
    height:210px
  }
  .gallery img:last-child {
    display:none
  }
  .booking {
    padding:30px 20px
  }
  .hero-low span:first-child {
    display:none
  }
  .form-grid {
    grid-template-columns:1fr
  }
}
