/* .item */
.MenuCategory.thin {
  height: 1px;
  overflow-y: hidden;
}
.MenuCategoryName {
  margin: 10px 0px 0px 0px;
  padding: 10px 10px 10px 27px;
  font-family: var(--tmo-online-font-heading-family, inherit);
  font-weight: var(--tmo-online-font-heading-weight, 900) !important;
  font-size: var(--tmo-online-font-heading-size, 19px);
  letter-spacing: var(--tmo-online-font-heading-spacing, inherit);
}
.MenuCategoryDesc {
    padding: 10px 15px 0px 27px;
    margin: -15px 0px 0px 0px;
    font-family: var(--tmo-online-font-name-family, inherit);
    font-weight: var(--tmo-online-font-name-weight, 700) !important;
    font-size: var(--tmo-online-font-name-size, 15px);
}
.MenuSubcategoryDescImage {
  display: block;
  width: 100%;
}

.MenuSubcategoryName {
  margin: 10px 0px 0px 0px;
  padding: 10px 10px 10px 27px;
  font-family: var(--tmo-online-font-heading-family, inherit);
  font-weight: var(--tmo-online-font-heading-weight, 900) !important;
  font-size: var(--tmo-online-font-heading-size, 19px);
  letter-spacing: var(--tmo-online-font-heading-spacing, inherit);
}
.MenuSubcategoryDesc {
    padding: 10px 15px 0px 27px;
    margin: -15px 0px 5px 0px;
    font-family: var(--tmo-online-font-name-family, inherit);
    font-weight: var(--tmo-online-font-name-weight, 700) !important;
    font-size: var(--tmo-online-font-name-size, 15px);
}

