:root {
  --ofm-brand-color: #232323;
  --ofm-txt-color: #ffffff;
  --ofm-card-bg-color: #ffffff;
  --ofm-soft-bg-color: rgba(132, 132, 132, .15);
  --ofm-border-color: #d1d5dc;
  --ofm-border-radius: .75rem;
  --ofm-font-family: ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", sans-serif;
  --ofm-font-size-base: 14px;
  --ofm-box-shadow: 0 0 #0000, 0 0 #0000, 0 1px 3px 0 rgba(0, 0, 0, .1), 0 1px 2px -1px rgba(0, 0, 0, .1);
  --ofm-box-shadow-hover: 0px 12px 36px rgba(0, 0, 0, .1);
  --ofm-tag-bg-color: rgba(59, 167, 102, .2);
  --ofm-tag-txt-color: #205b37;
  --ofm-tag-border-color: rgba(32, 91, 55, .05);
  --ofm-tag-allergen-txt-color: #232323;
  --ofm-tag-allergen-bg-color: rgba(0, 0, 0, .1);
  --ofm-tag-allergen-border-color: rgba(0, 0, 0, .2);
  --ofm-out-of-stock-bg-color: #c62626;
  --ofm-out-of-stock-txt-color: #ffffff;
  --ofm-cat-tab-bg-color: transparent;
}
@media (min-width: 768px) {
:root {
  --ofm-font-size-base: 16px;
}
}
.ofm-controls {
  margin-top: 2.5rem;
}
.ofm-controls+.ofm-items {
  margin-top: 1rem;
}
.ofm-credits {
  text-align: center;
  margin: 1.5rem auto;
  opacity: .7;
  font-size: 12px;
}
.text-center {
  text-align: center;
}
.flex,.flex-center {
  display: flex;
}
.justify-center,.flex-center {
  justify-content: center;
}
.justify-between {
  justify-content: space-between;
}
.items-center,.flex-center {
  align-items: center;
}
.gap-1 {
  gap: .25rem;
}
.gap-2 {
  gap: .5rem;
}
.gap-3 {
  gap: .75rem;
}
.gap-4 {
  gap: 1rem;
}
.shrink-none {
  flex-shrink: 0;
}
.ofm-text-xl {
  font-size: 1.25rem;
  line-height: 1.4rem;
}
@media (min-width: 768px) {
.ofm-text-xl {
  font-size: 1.5rem;
  line-height: 1.3rem;
}
}
.ofm-text-lg {
  font-size: 1rem;
  line-height: 1.5rem;
}
@media (min-width: 768px) {
.ofm-text-lg {
  font-size: 1.125rem;
  line-height: 1.75rem;
}
}
.ofm-text-sm {
  font-size: .875rem;
  line-height: 1.25rem;
}
.ofm-line-clamp {
  --ofm-line-clamp: 1;
  display: -webkit-box;
  overflow: hidden;
  -webkit-line-clamp: var(--ofm-line-clamp);
  line-clamp: var(--ofm-line-clamp);
  -webkit-box-orient: vertical;
}
.ofm-line-clamp.clamp-2 {
  --ofm-line-clamp: 2;
}
body.modal-open {
  overflow: hidden;
}
.one-food-menu {
  font-size: 16px;
  max-width: 1280px;
  width: calc(100% - 1rem);
  margin-left: auto;
  margin-right: auto;
  line-height: 1.1;
  -webkit-text-size-adjust: 100%;
  -moz-tab-size: 4;
  -o-tab-size: 4;
  tab-size: 4;
  font-family: var(--ofm-font-family);
  color: var(--ofm-txt-color, #232323);
}
.one-food-menu *,.one-food-menu :before,.one-food-menu :after {
  box-sizing: border-box;
  border-width: 0;
  border-style: solid;
  border-color: var(--ofm-border-color);
}
.one-food-menu a {
  text-decoration: none;
  color: inherit;
  outline: none;
}
.one-food-menu h1,.one-food-menu h2,.one-food-menu h3,.one-food-menu p {
  margin: 0;
}
.one-food-menu .arrow-down {
  width: 20px;
  height: 20px;
  display: flex;
  align-items: center;
  justify-content: center;
  opacity: .5;
  color: var(--ofm-txt-color);
  background-color: var(--ofm-soft-bg-color);
  border-radius: .25rem;
}
.one-food-menu .arrow-down:hover {
  opacity: .8;
}
.one-food-menu .ofm-line-clamp {
  --ofm-line-clamp: 1;
  display: -webkit-box;
  overflow: hidden;
  -webkit-line-clamp: var(--ofm-line-clamp);
  line-clamp: var(--ofm-line-clamp);
  -webkit-box-orient: vertical;
}
.one-food-menu .ofm-line-clamp.clamp-2 {
  --ofm-line-clamp: 2;
}
.one-food-menu .product-image,.one-food-menu .image-container {
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
  aspect-ratio: 1/1;
  height: 100%;
  flex-shrink: 0;
  object-fit: cover;
  display: block;
}
.one-food-menu .product-image {
  width: 100%;
}
.one-food-menu .image-container {
  background-image: url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20width='32'%20height='32'%20viewBox='0%200%2014%2014'%3e%3cpath%20fill='none'%20stroke='%23e1e1e1'%20stroke-linecap='round'%20stroke-linejoin='round'%20d='M7%203h0a6.5%206.5%200%200%201%206.5%206.5v0a1%201%200%200%201-1%201h-11a1%201%200%200%201-1-1v0A6.5%206.5%200%200%201%207%203Zm0%200V1.5m-6.5%2011h13'/%3e%3c/svg%3e");
  background-color: #8282820d;
  background-size: 60%;
}
.out-of-stock-label {
  position: absolute;
  top: 0;
  left: 0;
  background: var(--ofm-out-of-stock-bg-color);
  color: var(--ofm-out-of-stock-txt-color);
  padding: 6px 20px;
  font-weight: 500;
  font-size: .75rem;
  border-radius: 0 0 var(--ofm-border-radius) 0;
  z-index: 2;
  pointer-events: none;
  box-shadow: -2px 2px 4px #0000001a;
}
.ofm-price {
  color: var(--ofm-price-color, var(--ofm-brand-color));
  font-weight: 500;
}
.ofm-price--old {
  text-decoration-line: line-through;
  opacity: .7;
  color: var(--ofm-old-price-color, var(--ofm-price-color));
}
.ofm-tag {
  font-size: .75rem;
  line-height: 1.3;
  padding: .25rem .5rem;
  background-color: var(--ofm-tag-bg-color);
  color: var(--ofm-tag-txt-color);
  border: 1px solid var(--ofm-tag-border-color);
  border-radius: 9999px;
  flex-shrink: 0;
  height: 1.5rem;
  display: grid;
  place-content: center;
}
.ofm-tag.ofm-tag-allergen {
  background-color: var(--ofm-tag-allergen-bg-color);
  color: var(--ofm-tag-allergen-txt-color);
  border: 1px solid var(--ofm-tag-llergen-border-color, var(--ofm-border-color));
  width: 1.5rem;
  height: 1.5rem;
}
.ofm-modal-content .ofm-product__info,.ofm-design-v4 .ofm-product__info {
  gap: 1rem;
}
.ofm-modal-content .ofm-product__options-item,.ofm-design-v4 .ofm-product__options-item {
  padding: .5rem 0;
}
.ofm-modal-content .ofm-product__options-item:not(:first-child),.ofm-design-v4 .ofm-product__options-item:not(:first-child) {
  border-top: 1px dashed var(--ofm-border-color);
}
.ofm-design-v1 .ofm-product:hover,.ofm-design-v3 .ofm-product:hover {
  box-shadow: var(--ofm-box-shadow-hover);
}
.ofm-category-tabs {
  display: none;
  gap: 1rem;
  overflow-x: auto;
  padding: .5rem 0;
}
.ofm-cat-tab {
  padding: .5rem .75rem;
  border-radius: calc(var(--ofm-border-radius) - .25rem);
  background: var(--ofm-cat-tab-bg-color);
  border: 1.5px solid var(--ofm-cat-tab-border-color, var(--ofm-brand-color));
  color: var(--ofm-cat-tab-txt-color, var(--ofm-brand-color));
  cursor: pointer;
  transition: all .3s ease;
  font-size: calc(var(--ofm-font-size-base) + 2px);
  flex-shrink: 0;
}
.ofm-cat-tab:hover {
  opacity: .8;
}
.ofm-cat-tab.active,.ofm-cat-tab:hover {
  background: var(--ofm-brand-color);
  border-color: var(--ofm-brand-color);
  color: #fff;
}
.ofm-category,.ofm-allergens {
  margin-bottom: 2.5rem;
  position: relative;
}
.ofm-category__title,.ofm-allergens__title {
  font-weight: 700;
  font-size: 1.5rem;
  line-height: 2;
  color: var(--ofm-category-title-color, var(--ofm-txt-color));
}
.ofm-category__items {
  display: grid;
  grid-template-columns: 1fr;
  padding: .5rem 0;
  gap: 1rem;
}
@media (min-width: 768px) {
.ofm-category__items {
  grid-template-columns: repeat(2,minmax(0,1fr));
}
}
.ofm-category:last-of-type {
  margin-top: 0rem;
}
.ofm-category .ofm-category__description {
  margin: 6px 0;
  opacity: .7;
  line-height: 1.4;
}
.ofm-category .image-container {
  border: 1px solid var(--ofm-soft-bg-color);
}
.ofm-product {
  background-color: var(--ofm-card-bg-color);
  color: #232323;
  border: 1px solid var(--ofm-border-color);
  border-radius: var(--ofm-border-radius);
  cursor: pointer;
  height: 11rem;
  display: flex;
  padding: 1rem;
  transition: box-shadow .3s ease-in-out;
  position: relative;
  overflow: hidden;
}
.ofm-product__info {
  width: 100%;
  display: flex;
  flex-grow: 1;
  flex-direction: column;
  gap: .75rem;
  overflow: hidden;
}
.ofm-product__tags {
  gap: .5rem;
  overflow: hidden;
  max-width: 100%;
  flex-shrink: 0;
  height: 1.5rem;
}
.ofm-modal .ofm-product__tags {
  height: auto;
}
.ofm-product__allergens {
  gap: .5rem;
}
.ofm-product__title {
  font-weight: 500;
  font-size: 1.25rem;
  line-height: 1.2;
  color: var(--ofm-product-title-color, var(--ofm-brand-color));
}
.ofm-product__desc {
  opacity: .7;
  line-height: 1.4;
  font-size: 14px;
  flex-shrink: 0;
}
@media (min-width: 768px) {
.ofm-product__desc {
  font-size: 16px;
}
}
.ofm-product__options {
  margin-top: auto;
}
.ofm-product__options-item {
  align-items: center;
  display: flex;
  justify-content: space-between;
  flex-shrink: 0;
}
.ofm-product__price {
  align-items: center;
  display: flex;
  gap: .75rem;
  flex-shrink: 0;
}
.ofm-product__size {
  opacity: .7;
}
.ofm-product.product-unavailable .image-container {
  opacity: .7;
  filter: grayscale(.8);
}
.ofm-product.product-unavailable .ofm-product__info {
  opacity: .5;
}
.ofm-allergens__tabs {
  --ofm-allergens-tab-width: 100%;
  padding: .5rem 0;
  gap: 1rem;
  flex-wrap: wrap;
}
@media (min-width: 520px) {
.ofm-allergens__tabs {
  --ofm-allergens-tab-width: calc(50% - .5rem);
}
}
@media (min-width: 768px) {
.ofm-allergens__tabs {
  --ofm-allergens-tab-width: auto;
  justify-content: center;
}
}
.ofm-allergens__tab {
  color: var(--ofm-allergens-tab-txt-color, var(--ofm-txt-color));
  gap: .5rem;
  padding: .5rem 1rem;
  border-radius: var(--ofm-border-radius);
  border: 1px solid var(--ofm-allergens-tab-bg-color, var(--ofm-border-color));
  background-color: var(--ofm-allergens-tab-bg-color, transparent);
  width: var(--ofm-allergens-tab-width);
}
.ofm-allergens__tab .allergen-name {
  font-weight: 500;
}
.ofm-allergens__tab .allergen-description {
  font-size: var(--ofm-font-size-base);
  opacity: .7;
}
.ofm-design-v1 .image-container,.ofm-design-v1 .product-image {
  border-radius: .5rem;
  width: 7rem;
}
@media (min-width: 768px) {
.ofm-design-v1 .image-container,.ofm-design-v1 .product-image {
  width: 8rem;
}
}
@media (min-width: 1024px) {
.ofm-design-v1 .image-container,.ofm-design-v1 .product-image {
  width: 9rem;
}
}
.ofm-design-v1 .ofm-product {
  gap: 1rem;
}
@media (min-width: 1024px) {
.ofm-design-v1 .ofm-category__items {
  grid-template-columns: repeat(3,minmax(0,1fr));
}
}
.ofm-design-v2 .ofm-product {
  flex-direction: column;
  height: auto;
  width: 18rem;
  scroll-snap-align: center;
  flex-shrink: 0;
}
.ofm-design-v2 .ofm-product__info {
  padding-top: 1rem;
}
.ofm-design-v2 .image-container,.ofm-design-v2 .product-image {
  border-radius: .75rem;
  height: 14rem;
}
.ofm-design-v2 .ofm-category__items {
  display: flex;
  overflow-x: auto;
  scroll-snap-type: x mandatory;
  padding-left: .25rem;
  padding-right: .25rem;
}
.ofm-design-v3.one-food-menu {
  max-width: 600px;
  margin-left: auto;
  margin-right: auto;
  --ofm-border-radius: 999px;
}
.ofm-design-v3 .image-container,.ofm-design-v3 .product-image {
  border-radius: 999px;
  height: 4rem;
  width: 4rem;
}
@media (min-width: 768px) {
.ofm-design-v3 .image-container,.ofm-design-v3 .product-image {
  height: 5rem;
  width: 5rem;
}
}
.ofm-design-v3 .ofm-product {
  padding: .5rem;
  align-items: center;
  height: 6rem;
}
.ofm-design-v3 .ofm-category__description {
  text-align: center;
  padding: 0 20px;
}
@media (min-width: 768px) {
.ofm-design-v3 .ofm-category__items {
  grid-template-columns: repeat(1,minmax(0,1fr));
}
}
.ofm-design-v3 .ofm-category .ofm-product__info {
  padding: 0 1.5rem;
  gap: .25rem;
  flex-direction: row;
  justify-content: space-between;
}
.ofm-design-v3 .ofm-category .ofm-product .out-of-stock-label {
  padding-left: 40px;
  padding-right: 40px;
}
.ofm-design-v3 .ofm-category .ofm-product__size {
  display: none;
}
.ofm-design-v3 .ofm-category__title,.ofm-design-v3 .ofm-allergens__title {
  text-align: center;
}
.ofm-design-v4 .ofm-category__items {
  gap: 1.5rem;
}
.ofm-design-v4 .ofm-product {
  padding: 1.5rem;
  height: auto;
}
.ofm-modal-wrapper {
  padding: .5rem;
  width: 100%;
  min-height: 100dvh;
  display: flex;
  z-index: 99;
  left: 0;
  top: 0;
  position: fixed;
}
.ofm-modal-backdrop {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background: #00000080;
  opacity: 0;
  transition: opacity .2s ease-out;
}
.ofm-modal-container {
  --ofm-modal-container-max-width: calc(100% - 1rem);
  background-color: var(--ofm-card-bg-color);
  color: var(--ofm-txt-color);
  border-radius: .75rem;
  overflow: hidden;
  flex-direction: column;
  flex: 1 1 0%;
  max-width: var(--ofm-modal-container-max-width);
  width: 100%;
  max-height: calc(100dvh - 1rem);
  display: flex;
  margin: auto;
  z-index: 10;
  position: relative;
  opacity: 0;
  transform: translateY(20px);
  transition: opacity .2s ease-out,transform .2s ease-out;
  box-shadow: 0 0 0 1px #0000000d,0 10px 15px -3px #0000001a,0 30px 45px -7px #00000026;
}
@media (min-width: 520px) {
.ofm-modal-container {
  --ofm-modal-container-max-width: 520px;
}
}
.ofm-modal-close {
  padding: .5rem;
  background-color: #ffffffbf;
  top: .5rem;
  right: .5rem;
  position: absolute;
  cursor: pointer;
  border-radius: 9999px;
  display: flex;
}
.ofm-modal-close svg {
  width: 1.5rem;
  height: 1.5rem;
}
.ofm-modal-content {
  overflow-y: auto;
  flex: 1 1 0%;
  height: 100%;
}
.ofm-modal-content .product-image,.ofm-modal-content .image-container {
  aspect-ratio: 1/1;
  height: auto;
  width: 100%;
  flex-shrink: 0;
  border-radius: 0;
}
.ofm-modal-content .ofm-allergens__tab {
  --ofm-allergens-tab-width: 100%;
}
@media (min-width: 520px) {
.ofm-modal-content .ofm-allergens__tab {
  --ofm-allergens-tab-width: calc(50% - .5rem);
}
}
.ofm-modal .ofm-product__info {
  padding: 1rem;
}
.ofm-modal .ofm-product__title {
  font-size: 1.5rem;
}
.modal-show .ofm-modal-backdrop {
  opacity: 1;
}
.modal-show .ofm-modal-container {
  opacity: 1;
  transform: translateY(0);
}
.modal-hide .ofm-modal-backdrop {
  opacity: 0;
}
.modal-hide .ofm-modal-container {
  opacity: 0;
  transform: translateY(20px);
}
.ofm-collapsible-button {
  border: 1px solid var(--ofm-border-color, #e2e8f0);
  border-radius: var(--ofm-border-radius, 8px);
  color: var(--ofm-txt-color, #333);
  cursor: pointer;
  padding: var(--ofm-padding-inner, 12px 16px);
  width: 100%;
  text-align: left;
  font-weight: 500;
  outline: none;
  font-size: var(--ofm-font-size-base, 16px);
  transition: all .3s ease;
  gap: .5rem;
}
.ofm-collapsible .arrow-down {
  transition: transform .3s ease;
  font-size: .8em;
}
.ofm-collapsible .ofm-collapsible-content {
  display: none;
  padding-top: 1.5rem;
}
.ofm-collapsible.active .arrow-down {
  transform: rotate(180deg);
}
.ofm-collapsible.active .ofm-collapsible-content {
  display: flex;
}