:root {
  --cream: #f7f2e8;
  --paper: #fffdf8;
  --ink: #20231f;
  --muted: #686b63;
  --red: #bd342b;
  --red-dark: #94271f;
  --olive: #292b27;
  --olive-light: #eee9df;
  --gold: #d9a441;
  --line: rgba(32, 35, 31, .12);
  --shadow-sm: 0 8px 24px rgba(42, 35, 26, .08);
  --shadow-lg: 0 24px 64px rgba(42, 35, 26, .14);
  --radius: 18px;
  --content: 1240px;
}

*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; scroll-padding-top: 112px; }
body.milanos-site {
  width: 100%; min-width: 0; max-width: none; margin: 0; padding: 0; color: var(--ink); background: var(--cream);
  font: 400 16px/1.6 -apple-system, BlinkMacSystemFont, "Segoe UI", Arial, sans-serif;
  -webkit-font-smoothing: antialiased; overflow-x: clip;
}
body.milanos-site img { max-width: 100%; height: auto; }
body.milanos-site a { color: var(--red); text-underline-offset: .2em; }
body.milanos-site a:hover, body.milanos-site a:focus-visible { color: var(--red-dark); }
body.milanos-site button, body.milanos-site input, body.milanos-site select, body.milanos-site textarea { font: inherit; }
body.milanos-site :focus-visible { outline: 3px solid rgba(189, 52, 43, .35); outline-offset: 3px; }
html { scrollbar-color: rgba(32,35,31,.32) #eee9df; scrollbar-width: thin; }
body.milanos-site ::-webkit-scrollbar { width: 10px; height: 10px; }
body.milanos-site ::-webkit-scrollbar-track { background: #eee9df; }
body.milanos-site ::-webkit-scrollbar-thumb { background: rgba(32,35,31,.32); border: 2px solid #eee9df; border-radius: 999px; }

.sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0; }
.skip-link { position: fixed; z-index: 9999; top: 12px; left: 12px; padding: 10px 16px; color: #fff !important; background: var(--ink); border-radius: 8px; transform: translateY(-150%); }
.skip-link:focus { transform: none; }

.review-banner { position: relative; z-index: 1000; display: flex; align-items: center; justify-content: center; gap: 10px; min-height: 36px; padding: 7px 18px; color: #f7f2e8; background: #202820; font-size: 12px; text-align: center; }
.review-banner strong { color: #fff; letter-spacing: .05em; text-transform: uppercase; }
.review-banner span { color: rgba(255,255,255,.72); }

.site-header { position: sticky; z-index: 900; top: 0; background: rgba(255,253,248,.93); border-bottom: 1px solid transparent; backdrop-filter: blur(18px); transition: box-shadow .25s, border-color .25s; }
.site-header.is-scrolled { border-color: var(--line); box-shadow: 0 8px 30px rgba(32,35,31,.07); }
.header-inner { width: min(calc(100% - 40px), var(--content)); min-height: 94px; margin: auto; display: flex; align-items: center; gap: 24px; }
.brand { display: inline-flex; align-items: center; gap: 12px; color: var(--ink) !important; text-decoration: none; flex: 0 0 auto; }
body.milanos-site .brand-logo { width: 124px !important; height: 82px !important; max-width: 124px !important; object-fit: contain; filter: drop-shadow(0 4px 7px rgba(63,44,23,.12)); }
.brand-copy { display: grid; line-height: 1.05; }
.brand-name { font-family: Georgia, "Times New Roman", serif; font-size: 27px; font-weight: 700; letter-spacing: -.035em; }
.brand-tagline { margin-top: 4px; color: var(--red); font-size: 10px; font-weight: 800; letter-spacing: .16em; text-transform: uppercase; }
.site-navigation { display: flex; align-items: center; gap: 8px; margin-left: auto; }
.site-navigation ul { display: flex; align-items: center; gap: 6px; padding: 0; margin: 0; list-style: none; }
.site-navigation li { margin: 0; }
.site-navigation a { display: block; padding: 10px 14px; color: var(--ink) !important; border-radius: 999px; font-size: 14px; font-weight: 700; text-decoration: none; transition: color .2s, background .2s; }
.site-navigation a:hover, .site-navigation a:focus-visible, .site-navigation .active > a { color: var(--red) !important; background: rgba(189,52,43,.07); }
.header-info-links { display: flex; align-items: center; gap: 2px; padding-left: 8px; border-left: 1px solid var(--line); }
.header-info-links button { padding: 9px 10px; color: var(--muted); background: transparent; border: 0; border-radius: 8px; font-size: 12px; font-weight: 750; cursor: pointer; }
.header-info-links button:hover, .header-info-links button:focus-visible { color: var(--red); background: rgba(189,52,43,.07); }
.header-call { display: inline-flex; align-items: center; gap: 10px; min-height: 52px; padding: 8px 17px; color: #fff !important; background: var(--ink); border-radius: 12px; text-decoration: none; box-shadow: 0 8px 20px rgba(32,35,31,.16); transition: transform .2s, background .2s; }
.header-call:hover { color: #fff !important; background: var(--red); transform: translateY(-1px); }
.header-call svg { width: 18px; flex: 0 0 auto; fill: currentColor; }
.call-copy { display: grid; line-height: 1.1; white-space: nowrap; }
.call-copy small { margin-bottom: 4px; color: rgba(255,255,255,.64); font-size: 9px; font-weight: 800; letter-spacing: .09em; text-transform: uppercase; }
.call-copy strong { font-size: 14px; font-weight: 850; letter-spacing: .015em; }
.nav-toggle { display: none; width: 44px; height: 44px; margin-left: auto; border: 0; border-radius: 50%; background: var(--olive-light); }
.nav-toggle-lines, .nav-toggle-lines::before, .nav-toggle-lines::after { display: block; width: 20px; height: 2px; margin: auto; background: var(--olive); border-radius: 3px; transition: transform .2s, opacity .2s; }
.nav-toggle-lines { position: relative; }
.nav-toggle-lines::before, .nav-toggle-lines::after { content: ""; position: absolute; left: 0; }
.nav-toggle-lines::before { top: -6px; }
.nav-toggle-lines::after { top: 6px; }
.nav-toggle[aria-expanded="true"] .nav-toggle-lines { background: transparent; }
.nav-toggle[aria-expanded="true"] .nav-toggle-lines::before { top: 0; transform: rotate(45deg); }
.nav-toggle[aria-expanded="true"] .nav-toggle-lines::after { top: 0; transform: rotate(-45deg); }

.hero { position: relative; overflow: hidden; padding: 62px 20px 0; background: var(--paper); }
.hero::before { content: ""; position: absolute; left: -120px; bottom: -180px; width: 420px; height: 420px; border: 90px solid rgba(52,76,53,.045); border-radius: 50%; }
.hero-pattern { position: absolute; inset: 0; opacity: .38; pointer-events: none; background-image: radial-gradient(circle at 2px 2px, rgba(52,76,53,.15) 1.2px, transparent 1.3px); background-size: 28px 28px; mask-image: linear-gradient(90deg, transparent, #000 70%); }
.hero-inner { position: relative; width: min(100%,1140px); min-height: 442px; margin: auto; display: grid; grid-template-columns: 1fr 1fr; align-items: center; gap: 64px; }
.hero-copy { position: relative; z-index: 2; padding-bottom: 64px; text-align: left; }
.eyebrow { margin: 0 0 16px; color: var(--red); font-size: 12px; font-weight: 900; letter-spacing: .14em; text-transform: uppercase; }
.eyebrow span { display: inline-block; width: 25px; height: 2px; margin: 0 9px 3px 0; background: var(--red); }
.hero h1, .section-heading h2 { margin: 0; font-family: Georgia, "Times New Roman", serif; font-weight: 700; line-height: .99; letter-spacing: -.05em; }
.hero h1 { max-width: 690px; font-size: clamp(48px,6vw,78px); text-align: left !important; }
.hero-text { max-width: 580px; margin: 24px 0 30px; color: var(--muted); font-size: 18px; line-height: 1.65; white-space: normal; overflow-wrap: anywhere; }
.primary-action { display: inline-flex; align-items: center; gap: 12px; min-height: 52px; padding: 0 23px; color: #fff !important; background: var(--red); border-radius: 999px; font-weight: 800; text-decoration: none; box-shadow: 0 12px 28px rgba(189,52,43,.24); transition: transform .2s, background .2s; }
.primary-action:hover { color: #fff !important; background: var(--red-dark); transform: translateY(-2px); }
.primary-action svg { width: 18px; fill: none; stroke: currentColor; stroke-width: 2; }
.shop-info-actions { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 14px; }
.shop-info-actions button { padding: 7px 12px; color: var(--olive); background: transparent; border: 1px solid rgba(52,76,53,.24); border-radius: 999px; font-size: 12px; font-weight: 800; transition: background .2s,border-color .2s; }
.shop-info-actions button:hover, .shop-info-actions button:focus-visible { background: var(--olive-light); border-color: var(--olive); }
.hero-visual { position: relative; align-self: stretch; min-height: 410px; overflow: hidden; background: #ded7c9; border-radius: 28px 28px 0 0; box-shadow: 0 28px 65px rgba(42,35,26,.18); }
.hero-visual::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg,transparent 52%,rgba(25,22,18,.48)); pointer-events: none; }
body.milanos-site .hero-visual > img { width: 100% !important; height: 100% !important; min-height: 410px; max-width: none !important; object-fit: cover; object-position: 55% center; }
.review-proof { position: absolute; z-index: 2; left: 24px; right: 24px; bottom: 23px; display: flex; align-items: center; gap: 12px; color: #fff; }
.review-proof-icon { display: grid; place-items: center; flex: 0 0 42px; width: 42px; height: 42px; color: #fff; background: var(--red); border-radius: 50%; font-size: 18px; }
.review-proof > span:last-child { display: grid; line-height: 1.25; }
.review-proof strong { font: 700 17px/1.2 Georgia,"Times New Roman",serif; }
.review-proof small { margin-top: 3px; color: rgba(255,255,255,.78); font-size: 11px; }
.plate { position: absolute; top: 22px; left: 50%; width: min(39vw,410px); aspect-ratio: 1; transform: translateX(-50%) rotate(-7deg); border: 20px solid #ece6da; border-radius: 50%; background: #fff; box-shadow: 0 30px 70px rgba(55,42,29,.2), inset 0 0 0 2px #ded6c9; }
.pizza-base { position: absolute; inset: 7%; border: 19px solid #d99a45; border-radius: 50%; background: radial-gradient(circle at 68% 25%,#f5d88f 0 3%,transparent 3.5%), radial-gradient(circle at 35% 72%,#f7dd92 0 4%,transparent 4.5%), radial-gradient(circle at 28% 31%,#f6d477 0 3%,transparent 3.5%), #bd342b; box-shadow: inset 0 0 0 5px rgba(116,52,29,.15), inset 0 0 35px rgba(98,34,21,.26); }
.tomato { position: absolute; z-index: 2; width: 72px; aspect-ratio: 1; border: 5px solid #f3bf83; border-radius: 50%; background: #b52724; box-shadow: inset 0 0 0 3px rgba(255,255,255,.12); }
.tomato::before { content: ""; position: absolute; inset: 46% 8%; height: 4px; background: rgba(255,255,255,.45); transform: rotate(28deg); }
.tomato-one { top: 24%; left: 22%; }
.tomato-two { right: 18%; bottom: 28%; width: 62px; }
.tomato-three { left: 38%; bottom: 15%; width: 55px; }
.basil { position: absolute; z-index: 3; width: 46px; height: 72px; border-radius: 100% 0 100% 0; background: #416b42; box-shadow: inset -7px -7px 0 rgba(0,0,0,.08); }
.basil-one { top: 31%; right: 28%; transform: rotate(23deg); }
.basil-two { bottom: 23%; left: 27%; width: 38px; height: 61px; transform: rotate(-52deg); }
.flour { position: absolute; border-radius: 50%; background: rgba(217,164,65,.22); }
.flour-one { right: -10px; top: 8px; width: 17px; height: 17px; box-shadow: -25px 11px 0 -5px rgba(217,164,65,.22), 18px 31px 0 -3px rgba(217,164,65,.22); }
.flour-two { left: 5px; bottom: 50px; width: 10px; height: 10px; box-shadow: 24px 17px 0 2px rgba(217,164,65,.18), -4px 36px 0 -2px rgba(217,164,65,.22); }
.service-strip { position: relative; z-index: 3; width: min(100%,1140px); margin: auto; display: grid; grid-template-columns: repeat(3,1fr); background: var(--olive); color: #fff; border-radius: var(--radius) var(--radius) 0 0; box-shadow: var(--shadow-lg); }
.service-strip > div { position: relative; display: grid; padding: 20px 30px; }
.service-strip > div + div::before { content: ""; position: absolute; left: 0; top: 25%; height: 50%; border-left: 1px solid rgba(255,255,255,.18); }
.service-strip strong { font-family: Georgia, "Times New Roman", serif; font-size: 17px; }
.service-strip span { color: rgba(255,255,255,.68); font-size: 12px; }

.site-main { min-height: 45vh; }
.menu-shell { width: min(calc(100% - 40px),var(--content)); height: auto !important; margin: 0 auto; padding: 68px 0 100px; overflow: visible; }
.section-heading { max-width: 720px; margin: 0 0 34px; text-align: left; }
.section-heading h2 { font-size: clamp(38px,4.2vw,52px); }
.section-heading > p:last-child { margin: 13px 0 0; color: var(--muted); }
.component-area { width: min(calc(100% - 40px),var(--content)); margin: 0 auto; }

/* Legal modules still emit Bootstrap 2 grid classes. Contain and normalise
   those floats so long legal copy remains readable at every viewport size. */
.legal-shell {
  width: min(calc(100% - 40px),960px);
  margin: 0 auto;
  padding: 64px 0 96px;
}
.legal-shell::after { content: ""; display: table; clear: both; }
.legal-shell > .span10 {
  float: none;
  width: 100%;
  min-height: 0;
  margin: 0;
  padding: clamp(30px,5vw,58px);
  overflow: hidden;
  color: var(--ink);
  background: var(--paper);
  border: 1px solid var(--line);
  border-top: 4px solid var(--red);
  border-radius: 20px;
  box-shadow: var(--shadow-sm);
}
.legal-shell [class*="span"] {
  float: none;
  width: auto;
  min-height: 0;
  margin-left: 0;
}
.legal-shell h1,
.legal-shell h2,
.legal-shell h3,
.legal-shell h4 {
  max-width: 100%;
  color: var(--ink);
  font-family: Georgia,"Times New Roman",serif;
  line-height: 1.18;
  overflow-wrap: anywhere;
}
.legal-shell h1 { margin: 0 0 34px; font-size: clamp(38px,5vw,56px); letter-spacing: -.035em; }
.legal-shell h2 { margin: 42px 0 14px; font-size: clamp(27px,3.2vw,34px); letter-spacing: -.025em; }
.legal-shell h3 { margin: 30px 0 10px !important; font-size: clamp(21px,2.5vw,26px); }
.legal-shell h4 { margin: 24px 0 8px; font-size: 18px; }
.legal-shell p,
.legal-shell li { color: var(--ink); font-size: 16px; line-height: 1.75; overflow-wrap: anywhere; }
.legal-shell p { margin: 0 0 18px; }
.legal-shell ul,
.legal-shell ol { max-width: 100%; margin: 0 0 22px; padding-left: 24px; }
.legal-shell a { font-weight: 650; overflow-wrap: anywhere; }
.legal-shell .span2 { margin: 22px 0 30px; }
.legal-shell .span2 img { display: block; width: 120px; max-width: 100%; }
.legal-shell .clear { clear: both; }
body.is-legal .component-area { display: none; }

.auth-shell {
  width: min(calc(100% - 40px),560px);
  margin: 64px auto 96px;
  padding: clamp(30px,5vw,52px);
  color: var(--ink);
  background: var(--paper);
  border: 1px solid var(--line);
  border-top: 4px solid var(--red);
  border-radius: 20px;
  box-shadow: var(--shadow-sm);
}
.auth-heading { margin-bottom: 30px; }
.auth-heading h1 { margin: 0; color: var(--ink); font: 700 clamp(38px,5vw,52px)/1.05 Georgia,"Times New Roman",serif; letter-spacing: -.04em; }
.auth-heading > p:last-child { margin: 12px 0 0; color: var(--muted); }
.auth-shell #login-form,
.auth-shell .userdata { display: grid; gap: 16px; width: 100%; margin: 0; }
.auth-shell .control-group { width: 100%; margin: 0; }
.auth-shell .controls,
.auth-shell .input-prepend { width: 100%; }
.auth-shell .input-prepend { position: relative; display: block; }
.auth-shell .input-prepend .add-on {
  position: absolute;
  z-index: 2;
  inset: 0 auto 0 0;
  display: grid;
  place-items: center;
  width: 46px;
  min-width: 0;
  height: 50px;
  margin: 0 !important;
  padding: 0 !important;
  color: var(--muted);
  background: transparent;
  border: 0;
  border-right: 1px solid rgba(32,35,31,.14);
  border-radius: 0;
}
.auth-shell .input-prepend .add-on .element-invisible {
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  margin: -1px !important;
  padding: 0 !important;
  overflow: hidden !important;
  clip: rect(0,0,0,0) !important;
  white-space: nowrap !important;
  border: 0 !important;
}
.auth-shell .input-prepend input[type="text"],
.auth-shell .input-prepend input[type="password"] {
  box-sizing: border-box;
  width: 100%;
  height: 50px;
  margin: 0 !important;
  padding: 10px 14px 10px 60px !important;
  color: var(--ink);
  background: #fff;
  border: 1px solid rgba(32,35,31,.2);
  border-radius: 11px !important;
  font-size: 16px !important;
  line-height: 1.4 !important;
  box-shadow: none;
}
.auth-shell .input-prepend input::placeholder { color: var(--muted); opacity: 1; }
.auth-shell .input-prepend input:focus { border-color: var(--red); box-shadow: 0 0 0 3px rgba(189,52,43,.12); outline: 0; }
.auth-shell #form-login-remember { display: flex; align-items: center; gap: 9px; }
.auth-shell #form-login-remember label { order: 2; margin: 0; color: var(--muted); font-size: 14px; }
.auth-shell #form-login-remember input { order: 1; width: 17px; height: 17px; margin: 0; accent-color: var(--red); }
.auth-shell .login-button { width: 100%; min-height: 50px; margin: 0; color: #fff !important; background: var(--red) !important; border: 0 !important; border-radius: 11px !important; font-size: 16px; font-weight: 850; text-shadow: none !important; box-shadow: 0 10px 22px rgba(189,52,43,.2) !important; }
.auth-shell .login-button:hover,
.auth-shell .login-button:focus-visible { background: var(--red-dark) !important; }
.auth-shell ul.unstyled { display: grid; gap: 7px; margin: 4px 0 0; padding: 18px 0 0; border-top: 1px solid var(--line); list-style: none; }
.auth-shell ul.unstyled li { margin: 0; }
.auth-shell ul.unstyled a { font-size: 14px; font-weight: 700; text-decoration: none; }
.auth-shell-component .login > form,
.auth-shell-component form.form-horizontal { display: grid; gap: 16px; margin: 0; }
.auth-shell-component fieldset { display: grid; gap: 16px; min-width: 0; margin: 0; padding: 0; border: 0; }
.auth-shell-component .control-label { margin-bottom: 6px; }
.auth-shell-component .control-label label { color: var(--ink); font-size: 14px; font-weight: 750; }
.auth-shell-component .controls > input[type="text"],
.auth-shell-component .controls > input[type="password"] {
  box-sizing: border-box;
  width: 100%;
  height: 50px;
  margin: 0;
  padding: 10px 14px;
  color: var(--ink);
  background: #fff;
  border: 1px solid rgba(32,35,31,.2);
  border-radius: 11px;
  font-size: 16px;
  box-shadow: none;
}
.auth-shell-component .controls > input:focus { border-color: var(--red); outline: 0; box-shadow: 0 0 0 3px rgba(189,52,43,.12); }
.auth-shell-component .controls > input[type="checkbox"] { width: 17px; height: 17px; margin: 0; accent-color: var(--red); }
.auth-shell-component button[type="submit"] { width: 100%; min-height: 50px; color: #fff; background: var(--red); border: 0; border-radius: 11px; font-weight: 850; text-shadow: none; box-shadow: 0 10px 22px rgba(189,52,43,.2); }
.auth-shell-component .nav-tabs { display: grid; gap: 7px; margin: 22px 0 0; padding: 18px 0 0; border: 0; border-top: 1px solid var(--line); list-style: none; }
.auth-shell-component .nav-tabs > li { margin: 0; }
.auth-shell-component .nav-tabs > li > a { padding: 0; border: 0; font-size: 14px; font-weight: 700; text-decoration: none; }
body.is-login .component-area { display: none; }

/* The shop configurator is an application workspace, not a menu module. */
.configurator-shell {
  width: min(calc(100% - 40px),1440px);
  margin: 0 auto;
  padding: 52px 0 96px;
}
.configurator-heading { max-width: 760px; margin: 0 0 30px; }
.configurator-heading h1 {
  margin: 0;
  color: var(--ink);
  font: 700 clamp(40px,5vw,58px)/1.02 Georgia,"Times New Roman",serif;
  letter-spacing: -.045em;
}
.configurator-heading > p:last-child { margin: 13px 0 0; color: var(--muted); font-size: 17px; }
body.is-configurator { background: #f4efe5; }
body.is-configurator .site-main { min-height: 70vh; }
body.is-configurator .component-area { display: none; }
body.is-configurator .site-footer { position: relative; clear: both; }

@media (max-width: 680px) {
  .configurator-shell { width: calc(100% - 24px); padding: 32px 0 64px; }
  .configurator-heading { margin-bottom: 22px; }
  .configurator-heading h1 { font-size: clamp(34px,11vw,43px); }
  .configurator-heading > p:last-child { font-size: 15px; }
}

@media (min-width: 681px) {
  .legal-shell > .span10 > .span8,
  .legal-shell > .span10 > .span9 { float: left; width: calc(100% - 170px); }
  .legal-shell > .span10 > .span2 { float: right; width: 120px; margin: 0 0 30px 30px; }
}

/* Replace the legacy DeliveryKing header while retaining its menu navigation. */
#SliderBackground { display: contents !important; background: none !important; }
#SliderBackground > #Lieferdienst, #SliderBackground > #LieferdienstName,
#lieferdienst-logo, #lieferdienst-info, #oeffnung-info,
.main-triangle, .postit, #video_background { display: none !important; }
.ui-dialog #LieferdienstName, .shop-data-dialog .source-lieferdienstname { display: block !important; }
dialog#lieferdienst-details:not(.ui-dialog-content),
dialog#oeffnungszeiten-details:not(.ui-dialog-content) { display: none !important; }
.ui-dialog dialog#lieferdienst-details,
.ui-dialog dialog#oeffnungszeiten-details { position: relative !important; inset: auto !important; display: block !important; width: auto !important; max-width: 100% !important; border: 0 !important; }
#KategorieNavButton { display: none !important; }

body ul.KategorieNav {
  position: sticky !important; z-index: 700 !important; top: 96px !important; display: flex !important; gap: 8px;
  width: min(100%,var(--content)) !important; max-width: var(--content) !important; height: auto !important; max-height: none !important;
  min-height: 0 !important; flex-flow: row nowrap !important;
  margin: 0 auto 30px !important; padding: 9px !important; float: none !important; overflow-x: auto !important; overflow-y: hidden !important;
  background: rgba(255,253,248,.96) !important; border: 1px solid var(--line); border-radius: 16px !important;
  box-shadow: var(--shadow-sm) !important; list-style: none; scrollbar-width: none; backdrop-filter: blur(14px);
}
body ul.KategorieNav::-webkit-scrollbar { display: none; }
body ul.KategorieNav li { flex: 0 0 auto; margin: 0 !important; }
body ul.KategorieNav a { display: block; padding: 9px 15px !important; color: var(--ink) !important; background: transparent !important; border: 0 !important; border-radius: 999px; font: 800 13px/1.5 -apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif !important; text-decoration: none !important; white-space: nowrap; }
body ul.KategorieNav a:hover { color: #fff !important; background: var(--red) !important; }
body ul.KategorieNav #ls-logo, body ul.KategorieNav #KategorieNavClose { display: none !important; }

.menu-layout { display: grid; grid-template-columns: minmax(0,1fr) 340px; align-items: start; height: auto !important; gap: 32px; }
#Speisekarten_Div_Div { position: static !important; top: auto !important; width: 100%; height: auto !important; min-height: 0 !important; margin: 0 !important; padding: 0 !important; overflow: visible !important; background: transparent !important; }
#Speisekarten_Div { width: 100% !important; margin: 0 !important; padding: 0 !important; float: none !important; }
.SpeisekarteUeberschrift { display: none; }
.GerichtKategorie { width: 100% !important; margin: 42px 0 14px !important; padding: 0 4px 11px !important; background: transparent !important; border: 0 !important; border-bottom: 1px solid var(--line) !important; border-radius: 0 !important; box-shadow: none !important; }
.GerichtKategorie:first-of-type { margin-top: 8px !important; }
.GerichtKategorie h2 { width: auto !important; margin: 0 !important; color: var(--ink) !important; font: 700 clamp(28px,3vw,40px)/1.15 Georgia,"Times New Roman",serif !important; letter-spacing: -.03em; }
.GerichtKategorie [id^="Groesse_"] { margin-top: 14px !important; color: var(--muted); font-size: 12px; font-weight: 800; letter-spacing: .04em; text-transform: uppercase; }
.KategorieBeschreibung { width: 100% !important; margin: 8px 0 0 !important; color: var(--muted); font-size: 14px; }

#Speisekarten_Div .gericht { display: flex; align-items: center; gap: 11px; width: 100% !important; min-height: 92px; margin: 0 0 10px !important; padding: 15px 16px !important; float: none !important; background: var(--paper) !important; border: 1px solid var(--line); border-radius: 15px; box-shadow: 0 5px 18px rgba(42,35,26,.055); transition: border-color .2s, transform .2s, box-shadow .2s; }
#Speisekarten_Div .gericht:hover { border-color: rgba(189,52,43,.28); transform: translateY(-1px); box-shadow: 0 9px 26px rgba(42,35,26,.085); }
#Speisekarten_Div .gericht > [class*="span"] { margin-left: 0 !important; float: none !important; }
#Speisekarten_Div .gericht > [class*="span"]:first-child { flex: 1 1 auto; width: auto !important; min-width: 0; }
#Speisekarten_Div .gericht > .span2 { flex: 0 0 86px; width: 86px !important; }
.GerichtName { margin: 0 !important; color: var(--ink); font-family: Georgia,"Times New Roman",serif; font-size: 18px !important; font-weight: 700; line-height: 1.25 !important; }
.GerichtNummer { display: inline-block; min-width: 25px; color: var(--red); font: 800 12px/1.5 -apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif; }
.GerichtBeschreibung { margin: 5px 0 0 !important; color: var(--muted); font-size: 13px; line-height: 1.45; }
.GerichtKennzeichnung { color: var(--muted); font-size: 10px; }
.GerichtFoto { width: 76px !important; height: 68px; margin: 0 13px 0 0 !important; overflow: hidden; border-radius: 10px; }
.GerichtFoto img { width: 100%; height: 100%; object-fit: cover; }
.Abholpreis { color: var(--olive); font-size: 11px; font-weight: 700; }

#Speisekarten_Div input.PreisButton { width: 100% !important; min-height: 42px; margin: 0 !important; padding: 8px 10px !important; color: #fff !important; background: var(--red) !important; border: 0 !important; border-radius: 999px !important; font-size: 13px !important; font-weight: 900; box-shadow: 0 7px 16px rgba(189,52,43,.19) !important; }
#Speisekarten_Div input.PreisButton:hover { background: var(--red-dark) !important; transform: translateY(-1px); }

#Lieferdienst button, #Lieferdienst .btn, #Lieferdienst input[type="submit"], .Warenkorb button,
#WarenkorbZusammenfassung button, #BestellAbschluss button { min-height: 42px; padding: 9px 17px; color: #fff !important; background: var(--red) !important; border: 0 !important; border-radius: 999px !important; font-weight: 800; text-shadow: none !important; box-shadow: none !important; }
#Lieferdienst input[type="text"], #Lieferdienst input[type="email"], #Lieferdienst input[type="tel"], #Lieferdienst input[type="number"],
#Lieferdienst select, #Lieferdienst textarea, #WarenkorbZusammenfassung input, #WarenkorbZusammenfassung select, #WarenkorbZusammenfassung textarea,
.component-area input[type="text"], .component-area input[type="password"], .component-area input[type="email"], .component-area select, .component-area textarea {
  min-height: 46px; max-width: 100%; padding: 10px 13px; color: var(--ink); background: #fff; border: 1px solid rgba(32,35,31,.2); border-radius: 10px; box-shadow: inset 0 1px 2px rgba(0,0,0,.03);
}

.Warenkorb { position: sticky !important; z-index: 650 !important; top: 176px !important; right: auto !important; box-sizing: border-box; width: 100% !important; max-width: 340px; max-height: calc(100vh - 194px) !important; padding: 24px !important; overflow-x: hidden !important; overflow-y: auto; color: var(--ink); background: var(--paper) !important; border: 1px solid var(--line) !important; border-top: 4px solid var(--red) !important; border-radius: 20px !important; box-shadow: 0 16px 42px rgba(42,35,26,.11) !important; scrollbar-width: none; backdrop-filter: none; transition: opacity .2s ease,transform .2s ease,visibility .2s ease; }
.Warenkorb::-webkit-scrollbar { display: none; width: 0; height: 0; }
.Warenkorb.is-before-menu, body.is-before-menu .Warenkorb { opacity: 0 !important; visibility: hidden !important; pointer-events: none !important; transform: translateY(12px); }
.Warenkorb h2 { margin: 0 0 13px !important; color: var(--ink) !important; font: 700 27px/1.2 Georgia,"Times New Roman",serif !important; text-align: left !important; }
.Warenkorb table,
.Warenkorb table tbody { display: block; width: 100% !important; min-width: 0 !important; margin: 0 !important; border-collapse: collapse; table-layout: fixed; }
.Warenkorb table #Warenkorb_Ueberschriften { display: none !important; }
.Warenkorb table tr:not(#Warenkorb_Ueberschriften) { display: grid; grid-template-columns: 28px minmax(0,1fr) auto 30px; grid-template-rows: auto auto; grid-template-areas: "qty dish price remove" ". extras extras extras"; align-items: start; gap: 5px 8px; width: 100% !important; margin: 0 !important; padding: 14px 0 !important; border: 0 !important; border-top: 1px solid var(--line) !important; box-shadow: none !important; }
.Warenkorb table tr:not(#Warenkorb_Ueberschriften):first-of-type { border-top: 0 !important; }
.Warenkorb table td { box-sizing: border-box; width: auto !important; min-width: 0 !important; margin: 0 !important; padding: 0 !important; border: 0 !important; color: var(--ink); font-size: 12px !important; line-height: 1.45; text-align: left !important; overflow-wrap: anywhere; }
.Warenkorb table td:nth-child(1) { grid-area: qty; display: grid; place-items: center; width: 26px !important; height: 26px; color: var(--red); background: #fff1ef; border-radius: 50% !important; font-size: 11px !important; font-weight: 900; }
.Warenkorb table td:nth-child(2) { grid-area: dish; padding-top: 3px !important; font-weight: 800; }
.Warenkorb table td:nth-child(2) br + * { color: var(--muted); }
.Warenkorb table td:nth-child(2) i { display: block; margin-top: 3px; color: var(--muted); font-size: 11px; font-weight: 500; }
.Warenkorb table td:nth-child(3) { grid-area: extras; color: var(--muted); font-size: 11px !important; }
.Warenkorb table td:nth-child(3):empty { display: none; }
.Warenkorb table td:nth-child(4) { grid-area: price; padding-top: 3px !important; font-weight: 900; white-space: nowrap; }
.Warenkorb table td:nth-child(5) { grid-area: remove; }
.Warenkorb .cart-remove { position: relative; display: grid !important; place-items: center; width: 28px !important; height: 28px !important; min-height: 28px !important; margin: 0 !important; padding: 0 !important; color: var(--muted) !important; background: transparent !important; border: 1px solid rgba(32,35,31,.16) !important; border-radius: 50% !important; box-shadow: none !important; cursor: pointer; transition: color .18s,background .18s,border-color .18s; }
.Warenkorb .cart-remove:hover,
.Warenkorb .cart-remove:focus-visible { color: #fff !important; background: var(--red) !important; border-color: var(--red) !important; outline: 0; }
.Warenkorb .cart-remove span { position: relative; display: block; width: 10px; height: 10px; }
.Warenkorb .cart-remove span::before,
.Warenkorb .cart-remove span::after { content: ""; position: absolute; top: 4px; left: 0; width: 10px; height: 1.5px; background: currentColor; border-radius: 2px; }
.Warenkorb .cart-remove span::before { transform: rotate(45deg); }
.Warenkorb .cart-remove span::after { transform: rotate(-45deg); }
.Warenkorb #GesamtPreis { margin-top: 4px; padding: 17px 0 8px; border-top: 1px solid var(--line); font: 700 17px/1.35 Georgia,"Times New Roman",serif; text-align: left; }
.Warenkorb #form-Warenkorb button { width: 100%; margin-top: 12px; }
#WarenkorbClose { display: none; }
#WarenkorbLeer { margin: 5px 0 8px; padding: 13px 14px; color: var(--muted) !important; background: var(--cream); border-radius: 11px; font-size: 12px !important; }
body.milanos-site .Warenkorb #form-Warenkorb button[type="submit"] { width: 100% !important; min-height: 48px; color: #fff !important; background: var(--red) !important; border: 0 !important; border-radius: 12px !important; font-weight: 850 !important; text-shadow: none !important; box-shadow: none !important; }
body.milanos-site .Warenkorb #form-Warenkorb button[type="submit"]:hover { background: var(--red-dark) !important; }

#WarenkorbZusammenfassung, #BestellAbschluss, #WarenkorbAbsenden #Aktuell { position: relative !important; top: auto !important; width: min(100%,850px) !important; margin: 30px auto !important; padding: clamp(20px,4vw,48px) !important; background: var(--paper) !important; border: 1px solid var(--line); border-radius: var(--radius); box-shadow: var(--shadow-sm); }
.ZusammenfassungDiv { margin-top: 24px; }
.Zahlungsart_Button { width: 120px !important; height: auto !important; padding: 16px 10px !important; border-color: var(--line) !important; border-radius: 12px; }
.zusatzTexte { width: 100% !important; margin-left: 0 !important; color: var(--muted); font-size: 12px; }

/* The DeliveryKing checkout posts back to the menu page. Give that state its own
   clear layout instead of repeating the restaurant header and start-page hero. */
body.is-checkout { min-width: 0; color: var(--ink); background: var(--cream); }
.checkout-header { position: relative; z-index: 900; color: #fff; background: var(--ink); border-bottom: 4px solid var(--red); box-shadow: 0 8px 28px rgba(21,24,20,.14); }
.checkout-header-inner { width: min(calc(100% - 40px),var(--content)); min-height: 94px; margin: auto; display: grid; grid-template-columns: auto auto 1fr auto; align-items: center; gap: 24px; }
.checkout-brand { display: flex; align-items: center; color: #fff !important; text-decoration: none; }
body.milanos-site .checkout-brand img { width: 112px !important; height: 74px !important; max-width: 112px !important; padding: 5px 8px; object-fit: contain; background: #fffdf8; border-radius: 10px; }
.checkout-brand > span { max-width: 170px; color: #fff; font: 700 20px/1.1 Georgia,"Times New Roman",serif; }
.checkout-label { display: grid; padding-left: 24px; border-left: 1px solid rgba(255,255,255,.18); line-height: 1.2; }
.checkout-label span { color: rgba(255,255,255,.58); font-size: 10px; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; }
.checkout-label strong { margin-top: 4px; font-size: 14px; }
.checkout-progress { justify-self: center; display: flex; align-items: center; gap: 0; margin: 0; padding: 0; list-style: none; }
.checkout-progress li { position: relative; display: flex; align-items: center; gap: 8px; color: rgba(255,255,255,.52); font-size: 12px; font-weight: 800; }
.checkout-progress li + li { margin-left: 46px; }
.checkout-progress li + li::before { content: ""; position: absolute; right: calc(100% + 10px); width: 26px; height: 1px; background: rgba(255,255,255,.24); }
.checkout-progress li > span { display: grid; place-items: center; width: 29px; height: 29px; color: rgba(255,255,255,.7); border: 1px solid rgba(255,255,255,.32); border-radius: 50%; }
.checkout-progress li.is-active { color: #fff; }
.checkout-progress li.is-active > span { color: #fff; background: var(--red); border-color: var(--red); }
.checkout-progress li.is-complete { color: rgba(255,255,255,.78); }
.checkout-progress li.is-complete > span { color: var(--ink); background: #fff; border-color: #fff; }
.checkout-back { display: inline-flex; align-items: center; gap: 8px; min-height: 42px; padding: 0 16px; color: #fff !important; border: 1px solid rgba(255,255,255,.24); border-radius: 999px; font-size: 12px; font-weight: 800; text-decoration: none; transition: background .2s,border-color .2s; }
.checkout-back:hover { color: #fff !important; background: rgba(255,255,255,.1); border-color: rgba(255,255,255,.45); }
.checkout-shell { width: min(calc(100% - 40px),1080px); margin: 0 auto; padding: 56px 0 96px; }
.checkout-intro { max-width: 760px; margin: 0 0 30px; }
.checkout-intro h1 { margin: 0; color: var(--ink); font: 700 clamp(38px,4.4vw,54px)/1.05 Georgia,"Times New Roman",serif; letter-spacing: -.04em; }
.checkout-intro > p:last-child { margin: 13px 0 0; color: var(--muted); font-size: 16px; line-height: 1.55; }
.is-checkout .component-area { min-height: 0; }

body.is-checkout #WarenkorbAbsenden { width: 100% !important; margin: 0 !important; padding: 0 !important; color: var(--ink) !important; background: transparent !important; }
body.is-checkout #WarenkorbAbsenden #Aktuell { position: static !important; display: grid !important; grid-template-columns: repeat(2,minmax(0,1fr)); align-items: start; gap: 18px 22px; width: 100% !important; max-width: none !important; margin: 0 !important; padding: 0 !important; color: var(--ink) !important; background: transparent !important; border: 0 !important; border-radius: 0 !important; box-shadow: none !important; text-align: left !important; }
body.is-checkout #WarenkorbAbsenden #ls-logo { display: none !important; }
body.is-checkout #WarenkorbAbsenden #Aktuell > div { box-sizing: border-box; }
body.is-checkout #WarenkorbAbsenden #Aktuell > div:first-of-type { grid-column: 1/-1; width: 100% !important; margin: 0 !important; padding: 18px 22px !important; color: var(--ink) !important; background: #fff3df !important; border: 1px solid #e7cda1 !important; border-radius: 14px !important; font-size: 16px !important; font-weight: 750; line-height: 1.45 !important; text-align: center !important; }
body.is-checkout #WarenkorbAbsenden #Aktuell > div:first-of-type:empty { display: none !important; }
body.is-checkout .fulfillment-picker { grid-column: 1/-1; width: 100%; margin: 2px 0 4px; padding: 0; }
body.is-checkout .fulfillment-picker > p { margin: 0 0 11px; color: var(--muted); font-size: 11px; font-weight: 850; letter-spacing: .1em; text-transform: uppercase; }
body.is-checkout .fulfillment-options { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 14px; }
body.is-checkout .fulfillment-option { display: grid; grid-template-columns: 48px minmax(0,1fr) auto; align-items: center; gap: 14px; min-height: 86px; margin: 0; padding: 16px 18px; color: var(--ink) !important; background: var(--paper) !important; border: 1px solid var(--line) !important; border-radius: 16px !important; text-align: left; box-shadow: var(--shadow-sm) !important; cursor: pointer; transition: border-color .2s,background .2s,transform .2s,box-shadow .2s; }
body.is-checkout .fulfillment-option:not(:disabled):hover,
body.is-checkout .fulfillment-option:not(:disabled):focus-visible { background: #fff !important; border-color: rgba(189,52,43,.45) !important; outline: 0; transform: translateY(-2px); box-shadow: 0 13px 30px rgba(42,35,26,.11) !important; }
body.is-checkout .fulfillment-option.is-selected { background: #fff !important; border-color: var(--red) !important; box-shadow: 0 0 0 2px rgba(189,52,43,.12),var(--shadow-sm) !important; }
body.is-checkout .fulfillment-option:disabled { color: var(--muted) !important; background: rgba(238,233,223,.7) !important; cursor: not-allowed; box-shadow: none !important; }
body.is-checkout .fulfillment-option:disabled .fulfillment-arrow { display: none; }
body.is-checkout .fulfillment-option:disabled .fulfillment-icon { color: var(--muted); background: var(--olive-light); }
body.is-checkout .fulfillment-option:disabled .fulfillment-copy strong { color: var(--muted); }
body.is-checkout .fulfillment-option:disabled::after { content: "Nicht verfügbar"; grid-column: 3; padding: 5px 8px; color: var(--muted); background: rgba(255,255,255,.72); border: 1px solid var(--line); border-radius: 999px; font-size: 9px; font-weight: 850; letter-spacing: .05em; text-transform: uppercase; white-space: nowrap; }
body.is-checkout .fulfillment-icon { display: grid; place-items: center; width: 48px; height: 48px; color: var(--red); background: #fff1ef; border-radius: 13px; }
body.is-checkout .fulfillment-icon svg { width: 25px; height: 25px; fill: none; stroke: currentColor; stroke-width: 1.7; stroke-linecap: round; stroke-linejoin: round; }
body.is-checkout .fulfillment-copy { display: grid; min-width: 0; }
body.is-checkout .fulfillment-copy strong { color: var(--ink); font: 700 21px/1.2 Georgia,"Times New Roman",serif; }
body.is-checkout .fulfillment-copy small { margin-top: 4px; color: var(--muted); font-size: 12px; font-weight: 600; }
body.is-checkout .fulfillment-arrow { color: var(--red); font-size: 21px; transition: transform .2s; }
body.is-checkout .fulfillment-option:not(:disabled):hover .fulfillment-arrow,
body.is-checkout .fulfillment-option.is-selected .fulfillment-arrow { transform: translateX(3px); }
body.is-checkout #WarenkorbAbsenden #Lieferung,
body.is-checkout #WarenkorbAbsenden #Abholung { display: none !important; }
body.is-checkout #WarenkorbAbsenden #Lieferung,
body.is-checkout #WarenkorbAbsenden #Abholung { width: auto !important; min-height: 92px; margin: 0 !important; padding: 18px 20px !important; float: none !important; color: var(--ink) !important; background: var(--paper) !important; border: 1px solid var(--line) !important; border-radius: 14px !important; box-shadow: var(--shadow-sm); }
body.is-checkout #WarenkorbAbsenden #Lieferung > div,
body.is-checkout #WarenkorbAbsenden #Abholung > div { width: auto !important; margin: 0 !important; float: none !important; }
body.is-checkout #WarenkorbAbsenden .CheckboxButton > div:first-child { display: flex; align-items: center; gap: 10px; color: var(--ink); font-size: 17px; font-weight: 850; }
body.is-checkout #WarenkorbAbsenden .CheckboxButton i { color: var(--red); }
body.is-checkout #WarenkorbAbsenden .CheckboxButton input[type="radio"] { width: 18px; height: 18px; margin: 0 0 0 auto; accent-color: var(--red); }
body.is-checkout #WarenkorbAbsenden .CheckboxButton .Zeiten { display: block; margin-top: 9px !important; color: var(--muted); font-size: 12px; line-height: 1.45; }
body.is-checkout #WarenkorbAbsenden .CheckboxButton .Rabatt { margin-top: 8px !important; color: var(--olive); font-size: 12px; font-weight: 750; }

body.is-checkout #WarenkorbAbsenden #LieferDiv,
body.is-checkout #WarenkorbAbsenden #AbholDiv { position: static !important; width: auto !important; min-width: 0; margin: 0 !important; padding: clamp(22px,3vw,30px) !important; float: none !important; color: var(--ink) !important; background: var(--paper) !important; border: 1px solid var(--line) !important; border-top: 4px solid var(--red) !important; border-radius: 18px !important; box-shadow: var(--shadow-sm); }
body.is-checkout #WarenkorbAbsenden #LieferDiv,
body.is-checkout #WarenkorbAbsenden #AbholDiv { grid-column: 1/-1; justify-self: center; width: min(100%,720px) !important; margin: 8px auto 0 !important; }
body.is-checkout #WarenkorbAbsenden #LieferDiv[hidden],
body.is-checkout #WarenkorbAbsenden #AbholDiv[hidden] { display: none !important; }
body.is-checkout #WarenkorbAbsenden #LieferDiv.is-revealed,
body.is-checkout #WarenkorbAbsenden #AbholDiv.is-revealed { animation: fulfillment-reveal .28s ease-out both; }
@keyframes fulfillment-reveal { from { opacity: 0; transform: translateY(8px); } to { opacity: 1; transform: none; } }
body.is-checkout #WarenkorbAbsenden #LieferDiv::before,
body.is-checkout #WarenkorbAbsenden #AbholDiv::before { display: block; margin-bottom: 24px; padding-bottom: 16px; color: var(--ink); border-bottom: 1px solid var(--line); font: 700 27px/1.15 Georgia,"Times New Roman",serif; }
body.is-checkout #WarenkorbAbsenden #LieferDiv::before { content: "Lieferung"; }
body.is-checkout #WarenkorbAbsenden #AbholDiv::before { content: "Abholung"; }
body.is-checkout #form-Lieferung,
body.is-checkout #form-Abholung { display: grid !important; grid-template-columns: minmax(155px,190px) minmax(0,1fr) !important; align-items: center; gap: 13px 20px; width: 100% !important; margin: 0 !important; }
body.is-checkout #form-Lieferung > *,
body.is-checkout #form-Abholung > * { box-sizing: border-box; width: 100% !important; max-width: none !important; margin: 0 !important; float: none !important; }
body.is-checkout #form-Lieferung > .span12:empty,
body.is-checkout #form-Abholung > .span12:empty,
body.is-checkout #form-Lieferung > .cls:empty,
body.is-checkout #form-Abholung > .cls:empty { display: none !important; }
body.is-checkout #form-Lieferung > label,
body.is-checkout #form-Abholung > label { align-self: center; padding: 0 !important; color: var(--ink); font-size: 13px; font-weight: 800; line-height: 1.35; }
body.is-checkout #form-Lieferung input[type="text"],
body.is-checkout #form-Abholung input[type="text"],
body.is-checkout #form-Lieferung select,
body.is-checkout #form-Abholung select { width: 100% !important; height: 46px !important; min-height: 46px !important; margin: 0 !important; padding: 9px 13px !important; color: var(--ink) !important; background: #fff !important; border: 1px solid rgba(32,35,31,.2) !important; border-radius: 10px !important; font-family: -apple-system,BlinkMacSystemFont,"Segoe UI",Arial,sans-serif !important; font-size: 15px !important; font-weight: 500 !important; line-height: 1.35 !important; box-shadow: inset 0 1px 2px rgba(0,0,0,.03) !important; }
body.is-checkout #form-Lieferung input:focus,
body.is-checkout #form-Abholung input:focus,
body.is-checkout #form-Lieferung select:focus,
body.is-checkout #form-Abholung select:focus { border-color: var(--red) !important; outline: 3px solid rgba(189,52,43,.12); }
body.is-checkout #form-Lieferung > .span3,
body.is-checkout #form-Abholung > .span3 { grid-column: 2; justify-self: end; width: auto !important; margin-top: 8px !important; }
body.is-checkout #form-Lieferung button[type="submit"],
body.is-checkout #form-Abholung button[type="submit"] { width: auto !important; min-width: 245px; min-height: 48px !important; margin: 0 !important; padding: 10px 20px !important; color: #fff !important; background: var(--red) !important; border: 0 !important; border-radius: 12px !important; font-family: -apple-system,BlinkMacSystemFont,"Segoe UI",Arial,sans-serif !important; font-size: 15px !important; font-weight: 850 !important; line-height: 1.2 !important; text-align: center !important; text-shadow: none !important; box-shadow: 0 8px 18px rgba(189,52,43,.18) !important; }
body.is-checkout #form-Lieferung button[type="submit"]:hover,
body.is-checkout #form-Abholung button[type="submit"]:hover { background: var(--red-dark) !important; }
body.is-checkout #Mindestbestellwert { padding: 14px !important; color: var(--red-dark) !important; background: #fff1ef; border-radius: 10px; font-size: 13px; }
body.is-checkout #form-Lieferung #Mindestbestellwert,
body.is-checkout #form-Abholung #Mindestbestellwert { grid-column: 1/-1; }
body.is-checkout #WarenkorbAbsenden #Aktuell > .cls:last-child { display: none !important; }

body.is-checkout #WarenkorbZusammenfassung,
body.is-checkout #BestellAbschluss { position: static !important; width: min(100%,900px) !important; margin: 0 auto !important; padding: clamp(24px,4vw,42px) !important; color: var(--ink) !important; background: var(--paper) !important; border: 1px solid var(--line) !important; border-top: 4px solid var(--red) !important; border-radius: 18px !important; box-shadow: var(--shadow-sm) !important; }
body.is-checkout #WarenkorbZusammenfassung [class*="span"],
body.is-checkout #BestellAbschluss [class*="span"] { max-width: 100%; }
body.is-checkout #WarenkorbZusammenfassung button,
body.is-checkout #BestellAbschluss button { min-height: 48px; color: #fff !important; background: var(--red) !important; border: 0 !important; border-radius: 12px !important; text-shadow: none !important; }

body.checkout-step-3 .checkout-intro { max-width: 820px; }
body.is-checkout #BestellAbschluss.order-completion { width: min(100%,760px) !important; padding: clamp(28px,5vw,52px) !important; text-align: center !important; }
body.is-checkout #BestellAbschluss #ls-logo { display: none !important; }
.order-completion-icon { display: grid; place-items: center; width: 62px; height: 62px; margin: 0 auto 18px; color: #fff; background: var(--red); border-radius: 50%; box-shadow: 0 10px 24px rgba(189,52,43,.22); }
.order-completion-icon svg { width: 30px; height: 30px; fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
.order-completion-eyebrow { margin: 0 0 8px; color: var(--red); font-size: 11px; font-weight: 850; letter-spacing: .12em; text-transform: uppercase; }
.order-completion h2 { margin: 0; color: var(--ink); font: 700 clamp(28px,4vw,38px)/1.16 Georgia,"Times New Roman",serif; letter-spacing: -.02em; }
.order-completion-lead { max-width: 590px; margin: 13px auto 0; color: var(--muted); font-size: 15px; line-height: 1.65; }
.order-status-steps { position: relative; display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 12px; margin: 32px 0 0; padding: 0; list-style: none; text-align: left; }
.order-status-steps li { display: grid; grid-template-columns: 38px minmax(0,1fr); align-items: center; gap: 11px; min-height: 78px; padding: 13px 15px; color: var(--muted); background: var(--cream); border: 1px solid var(--line); border-radius: 13px; }
.order-status-steps li > span { display: grid; place-items: center; width: 38px; height: 38px; color: var(--muted); background: #fff; border: 1px solid var(--line); border-radius: 50%; font-size: 13px; font-weight: 900; }
.order-status-steps li strong,
.order-status-steps li small { display: block; }
.order-status-steps li strong { color: var(--ink); font-size: 14px; }
.order-status-steps li small { margin-top: 3px; font-size: 11px; line-height: 1.4; }
.order-status-steps li.is-complete { background: #f2f8f2; border-color: rgba(47,125,74,.2); }
.order-status-steps li.is-complete > span { color: #fff; background: #2f7d4a; border-color: #2f7d4a; }
.order-status-steps li.is-active { background: #fff8ed; border-color: rgba(189,52,43,.22); }
.order-status-steps li.is-active > span { color: var(--red); border-color: rgba(189,52,43,.28); box-shadow: 0 0 0 5px rgba(189,52,43,.07); }
.order-status-steps li.has-error { background: #fff1ef; border-color: rgba(189,52,43,.25); }
.order-status-steps li.has-error > span { color: #fff; background: var(--red); border-color: var(--red); }
.order-confirmed-time { display: grid; gap: 4px; margin-top: 16px; padding: 18px 20px; color: #fff; background: var(--ink); border-radius: 13px; }
.order-confirmed-time[hidden] { display: none !important; }
.order-confirmed-time-label { color: rgba(255,255,255,.64); font-size: 10px; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; }
.order-confirmed-time strong { font: 700 26px/1.2 Georgia,"Times New Roman",serif; }
.order-completion-note { margin: 22px auto 0; color: var(--muted); font-size: 12px; line-height: 1.55; }
.order-completion-back { display: inline-flex; align-items: center; justify-content: center; min-height: 46px; margin-top: 20px; padding: 10px 19px; color: var(--ink) !important; background: #fff; border: 1px solid rgba(32,35,31,.18); border-radius: 999px; font-size: 13px; font-weight: 800; text-decoration: none; }
.order-completion-back:hover { color: var(--red) !important; border-color: rgba(189,52,43,.35); }

/* Order review: contain all legacy floats and present the final choices as one
   coherent card instead of allowing payment and consent controls to escape. */
body.is-checkout #WarenkorbZusammenfassung { overflow: hidden; }
body.is-checkout #WarenkorbZusammenfassung #ls-logo { display: none !important; }
body.is-checkout #WarenkorbZusammenfassung > .ZusammenfassungDiv:first-of-type { margin: 0 0 22px; }
body.is-checkout #WarenkorbZusammenfassung > .ZusammenfassungDiv:first-of-type input[type="button"] { min-height: 42px; padding: 8px 15px; color: var(--ink) !important; background: var(--cream) !important; border: 1px solid var(--line) !important; border-radius: 10px; font-size: 13px; font-weight: 800; cursor: pointer; }
body.is-checkout #WarenkorbZusammenfassung > .ZusammenfassungDiv:first-of-type input[type="button"]:hover { color: var(--red) !important; background: #fff !important; border-color: rgba(189,52,43,.35) !important; }
body.is-checkout #WarenkorbZusammenfassung #GesamtPreis { display: flex; align-items: center; justify-content: space-between; gap: 18px; margin: 26px 0 0 !important; padding: 16px 18px; color: var(--ink); background: var(--cream); border: 1px solid var(--line); border-radius: 12px; font-size: 14px; font-weight: 800; }
body.is-checkout #WarenkorbZusammenfassung #GesamtPreis span { color: var(--red-dark); font-size: 21px; font-weight: 900; }
body.is-checkout #form-Bestellung { display: grid; gap: 20px; width: 100%; margin: 24px 0 0; clear: both; }
body.is-checkout #form-Bestellung > .ZusammenfassungDiv { display: grid; grid-template-columns: minmax(0,1fr); gap: 9px; width: 100% !important; margin: 0 !important; padding: 0 !important; float: none !important; }
body.is-checkout #form-Bestellung .checkout-note-label { width: auto !important; margin: 0 !important; padding: 0 !important; float: none !important; color: var(--ink); font-size: 13px; font-weight: 850; }
body.is-checkout #form-Bestellung .checkout-note-field { width: 100% !important; margin: 0 !important; float: none !important; }
body.is-checkout #form-Bestellung #Bestellung_Anmerkung { box-sizing: border-box; display: block; width: 100% !important; min-height: 104px; margin: 0 !important; padding: 12px 14px; resize: vertical; color: var(--ink); background: #fff; border: 1px solid rgba(32,35,31,.2); border-radius: 10px; font-size: 14px; line-height: 1.45; box-shadow: inset 0 1px 2px rgba(0,0,0,.03); }
body.is-checkout #form-Bestellung #Bestellung_Anmerkung:focus { border-color: var(--red); outline: 3px solid rgba(189,52,43,.12); }
body.is-checkout #form-Bestellung .checkout-payment { min-width: 0; margin: 12px 0 0; padding: 20px; background: var(--cream); border: 1px solid var(--line); border-radius: 14px; }
body.is-checkout #form-Bestellung .checkout-payment legend { width: auto; margin: 0; padding: 0 8px; color: var(--ink); border: 0; font-size: 14px; font-weight: 900; line-height: 1.3; }
body.is-checkout #form-Bestellung .checkout-payment-options { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 12px; }
body.is-checkout #form-Bestellung .Zahlungsart_Button { position: relative; box-sizing: border-box; display: grid; grid-template-columns: 42px minmax(0,1fr) 22px; align-items: center; gap: 12px; width: 100% !important; height: auto !important; min-height: 78px; margin: 0 !important; padding: 13px 15px !important; float: none !important; color: var(--ink); background: #fff; border: 1px solid rgba(32,35,31,.16) !important; border-radius: 12px; font-size: 14px; line-height: 1.3; text-align: left; cursor: pointer; transition: border-color .18s,box-shadow .18s,transform .18s; }
body.is-checkout #form-Bestellung .Zahlungsart_Button:hover { border-color: rgba(189,52,43,.42) !important; transform: translateY(-1px); }
body.is-checkout #form-Bestellung .Zahlungsart_Button:has(input:checked) { background: #fff; border-color: var(--red) !important; box-shadow: 0 0 0 2px rgba(189,52,43,.1); }
body.is-checkout #form-Bestellung .Zahlungsart_Button i { display: grid; place-items: center; width: 42px; height: 42px; margin: 0; color: var(--ink); background: #fff3df; border-radius: 10px; font-size: 23px; }
body.is-checkout #form-Bestellung .Zahlungsart_Button input[type="radio"] { grid-column: 3; width: 20px !important; height: 20px !important; min-height: 0; margin: 0 !important; padding: 0 !important; accent-color: var(--red); box-shadow: none; }
body.is-checkout #form-Bestellung .checkout-consent { display: grid; grid-template-columns: 20px minmax(0,1fr); align-items: start; gap: 12px; width: 100% !important; margin: 0 !important; padding: 16px 18px; float: none !important; color: var(--ink); background: #fff; border: 1px solid var(--line); border-radius: 12px; }
body.is-checkout #form-Bestellung .checkout-consent input[type="checkbox"] { width: 18px !important; height: 18px !important; min-height: 0; margin: 2px 0 0 !important; padding: 0 !important; accent-color: var(--red); box-shadow: none; }
body.is-checkout #form-Bestellung .checkout-consent .DatenschutzText { display: block; margin: 0; color: var(--muted) !important; font-size: 12px; font-weight: 500; line-height: 1.6; }
body.is-checkout #form-Bestellung .checkout-consent a { color: var(--red) !important; font-weight: 750; overflow-wrap: anywhere; }
body.is-checkout #form-Bestellung #confirmButton { justify-self: end; min-width: 230px; margin: 0 !important; padding: 11px 22px; font-size: 15px; font-weight: 850; box-shadow: 0 8px 18px rgba(189,52,43,.18) !important; }
body.is-checkout #form-Bestellung #confirmButton:hover { background: var(--red-dark) !important; }

.ui-dialog { position: fixed !important; top: 50% !important; left: 50% !important; max-width: calc(100vw - 24px) !important; max-height: calc(100vh - 24px) !important; overflow: hidden !important; background: var(--paper) !important; border: 1px solid rgba(32,35,31,.14) !important; border-radius: 20px !important; box-shadow: 0 28px 80px rgba(18,19,17,.28) !important; transform: translate(-50%,-50%); }
.ui-widget-overlay { position: fixed !important; inset: 0 !important; width: auto !important; height: auto !important; background: rgba(24,25,22,.58) !important; opacity: 1 !important; backdrop-filter: blur(3px); }
.ui-dialog .ui-dialog-titlebar { position: relative; min-height: 68px; padding: 21px 70px 18px 24px !important; color: var(--ink) !important; background: var(--paper) !important; border: 0 !important; border-bottom: 1px solid var(--line) !important; border-radius: 0 !important; }
.ui-dialog .ui-dialog-title { color: var(--ink) !important; font: 700 20px/1.3 Georgia,"Times New Roman",serif !important; }
.ui-dialog .ui-dialog-titlebar-close { position: absolute !important; top: 15px !important; right: 16px !important; display: grid !important; place-items: center; width: 38px !important; height: 38px !important; min-height: 38px !important; margin: 0 !important; padding: 0 !important; overflow: visible !important; color: #fff !important; background: var(--red) !important; border: 0 !important; border-radius: 10px !important; outline: 0 !important; box-shadow: none !important; text-indent: 0 !important; cursor: pointer; }
.ui-dialog .ui-dialog-titlebar-close:hover { color: #fff !important; background: var(--red-dark) !important; }
.ui-dialog .ui-dialog-titlebar-close:focus-visible { outline: 0 !important; box-shadow: inset 0 0 0 2px rgba(255,255,255,.65) !important; }
.ui-dialog .ui-dialog-titlebar-close .ui-icon { display: none !important; }
.modern-dialog-close-icon { position: relative; display: block; width: 16px; height: 16px; }
.modern-dialog-close-icon::before,
.modern-dialog-close-icon::after { content: ""; position: absolute; top: 7px; left: 0; width: 16px; height: 2px; background: currentColor; border-radius: 2px; }
.modern-dialog-close-icon::before { transform: rotate(45deg); }
.modern-dialog-close-icon::after { transform: rotate(-45deg); }
.ui-dialog .ui-dialog-content { max-height: calc(100vh - 92px) !important; padding: 24px !important; overflow: auto !important; background: var(--paper) !important; }
.ui-dialog .ui-dialog-buttonpane { margin: 0 !important; padding: 13px 18px !important; background: var(--cream); border: 0; }

/* Opening-status dialog */
.ui-dialog.hours-dialog-window { box-sizing: border-box !important; width: calc(100vw - 24px) !important; max-width: 660px !important; height: auto !important; border-top: 4px solid var(--red) !important; }
.hours-dialog-window .ui-dialog-content,
.ui-dialog dialog#oeffnungszeiten-details { height: auto !important; min-height: 0 !important; }
.hours-dialog-window .ui-dialog-titlebar { min-height: 64px; padding: 19px 68px 17px 28px !important; }
.hours-dialog-window .ui-dialog-title { font-size: 22px !important; }
.hours-dialog-window .ui-dialog-titlebar-close { top: 14px !important; right: 18px !important; width: 34px !important; height: 34px !important; min-height: 34px !important; color: var(--ink) !important; background: #f6f1e8 !important; border: 1px solid rgba(32,35,31,.13) !important; border-radius: 50% !important; }
.hours-dialog-window .ui-dialog-titlebar-close:hover { color: #fff !important; background: var(--red) !important; border-color: var(--red) !important; }
.hours-dialog-window .modern-dialog-close-icon,
.hours-dialog-window .modern-dialog-close-icon::before,
.hours-dialog-window .modern-dialog-close-icon::after { width: 14px; }
.hours-dialog-window .modern-dialog-close-icon::before,
.hours-dialog-window .modern-dialog-close-icon::after { top: 7px; height: 1.5px; }
.hours-dialog-window .ui-dialog-content { padding: 30px 32px 32px !important; }
body .ui-dialog #oeffnungszeiten-details #Aktuell { width: auto !important; min-height: 0 !important; margin: 0 !important; padding: 0 !important; float: none !important; text-align: left !important; }
.opening-status-card { box-sizing: border-box; position: relative; display: grid; grid-template-columns: 48px minmax(0,1fr); align-items: start; gap: 17px; width: 100%; margin: 0; padding: 2px 0 0 18px; color: var(--ink); background: transparent; border: 0; border-left: 3px solid var(--red); border-radius: 0; box-shadow: none; text-align: left; }
.opening-status-icon { display: grid; place-items: center; width: 48px; height: 48px; color: var(--red); background: #fff0ed; border: 1px solid rgba(189,52,43,.1); border-radius: 50%; box-shadow: none; }
.opening-status-icon svg { width: 23px; height: 23px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.opening-status-content { display: grid; min-width: 0; }
.opening-status-eyebrow { margin: 2px 0 8px; color: var(--red); font-size: 10px; font-weight: 850; letter-spacing: .14em; text-transform: uppercase; }
.opening-status-title { color: var(--ink); font: 700 24px/1.38 Georgia,"Times New Roman",serif; letter-spacing: -.012em; white-space: normal; overflow-wrap: break-word; }
.opening-status-time { display: inline; margin: 0; padding: 0; color: var(--red); background: transparent; border-bottom: 2px solid rgba(189,52,43,.22); border-radius: 0; font: inherit; white-space: nowrap; }
.opening-status-note { display: flex; align-items: center; gap: 9px; margin-top: 20px; padding: 12px 14px; color: var(--muted); background: var(--cream); border: 1px solid var(--line); border-radius: 10px; font-size: 12px; font-weight: 650; line-height: 1.45; }
.opening-status-note > span { display: grid; flex: 0 0 20px; place-items: center; width: 20px; height: 20px; color: var(--red); background: #fff; border: 1px solid rgba(189,52,43,.14); border-radius: 50%; font-size: 11px; font-weight: 900; }

/* Dish configurator */
.ui-dialog.menu-item-dialog-window { flex-direction: column; width: min(820px,calc(100vw - 32px)) !important; height: auto !important; max-height: calc(100vh - 24px) !important; }
.ui-dialog.menu-item-dialog-window.is-open { display: flex !important; }
.menu-item-dialog-window .ui-dialog-titlebar,
.menu-item-dialog-window .ui-dialog-buttonpane { flex: 0 0 auto; }
.menu-item-dialog-window .ui-dialog-titlebar { min-height: 74px; padding: 24px 78px 20px 30px !important; }
.menu-item-dialog-window .ui-dialog-title { font-size: 23px !important; }
.menu-item-dialog-window .ui-dialog-content { flex: 1 1 auto; display: grid !important; grid-template-columns: repeat(2,minmax(0,1fr)); align-content: start; gap: 12px; height: auto !important; max-height: none !important; min-height: 0 !important; padding: 26px 30px 30px !important; overflow-y: auto !important; }
.menu-item-dialog > input[type="hidden"] { display: none !important; }
.menu-item-dialog > .cls { display: none !important; }
.dialog-product-summary { grid-column: 1/-1; display: grid; grid-template-columns: minmax(0,1fr) auto; align-items: center; gap: 5px 20px; min-height: 90px; margin-bottom: 4px; padding: 20px 22px; color: #fff; background: var(--ink); border-radius: 16px; box-shadow: 0 12px 28px rgba(32,35,31,.14); }
.dialog-product-summary > * { position: static !important; width: auto !important; margin: 0 !important; float: none !important; inline-size: auto !important; opacity: 1 !important; visibility: visible !important; }
.dialog-dish-name { min-width: 0; font: 700 23px/1.2 Georgia,"Times New Roman",serif; }
.dialog-dish-size { grid-column: 1; color: rgba(255,255,255,.6); font-size: 11px; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.dialog-product-summary .DialogPreis { grid-column: 2; grid-row: 1/3; display: inline-flex; align-items: center; justify-content: center; min-width: 94px; min-height: 46px; padding: 8px 15px; color: #fff; background: var(--red); border-radius: 999px; font-size: 18px; font-weight: 900; box-shadow: 0 7px 18px rgba(189,52,43,.3); }
.dialog-quantity-field { grid-column: 1/-1; display: flex; align-items: center; justify-content: space-between; gap: 20px; margin-top: 2px; padding: 15px 18px; background: var(--cream); border: 1px solid var(--line); border-radius: 14px; }
.dialog-quantity-field > label,
.dialog-note-field > label { margin: 0 !important; color: var(--ink); font-size: 13px; font-weight: 850; }
.dialog-quantity-stepper { display: grid; grid-template-columns: 42px 52px 42px; align-items: center; overflow: hidden; background: #fff; border: 1px solid rgba(32,35,31,.17); border-radius: 999px; box-shadow: 0 3px 12px rgba(32,35,31,.06); }
.menu-item-dialog .dialog-quantity-stepper button { display: grid; place-items: center; width: 42px !important; height: 42px !important; min-height: 42px !important; margin: 0 !important; padding: 0 !important; color: var(--ink) !important; background: transparent !important; border: 0 !important; border-radius: 0 !important; font-size: 20px; font-weight: 800; line-height: 1; box-shadow: none !important; }
.menu-item-dialog .dialog-quantity-stepper button:hover { color: #fff !important; background: var(--red) !important; }
.menu-item-dialog .dialog-quantity-stepper input[id^="Dialog_Anzahl_"] { width: 52px !important; height: 42px !important; min-height: 42px !important; margin: 0 !important; padding: 0 !important; color: var(--ink); background: #fff; border: 0 !important; border-right: 1px solid var(--line) !important; border-left: 1px solid var(--line) !important; border-radius: 0 !important; font-size: 16px; font-weight: 900; text-align: center; box-shadow: none !important; appearance: textfield; }
.dialog-note-field { grid-column: 1/-1; display: grid; gap: 9px; padding: 16px 18px 18px; background: #fff; border: 1px solid var(--line); border-radius: 14px; }
.dialog-note-field .Extras_Anmerkung { margin: -3px 0 1px; color: var(--muted); font-size: 11px; font-style: normal; line-height: 1.4; }
.menu-item-dialog .dialog-note-field textarea { box-sizing: border-box; width: 100% !important; min-height: 88px !important; margin: 0 !important; padding: 12px 14px !important; resize: vertical; color: var(--ink); background: var(--cream); border: 1px solid rgba(32,35,31,.18) !important; border-radius: 10px !important; font: 400 14px/1.45 -apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif; box-shadow: inset 0 1px 2px rgba(0,0,0,.025); }
.menu-item-dialog .dialog-note-field textarea:focus { background: #fff; border-color: var(--red) !important; outline: 3px solid rgba(189,52,43,.11); }
.menu-item-dialog > label[class*="span"] { grid-column: 1/-1; width: auto !important; margin: 12px 0 0 !important; padding: 0 !important; float: none !important; color: var(--ink); font: 700 21px/1.25 Georgia,"Times New Roman",serif; }
.menu-item-dialog > .span2,
.menu-item-dialog > .span3 { position: relative; box-sizing: border-box; width: auto !important; min-width: 0; min-height: 48px; margin: 0 !important; padding: 12px 13px !important; float: none !important; background: var(--cream); border: 1px solid var(--line); border-radius: 11px; font-size: 13px; line-height: 1.35; transition: border-color .18s,background .18s,transform .18s; }
.menu-item-dialog > .span2:hover,
.menu-item-dialog > .span3:hover { background: #fff; border-color: rgba(189,52,43,.35); transform: translateY(-1px); }
.menu-item-dialog > .span2 input,
.menu-item-dialog > .span3 input { width: 17px; height: 17px; margin: 1px 8px 0 0; accent-color: var(--red); vertical-align: top; }
.menu-item-dialog > .span2 label,
.menu-item-dialog > .span3 label { display: inline; margin: 0; color: var(--ink); font-size: 13px; font-weight: 750; }
.menu-item-dialog-window .ui-dialog-buttonpane { padding: 16px 30px 20px !important; background: var(--paper); border-top: 1px solid var(--line); }
.menu-item-dialog-window .ui-dialog-buttonset { display: flex; justify-content: flex-end; gap: 10px; width: 100%; float: none !important; }
.menu-item-dialog-window .ui-dialog-buttonset button { min-height: 48px; margin: 0 !important; padding: 10px 20px !important; border-radius: 12px !important; font-size: 14px; font-weight: 850; text-shadow: none !important; box-shadow: none !important; }
.menu-item-dialog-window .ui-dialog-buttonset button:first-child { order: 2; min-width: 230px; color: #fff !important; background: var(--red) !important; border: 1px solid var(--red) !important; }
.menu-item-dialog-window .ui-dialog-buttonset button:first-child:hover { background: var(--red-dark) !important; border-color: var(--red-dark) !important; }
.menu-item-dialog-window .ui-dialog-buttonset button:last-child { order: 1; color: var(--ink) !important; background: #fff !important; border: 1px solid rgba(32,35,31,.18) !important; }
.menu-item-dialog-window .ui-dialog-buttonset button:last-child:hover { background: var(--cream) !important; border-color: rgba(32,35,31,.3) !important; }
#lieferdienst-details, #oeffnungszeiten-details { max-width: 100%; color: var(--ink); }
#lieferdienst-details #LieferdienstName { color: var(--ink) !important; font: 700 30px/1.12 Georgia,"Times New Roman",serif !important; text-align: left !important; }
body .ui-dialog #lieferdienst-details #Slogan { margin: 14px 0 !important; padding: 14px 16px; color: var(--ink) !important; background: var(--cream); border-radius: 12px; font-family: -apple-system,BlinkMacSystemFont,"Segoe UI",Arial,sans-serif !important; font-size: 16px !important; font-weight: 750 !important; line-height: 1.45 !important; text-align: left !important; }
body .ui-dialog #lieferdienst-details #Slogan * { font-family: inherit !important; }
body .ui-dialog #lieferdienst-details #Adresse { margin: 14px 0 24px !important; padding: 16px; color: var(--ink) !important; background: #fff; border: 1px solid var(--line); border-radius: 12px; font-size: 15px !important; line-height: 1.5 !important; text-align: left !important; }
#lieferdienst-details #Liefergebiete h3 { margin: 0 0 12px; color: var(--ink); font: 700 23px/1.2 Georgia,"Times New Roman",serif; }
#lieferdienst-details #Liefergebiete { margin-top: 22px; overflow-x: auto; }
#lieferdienst-details #Liefergebiete table { width: 100%; min-width: 560px; border-collapse: collapse; }
#lieferdienst-details #Liefergebiete th, #lieferdienst-details #Liefergebiete td { padding: 9px; border-bottom: 1px solid var(--line); text-align: left; }
#oeffnungszeiten-details #Lieferung, #oeffnungszeiten-details #Abholung { width: auto; margin: 18px 0; padding: 18px; float: none; background: var(--cream); border-radius: 12px; }
.shop-data-dialog .source-lieferdienstname { color: var(--red) !important; font: 700 30px/1.2 Georgia,"Times New Roman",serif; }
.shop-data-dialog .source-slogan, .shop-data-dialog .source-adresse { margin: 12px 0; }
.shop-data-dialog .source-liefergebiete { margin-top: 22px; overflow-x: auto; }
.shop-data-dialog .source-liefergebiete table { width: 100%; min-width: 560px; border-collapse: collapse; }
.shop-data-dialog .source-liefergebiete th, .shop-data-dialog .source-liefergebiete td { padding: 9px; border-bottom: 1px solid var(--line); text-align: left; }
.shop-data-dialog .source-aktuell, .shop-data-dialog .source-lieferung, .shop-data-dialog .source-abholung { width: auto; margin: 12px 0; padding: 18px; float: none; background: var(--cream); border-radius: 12px; }

.site-footer { color: rgba(255,255,255,.77); background: #202820; }
.footer-inner { width: min(calc(100% - 40px),var(--content)); margin: auto; padding: 48px 0; display: grid; grid-template-columns: minmax(240px,1fr) minmax(150px,auto) minmax(0,1fr); align-items: center; gap: 50px; }
.footer-brand { display: flex; align-items: center; gap: 12px; }
body.milanos-site .footer-brand img { width: 132px !important; height: 86px !important; max-width: 132px !important; padding: 6px 8px; object-fit: contain; background: var(--paper); border-radius: 10px; }
.footer-brand div { display: grid; }
.footer-brand strong { color: #fff; font: 700 22px/1.1 Georgia,"Times New Roman",serif; }
.footer-brand span { margin-top: 4px; color: rgba(255,255,255,.48); font-size: 11px; letter-spacing: .1em; text-transform: uppercase; }
.site-footer address { font-style: normal; font-size: 14px; }
.site-footer a { color: #fff !important; }
.footer-navigation ul { display: flex; flex-wrap: wrap; gap: 10px 18px; min-width: 0; padding: 0; margin: 0; list-style: none; }
.footer-navigation li,
.footer-navigation a { max-width: 100%; overflow-wrap: anywhere; white-space: normal; }
.footer-navigation a { font-size: 13px; text-decoration: none; }
.footer-navigation { display: flex; flex-wrap: wrap; align-items: center; justify-content: flex-end; gap: 10px 18px; min-width: 0; }
.footer-consent-settings { max-width: 100%; padding: 0; color: #fff; background: transparent; border: 0; font: inherit; font-size: 13px; overflow-wrap: anywhere; white-space: normal; cursor: pointer; }
.footer-consent-settings:hover,
.footer-consent-settings:focus { text-decoration: underline; }
.footer-bottom { min-height: 62px; padding: 12px 20px; display: flex; align-items: center; justify-content: center; gap: 24px; color: rgba(255,255,255,.5); background: rgba(0,0,0,.16); font-size: 11px; letter-spacing: .04em; text-align: center; }
.deliveryking-credit { display: inline-flex; align-items: center; gap: 9px; color: rgba(255,255,255,.58) !important; text-decoration: none; }
.deliveryking-credit:hover { color: #fff !important; }
body.milanos-site .deliveryking-credit img { width: 118px !important; height: 25px !important; max-width: 118px !important; object-fit: contain; }
.back-to-top { position: fixed; z-index: 800; right: 22px; bottom: 22px; display: grid; place-items: center; width: 44px; height: 44px; padding: 0; color: #fff; background: var(--red); border: 0; border-radius: 50%; box-shadow: 0 10px 25px rgba(0,0,0,.18); opacity: 0; visibility: hidden; transform: translateY(10px); transition: .2s; }
.back-to-top.is-visible { opacity: 1; visibility: visible; transform: none; }
.back-to-top svg { width: 20px; fill: none; stroke: currentColor; stroke-width: 2; }
.modern-cart-toggle { display: none; }

@media (min-width: 1210px) {
  body ul.KategorieNav { display: grid !important; grid-template-columns: repeat(6,minmax(0,1fr)); gap: 6px !important; padding: 8px !important; overflow: visible !important; }
  body ul.KategorieNav li { min-width: 0; }
  body ul.KategorieNav a { padding: 9px 8px !important; font-size: 12px !important; text-align: center; }
  .GerichtKategorie { scroll-margin-top: 214px; }
  .Warenkorb { top: 210px !important; max-height: calc(100vh - 226px) !important; }
}

@media (max-width: 1209px) {
  .menu-layout { display: block; }
  #Speisekarten_Div { width: 100% !important; }
  body ul.KategorieNav { top: 80px !important; width: 100% !important; }
  body.is-cart-open::after { content: ""; position: fixed; z-index: 900; inset: 0; background: rgba(24,25,22,.5); backdrop-filter: blur(2px); }
  .Warenkorb { position: fixed !important; z-index: 930 !important; display: none !important; top: 0 !important; right: 0 !important; bottom: 0 !important; width: min(420px,92vw) !important; max-width: 420px; height: auto !important; max-height: none !important; padding-top: 22px !important; border-right: 0 !important; border-radius: 20px 0 0 20px !important; }
  .Warenkorb.is-mobile-open { display: block !important; opacity: 1 !important; visibility: visible !important; transform: none !important; }
  #WarenkorbButton, .modern-cart-toggle { position: fixed; z-index: 730; right: 14px !important; bottom: 14px !important; display: inline-flex !important; align-items: center; justify-content: center; min-height: 48px; height: auto !important; padding: 13px 19px !important; color: #fff !important; background: var(--red) !important; border: 0; border-radius: 999px !important; font-weight: 800; box-shadow: 0 10px 28px rgba(32,35,31,.25) !important; }
  .back-to-top { right: 17px; bottom: 78px; }
  body.is-cart-open #WarenkorbButton,
  body.is-cart-open .modern-cart-toggle { opacity: 0 !important; visibility: hidden !important; pointer-events: none !important; }
  #WarenkorbClose { position: absolute; top: 16px; right: 16px; display: grid !important; place-items: center; width: 36px !important; height: 36px !important; min-height: 36px !important; margin: 0 !important; padding: 0 !important; color: var(--ink) !important; background: var(--cream) !important; border: 1px solid var(--line) !important; border-radius: 50% !important; box-shadow: none !important; cursor: pointer; }
  #WarenkorbClose:hover { color: #fff !important; background: var(--red) !important; border-color: var(--red) !important; }
  #WarenkorbClose span { position: relative; display: block; width: 13px; height: 13px; }
  #WarenkorbClose span::before,
  #WarenkorbClose span::after { content: ""; position: absolute; top: 5.5px; left: 0; width: 13px; height: 2px; background: currentColor; border-radius: 2px; }
  #WarenkorbClose span::before { transform: rotate(45deg); }
  #WarenkorbClose span::after { transform: rotate(-45deg); }
  .Warenkorb h2 { padding-right: 44px !important; }
}

@media (max-width: 900px) {
  html { scroll-padding-top: 80px; }
  .checkout-header-inner { grid-template-columns: auto 1fr auto; min-height: 86px; gap: 16px; }
  .checkout-label { display: none; }
  .checkout-progress { justify-self: center; }
  .checkout-progress li { font-size: 0; }
  .checkout-progress li + li { margin-left: 34px; }
  .checkout-progress li + li::before { right: calc(100% + 7px); width: 20px; }
  .header-inner { min-height: 80px; }
  body.milanos-site .brand-logo { width: 104px !important; height: 70px !important; max-width: 104px !important; }
  .brand-name { font-size: 23px; }
  .header-call .call-copy { display: none; }
  .header-call { order: 3; width: 44px; height: 44px; justify-content: center; padding: 0; }
  .nav-toggle { display: block; order: 2; }
  .site-navigation { position: absolute; left: 20px; right: 20px; top: calc(100% + 8px); display: none; padding: 12px; background: var(--paper); border: 1px solid var(--line); border-radius: 14px; box-shadow: var(--shadow-lg); }
  .site-navigation.is-open { display: grid; }
  .site-navigation ul { display: grid; }
  .site-navigation a { padding: 12px 14px; }
  .header-info-links { display: grid; gap: 2px; padding: 8px 0 0; border-top: 1px solid var(--line); border-left: 0; }
  .header-info-links button { padding: 11px 14px; text-align: left; }
  .hero { padding-top: 54px; }
  .hero-inner { min-height: 380px; grid-template-columns: 1fr .82fr; gap: 28px; }
  .hero-copy { padding-bottom: 50px; }
  .hero-visual { min-height: 330px; }
  body.milanos-site .hero-visual > img { min-height: 330px; }
  .service-strip > div { padding: 17px 20px; }
  .footer-inner { grid-template-columns: 1fr 1fr; }
  .footer-navigation { grid-column: 1/-1; }
}

@media (max-width: 680px) {
  .review-banner { display: grid; gap: 0; }
  .auth-shell { width: calc(100% - 24px); margin: 32px auto 64px; padding: 28px 22px; border-radius: 15px; }
  .auth-heading { margin-bottom: 26px; }
  .auth-heading h1 { font-size: 36px; }
  .legal-shell { width: calc(100% - 24px); padding: 32px 0 64px; }
  .legal-shell > .span10 { padding: 28px 22px; border-radius: 15px; }
  .legal-shell h1 { margin-bottom: 28px; font-size: clamp(30px,8vw,36px); hyphens: auto; overflow-wrap: normal; }
  .legal-shell h2 { margin-top: 34px; font-size: 25px; hyphens: auto; }
  .legal-shell h3 { margin-top: 26px !important; font-size: 21px; hyphens: auto; }
  .legal-shell h4 { font-size: 17px; hyphens: auto; }
  .legal-shell p,
  .legal-shell li { font-size: 15px; line-height: 1.7; }
  .checkout-header-inner { width: calc(100% - 24px); min-height: 76px; grid-template-columns: auto 1fr; gap: 12px; }
  body.milanos-site .checkout-brand img { width: 86px !important; height: 58px !important; max-width: 86px !important; }
  .checkout-progress { justify-self: end; }
  .checkout-progress li > span { width: 27px; height: 27px; font-size: 11px; }
  .checkout-progress li + li { margin-left: 24px; }
  .checkout-progress li + li::before { right: calc(100% + 5px); width: 14px; }
  .checkout-back { grid-column: 1/-1; justify-content: center; min-height: 34px; margin: -5px 0 10px; padding: 0; border: 0; border-radius: 0; }
  .checkout-shell { width: calc(100% - 24px); padding: 38px 0 70px; }
  .checkout-intro { margin-bottom: 24px; }
  .checkout-intro h1 { font-size: 37px; }
  .checkout-intro > p:last-child { font-size: 14px; }
  body.is-checkout #WarenkorbAbsenden #Aktuell { grid-template-columns: minmax(0,1fr); gap: 14px; }
  body.is-checkout #WarenkorbAbsenden #Aktuell > div:first-of-type { grid-column: auto; padding: 15px 16px !important; font-size: 14px !important; }
  body.is-checkout .fulfillment-picker { grid-column: auto; }
  body.is-checkout .fulfillment-options { grid-template-columns: minmax(0,1fr); gap: 10px; }
  body.is-checkout .fulfillment-option { min-height: 78px; padding: 13px 14px; }
  body.is-checkout .fulfillment-icon { width: 44px; height: 44px; }
  body.is-checkout .fulfillment-copy strong { font-size: 19px; }
  body.is-checkout #WarenkorbAbsenden #Lieferung,
  body.is-checkout #WarenkorbAbsenden #Abholung { min-height: 0; }
  body.is-checkout #WarenkorbAbsenden #LieferDiv,
  body.is-checkout #WarenkorbAbsenden #AbholDiv { padding: 21px 18px 23px !important; }
  body.is-checkout #WarenkorbAbsenden #LieferDiv::before,
  body.is-checkout #WarenkorbAbsenden #AbholDiv::before { margin-bottom: 18px; padding-bottom: 13px; font-size: 25px; }
  body.is-checkout #form-Lieferung,
  body.is-checkout #form-Abholung { grid-template-columns: minmax(0,1fr) !important; gap: 8px; }
  body.is-checkout #form-Lieferung > label,
  body.is-checkout #form-Abholung > label { padding-top: 8px !important; }
  body.is-checkout #form-Lieferung > .span3,
  body.is-checkout #form-Abholung > .span3 { grid-column: auto; justify-self: stretch; width: 100% !important; margin-top: 12px !important; }
  body.is-checkout #form-Lieferung button[type="submit"],
  body.is-checkout #form-Abholung button[type="submit"] { width: 100% !important; min-width: 0; }
  body.is-checkout #WarenkorbZusammenfassung { padding: 23px 18px !important; }
  body.is-checkout #WarenkorbZusammenfassung #GesamtPreis { padding: 14px; }
  body.is-checkout #form-Bestellung .checkout-payment { padding: 16px 14px; }
  body.is-checkout #form-Bestellung .checkout-payment-options { grid-template-columns: minmax(0,1fr); gap: 9px; }
  body.is-checkout #form-Bestellung .Zahlungsart_Button { min-height: 68px; padding: 10px 12px !important; }
  body.is-checkout #form-Bestellung .checkout-consent { padding: 14px; }
  body.is-checkout #form-Bestellung #confirmButton { justify-self: stretch; width: 100%; min-width: 0; }
  body.is-checkout #BestellAbschluss.order-completion { padding: 28px 18px !important; }
  .order-completion-icon { width: 54px; height: 54px; margin-bottom: 15px; }
  .order-completion h2 { font-size: 29px; }
  .order-completion-lead { font-size: 14px; }
  .order-status-steps { grid-template-columns: minmax(0,1fr); margin-top: 24px; }
  .order-status-steps li { min-height: 70px; }
  .header-inner { width: min(calc(100% - 24px),var(--content)); gap: 9px; }
  .brand { gap: 8px; }
  body.milanos-site .brand-logo { width: 94px !important; height: 66px !important; max-width: 94px !important; }
  .brand-tagline { display: none; }
  .hero { padding: 46px 18px 0; }
  .hero-inner { display: grid; grid-template-columns: minmax(0,1fr); width: 100% !important; min-width: 0 !important; max-width: 100% !important; min-height: 0; gap: 30px; }
  .hero-copy { width: 100% !important; min-width: 0 !important; max-width: 100% !important; padding-bottom: 0; }
  .hero h1 { width: 100% !important; max-width: 100% !important; font-size: clamp(40px,12vw,52px); overflow-wrap: anywhere; }
  .hero-text { width: 100% !important; max-width: 100% !important; margin: 18px 0 25px; font-size: 16px; }
  .hero-visual { min-height: 270px; margin: 0 -18px; border-radius: 0; box-shadow: none; }
  body.milanos-site .hero-visual > img { min-height: 270px; max-height: 310px; }
  .review-proof { left: 18px; right: 18px; bottom: 18px; }
  .service-strip { grid-template-columns: 1fr; border-radius: 14px 14px 0 0; }
  .service-strip > div { padding: 14px 20px; }
  .service-strip > div + div::before { top: 0; left: 20px; width: calc(100% - 40px); height: 0; border: 0; border-top: 1px solid rgba(255,255,255,.14); }
  .menu-shell { width: min(calc(100% - 24px),var(--content)); padding: 58px 0 78px; }
  .section-heading { margin-bottom: 30px; }
  .section-heading h2 { font-size: 39px; }
  body ul.KategorieNav { top: 76px !important; }
  #Speisekarten_Div .gericht { align-items: flex-start; flex-wrap: wrap; padding: 14px !important; }
  #Speisekarten_Div .gericht > [class*="span"]:first-child { flex-basis: 100%; }
  #Speisekarten_Div .gericht > .span2 { flex: 1 1 calc(50% - 6px); width: auto !important; }
  .GerichtFoto { width: 68px !important; }
  #Speisekarten_Div input.PreisButton { min-height: 44px; }
  .component-area { width: min(calc(100% - 24px),var(--content)); }
  .footer-inner { grid-template-columns: 1fr; gap: 28px; padding: 38px 0; }
  .footer-brand { align-items: center; }
  body.milanos-site .footer-brand img { width: 118px !important; height: 78px !important; max-width: 118px !important; flex: 0 0 118px; }
  .footer-brand > div { min-width: 0; }
  .footer-brand strong { font-size: 18px; overflow-wrap: anywhere; }
  .footer-navigation { grid-column: auto; }
  .footer-navigation ul { flex-wrap: wrap; }
  .footer-bottom { flex-wrap: wrap; gap: 8px 18px; padding-block: 14px; }
  .ui-dialog .ui-dialog-titlebar { min-height: 64px; padding: 19px 62px 16px 20px !important; }
  .ui-dialog .ui-dialog-title { display: block; overflow: hidden; font-size: 18px !important; text-overflow: ellipsis; white-space: nowrap; }
  .menu-item-dialog-window .ui-dialog-title { width: 100% !important; float: none !important; font-size: 17px !important; letter-spacing: -.01em; }
  .ui-dialog .ui-dialog-titlebar-close { top: 13px !important; right: 13px !important; }
  .ui-dialog .ui-dialog-content { padding: 20px !important; }
  .hours-dialog-window .ui-dialog-titlebar { padding-left: 22px !important; }
  .ui-dialog.hours-dialog-window { width: calc(100vw - 20px) !important; }
  .hours-dialog-window .ui-dialog-content { padding: 24px 20px 26px !important; }
  .opening-status-card { grid-template-columns: 42px minmax(0,1fr); gap: 13px; padding: 1px 0 0 13px; }
  .opening-status-icon { width: 42px; height: 42px; }
  .opening-status-icon svg { width: 21px; height: 21px; }
  .opening-status-eyebrow { margin-bottom: 6px; font-size: 9px; }
  .opening-status-title { font-size: 20px; line-height: 1.4; }
  .opening-status-note { margin-top: 13px; padding: 11px 12px; font-size: 11px; }
  .ui-dialog.menu-item-dialog-window { top: 12px !important; bottom: auto !important; flex-direction: column; width: calc(100vw - 20px) !important; height: auto !important; max-height: calc(100vh - 24px) !important; border-radius: 17px !important; transform: translate(-50%,0); }
  .ui-dialog.menu-item-dialog-window.is-open { display: flex !important; }
  .menu-item-dialog-window .ui-dialog-titlebar,
  .menu-item-dialog-window .ui-dialog-buttonpane { flex: 0 0 auto; }
  .menu-item-dialog-window .ui-dialog-content { flex: 1 1 auto; grid-template-columns: minmax(0,1fr); gap: 10px; width: auto !important; height: auto !important; max-height: none !important; min-width: 0 !important; min-height: 0 !important; padding: 16px !important; overflow-y: auto !important; }
  .dialog-product-summary { grid-template-columns: minmax(0,1fr) auto; min-height: 78px; padding: 16px; border-radius: 13px; }
  .dialog-dish-name { font-size: 19px; }
  .dialog-product-summary .DialogPreis { min-width: 76px; min-height: 40px; padding: 6px 11px; font-size: 15px; }
  .dialog-quantity-field { padding: 12px 14px; }
  .dialog-note-field { padding: 14px; }
  .menu-item-dialog > .span2,
  .menu-item-dialog > .span3 { min-height: 44px; padding: 11px 12px !important; }
  .menu-item-dialog-window .ui-dialog-buttonpane { padding: 12px 16px 15px !important; }
  .menu-item-dialog-window .ui-dialog-buttonset { display: grid; grid-template-columns: minmax(0,1fr); gap: 8px; }
  .menu-item-dialog-window .ui-dialog-buttonset button:first-child,
  .menu-item-dialog-window .ui-dialog-buttonset button:last-child { width: 100%; min-width: 0; }
  .menu-item-dialog-window .ui-dialog-buttonset button:first-child { order: 1; }
  .menu-item-dialog-window .ui-dialog-buttonset button:last-child { order: 2; }
  #lieferdienst-details #LieferdienstName { font-size: 27px !important; }
  #lieferdienst-details #Liefergebiete { overflow: visible; }
  #lieferdienst-details #Liefergebiete table { display: block; min-width: 0; }
  #lieferdienst-details #Liefergebiete thead { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0,0,0,0); }
  #lieferdienst-details #Liefergebiete tbody { display: grid; gap: 10px; }
  #lieferdienst-details #Liefergebiete tr { display: grid; gap: 7px; padding: 14px; background: #fff; border: 1px solid var(--line); border-radius: 12px; }
  #lieferdienst-details #Liefergebiete td { display: grid; grid-template-columns: minmax(118px,42%) 1fr; gap: 8px; padding: 0 !important; border: 0 !important; font-size: 13px; }
  #lieferdienst-details #Liefergebiete td::before { content: attr(data-label); color: var(--muted); font-size: 11px; font-weight: 800; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { scroll-behavior: auto !important; transition-duration: .01ms !important; animation-duration: .01ms !important; animation-iteration-count: 1 !important; }
}