.MenuItem {
  width: calc(50% - 10px);
  max-width: 485px;
  margin: 5px 5px 5px 5px;
  /* padding: 10px 10px 10px 10px; */
  /* visibility: hidden; */
  background-color: var(--tmo-online-bg-page, #FFFFFF);
  border-radius: var(--tmo-online-body-radius, 0px);
  box-shadow: var(--tmo-online-body-shadow, none);
  position: relative;
  display: flex;
  color: #212121;
  text-align: left;
}

.MenuItem:hover {
  cursor: pointer;
}

.MenuItem a {
  width: 100%;
}

/*.MenuItem div {
  display: flex;
  flex-direction: column;
  width: 100%;
}*/

.MenuItem .menu-body {
  background-color: var(--tmo-online-bg-page, #FFFFFF);
  position: relative;
  color: #212121;
  text-align: left;
  /* padding: 10px 12px 30px 12px; */
  width: 100%;
  flex-grow: 1;
  /* image | text as two real columns. The photo used to be a float with a fixed
     height, so once the name/description box could grow with the font settings
     the card outgrew the photo and left white space under it. As a stretched
     flex item the photo is always exactly as tall as the card. */
  display: flex;
  align-items: stretch;
}

.MenuItem .menu-left {
  padding: 8px 10px 8px 10px;
  /* min- rather than fixed: a larger name/description box must be able to grow
     the card instead of spilling over the next one. */
  min-height: 95px;
  /* min-width:0 — without it a long unbreakable word would push the text column
     past the card instead of being clipped. */
  flex: 1 1 auto;
  min-width: 0;
}

.MenuItem .menu-body h5 {
  font-size: 1.0em;
  margin-bottom: 8px;
  text-overflow: ellipsis;
  max-width: 98%;
  overflow: hidden;
  line-height: 1.2em;
}

.MenuItem .menu-image {
    width:100px;
    /* min- rather than fixed: align-self:stretch grows it to the card height,
       and this only keeps the old 110px floor for a short card. */
    min-height:110px;
    height: auto;
    flex: 0 0 auto;
    align-self: stretch;
    display: flex;
    /* The 10px gap to the text is .menu-left's own padding now — with the float
       gone, a margin here would push the text 10px further right. */
    margin-right: 0;
    overflow: hidden;
    /* margin-bottom: 5px; */
    background-size: 40px 40px;
}
.MenuItem .menu-image > span {
    display: flex;
    width: 100%;
    align-self: stretch;
}
.MenuItem .menu-image img {
    width:100%;
    /* stretch, not height:100% — a percentage against the auto-height column is
       the fragile way to say the same thing. */
    height: auto;
    align-self: stretch;
    object-fit: cover; /*magic*/
    /* NO z-index here. It was inert while the photo was a plain inline image,
       but a flex item honours z-index — 1 would lift the photo above the
       ordered-quantity badge (z-index auto) and hide it. */
}

.MenuItem .menu-ordred-num-wrapper { 
  position: absolute;
  top: -4px;
  left: 5px;
  background-color: #212121;
  width: 33px;
  height: 33px;
  border-radius: 30px;
  /* border: 1px solid #212121; */
  color: #ffffff;
  justify-content: center;
  align-items: center;
  cursor: pointer;
}

.MenuItem .menu-ordred-num-text {
  color: #ffffff;
  font-size: 16px;
  font-family: var(--tmo-online-font-system-small-family, inherit);
  font-weight: var(--tmo-online-font-system-small-weight, 400);
  text-align: center;
  margin: 5px  0px 0px 0px;
}
.MenuItem .menu-name {
  font-family: var(--tmo-online-font-name-family, inherit);
  font-size: var(--tmo-online-font-name-size, 15px);
  font-weight: var(--tmo-online-font-name-weight, 700);
  letter-spacing: var(--tmo-online-font-name-spacing, inherit);
  line-height: var(--tmo-online-font-name-line, 16px);
  /* Always the same number of lines, whatever the font size — so a larger name
     grows the box instead of being silently clipped by a fixed 32px. */
  height: calc(var(--tmo-online-font-name-line, 16px) * var(--tmo-online-font-name-lines, 2));
  overflow: hidden;
  /* white-space: nowrap; */
}
.MenuItem .menu-soldout {
}
.MenuItem .menu-soldout-custom-image {  
  position: absolute;
  width: calc(100% - 95px);
  height: 100%;
  right: 10px;
  margin: -8px -8px 0px 0px;
  object-fit: contain;
  z-index: 2;
}
.MenuItem .menu-soldout-image {  
  position: absolute;
  width: 120px;
  transform: translateY(-50%) rotate(-25deg);
  right: 10px;
  top: 50%;
  z-index: 2;
}
.MenuItem .menu-desc{
    padding: 8px 0px 0px 0px;
    font-family: var(--tmo-online-font-desc-family, inherit);
    font-size: var(--tmo-online-font-desc-size, 12px);
    font-weight: var(--tmo-online-font-desc-weight, 400);
    letter-spacing: var(--tmo-online-font-desc-spacing, inherit);
    line-height: var(--tmo-online-font-desc-line, 13px);
    bottom: 0px;
    left: 12px;
    color: #212121;
    /* Was 108px to clear the floated photo. The photo is its own column now, so
       any margin here would indent the description away from the name. */
    margin-left: 0px;
    height: calc(var(--tmo-online-font-desc-line, 13px) * var(--tmo-online-font-desc-lines, 5.3846));
    flex-wrap: wrap;
    overflow-y: hidden;
    white-space: pre-wrap;
}
.MenuItem .menu-desc:after{
  /* content: "";
  position: absolute;
  bottom: 0;
  right: 0;
  left: 70%;
  height: 14px;
  background: linear-gradient(to right,rgba(255,255,255,0),#fff 70%); */
}
.MenuItem .menu-footer {
  position: absolute;
  /* Sits on the second line of the product name (10px = .menu-left padding 8px
     + the 2px nudge the old fixed 26px carried), so it follows the name size. */
  top: calc(10px + var(--tmo-online-font-name-line, 16px));
  /* The price sits on top of the name's second line and masks it with its own
     background, so its box has to be as tall as that line — a fixed 16px lets a
     larger product name show through above and below the price. */
  height: var(--tmo-online-font-name-line, 16px);
  right: 10px;
  color: var(--tmo-online-text-secondary, #95989A);
  overflow: visible;
  white-space: nowrap;
  text-align: right;
  display: flex;
  justify-content: right;
}
.MenuItem .menu-dummy-grad{
  width: 30px;
  height: var(--tmo-online-font-name-line, 16px);
  background-image: linear-gradient(to right, #FF000000, #ffffff);
}
.MenuItem .menu-price{
  /* The price is painted on the product name's second line, so it wears the
     whole product-name font — family, size, weight and spacing — rather than a
     13px of its own. This deliberately moves an untouched store from 13px to
     15px: the price is meant to read as part of the name, not as a third style. */
  font-family: var(--tmo-online-font-name-family, inherit);
  font-size: var(--tmo-online-font-name-size, 15px);
  font-weight: var(--tmo-online-font-name-weight, 700);
  letter-spacing: var(--tmo-online-font-name-spacing, inherit);
  line-height: var(--tmo-online-font-name-line, 16px);
  height: var(--tmo-online-font-name-line, 16px);
  /* position: absolute; */
  /* top: 10px; */
  right: 10px;
  color: #212121;
  background: var(--tmo-online-bg-page, #ffffff);
  padding: 0px 0px 0px 25px;
}
.MenuItem .menu-cals {
  font-family: var(--tmo-online-font-system-small-family, inherit);
  font-weight: var(--tmo-online-font-system-small-weight, inherit);
  font-size: 1.0em;
  /* position: absolute; */
  bottom: 0px;
  /* right: 12px; */
  color: var(--tmo-online-text-secondary, #95989A);
  font-size: 0.8em;
}
.menu-body ul li {
  display: inline-flex;
}

.MenuItem .PromoFlag {
  font-family: var(--tmo-online-font-system-small-family, inherit);
  font-weight: var(--tmo-online-font-system-small-weight, inherit);
  font-size: 0.75em;
  color: #FFFFFF;
  padding: 3px 7px;
  position: absolute;
  top: 0;
  left: 0;
}

.MenuListFooter {
  position: fixed;
  width: calc(100% - 48px);
  right: 24px;
  height: 50px;
  bottom: 15px;
  border-radius: var(--tmo-online-body-radius, 0px);
  /* background-color: rgb(33,33,33,1.0); */
  color: var(--tmo-online-footer-text, #FFFFFF);
  box-shadow: var(--tmo-online-body-shadow, none);
  display: flex;
  justify-content: space-between;
  z-index: 3;
  cursor: pointer;
}
.menulist-footer-icon-wrapper {
  /* color:#FFFFFF; */
}
.menulist-footer-icon {
  /* color: #FFFFFF; */ 
  font-size: 26px;
  height: 26px;
  margin: 12px 0px 0px 13px;
}
.menulist-footer-num-wrapper { 
  position: absolute;
  top: 9px;
  left: 29px;
  background-color: #212121;
  width: 22px;
  height: 22px;
  border-radius: 30px;
  border: 1px solid #c4c4c4;
  justify-content: center;
  align-items: center;
  cursor: pointer;
}
/* The bottom bar reads the two footer groups: the wording follows
   "Footer - Action" and the amounts follow "Footer - Price / Label". The header
   has its own group - they were one setting until 2026-08-09, and a shop that
   wanted a heavier total had to make the shop name heavier too. The arrow
   (.menulist-footer-next) is a glyph, not text, so it keeps its own weight. */
.menulist-footer-num {
  color: #FFFFFF;
  text-align: center;
  margin: -1px 0px 0px 0px;
  font-family: var(--tmo-online-font-footer-price-family, inherit);
  font-weight: var(--tmo-online-font-footer-price-weight, 400);
  border-radius: 11px;
  font-size: 14px;
}
.menulist-footer-togo-cart {
  /* color: #FFFFFF; */
  line-height: 50px;
  font-size: 12px;
  font-family: var(--tmo-online-font-footer-price-family, inherit);
  font-weight: var(--tmo-online-font-footer-price-weight, 900);
  margin: 0px 2px 0px 13px;
}
.menulist-footer-price {
  /* color: #FFFFFF; */
  line-height: 50px;
  margin: 0px 3px 0px 0px;
  font-size: 16px;
  font-family: var(--tmo-online-font-footer-price-family, inherit);
  font-weight: var(--tmo-online-font-footer-price-weight, 700);
  white-space: nowrap;
}
.menulist-footer-next {
  font-size: 24px;
  line-height: 48px;
  margin: 0px 10px 0px 0px;
  font-weight: 900;
}

/* Mobile Landscape */
@media (min-width: 480px) {
  .MenuItem .menu-desc{
      margin-left: 0px; /* see base rule: the photo is a column, not a float */
      --tmo-online-font-desc-lines: calc(60 / 13); /* was height:60px on line-height:13px */
      flex-wrap: wrap;
      overflow-y: hidden;
  }
  
  .MenuItem .menu-soldout-custom-image {  
    width: calc(100% - 100px);
  }
}
/* Mobile Landscape */
@media (max-width: 767px) and (min-width: 480px) {
  /* .item */
  .MenuItem {
    width: 100%;
    max-width: none;
    margin: 3px 0px 3px 0px;
  }

  .MenuItem .menu-image {
      width:100px;
      min-height:110px;
      height: auto;
      margin-right: 0;
      background-size: 40px 40px;
  }
  .MenuItem .menu-image img {
      width:100%;
      height: auto;
      object-fit: cover; /*magic*/
  }
  /* .MenuItem .menu-desc{
      margin-left: 58px;
      height: 60px;
      flex-wrap: wrap;
      overflow-y: hidden;
  } */
  .MenuItem .menu-desc:after{
    /* content: "";
    position: absolute;
    bottom: 0;
    right: 0;
    left: 70%;
    height: 14px;
    background: linear-gradient(to right,rgba(255,255,255,0),#fff 70%); */
  }
}

/* Mobile Portrait */
@media (max-width: 479px) {
  .MenuItem {
    width: 100%;
    max-width: none;
    margin: 3px 0px 3px 0px;
    min-height: 95px;
  }

  .MenuItem .menu-image {
      width:95px;
      min-height:95px;
      height: auto;
      margin-right: 0;
      background-size: 40px 40px;
  }
  .MenuItem .menu-image img {
      width:100%;
      height: auto;
      object-fit: cover; /*magic*/
  }
  .MenuItem .menu-desc{
      margin-left: 0px; /* see base rule: the photo is a column, not a float */
      --tmo-online-font-desc-lines: calc(47 / 13); /* was height:47px on line-height:13px */
      flex-wrap: wrap;
      overflow-y: hidden;
  }
  .MenuItem .menu-desc:after{
    /* content: "";
    position: absolute;
    bottom: 0;
    right: 0;
    left: 85px;
    height: 14px;
    background: linear-gradient(to bottom,rgba(255,255,255,0),#fff 70%); */
  }
}
.rightRightAngle {
  width: 0px;
  height: 0px;
  border: 200px solid;
  border-bottom-color: transparent;
  border-top-color: brown;
  border-left-color: transparent;
  border-right-color: brown;
  }

@media (min-width: 992px){
  .container-menu {
    max-width: 1022px;
    padding-right: 15px;
    padding-left: 15px;
    margin-right: auto;
    margin-left: auto;
    /* margin-top: -56px; */
  }

}



@media (max-width: 300px){
  .menulist-footer-togo-cart {
    line-height: 20px;
    margin: 5px 5px 5px 15px;
  }
}