.fandf-restaurant-menu {
  display: grid;
  grid-template-columns: auto 100px;
  grid-template-rows: auto;
  grid-template-areas: "menu categories";
  -moz-column-gap: 10px;
       column-gap: 10px;
  row-gap: 5px;
}

.fandf-restaurant-menu > div.menu-overview-container {
  grid-area: categories;
}

.fandf-restaurant-menu ul.menu-overview {
  list-style-type: none !important;
  display: grid;
  grid-auto-flow: row;
  -moz-column-gap: 10px;
       column-gap: 10px;
  row-gap: 10px;
  position: -webkit-sticky;
  position: sticky;
  top: 80px;
  max-height: 80vh;
}

.fandf-restaurant-menu ul.menu-overview > li {
  display: grid;
  grid-template-columns: 50px auto;
  grid-template-areas: "image title";
  -moz-column-gap: 5px;
       column-gap: 5px;
  border-left: transparent 3px solid;
  padding-left: 2px;
  cursor: pointer;
}

.fandf-restaurant-menu ul.menu-overview > li.active {
  border-color: #f42e63;
}

.fandf-restaurant-menu ul.menu-overview > li > .category-image {
  grid-area: image;
  display: flex;
  align-items: center;
}

.fandf-restaurant-menu ul.menu-overview > li > .category-title {
  grid-area: title;
  display: flex;
  align-items: center;
}

@media (max-width: 900px) {
  .fandf-restaurant-menu {
    grid-template-columns: auto;
    grid-template-areas: "categories" "menu";
  }

  .fandf-restaurant-menu > div.menu-overview-container {
    position: -webkit-sticky;
    position: sticky;
    top: 0;
    background-color: #ffffff;
    width: 100%;
    overflow: scroll;
  }

  .fandf-restaurant-menu ul.menu-overview {
    grid-auto-flow: column;
    grid-auto-columns: 100px;
    overflow-x: scroll;
  }

  .fandf-restaurant-menu ul.menu-overview > li {
    grid-template-areas: "image" "title";
    border-left: none;
    border-bottom: transparent 3px solid;
  }

  .fandf-restaurant-menu ul.menu-overview > li .category-title {
    align-items: unset;
    justify-content: center;
  }
}

.fandf-restaurant-menu ul.menu-list {
  grid-area: menu;
  list-style-type: none !important;
  padding: 0;
}

.fandf-restaurant-menu ul.menu-list > li {
  display: grid;
  grid-template-columns: auto 180px;
  grid-template-rows: auto;
  grid-template-areas: "title prices" "menu menu";
}

.fandf-restaurant-menu ul.menu-list > li > .category-title {
  grid-area: title;
  font-size: 1.7em;
  font-weight: 700;
  text-decoration: underline;
}

.fandf-restaurant-menu ul.menu-list > li > .category-prices {
  grid-area: prices;
  display: grid;
  grid-template-columns: repeat(auto-fit, 60px);
}

.fandf-restaurant-menu ul.menu-list > li > ul {
  grid-area: menu;
  list-style-type: none !important;
  padding-left: 0;
}

.fandf-restaurant-menu ul.menu-list > li > ul > li {
  font-size: initial;
  font-weight: initial;
  display: grid;
  grid-template-columns: 200px auto 60px;
  grid-template-rows: auto;
  grid-template-areas: "title description price";
  -moz-column-gap: 10px;
       column-gap: 10px;
  row-gap: 5px;
  background-color: #fafafa;
  padding: 10px 5px;
  transition: background-color 200ms ease;
}

@media (max-width: 900px) {
  .fandf-restaurant-menu ul.menu-list > li > ul > li {
    grid-template-areas: "title price" "description price";
    grid-template-columns: auto 60px;
  }
}

.fandf-restaurant-menu ul.menu-list > li > ul > li:hover {
  background-color: #f6f6f6;
}

.fandf-restaurant-menu ul.menu-list > li > ul > li .offer-image,
.fandf-restaurant-menu ul.menu-list > li > ul > li .offer-title,
.fandf-restaurant-menu ul.menu-list > li > ul > li .offer-description,
.fandf-restaurant-menu ul.menu-list > li > ul > li .offer-price {
  display: flex;
  align-items: baseline;
}

.fandf-restaurant-menu ul.menu-list > li > ul > li .offer-price {
  justify-content: flex-end;
}

.fandf-restaurant-menu ul.menu-list > li > ul > li .offer-image {
  grid-area: image;
}

.fandf-restaurant-menu ul.menu-list > li > ul > li .offer-title {
  grid-area: title;
  font-weight: 700;
}

.fandf-restaurant-menu ul.menu-list > li > ul > li .offer-description {
  grid-area: description;
}

.fandf-restaurant-menu ul.menu-list > li > ul > li .offer-price {
  grid-area: price;
}

.fandf-restaurant-menu ul.menu-list > li > ul > li .offer-additives {
  color: red;
  font-size: 0.6em;
}

.fandf-restaurant-menu ul.menu-list > li > ul > li .offer-additives:not(:first-child) {
  margin-left: 0.5em;
}

.fandf-restaurant-menu ul.menu-list > li > ul > li:nth-child(2n) {
  background-color: #f2f2f2;
}

.fandf-restaurant-menu ul.menu-list > li > ul > li:nth-child(2n):hover {
  background-color: #efefef;
}

.fandf-restaurant-menu ul.menu-list > li.has-variants > ul > li {
  grid-template-columns: 200px auto 180px;
}

.fandf-restaurant-menu ul.menu-list > li.has-variants > ul > li .offer-price {
  display: grid;
  grid-template-columns: repeat(auto-fit, 60px);
}

