.menu {
  color: var(--blue);
  font-size: var(--s-2);
  background: var(--beige-light);
}

.menu .intro {
  background: var(--beige-light);
  max-width: 1600px;
  margin-inline: auto;
  padding-block: var(--s2);
  padding-inline: var(--s0);
}

.menu .heading {
  font-size: var(--s1);
  font-weight: bold;
  letter-spacing: -0.05em;
}

.menu .section {
  background: var(--beige);
  padding-block-end: var(--s4);
  content-visibility: auto;
  contain-intrinsic-size: auto 900px;
}

.menu .section + .section {
  padding-block-start: var(--s4);
}

.menu .section:nth-of-type(even) {
  background: var(--beige-light);
}

.menu .section-inner {
  margin-inline: auto;
  max-width: 1600px;
  columns: auto 18rem;
	column-gap: 0;
  column-rule: 1px solid var(--blue);
}

.menu .subsection {
  margin-block-start: var(--s2);
  border-block-start: 1px solid var(--blue);
  break-inside: avoid;
}

.menu .subsection:first-of-type {
  margin: 0;
}

.menu .subsection > table:first-of-type > tbody:first-of-type::before {
  content: '';
  display: block;
  height: 1ch;
}

.menu table {
  border-collapse: collapse;
  width: 100%;
  contain: strict;
}

.menu th {
  text-align: start;
  padding-block: var(--s-4);
  padding-inline: var(--s0);
  border-block-end: 1px solid var(--blue);
}

.menu tbody td {
  vertical-align: top;
  padding-block: 4px;
  padding-inline-start: var(--s0);
}

.menu .subsection-title {
  text-transform: uppercase;
  font-size: var(--s-1);
  letter-spacing: 0.02em;
  color: var(--gold);
}

.menu .variation {
  padding-block: 0;
}

.menu .dish,
.menu .variation .title {
  font-weight: bold;
  letter-spacing: -0.02em;
  display: inline-block;
  width: 95%;
}

.menu .dish .detail {
  font-weight: normal;
  font-size: var(--s-3);
  position: relative;
  bottom: 1px;
}

.menu .variation .title {
  padding-block: 2px;
  padding-inline-start: 0;
}

.menu .variation .price {
  padding-block: 2px;
}

.menu .variation .title::before {
  content: '•';
  margin-inline-end: var(--s0);
}

.menu .price {
  text-align: end;
  padding-inline-start: 0;
  padding-inline-end: var(--s0);
}

.menu .description {
  font-size: var(--s-3);
  padding-block-start: 0;
  padding-block-end: 6px;
}

.menu .notes {
  font-size: var(--s-3);
  margin-block-start: var(--s-2);
  margin-inline-start: var(--s0);
}

.menu .details {
  font-size: var(--s-3);
  background: var(--blue);
  color: var(--beige-light);
  padding-block: var(--s2);
  padding-inline: var(--s0);
}

.menu .details .inner {
  max-width: 1600px;
  margin-inline: auto;
}

.menu .details p + p {
  margin-block-start: 0.5em;
}
