/* Shared product layout; order, prices, options and stock are managed by the existing app. */
html body #speisekarte .dish:has(.cb-description-20260915) {
  display:flex!important; flex-direction:column!important;
  box-sizing:border-box!important; height:100%!important;
  min-width:0!important; padding-bottom:0!important;
}
html body #speisekarte .dish:has(.cb-description-20260915) > .dish-image-wrap {
  position:relative!important; flex:0 0 160px!important;
  width:100%!important; height:160px!important; margin:0!important;
  grid-column:auto!important; grid-row:auto!important;
}
html body #speisekarte .dish:has(.cb-description-20260915) > .dish-image-wrap img {
  width:100%!important; height:100%!important; min-height:0!important; object-fit:cover!important;
}
html body #speisekarte .dish:has(.cb-description-20260915) > span {
  position:static!important; flex:0 0 18px!important; margin:10px 14px 4px!important;
  line-height:18px!important; font-size:10px!important; overflow:hidden;
}
html body #speisekarte .dish:has(.cb-description-20260915) > h3 {
  position:static!important; flex:0 0 66px!important; height:66px!important;
  min-height:66px!important; max-height:66px!important; margin:0 14px!important;
  font-size:16px!important; line-height:22px!important;
  display:flex!important; align-items:flex-start!important;
  overflow-wrap:anywhere; text-transform:none!important;
}
html body #speisekarte .dish > .cb-description-20260915 {
  position:static!important; box-sizing:border-box!important;
  flex:0 0 102px!important; height:102px!important; min-height:102px!important;
  margin:0 14px!important; padding:0!important; overflow:visible!important;
  text-align:start!important; min-width:0;
}
html body #speisekarte .cb-description-text {
  display:-webkit-box!important; -webkit-box-orient:vertical; -webkit-line-clamp:3;
  line-clamp:3; overflow:hidden!important; text-overflow:ellipsis;
  box-sizing:border-box; margin:0!important; padding:0!important;
  min-height:60px!important; height:60px!important; max-height:60px!important;
  font:400 13px/20px Arial,sans-serif!important; color:#514238!important;
  text-align:start!important; overflow-wrap:anywhere;
}
html body #speisekarte .cb-description-more {
  appearance:none; border:0; background:transparent; color:#8b281d;
  margin:0; padding:6px 0; min-height:38px;
  font:700 12px/20px Arial,sans-serif; cursor:pointer;
  text-align:start; text-decoration:underline; text-underline-offset:3px;
}
html body #speisekarte .dish > .cb-description-20260915 + p {
  position:static!important; display:flex!important; align-items:center!important;
  flex:0 0 40px!important; min-height:40px!important; height:40px!important;
  max-height:none!important; width:auto!important; margin:0 14px!important;
  padding:0!important; opacity:1!important; visibility:visible!important;
  font-size:19px!important; line-height:26px!important; color:#8b281d!important;
  font-weight:800!important; transform:none!important;
  order:initial!important; grid-column:auto!important; grid-row:auto!important;
}
html body #speisekarte .dish:has(.cb-description-20260915) > .add-cart {
  position:relative!important; inset:auto!important; flex:0 0 56px!important;
  height:56px!important; min-height:56px!important; max-height:56px!important;
  width:calc(100% - 28px)!important; margin:8px 14px 14px!important;
  padding:8px!important; font-size:12px!important; line-height:17px!important;
  order:initial!important; grid-column:auto!important; grid-row:auto!important;
}
html body #speisekarte .cb-description-dialog {
  position:fixed; inset:0; box-sizing:border-box;
  width:min(560px,calc(100vw - 32px)); max-width:calc(100vw - 32px);
  height:fit-content; max-height:calc(100dvh - 32px); overflow:auto;
  margin:auto; padding:24px; border:1px solid #d7c5b7; border-radius:18px;
  background:#fffaf3; color:#30251e; text-align:start;
  box-shadow:0 20px 60px #0005;
}
html body #speisekarte .cb-description-dialog::backdrop {background:#21171299;}
html body #speisekarte .cb-description-dialog:not([open]) {display:none!important;}
html body #speisekarte .cb-description-dialog[open] {display:block!important;}
html body #speisekarte .cb-description-dialog h2 {
  margin:0 0 16px; font:700 24px/1.3 Arial,sans-serif;
  text-align:start; overflow-wrap:anywhere;
}
html body #speisekarte .cb-description-dialog p {
  display:block!important; position:static!important; margin:0 0 24px!important;
  padding:0!important; height:auto!important; min-height:0!important;
  max-height:none!important; overflow:visible!important; white-space:pre-line;
  font:400 16px/1.7 Arial,sans-serif!important; color:#30251e!important;
  -webkit-line-clamp:unset!important; text-align:start!important;
}
html body #speisekarte .cb-description-close {
  min-height:44px; padding:10px 22px; border:0; border-radius:10px;
  background:#8b281d; color:#fff; font:700 15px/1.4 Arial,sans-serif; cursor:pointer;
}
html body #speisekarte .cb-description-more:focus-visible,
html body #speisekarte .cb-description-close:focus-visible {outline:3px solid #b25a2b;outline-offset:3px;}
@media(max-width:640px) {
  html body #speisekarte .dish:has(.cb-description-20260915) > .dish-image-wrap {height:140px!important;flex-basis:140px!important;}
  html body #speisekarte .dish:has(.cb-description-20260915) > h3 {font-size:15px!important;}
}

