.menu-page {
  --menu-burgundy: var(--v3-burgundy, #6f1024);
  --menu-burgundy-dark: #4c0e20;
  --menu-gold: var(--v3-gold, #c79033);
  --menu-paper: var(--v3-paper, #fffaf2);
  --menu-ivory: var(--v3-ivory, #f7f0e6);
  --menu-ink: #2d211e;
  --menu-muted: #6f5d54;
  --menu-line: color-mix(in srgb, var(--menu-gold) 26%, #e8d8c3);
  position: relative;
  isolation: isolate;
  min-height: 70vh;
  overflow: clip;
  padding-block: clamp(3rem, 5vw, 4.5rem) 5.5rem;
  color: var(--menu-ink);
  background:
    linear-gradient(color-mix(in srgb, var(--menu-ivory) 94%, transparent), color-mix(in srgb, var(--menu-ivory) 98%, transparent)),
    var(--v3-light-texture) center 96px / 540px repeat,
    var(--menu-ivory);
}

.menu-page::after {
  position: absolute;
  z-index: -1;
  inset-inline-end: -3rem;
  top: 5.5rem;
  width: min(32vw, 390px);
  aspect-ratio: 1;
  content: "";
  background: var(--v3-accent-texture) center / contain no-repeat;
  opacity: calc(var(--v3-accent-opacity, .58) * .1);
  pointer-events: none;
}

.menu-page .screen-reader-text {
  position: absolute !important;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

.menu-page .btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 44px;
  padding: .62rem 1rem;
  border: 1px solid transparent;
  border-radius: 9px;
  font: inherit;
  font-weight: 800;
  line-height: 1.3;
  cursor: pointer;
  transition: transform .2s ease, box-shadow .2s ease, filter .2s ease;
}
.menu-page .btn-primary { background: var(--menu-burgundy); color: #fff; }
.menu-page .btn:hover { transform: translateY(-1px); box-shadow: 0 9px 20px rgba(72, 35, 19, .14); filter: brightness(1.025); }
.menu-page .btn:active { transform: translateY(0); }

.menu-intro { max-width: 720px; text-align: center; }
.menu-intro .eyebrow { margin: 0; color: var(--menu-gold); font-size: .78rem; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.menu-intro h1 { margin: .25rem 0 .6rem; color: var(--menu-burgundy); font-family: var(--v3-heading-font, "Amiri"), serif; font-size: clamp(2.45rem, 5vw, 4.35rem); line-height: 1.08; }
.menu-intro > p:last-child { max-width: 620px; margin-inline: auto; color: var(--menu-muted); font-size: .98rem; line-height: 1.75; }
[lang="de"] .menu-intro h1, [lang="en"] .menu-intro h1,
[lang="de"] .menu-category-heading h2, [lang="en"] .menu-category-heading h2 {
  font-family: "Cormorant Garamond", Georgia, serif;
}

.menu-toolbar { margin-block: 1.65rem 2rem; }
.menu-toolbar-layout { display: grid; min-width: 0; gap: 1rem; }
.menu-section-prompt { margin: 0; color: var(--menu-gold); font-size: .82rem; font-weight: 800; text-align: center; }
.menu-section-prompt::before, .menu-section-prompt::after { display: inline-block; width: 42px; height: 1px; margin-inline: .75rem; vertical-align: middle; background: var(--menu-gold); content: ""; opacity: .72; }
.menu-search { position: relative; display: block; width: min(100%, 560px); margin-inline: auto; }
.menu-search svg { position: absolute; inset-inline-start: 1rem; top: 50%; width: 1.2rem; height: 1.2rem; transform: translateY(-50%); fill: none; stroke: var(--menu-burgundy); stroke-width: 1.8; pointer-events: none; }
.menu-search input { width: 100%; min-height: 46px; padding: .68rem 3rem .68rem 1rem; border: 1px solid var(--menu-line); border-radius: 12px; outline: 0; background: color-mix(in srgb, var(--menu-paper) 92%, transparent); color: var(--menu-ink); font: inherit; box-shadow: 0 8px 24px rgba(74, 38, 24, .045); }
[dir="ltr"] .menu-search input { padding: .72rem 1rem .72rem 3rem; }
.menu-search input:focus { border-color: var(--menu-gold); box-shadow: 0 0 0 3px rgba(210, 154, 49, .18); }

.menu-category-browser { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); min-width: 0; width: 100%; gap: .8rem; margin-top: .15rem; }
.menu-category-card { display: grid; grid-template-columns: 68px minmax(0, 1fr) 20px; align-items: center; gap: .7rem; min-width: 0; width: 100%; min-height: 82px; overflow: hidden; padding: .48rem .7rem .48rem .48rem; border: 1px solid var(--menu-line); border-radius: 14px; background: color-mix(in srgb, var(--menu-paper) 94%, transparent); color: var(--menu-ink); box-shadow: 0 8px 24px rgba(99, 52, 27, .055); font: inherit; text-align: start; cursor: pointer; transition: transform .2s ease, border-color .2s ease, box-shadow .2s ease; }
.menu-category-card.is-image-free { grid-template-columns: minmax(0, 1fr) 20px; padding-inline: 1rem .7rem; }
[dir="rtl"] .menu-category-card { padding-inline: .48rem .7rem; }
.menu-category-card:hover { transform: translateY(-2px); border-color: color-mix(in srgb, var(--menu-gold) 62%, #e8d8c3); box-shadow: 0 12px 28px rgba(99, 52, 27, .09); }
.menu-category-card-image { width: 68px; height: 66px; overflow: hidden; border-radius: 10px; background: #eadcca; }
.menu-category-card-image img { width: 100%; height: 100%; object-fit: cover; }
.menu-category-card-copy { min-width: 0; }
.menu-category-card-copy strong { display: block; overflow-wrap: anywhere; color: var(--menu-burgundy); font-family: var(--v3-heading-font, "Amiri"), serif; font-size: 1.03rem; line-height: 1.2; }
[lang="de"] .menu-category-card-copy strong, [lang="en"] .menu-category-card-copy strong { font-family: "Cormorant Garamond", Georgia, serif; font-size: 1.08rem; }
.menu-category-card-copy small { display: inline-block; margin-top: .18rem; color: var(--menu-muted); font-size: .7rem; font-weight: 700; }
.menu-category-card > svg { width: 18px; color: var(--menu-gold); fill: none; stroke: currentColor; stroke-width: 2; }
[dir="rtl"] .menu-category-card > svg { transform: scaleX(-1); }
.menu-back-sections { display: inline-flex; align-items: center; justify-content: center; gap: .45rem; justify-self: center; min-height: 42px; padding: .55rem 1rem; border: 1px solid color-mix(in srgb, var(--menu-burgundy) 28%, transparent); border-radius: 10px; background: var(--menu-paper); color: var(--menu-burgundy); font: inherit; font-size: .82rem; font-weight: 800; cursor: pointer; }
.menu-back-sections svg { width: 17px; fill: none; stroke: currentColor; stroke-width: 2; }
[dir="rtl"] .menu-back-sections svg { transform: scaleX(-1); }
.menu-category-card:focus-visible, .menu-back-sections:focus-visible, .menu-item-summary:focus-visible, .menu-add:focus-visible, .menu-cart-bar:focus-visible { outline: 3px solid rgba(210, 154, 49, .5); outline-offset: 2px; }

.menu-catalogue { display: grid; gap: 2rem; }
.menu-category-section[hidden], .menu-item[hidden] { display: none !important; }
.menu-category-section { scroll-margin-top: 95px; }
.menu-category-heading { display: flex; align-items: center; gap: .65rem; margin-bottom: .8rem; }
.menu-category-heading > span { width: 32px; height: 1px; background: var(--menu-gold); }
.menu-category-heading h2 { margin: 0; color: var(--menu-burgundy); font-family: var(--v3-heading-font, "Amiri"), serif; font-size: clamp(1.75rem, 3vw, 2.35rem); line-height: 1.15; }
.menu-category-heading small { display: grid; place-items: center; min-width: 27px; height: 27px; padding-inline: .4rem; border-radius: 999px; background: rgba(210, 154, 49, .13); color: #976713; font-size: .72rem; font-weight: 800; }
.menu-category-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); align-items: start; gap: .68rem; }

.menu-item { min-width: 0; overflow: hidden; border: 1px solid var(--menu-line); border-radius: 13px; background: color-mix(in srgb, var(--menu-paper) 95%, transparent); box-shadow: 0 7px 20px rgba(67, 36, 27, .045); transition: border-color .2s ease, box-shadow .2s ease; }
.menu-item:hover { border-color: color-mix(in srgb, var(--menu-gold) 52%, #e8d8c3); }
.menu-item[open] { border-color: color-mix(in srgb, var(--menu-gold) 58%, #e8d8c3); box-shadow: 0 12px 30px rgba(67, 36, 27, .075); }
.menu-item.is-unavailable { background: color-mix(in srgb, var(--menu-paper) 76%, #eadfce); }
.menu-item-summary { display: grid; grid-template-columns: 88px minmax(0, 1fr) 20px; align-items: center; gap: .72rem; min-height: 88px; padding-inline-end: .72rem; list-style: none; cursor: pointer; }
.menu-item.is-image-free .menu-item-summary { grid-template-columns: minmax(0, 1fr) 20px; min-height: 76px; padding-inline: 1rem .72rem; }
.menu-item-summary::-webkit-details-marker { display: none; }
.menu-item-image { width: 88px; height: 88px; margin: 0; overflow: hidden; background: #eadcca; }
.menu-item-image img { width: 100%; height: 100%; object-fit: cover; transition: transform .35s ease; }
.menu-item-summary:hover .menu-item-image img { transform: scale(1.035); }
.menu-item-summary-copy { display: flex; flex-direction: column; align-items: flex-start; min-width: 0; }
.menu-item-number { display: inline-flex; align-items: center; min-height: 20px; margin-bottom: .18rem; padding: .05rem .42rem; border: 1px solid rgba(190, 130, 32, .34); border-radius: 999px; background: rgba(210, 154, 49, .09); color: #8b5d0c; direction: ltr; font-size: .67rem; font-weight: 800; letter-spacing: .02em; }
.menu-item-summary-copy h3 { margin: 0; color: #3a2925; font-size: .98rem; line-height: 1.28; }
.menu-item-summary-copy > strong { margin-top: .18rem; color: var(--menu-burgundy); white-space: nowrap; font-size: .82rem; }
.menu-item-chevron { width: 17px; color: var(--menu-gold); fill: none; stroke: currentColor; stroke-width: 2; transition: transform .2s ease; }
.menu-item[open] .menu-item-chevron { transform: rotate(180deg); }
.menu-price-pending { padding: .2rem .42rem; border-radius: 999px; background: rgba(210, 154, 49, .14); color: #8b5d0c !important; font-size: .67rem !important; }
.menu-item-content { min-width: 0; padding: .8rem .9rem .9rem; border-top: 1px solid rgba(115, 66, 45, .1); }
.menu-item-description { max-width: 760px; margin: 0 0 .65rem; color: var(--menu-muted); font-size: .82rem; line-height: 1.58; }
.menu-allergens { display: flex; flex-wrap: wrap; align-items: baseline; gap: .28rem; margin: .15rem 0 .6rem; color: var(--menu-muted); font-size: .74rem; }
.menu-allergens > span { color: #4a3330; font-weight: 800; }
.menu-allergens bdi { letter-spacing: .05em; }
.menu-choice, .menu-addons { max-width: 560px; margin: .3rem 0 .6rem; border: 0; padding: 0; }
.menu-choice > span, .menu-addons legend, .menu-size-preview > span { display: block; margin-bottom: .3rem; color: #4a3330; font-size: .78rem; font-weight: 800; }
.menu-choice select { width: 100%; min-height: 40px; border: 1px solid #d9c3b4; border-radius: 9px; background: #fff; padding: .5rem .65rem; color: var(--menu-ink); font: inherit; font-size: .82rem; }
.menu-addons label { display: flex; gap: .45rem; margin: .3rem 0; font-size: .84rem; }
.menu-size-preview { margin: .15rem 0 .65rem; }
.menu-size-preview > div { display: flex; flex-wrap: wrap; gap: .4rem; }
.menu-size-preview small { padding: .24rem .5rem; border: 1px solid rgba(123, 16, 47, .16); border-radius: 999px; background: #fff; color: var(--menu-burgundy); font-size: .72rem; font-weight: 750; }
.menu-add { align-self: flex-start; min-height: 39px; margin-top: .1rem; padding: .5rem .9rem; font-size: .8rem; }
.menu-add:disabled { border-color: #cbbdb4; background: #ddd3ca; color: #766a64; cursor: not-allowed; opacity: 1; }
.menu-no-results { margin: 0; padding: 2.2rem 1rem; border: 1px dashed rgba(123, 16, 47, .24); border-radius: 14px; color: var(--menu-burgundy); text-align: center; }
.menu-empty { display: grid; place-items: center; min-height: 340px; color: var(--menu-burgundy); text-align: center; }
.menu-empty img { width: 90px; opacity: .28; }

.menu-allergen-legend { margin-top: 2rem; overflow: hidden; border: 1px solid var(--menu-line); border-radius: 14px; background: color-mix(in srgb, var(--menu-paper) 95%, transparent); box-shadow: 0 8px 24px rgba(99, 52, 27, .05); }
.menu-allergen-legend summary { min-height: 48px; padding: .8rem 1rem; color: var(--menu-burgundy); font-size: .88rem; font-weight: 800; cursor: pointer; }
.menu-allergen-legend[open] summary { border-bottom: 1px solid var(--menu-line); }
.menu-allergen-legend-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: .55rem 1rem; padding: 1rem; }
.menu-allergen-legend-grid p { display: grid; grid-template-columns: 28px minmax(0, 1fr); align-items: start; gap: .5rem; margin: 0; color: var(--menu-muted); font-size: .76rem; line-height: 1.45; }
.menu-allergen-legend-grid b { display: grid; place-items: center; width: 26px; height: 26px; border: 1px solid rgba(123, 16, 47, .16); border-radius: 50%; background: rgba(210, 154, 49, .12); color: var(--menu-burgundy); text-transform: lowercase; }
.menu-allergen-note { margin: 0; padding: .8rem 1rem 1rem; border-top: 1px solid rgba(115, 66, 45, .1); color: var(--menu-muted); font-size: .75rem; line-height: 1.55; }

.menu-cart-bar { position: fixed; z-index: 40; left: 50%; right: auto; bottom: max(18px, env(safe-area-inset-bottom)); transform: translateX(-50%); display: flex; justify-content: space-between; gap: 2rem; width: min(520px, calc(100% - 28px)); min-height: 54px; border: 0; border-radius: 16px; background: var(--menu-burgundy); color: #fff; padding: .9rem 1.15rem; box-shadow: 0 16px 36px rgba(33, 9, 16, .3); font: inherit; cursor: pointer; }
.menu-cart-backdrop { position: fixed; z-index: 60; inset: 0; background: rgba(11, 8, 8, .55); }
.menu-cart { position: fixed; z-index: 61; inset-block: 0; inset-inline-end: 0; width: min(460px, 100%); overflow-y: auto; background: #fffaf3; padding: 1.4rem; box-shadow: -20px 0 60px rgba(11, 8, 8, .22); transform: translateX(110%); transition: transform .3s ease; }
.menu-cart[aria-hidden="false"] { transform: translateX(0); }
[dir="rtl"] .menu-cart { transform: translateX(-110%); box-shadow: 20px 0 60px rgba(11, 8, 8, .22); }
[dir="rtl"] .menu-cart[aria-hidden="false"] { transform: translateX(0); }
.menu-cart-head, .menu-cart-total { display: flex; align-items: center; justify-content: space-between; gap: 1rem; }
.menu-cart-head { padding-bottom: 1rem; border-bottom: 1px solid #e3d2c5; }
.menu-cart-head h2 { margin: 0; color: var(--menu-burgundy); }
.menu-cart-head button { width: 44px; height: 44px; border: 0; background: transparent; font-size: 2rem; cursor: pointer; }
.menu-cart-items { display: grid; gap: .75rem; padding-block: 1rem; }
.cart-row { display: grid; grid-template-columns: 1fr auto; gap: .25rem 1rem; padding: .8rem; border-radius: 12px; background: #f2e6d8; }
.cart-row h3 { margin: 0; font-size: 1rem; }
.cart-item-number { display: inline-block; margin-inline-end: .42rem; color: var(--menu-burgundy); direction: ltr; font-size: .76rem; font-weight: 800; }
.cart-row p { grid-column: 1 / -1; margin: 0; color: #715b55; font-size: .82rem; }
.cart-row-actions { display: flex; align-items: center; gap: .45rem; }
.cart-row-actions button { width: 30px; height: 30px; border: 1px solid #c9ada2; border-radius: 7px; background: #fff; cursor: pointer; }
.cart-remove { width: auto !important; border: 0 !important; background: transparent !important; color: var(--menu-burgundy); text-decoration: underline; }
.menu-cart-total { padding: 1rem 0; border-block: 1px solid #e3d2c5; font-size: 1.12rem; }
.menu-order-form { display: grid; gap: .85rem; padding-top: 1rem; }
.menu-order-form > label span { display: block; margin-bottom: .3rem; font-size: .86rem; font-weight: 700; }
.menu-order-form input:not([type="radio"]), .menu-order-form textarea { width: 100%; min-height: 44px; border: 1px solid #d6c0b2; border-radius: 10px; background: #fff; padding: .75rem; font: inherit; }
.order-type { display: grid; grid-template-columns: 1fr 1fr; gap: .5rem; }
.order-type label { min-height: 44px; padding: .75rem; border: 1px solid #d6c0b2; border-radius: 10px; }
.payment-method { margin: 0; padding: 0; border: 0; }.payment-method legend { margin-bottom: .42rem; color: #4a3330; font-size: .86rem; font-weight: 800; }.payment-method > div { display: grid; grid-template-columns: repeat(2, 1fr); gap: .5rem; }.payment-method label { min-height: 44px; padding: .72rem .55rem; border: 1px solid #d6c0b2; border-radius: 10px; background: #fff; text-align: center; }.payment-method label span { display: inline!important; margin: 0!important; }.payment-method small { display: block; margin-top: .42rem; color: var(--menu-muted); font-size: .74rem; line-height: 1.5; }
.menu-delivery-note { margin: 0; padding: .8rem .9rem; border-inline-start: 3px solid var(--menu-gold); border-radius: 8px; background: color-mix(in srgb, var(--menu-gold) 11%, var(--menu-paper)); color: var(--menu-burgundy-dark); font-size: .8rem; font-weight: 700; line-height: 1.65; }
.menu-form-error { margin: 0; color: #a11b3e; }
.menu-send { width: 100%; justify-content: center; }
.menu-cart-open { overflow: hidden; }

@media (max-width: 980px) {
  .menu-category-browser { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .menu-category-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .menu-allergen-legend-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 600px) {
  .menu-page { padding-block: 2.4rem 4.75rem; }
  .menu-page::after { width: 210px; top: 2.25rem; }
  .menu-intro h1 { font-size: 2.45rem; }
  .menu-intro > p:last-child { font-size: .88rem; line-height: 1.68; }
  .menu-toolbar { margin-block: 1.25rem 1.7rem; }
  .menu-section-prompt::before, .menu-section-prompt::after { width: 24px; margin-inline: .5rem; }
  .menu-search input { min-height: 44px; font-size: .88rem; }
  .menu-category-browser { gap: .55rem; }
  .menu-category-card { grid-template-columns: 54px minmax(0, 1fr) 14px; gap: .48rem; min-height: 68px; padding: .38rem .46rem .38rem .38rem; border-radius: 11px; }
  .menu-category-card-image { width: 54px; height: 54px; border-radius: 8px; }
  .menu-category-card-copy strong { font-size: .85rem; }
  [lang="de"] .menu-category-card-copy strong, [lang="en"] .menu-category-card-copy strong { font-size: .9rem; line-height: 1.08; }
  .menu-category-card-copy small { font-size: .62rem; }
  .menu-category-card > svg { width: 13px; }
  .menu-allergen-legend-grid { grid-template-columns: 1fr; }
  .menu-catalogue { gap: 1.8rem; }
  .menu-category-heading { gap: .55rem; margin-bottom: .8rem; }
  .menu-category-heading h2 { font-size: 1.65rem; }
  .menu-category-heading > span { width: 22px; }
  .menu-category-grid { grid-template-columns: 1fr; gap: .52rem; }
  .menu-item[open] { grid-column: auto; }
  .menu-item-summary { grid-template-columns: 72px minmax(0, 1fr) 17px; gap: .62rem; min-height: 72px; padding-inline-end: .62rem; }
  .menu-item-image { width: 72px; height: 72px; }
  .menu-item-summary-copy h3 { font-size: .92rem; }
  .menu-item-summary-copy > strong { font-size: .76rem; }
  .menu-price-pending { font-size: .62rem !important; }
  .menu-item-content { padding: .7rem .78rem .8rem; }
  .menu-item-description { margin-bottom: .55rem; font-size: .78rem; line-height: 1.5; }
  .menu-add { width: 100%; min-height: 40px; padding: .5rem .65rem; justify-content: center; font-size: .8rem; }
  .menu-size-preview small { font-size: .68rem; }
  .menu-cart { inset-block: auto 0; inset-inline: 0; width: 100%; max-height: 92vh; border-radius: 24px 24px 0 0; transform: translateY(105%); }
  [dir="rtl"] .menu-cart { transform: translateY(105%); }
  .menu-cart[aria-hidden="false"], [dir="rtl"] .menu-cart[aria-hidden="false"] { transform: translateY(0); }
}

@media (prefers-reduced-motion: reduce) {
  .menu-cart, .menu-item, .menu-item-image img, .menu-category-card, .menu-item-chevron, .menu-page .btn { transition: none; }
}
.menu-order-honeypot{position:absolute!important;inset-inline-start:-10000px!important;width:1px!important;height:1px!important;overflow:hidden!important;opacity:0!important;pointer-events:none!important}.menu-order-privacy{display:flex!important;grid-template-columns:auto 1fr!important;align-items:flex-start!important;gap:10px!important;font-size:12px;line-height:1.65}.menu-order-privacy input{width:18px!important;height:18px;margin-top:2px;accent-color:var(--burgundy,#6f0d2d)}.menu-order-privacy a{color:var(--burgundy,#6f0d2d);font-weight:800;text-underline-offset:3px}.menu-order-success{display:grid;gap:6px;padding:13px 15px;border:1px solid #7c9d77;border-radius:7px;background:#edf5ec;color:#244220;line-height:1.55}.menu-order-success a{color:#5d0c29;font-weight:800}.menu-send:disabled{opacity:.7;cursor:wait}
