/* Brand system: two families only; serif display, sans-serif supporting copy. */
:root {
  --ink: #24473b;
  --paper: #fff9ee;
  --cream: #f4dfb8;
  --clay: #b5472e;
  --line: #b2bca6;
  --muted: #4a6154;
  --sage: #dce8cb;
  --gold: #efbd57;
}
body { font-family: var(--sans); }
h1, h2, .brand { font-family: var(--serif); font-weight: 500; }
h3 { font-family: var(--sans); font-weight: 600; }
em, i { font-style: normal; font-weight: inherit; }
h1 { font-size: clamp(52px, 5.4vw, 80px); letter-spacing: -2px; }
h2 { font-size: clamp(38px, 4vw, 56px); letter-spacing: -1px; }
h3, .dish-heading h3 { font-size: 24px; line-height: 1.35; }
.brand i { font-size: inherit; }
.brand span, .eyebrow, .dish-meta, .hero-note,
.hero-image figcaption span, .demo-strip { letter-spacing: .5px; }
.brand span, .eyebrow, .dish-meta, .hero-note,
.visit-info dt { text-transform: none; font-size: 14px; }
.header { border-bottom: 3px solid var(--clay); }
.header nav a:hover, .text-link:hover { color: var(--clay); }
.hero-copy { background: #f9e5c6; border-bottom: 6px solid var(--clay); }
.hero h1 em, .menu-section h2 em, .visit-section h2 em { color: var(--clay); }
.hero .eyebrow { color: var(--ink); }
.hero-image figcaption strong { font: 600 24px/1.35 var(--sans); }
.hero-image figcaption span { font-size: 14px; }
.button { background: var(--clay); border-color: var(--clay); color: #fff9ee; }
.button:hover { background: #913721; border-color: #913721; }
.manifesto {
  background: var(--gold); color: var(--ink); border: 0;
  font: 600 16px/1.6 var(--sans); padding-block: 24px;
}
.menu-section { background: var(--paper); }
.menu-grid { gap: 18px 24px; padding-top: 14px; }
.dish {
  background: #f3eddd; border: 1px solid #d0cfb7;
  padding: 26px; border-radius: 4px;
}
.dish:nth-child(2), .dish:nth-child(4) { background: var(--sage); }
.dish.signature { background: #f6d9ad; border-color: #d3ae77; }
.dish-heading span, .row-price { font: 600 20px/1.35 var(--sans); }
.dish p { line-height: 1.65; }
.dish button { border-top-color: #24473b33; }
.menu-filters button { background: #fffdf6; font-size: 14px; }
.menu-filters button[aria-pressed=true] {
  background: var(--ink); border-color: var(--ink); color: var(--paper);
}
.story { background: var(--ink); }
.story-copy h2 em { color: var(--gold); }
.story-copy .eyebrow, .story-details b { color: var(--gold); }
.story-copy>p:not(.eyebrow), .story-details p { color: #f0f3e7; }
.story-details h3 { font: 600 18px/1.4 var(--sans); }
.story figure figcaption { font: 600 24px/1.35 var(--sans); }
.visit-section { background: #eef2df; }
.visit-info { background: var(--gold); }
.visit-info h3, .reservation h3 { font: 600 28px/1.35 var(--sans); }
.reservation { background: var(--paper); }
.form-grid select { background: #fffdf6; }
.reservation-result { background: var(--sage); }
footer { background: var(--ink); color: var(--paper); }
.footer-top>p { font: 600 24px/1.45 var(--sans); }
.footer-top>p em, footer .brand i { color: var(--gold); }
.footer-bottom { border-color: #ffffff40; color: #e0e8d6; }
footer .text-link:hover { color: var(--gold); }
.basket-header h2 { font-size: 38px; }
.basket-row h3 { font: 600 20px/1.35 var(--sans); }
.basket-total strong { font: 600 26px/1.35 var(--sans); }
@media (max-width:800px) {
  .hero h1 { font-size: clamp(48px, 9vw, 68px); }
  .manifesto { font-size: 14px; gap: 16px; }
  .hero-note, .hero .eyebrow { font-size: 14px; }
  .menu-grid { gap: 16px; }
}
@media (max-width:520px) {
  .brand span { font-size: 12px; letter-spacing: .5px; }
  .section-heading h2 { font-size: 38px; }
  .dish { padding: 24px; }
  .dish-meta { font-size: 14px; }
  .dish-heading h3 { font-size: 24px; }
  .dish-heading span { font-size: 20px; }
  .visit-info h3, .reservation h3 { font-size: 26px; }
  .footer-top>p { font-size: 22px; }
}