/* The table menu keeps a compact thumbnail beside the title. */
html body .table-menu-page #speisekarte .dish:has(.cb-description-20260915) {
  display:grid!important; grid-template-columns:minmax(0,1fr) 96px!important;
  grid-template-rows:18px 72px 90px 36px 44px!important; gap:6px 12px!important;
  padding:12px!important; min-height:0!important; height:100%!important;
  align-content:start!important;
}
html body .table-menu-page #speisekarte .dish:has(.cb-description-20260915) > .dish-image-wrap {
  grid-column:2!important; grid-row:1 / 3!important; align-self:start!important;
  width:96px!important; height:96px!important; min-height:0!important;
  margin:0!important; border-radius:10px!important; overflow:hidden!important;
}
html body .table-menu-page #speisekarte .dish:has(.cb-description-20260915) > .dish-image-wrap img {
  width:96px!important; height:96px!important; min-height:0!important;
  border-radius:10px!important; object-fit:cover!important;
}
html body .table-menu-page #speisekarte .dish:has(.cb-description-20260915) > span {
  grid-column:1!important; grid-row:1!important; margin:0!important;
  height:18px!important; min-width:0!important;
}
html body .table-menu-page #speisekarte .dish:has(.cb-description-20260915) > h3 {
  grid-column:1!important; grid-row:2!important; margin:0!important;
  height:72px!important; min-height:72px!important; max-height:72px!important;
  font-size:15px!important; line-height:22px!important;
}
html body .table-menu-page #speisekarte .dish > .cb-description-20260915 {
  grid-column:1 / -1!important; grid-row:3!important; margin:0!important;
  height:90px!important; min-height:90px!important;
}
html body .table-menu-page #speisekarte .cb-description-text {
  height:54px!important; min-height:54px!important; max-height:54px!important;
  font-size:12px!important; line-height:18px!important;
}
html body .table-menu-page #speisekarte .cb-description-more {
  height:36px!important; min-height:36px!important; padding:6px 0!important;
}
html body .table-menu-page #speisekarte .dish > .cb-description-20260915 + p {
  grid-column:1 / -1!important; grid-row:4!important; margin:0!important;
  height:36px!important; min-height:36px!important;
}
html body .table-menu-page #speisekarte .dish:has(.cb-description-20260915) > .add-cart {
  grid-column:1 / -1!important; grid-row:5!important; margin:0!important;
  width:100%!important; min-width:100%!important; max-width:100%!important;
  height:44px!important; min-height:44px!important; max-height:44px!important;
}
