:root {
  --bg: #F7F3EA;
  --text: #23201C;
  --green: #2F5D46;
  --gold: #B08A4A;
  --spacing: 0.5rem;
  --muted: #6a645b;
  --line: rgba(35, 32, 28, 0.12);
}

body { margin:0; font-family:Inter,sans-serif; background:var(--bg); color:var(--text); }

header {
  background:var(--green);
  color:white;
  padding:1rem;
  position:sticky;
  top:0;
  z-index:100;
}

nav { display:flex; gap:1rem; overflow-x:auto; }
nav a { color:white; text-decoration:none; white-space:nowrap; }

h1,h2,h3 {
  font-family:"Playfair Display",serif;
  margin-top:0;
  margin-bottom:0.5rem;
}

section {
  scroll-margin-top:160px;
  padding:0.75rem 1.5rem;
  margin-top:0;
}

.card {
  scroll-margin-top:160px;
  background:var(--bg);
  padding:1rem;
  border-radius:10px;
  margin-bottom:1rem;
}

iframe {
  background:var(--bg);
  width:100%;
  border:none;
  border-radius:10px;
  margin-top:0.5rem;
}

.allergen-list {
  list-style:none;
  padding:0;
  margin:1rem 0;
}

.allergen-list li { margin-bottom:0.4rem; }

.allergen-list strong {
  color:var(--green);
  margin-right:0.4rem;
}

.allergen-note {
  font-size:0.85rem;
  opacity:0.8;
}

footer {
  padding:1rem;
  text-align:center;
  font-size:0.9rem;
}

.menu-target { margin-top:0.75rem; }
.menu-status { margin:0; }
.events-target { margin-top:0.75rem; }

.menu-sheet {
  display:grid;
  gap:1.35rem;
}

.menu-group {
  display:grid;
  gap:0.2rem;
}

.menu-group-title {
  font-family:"Playfair Display",serif;
  font-size:1.15rem;
  font-weight:600;
  line-height:1.2;
  margin:0 0 0.25rem;
}

.menu-item-block {
  padding:0.1rem 0 0.32rem;
}

.menu-item {
  display:grid;
  grid-template-columns:minmax(0, 1fr) 68px 30px 62px 24px;
  column-gap:0.55rem;
  align-items:start;
}

.menu-title {
  min-width:0;
  overflow-wrap:anywhere;
}

.menu-amount,
.menu-price {
  text-align:right;
  white-space:nowrap;
}

.menu-unit,
.menu-currency {
  text-align:left;
  white-space:nowrap;
}

.menu-description {
  margin-top:0.14rem;
  color:var(--muted);
  line-height:1.42;
  max-width:44rem;
}

.menu-item-block + .menu-item-block {
  border-top:1px solid var(--line);
  padding-top:0.38rem;
}

.menu-mobile-meta {
  display:none;
}

.event-list {
  display:grid;
  gap:0.9rem;
}

.event-card {
  border:1px solid var(--line);
  border-radius:10px;
  padding:0.9rem;
  background:rgba(255, 255, 255, 0.3);
}

.event-title {
  margin:0 0 0.35rem;
}

.event-detail {
  margin:0.2rem 0;
  line-height:1.4;
}

.event-label {
  color:var(--green);
  font-weight:600;
}

.event-cta {
  margin:0.65rem 0 0;
}

.event-private-note {
  margin:0.7rem 0 0;
  font-weight:700;
  color:var(--green);
}

.event-link {
  display:inline-block;
  background:var(--green);
  color:#fff;
  text-decoration:none;
  font-weight:600;
  border-radius:8px;
  padding:0.42rem 0.7rem;
}

.event-link:hover,
.event-link:focus {
  background:#244635;
}

@media (max-width:700px) {
  .menu-group-title {
    font-size:1.08rem;
  }

  .menu-item {
    grid-template-columns:minmax(0, 1fr);
    row-gap:0.15rem;
  }

  .menu-amount,
  .menu-unit,
  .menu-price,
  .menu-currency {
    display:none;
  }

  .menu-mobile-meta {
    display:block;
    color:var(--green);
    font-weight:600;
    font-size:0.98rem;
  }

  .menu-description {
    max-width:none;
  }
}
