:root {
  --fo-primary: #d92d20;
  --fo-secondary: #14532d;
  --fo-accent: #f97316;
  --fo-bg: #fffaf4;
  --fo-surface: #f7f3ec;
  --fo-card: #ffffff;
  --fo-text: #1f2937;
  --fo-muted: #6b7280;
  --fo-border: #e7dfd5;
  --fo-radius: 18px;
  --fo-radius-lg: 28px;
  --fo-shadow: 0 22px 56px rgba(31, 41, 55, 0.12);
  --fo-shadow-soft: 0 12px 34px rgba(31, 41, 55, 0.08);
  --fo-width: 1180px;
  --fo-transition: 180ms ease;
}

body.fo-restaurant-storefront, body { background: var(--fo-bg); color: var(--fo-text); }
a, button, input, textarea, select { font: inherit; }
.fo-container { width: min(100% - 40px, var(--fo-width)); margin: 0 auto; }
.fo-site { background: var(--fo-bg); }

.fo-restaurant-header {
  position: sticky;
  top: 0;
  z-index: 70;
  border-bottom: 1px solid var(--fo-border);
  background: rgba(255, 255, 255, 0.96);
  backdrop-filter: blur(16px);
}
.fo-restaurant-header__inner { min-height: 68px; display: flex; align-items: center; gap: 18px; }
.fo-restaurant-logo { display: flex; align-items: center; gap: 10px; min-width: 0; }
.fo-brand { display: inline-flex; align-items: center; min-width: 0; color: var(--fo-text); font-weight: 950; text-decoration: none; }
.fo-brand::before { width: 42px; height: 42px; flex: 0 0 auto; display: inline-flex; align-items: center; justify-content: center; border-radius: 999px; margin-right: 10px; background: var(--fo-secondary); color: #fff; font-weight: 950; content: "DR"; }
.fo-brand__logo { width: 42px; height: 42px; object-fit: contain; margin-right: 10px; border-radius: 999px; }
.fo-brand__name { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.fo-restaurant-logo > span { flex: 0 0 auto; border-radius: 999px; padding: 5px 10px; background: #fff7ed; color: var(--fo-accent); font-size: 0.76rem; font-weight: 950; }
.fo-restaurant-nav { display: flex; align-items: center; justify-content: center; gap: 18px; flex: 1 1 auto; font-size: 0.92rem; font-weight: 850; }
.fo-restaurant-nav a { border-radius: 8px; color: #374151; text-decoration: none; transition: color var(--fo-transition), background-color var(--fo-transition); }
.fo-restaurant-nav a:hover, .fo-restaurant-nav a:focus-visible { color: var(--fo-accent); outline: none; }
.fo-restaurant-nav a:focus-visible, .fo-restaurant-header a:focus-visible, .fo-restaurant-header button:focus-visible, .fo-add-button:focus-visible, .fo-button:focus-visible, .fo-cart-checkout:focus-visible, .fo-category-tab:focus-visible, .fo-cookie-banner button:focus-visible, .fo-cookie-banner a:focus-visible { outline: 3px solid rgba(249, 115, 22, 0.24); outline-offset: 3px; }
.fo-restaurant-cta, .fo-button, .fo-add-button, .fo-cart-checkout, .fo-reservation-form button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 46px;
  border: 1px solid transparent;
  border-radius: 999px;
  padding: 11px 18px;
  background: var(--fo-accent);
  color: #fff;
  font-weight: 950;
  text-decoration: none;
  cursor: pointer;
  box-shadow: 0 14px 30px rgba(249, 115, 22, 0.22);
  transition: transform var(--fo-transition), box-shadow var(--fo-transition), border-color var(--fo-transition), background-color var(--fo-transition), color var(--fo-transition);
}
.fo-restaurant-cta:hover, .fo-button--primary:hover, .fo-add-button:hover, .fo-cart-checkout:hover { transform: translateY(-1px); background: #ea580c; box-shadow: 0 18px 38px rgba(249, 115, 22, 0.3); }
.fo-button--secondary { border-color: var(--fo-border); background: #fff; color: var(--fo-text); box-shadow: none; }
.fo-button--secondary:hover { border-color: rgba(249, 115, 22, 0.35); background: #fff7ed; color: var(--fo-text); }
.fo-button--green, .fo-reservation-form button { background: var(--fo-secondary); box-shadow: 0 14px 30px rgba(20, 83, 45, 0.2); }
.fo-button--green:hover, .fo-reservation-form button:hover { transform: translateY(-1px); background: #166534; box-shadow: 0 18px 38px rgba(20, 83, 45, 0.28); }
.fo-mobile-menu-toggle { display: none; border: 1px solid var(--fo-border); border-radius: 12px; background: #fff; padding: 10px 12px; color: var(--fo-secondary); font-weight: 950; }

body.fo-ordering-session-active .fo-restaurant-cta,
body.fo-ordering-session-active .fo-hero-actions .fo-button--primary[href*='#speisekarte'],
body.fo-ordering-focus .fo-restaurant-cta,
body.fo-cart-focus .fo-restaurant-cta,
body.fo-checkout-focus .fo-restaurant-cta,
body.fo-payment-focus .fo-restaurant-cta,
body.fo-dialog-focus .fo-restaurant-cta,
body.modal-open .fo-restaurant-cta { display: none; }

.fo-storefront { background: var(--fo-bg); }
.fo-status-bar { border-bottom: 1px solid var(--fo-border); background: #fff; }
.fo-status-bar__inner { min-height: 46px; display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: 10px; padding: 8px 0; }
.fo-status-bar__inner span { border: 1px solid #d9eadf; border-radius: 999px; padding: 7px 11px; background: #f0fdf4; color: var(--fo-secondary); font-size: 0.84rem; font-weight: 850; }

.fo-hero-banner { position: relative; overflow: hidden; color: #fff; background: linear-gradient(135deg, rgba(25, 12, 8, 0.82), rgba(20, 83, 45, 0.62)), radial-gradient(circle at 78% 22%, rgba(249, 115, 22, 0.55), transparent 28%), linear-gradient(135deg, #5b2417, #132b1d); }
.fo-hero-banner::before { position: absolute; inset: 0; pointer-events: none; background-image: radial-gradient(circle at 18% 28%, rgba(255,255,255,.16) 0 7%, transparent 8%), radial-gradient(circle at 82% 72%, rgba(255,255,255,.13) 0 8%, transparent 9%); background-size: 180px 180px, 220px 220px; opacity: 0.8; content: ""; }
.fo-hero-banner__inner { position: relative; min-height: clamp(460px, 52vw, 640px); display: grid; grid-template-columns: minmax(0, 1fr) minmax(280px, 360px); gap: clamp(24px, 5vw, 64px); align-items: center; padding: clamp(54px, 8vw, 92px) 0; }
.fo-hero-banner__copy { display: grid; gap: 20px; max-width: 760px; }
.fo-eyebrow { margin: 0; color: var(--fo-accent); font-size: 0.78rem; font-weight: 950; letter-spacing: 0.08em; text-transform: uppercase; }
.fo-storefront h1, .fo-storefront h2, .fo-storefront h3 { margin: 0; color: var(--fo-text); line-height: 1.08; letter-spacing: 0; }
.fo-hero-banner h1 { color: #fff; font-size: clamp(3.1rem, 7vw, 6.4rem); line-height: 0.98; }
.fo-hero-banner p { max-width: 700px; color: rgba(255, 255, 255, 0.9); font-size: clamp(1.1rem, 2vw, 1.34rem); }
.fo-storefront p { margin: 0; color: var(--fo-muted); }
.fo-hero-chips, .fo-hero-actions, .fo-card-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; }
.fo-hero-chips span { border: 1px solid rgba(255,255,255,.22); border-radius: 999px; padding: 8px 12px; background: rgba(255,255,255,.12); color: #fff; font-size: .86rem; font-weight: 900; }
.fo-text-link { color: #fff; font-weight: 950; text-decoration: none; }
.fo-text-link:hover { color: #fed7aa; }
.fo-hero-info-card { display: grid; gap: 10px; border: 1px solid rgba(255,255,255,.22); border-radius: var(--fo-radius-lg); padding: 24px; background: rgba(255,255,255,.92); color: var(--fo-text); box-shadow: var(--fo-shadow); }
.fo-hero-info-card strong { font-size: 1.25rem; }
.fo-hero-info-card span { color: var(--fo-muted); font-weight: 850; }

.fo-section { padding: clamp(64px, 8vw, 108px) 0; }
.fo-section--surface, .fo-reservation { background: var(--fo-surface); }
.fo-section-heading { display: grid; justify-items: center; gap: 12px; margin-bottom: 32px; text-align: center; }
.fo-section-heading h2, .fo-reservation h2 { max-width: 820px; font-size: clamp(2.1rem, 4.4vw, 3.8rem); }
.fo-section-heading p { max-width: 720px; font-size: 1.08rem; }
.fo-offer-grid, .fo-dish-grid, .fo-quality-grid, .fo-delivery-cards, .fo-reservation-benefits { display: grid; gap: 18px; }
.fo-offer-grid, .fo-quality-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.fo-offer-card, .fo-dish-card, .fo-cart-sticky, .fo-reservation-form, .fo-delivery-map, .fo-delivery-radius-widget, .fo-quality-grid article, .fo-delivery-cards article, .fo-contact-card, .fo-hours, .fo-reservation-benefits article {
  border: 1px solid var(--fo-border);
  border-radius: var(--fo-radius);
  background: #fff;
  box-shadow: var(--fo-shadow-soft);
  transition: transform var(--fo-transition), box-shadow var(--fo-transition), border-color var(--fo-transition);
}
.fo-offer-card:hover, .fo-dish-card:hover, .fo-quality-grid article:hover, .fo-delivery-cards article:hover, .fo-contact-card:hover, .fo-hours:hover, .fo-reservation-benefits article:hover { transform: translateY(-3px); border-color: rgba(249,115,22,.3); box-shadow: var(--fo-shadow); }
.fo-offer-card { display: grid; gap: 10px; padding: 22px; }
.fo-offer-card span, .fo-dish-badge, .fo-product-badge { width: fit-content; border-radius: 999px; padding: 6px 10px; background: #fff7ed; color: var(--fo-accent); font-size: .78rem; font-weight: 950; }
.fo-offer-card strong { color: var(--fo-text); font-size: 1.2rem; }
.fo-offer-card a, .fo-allergen-link { width: fit-content; color: var(--fo-accent); font-weight: 950; text-decoration: none; }

.fo-menu-home-layout, .fo-menu-layout { display: grid; grid-template-columns: minmax(0, 1fr) minmax(320px, 380px); gap: 26px; align-items: start; }
.fo-menu-home-main { min-width: 0; }
.fo-category-tabs { position: sticky; top: 82px; z-index: 25; display: flex; gap: 10px; overflow-x: auto; margin: 0 0 22px; padding: 12px; border: 1px solid var(--fo-border); border-radius: 999px; background: rgba(255,255,255,.94); backdrop-filter: blur(14px); scrollbar-width: thin; }
.fo-category-tab { flex: 0 0 auto; min-height: 40px; border: 1px solid var(--fo-border); border-radius: 999px; padding: 9px 15px; background: #fff; color: var(--fo-text); font-weight: 950; cursor: pointer; transition: background-color var(--fo-transition), color var(--fo-transition), border-color var(--fo-transition); }
.fo-category-tab:hover, .fo-category-tab.is-active { border-color: var(--fo-accent); background: var(--fo-accent); color: #fff; }
.fo-dish-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.fo-dish-card { overflow: hidden; }
.fo-dish-image { min-height: 178px; display: flex; align-items: flex-start; justify-content: flex-end; padding: 14px; background: linear-gradient(135deg, #fed7aa, #f97316); }
.fo-food-diavola { background: linear-gradient(135deg, #fecaca, #dc2626); }
.fo-food-pasta { background: linear-gradient(135deg, #fde68a, #f59e0b); }
.fo-food-burger { background: linear-gradient(135deg, #fed7aa, #92400e); }
.fo-food-bowl { background: linear-gradient(135deg, #bbf7d0, #16a34a); }
.fo-food-salad { background: linear-gradient(135deg, #dcfce7, #15803d); }
.fo-food-drink { background: linear-gradient(135deg, #bfdbfe, #0ea5e9); }
.fo-dish-image span { border-radius: 999px; padding: 6px 10px; background: #fff; color: var(--fo-accent); font-weight: 950; box-shadow: 0 10px 24px rgba(31,41,55,.12); }
.fo-dish-body { display: grid; gap: 10px; padding: 20px; }
.fo-dish-title { font-size: 1.18rem; }
.fo-dish-bottom { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-top: 4px; }
.fo-dish-price, .fo-product-price { color: var(--fo-accent); font-size: 1.16rem; font-weight: 950; }
.fo-add-button { min-width: 124px; min-height: 42px; padding: 9px 14px; }
.fo-cart-sidebar { min-width: 0; }
.fo-cart-sticky { position: sticky; top: 150px; display: grid; gap: 12px; padding: 18px; }
.fo-cart-header, .fo-cart-total { display: flex; align-items: center; justify-content: space-between; gap: 10px; }
.fo-cart-header h2 { margin: 0; font-size: 1.28rem; line-height: 1.2; }
.fo-cart-header span { color: var(--fo-muted); font-size: .86rem; font-weight: 850; }
.fo-service-toggle { display: grid; grid-template-columns: 1fr 1fr; gap: 5px; border-radius: 999px; padding: 4px; background: var(--fo-surface); }
.fo-service-toggle button { min-height: 34px; border: 0; border-radius: 999px; background: transparent; color: var(--fo-muted); font-size: .88rem; font-weight: 900; cursor: pointer; }
.fo-service-toggle button:disabled { cursor: not-allowed; opacity: .58; }
.fo-service-toggle .is-active { background: #fff; color: var(--fo-secondary); box-shadow: 0 4px 12px rgba(31,41,55,.08); }
.fo-cart-empty, .fo-demo-note { margin: 0; border-radius: 10px; padding: 11px 12px; background: var(--fo-surface); color: var(--fo-muted); font-size: .88rem; }
.fo-cart-empty span { display: block; margin-bottom: 3px; font-size: 1.2rem; }
.fo-cart-items { display: block; border-top: 1px solid var(--fo-border); }
.fo-cart-item {
  display: block;
  min-width: 0;
  padding: 12px 0;
  border-bottom: 1px solid var(--fo-border);
  background: transparent;
}
.fo-cart-item-main {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-start;
  justify-content: space-between;
  gap: 4px 12px;
  min-width: 0;
  width: 100%;
}
.fo-cart-item-name {
  flex: 1 1 150px;
  min-width: 0;
  max-width: 100%;
  color: var(--fo-text);
  font-size: .94rem;
  font-weight: 850;
  line-height: 1.32;
  white-space: normal;
  overflow: visible;
  text-overflow: clip;
  word-break: normal;
  overflow-wrap: break-word;
}
.fo-cart-item-price {
  flex: 0 0 auto;
  color: var(--fo-text);
  font-size: .92rem;
  font-weight: 850;
  line-height: 1.32;
  text-align: right;
  white-space: nowrap;
}
.fo-cart-item-calc,
.fo-cart-item-options,
.fo-cart-item-note-text,
.fo-cart-note-toggle {
  display: block;
  width: 100%;
  margin-top: 4px;
  color: var(--fo-muted);
  font-size: .8rem;
  line-height: 1.38;
  white-space: normal;
  overflow: visible;
  text-overflow: clip;
  word-break: normal;
  overflow-wrap: break-word;
}
.fo-cart-item-options[hidden],
.fo-cart-item-note-text[hidden],
.fo-cart-item-calc[hidden],
.fo-cart-item-note-editor[hidden] { display: none; }
.fo-cart-note-toggle {
  border: 0;
  padding: 0;
  background: transparent;
  color: var(--fo-muted);
  font-weight: 850;
  text-align: left;
  cursor: pointer;
}
.fo-cart-note-toggle:hover, .fo-cart-note-toggle:focus { color: var(--fo-accent); text-decoration: underline; }
.fo-cart-item-note-editor {
  display: grid;
  gap: 5px;
  width: 100%;
  margin-top: 6px;
  color: var(--fo-muted);
  font-size: .78rem;
  font-weight: 800;
}
.fo-cart-item-note-editor textarea {
  width: 100%;
  min-height: 54px;
  resize: vertical;
  border: 1px solid var(--fo-border);
  border-radius: 8px;
  padding: 8px 9px;
  color: var(--fo-text);
  font-size: .86rem;
  line-height: 1.35;
}
.fo-cart-item-actions {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 8px;
  width: 100%;
  margin-top: 8px;
  min-width: 0;
}
.fo-cart-qty { display: inline-flex; align-items: center; justify-content: flex-start; flex: 0 0 auto; flex-wrap: nowrap; min-width: 0; gap: 8px; }
.fo-cart-qty button, .fo-cart-remove { width: 44px; height: 44px; display: inline-flex; align-items: center; justify-content: center; border: 1px solid var(--fo-border); border-radius: 999px; background: #fff; color: var(--fo-text); font-size: 1rem; font-weight: 900; line-height: 1; cursor: pointer; }
.fo-cart-qty span { min-width: 2ch; text-align: center; color: var(--fo-text); font-size: .9rem; font-weight: 900; }
.fo-cart-remove { border-color: transparent; background: var(--fo-surface); color: var(--fo-muted); }
.fo-cart-remove:hover, .fo-cart-remove:focus { color: var(--fo-accent); background: #fff7ed; }
.fo-cart-summary { display: grid; gap: 7px; }
.fo-cart-summary[hidden] { display: none; }
.fo-cart-total { padding-top: 7px; border-top: 1px solid var(--fo-border); font-size: .9rem; }
.fo-cart-total strong { text-align: right; }
.fo-cart-total--muted { color: var(--fo-muted); font-size: .84rem; }
.fo-cart-total--grand { font-size: 1rem; font-weight: 950; }
.fo-cart-checkout { display: grid; gap: 1px; min-height: 44px; text-align: center; }
.fo-cart-checkout small { color: rgba(255,255,255,.82); font-size: .76rem; }

.fo-checkout-summary__item { align-items: start; gap: 12px; }
.fo-checkout-summary__item span { min-width: 0; }
.fo-checkout-summary__item strong { text-align: right; white-space: nowrap; }
.fo-checkout-summary__item-title { display: block; color: var(--fo-text); font-weight: 900; line-height: 1.25; }
.fo-checkout-summary__item-meta { display: block; margin-top: 3px; color: var(--fo-muted); font-size: .84rem; line-height: 1.35; }

.fo-reservation-grid { display: grid; grid-template-columns: minmax(0, .95fr) minmax(340px, .82fr); gap: clamp(26px, 5vw, 64px); align-items: center; }
.fo-reservation-intro { display: grid; gap: 16px; }
.fo-reservation-intro > p { font-size: 1.06rem; }
.fo-reservation-image { min-height: 220px; border-radius: var(--fo-radius-lg); background: linear-gradient(135deg, rgba(20,83,45,.22), rgba(249,115,22,.24)), radial-gradient(circle at 22% 28%, #fff 0 8%, transparent 9%), linear-gradient(135deg, #7c2d12, #14532d); box-shadow: var(--fo-shadow-soft); }
.fo-reservation-benefits { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.fo-reservation-benefits article { display: grid; gap: 8px; padding: 16px; }
.fo-reservation-benefits span, .fo-quality-grid span { width: 34px; height: 34px; display: inline-flex; align-items: center; justify-content: center; border-radius: 999px; background: #dcfce7; color: var(--fo-secondary); font-weight: 950; }
.fo-reservation-form { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; padding: 24px; }
.fo-reservation-form label { display: grid; gap: 6px; color: #374151; font-size: .9rem; font-weight: 850; }
.fo-reservation-form input, .fo-reservation-form textarea, .fo-reservation-form select, .fo-product-options input, .fo-product-options textarea, .fo-product-options select { width: 100%; min-height: 46px; border: 1px solid var(--fo-border); border-radius: 12px; padding: 10px 12px; background: #fff; color: var(--fo-text); }
.fo-field-wide, .fo-reservation-form button, .fo-reservation-form p { grid-column: 1 / -1; }
.fo-reservation-form p { margin: 0; color: var(--fo-muted); font-size: .94rem; }

.fo-delivery-section { background: linear-gradient(180deg, #fff7ed 0%, #fffaf3 58%, #fff 100%); }
.fo-delivery-grid { display: grid; gap: 22px; align-items: stretch; }
.fo-contact-grid { display: grid; grid-template-columns: minmax(0, .85fr) minmax(0, 1.15fr); gap: 22px; align-items: stretch; }
.fo-delivery-grid--simple { grid-template-columns: minmax(0, 720px); justify-content: center; }
.fo-delivery-overview { display: grid; gap: 16px; min-width: 0; }
.fo-delivery-cards { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.fo-delivery-cards article, .fo-delivery-zone-summary, .fo-delivery-trust-grid article { display: grid; gap: 8px; padding: 18px; }
.fo-delivery-card-icon, .fo-delivery-trust-grid span { width: 34px; height: 34px; display: inline-flex; align-items: center; justify-content: center; border-radius: 999px; background: #dcfce7; color: var(--fo-secondary); font-weight: 950; }
.fo-delivery-cards article:nth-child(2) .fo-delivery-card-icon { background: #ffedd5; color: var(--fo-accent); }
.fo-delivery-cards strong, .fo-delivery-zone-summary strong, .fo-delivery-trust-grid strong { color: var(--fo-text); }
.fo-delivery-cards span:not(.fo-delivery-card-icon), .fo-delivery-zone-summary span, .fo-delivery-trust-grid p { margin: 0; color: var(--fo-muted); }
.fo-delivery-map { min-height: 340px; display: grid; align-content: center; justify-items: center; gap: 12px; padding: 28px; text-align: center; background: linear-gradient(135deg, rgba(20,83,45,.08), rgba(249,115,22,.12)), repeating-linear-gradient(45deg, #fff, #fff 18px, #f3f4f6 19px, #f3f4f6 20px); }
.fo-map-pin { width: 54px; height: 54px; display: inline-flex; align-items: center; justify-content: center; border-radius: 999px; background: var(--fo-secondary); color: #fff; font-size: 1.3rem; font-weight: 950; }
.fo-delivery-map div { display: flex; flex-wrap: wrap; justify-content: center; gap: 8px; }
.fo-delivery-map div span { border-radius: 999px; padding: 7px 10px; background: #fff; color: var(--fo-secondary); font-size: .84rem; font-weight: 850; }
.fo-delivery-radius-widget { display: grid; grid-template-columns: minmax(0, 1.95fr) minmax(300px, 1fr); gap: clamp(18px, 3vw, 30px); align-items: stretch; overflow: hidden; padding: clamp(16px, 2vw, 22px); border-radius: 24px; background: rgba(255,255,255,.88); box-shadow: var(--fo-shadow); }
.fo-delivery-radius-widget h3 { margin: 0; color: var(--fo-text); font-size: clamp(1.55rem, 2vw, 2.15rem); }
.fo-delivery-radius-widget__copy { display: grid; align-content: start; gap: 14px; min-width: 0; padding: clamp(4px, 1vw, 8px); }
.fo-delivery-radius-widget__copy > p:not(.fo-eyebrow) { color: var(--fo-muted); }
.fo-delivery-radius-list { display: grid; gap: 10px; margin: 4px 0 0; padding: 0; list-style: none; }
.fo-delivery-radius-list li { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: 4px 10px; align-items: center; border: 1px solid var(--fo-border); border-radius: 14px; padding: 12px; background: #fff; box-shadow: 0 8px 20px rgba(31,41,55,.05); }
.fo-delivery-radius-list__dot { width: 12px; height: 12px; align-self: start; margin-top: 4px; border-radius: 999px; background: var(--fo-zone-color, var(--fo-accent)); box-shadow: 0 0 0 4px color-mix(in srgb, var(--fo-zone-color, var(--fo-accent)) 16%, transparent); }
.fo-delivery-radius-list strong, .fo-delivery-radius-list small { display: block; }
.fo-delivery-radius-list small, .fo-delivery-radius-list li > span:nth-child(n+3) { color: var(--fo-muted); font-size: .86rem; font-weight: 800; }
.fo-delivery-radius-list li > span:nth-child(n+3) { grid-column: 2; }
.fo-delivery-radius-map { position: relative; min-height: 560px; overflow: hidden; border: 1px solid rgba(20,83,45,.12); border-radius: 22px; background: #f3f4f6; box-shadow: inset 0 0 0 1px rgba(255,255,255,.72); }
.fo-delivery-radius-map__loading { position: absolute; inset: 0; z-index: 1; display: grid; align-content: center; justify-items: center; gap: 8px; padding: 28px; background: linear-gradient(135deg, rgba(20,83,45,.08), rgba(249,115,22,.1)); color: var(--fo-text); text-align: center; }
.fo-delivery-radius-map__loading span { max-width: 360px; color: var(--fo-muted); font-size: .9rem; }
.fo-delivery-radius-map.is-ready .fo-delivery-radius-map__loading { display: none; }
.fo-delivery-radius-map.is-unavailable { border-color: rgba(249,115,22,.32); background: linear-gradient(135deg, rgba(255,247,237,.92), rgba(240,253,244,.86)); box-shadow: inset 0 0 0 1px rgba(255,255,255,.82), 0 14px 34px rgba(31,41,55,.08); }
.fo-delivery-radius-map.is-unavailable .fo-delivery-radius-map__loading { background: transparent; }
.fo-delivery-radius-map.is-unavailable .fo-delivery-radius-map__loading strong { color: var(--fo-secondary); }
.fo-delivery-radius-map.is-unavailable .fo-delivery-radius-map__loading strong::after { display: block; margin-top: 6px; color: var(--fo-accent); font-size: .9rem; content: "Karte derzeit nicht verfügbar"; }
.fo-delivery-radius-map.is-unavailable .fo-delivery-radius-map__loading span { color: var(--fo-muted); }
.fo-delivery-radius-map .gm-style { font-family: inherit; }
.fo-delivery-trust-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; margin-top: 18px; }

.fo-quality-grid article { display: grid; justify-items: center; gap: 10px; padding: 22px; text-align: center; }
.fo-contact-card, .fo-hours { display: grid; gap: 14px; padding: 24px; }
.fo-hours span { display: block; color: var(--fo-text); font-weight: 850; }

.fo-cookie-banner { position: fixed; left: 50%; bottom: 18px; z-index: 80; width: min(calc(100% - 28px), 760px); display: flex; align-items: center; justify-content: space-between; gap: 18px; border: 1px solid var(--fo-border); border-radius: 22px; padding: 16px; background: rgba(255,255,255,.96); box-shadow: var(--fo-shadow); transform: translateX(-50%); backdrop-filter: blur(14px); }
.fo-cookie-banner.is-hidden { display: none; }
.pac-container { z-index: 1000; }
.fo-cookie-banner p { margin: 4px 0 0; color: var(--fo-muted); font-size: .92rem; }
.fo-cookie-actions { display: flex; flex-wrap: wrap; gap: 8px; }
.fo-cookie-actions button, .fo-cookie-actions a { min-height: 38px; border: 1px solid var(--fo-border); border-radius: 999px; padding: 8px 12px; background: #fff; color: var(--fo-text); font-weight: 900; text-decoration: none; cursor: pointer; }
.fo-cookie-actions .is-primary { border-color: var(--fo-accent); background: var(--fo-accent); color: #fff; }

.fo-footer { border-top: 1px solid rgba(255,255,255,.12); padding: 54px 0 28px; background: #0f2f1f; color: #dce8df; }
.fo-footer-grid { display: grid; grid-template-columns: 1.15fr .9fr .9fr 1.1fr; gap: 24px; }
.fo-footer strong { color: #fff; font-size: 1.02rem; }
.fo-footer p { color: #cbd5d1; }
.fo-footer-legal { display: flex; flex-wrap: wrap; gap: 9px; }
.fo-footer-legal a { border: 1px solid rgba(255,255,255,.15); border-radius: 999px; padding: 8px 11px; color: #dce8df; font-weight: 850; text-decoration: none; }
.fo-footer-legal a:hover { border-color: rgba(249,115,22,.54); color: #fff; }
.fo-footer-note, .fo-footer-copy { margin-top: 22px; color: #a8bbb2; font-size: .92rem; }
.fo-footer-copy { padding-top: 18px; border-top: 1px solid rgba(255,255,255,.12); }

.fo-ordering-page { padding: clamp(30px,5vw,58px) 0 88px; }
.fo-ordering-hero { display: grid; gap: 12px; margin-bottom: 18px; }
.fo-menu-list { display: grid; gap: 26px; }
.fo-menu-section { scroll-margin-top: 150px; }
.fo-menu-section h2 { margin-bottom: 14px; }
.fo-product-card { display: grid; grid-template-columns: 160px minmax(0,1fr) minmax(150px,auto); gap: 18px; align-items: center; border: 1px solid var(--fo-border); border-radius: var(--fo-radius); padding: 16px; background: #fff; box-shadow: var(--fo-shadow-soft); }
.fo-product-main { display: grid; gap: 7px; }
.fo-product-main small { color: var(--fo-muted); font-weight: 800; }
.fo-product-options summary, .fo-product-info summary { color: var(--fo-accent); font-weight: 950; cursor: pointer; }
.fo-product-options div { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 10px; margin-top: 10px; padding: 12px; border-radius: 12px; background: var(--fo-surface); }
.fo-product-order { display: grid; gap: 12px; justify-items: end; }
.fo-mobile-cart-bar { position: fixed; left: 12px; right: 12px; bottom: calc(12px + env(safe-area-inset-bottom)); z-index: 75; display: none; align-items: center; justify-content: space-between; gap: 12px; border: 1px solid rgba(249,115,22,.35); border-radius: 18px; background: #fff; padding: 12px; box-shadow: var(--fo-shadow); }
.fo-mobile-cart-bar button { border: 0; border-radius: 999px; background: var(--fo-accent); color: #fff; padding: 11px 14px; font-weight: 950; }
.fo-mobile-cart-bar span { display: block; color: var(--fo-accent); font-weight: 950; }

.fo-preset-dark-premium .fo-offer-card, .fo-preset-dark-premium .fo-dish-card, .fo-preset-dark-premium .fo-product-card, .fo-preset-dark-premium .fo-cart-sticky, .fo-preset-dark-premium .fo-reservation-form, .fo-preset-dark-premium .fo-hours { background: #111827; border-color: #334155; color: #f9fafb; }
.fo-preset-dark-premium .fo-storefront p, .fo-preset-dark-premium .fo-product-description { color: #cbd5e1; }

@media (max-width: 1080px) {
  .fo-restaurant-header__inner { align-items: flex-start; flex-wrap: wrap; padding: 12px 0; }
  .fo-mobile-menu-toggle { display: inline-flex; margin-left: auto; }
  .fo-restaurant-nav { display: none; order: 4; width: 100%; flex-direction: column; align-items: stretch; gap: 8px; }
  .fo-restaurant-nav.is-open { display: flex; }
  .fo-restaurant-nav a { border: 1px solid var(--fo-border); border-radius: 12px; padding: 11px 12px; background: #fff; }
  .fo-restaurant-cta { width: 100%; order: 5; }
  .fo-hero-banner__inner, .fo-menu-home-layout, .fo-menu-layout, .fo-reservation-grid, .fo-delivery-grid, .fo-contact-grid, .fo-footer-grid { grid-template-columns: 1fr; }
  .fo-cart-sticky { position: static; }
  .fo-category-tabs { top: 92px; }
  .fo-mobile-cart-bar:not([hidden]) { display: flex; }
  body.fo-ordering-context .fo-restaurant-cta,
  body.fo-checkout-context .fo-restaurant-cta,
  body.fo-cart-context .fo-restaurant-cta,
  body.fo-cart-focus .fo-restaurant-cta,
  body.fo-checkout-focus .fo-restaurant-cta,
  body.fo-payment-focus .fo-restaurant-cta,
  body.fo-dialog-focus .fo-restaurant-cta,
  body.modal-open .fo-restaurant-cta { display: none; }
  body.fo-cart-focus .fo-mobile-cart-bar:not([hidden]),
  body.fo-checkout-context .fo-mobile-cart-bar:not([hidden]),
  body.fo-checkout-focus .fo-mobile-cart-bar:not([hidden]),
  body.fo-payment-focus .fo-mobile-cart-bar:not([hidden]),
  body.fo-dialog-focus .fo-mobile-cart-bar:not([hidden]),
  body.modal-open .fo-mobile-cart-bar:not([hidden]) { display: none; }
  @supports selector(body:has(dialog[open])) {
    body:has(dialog[open]) .fo-restaurant-cta,
    body:has(dialog[open]) .fo-mobile-cart-bar:not([hidden]) { display: none; }
  }
}
@media (max-width: 820px) {
  .fo-offer-grid, .fo-dish-grid, .fo-quality-grid, .fo-reservation-benefits { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .fo-delivery-radius-widget, .fo-delivery-trust-grid { grid-template-columns: 1fr; }
  .fo-delivery-radius-map { min-height: 360px; }
  .fo-hero-banner__inner { min-height: auto; }
  .fo-cookie-banner { align-items: stretch; flex-direction: column; }
}
@media (max-width: 620px) {
  .fo-container { width: min(100% - 24px, var(--fo-width)); }
  .fo-brand__name { max-width: 150px; }
  .fo-hero-banner h1 { max-width: 100%; font-size: clamp(2.25rem, 11vw, 3.2rem); line-height: 1.02; overflow-wrap: anywhere; hyphens: auto; }
  .fo-hero-actions, .fo-card-actions, .fo-mobile-cart-bar, .fo-cookie-actions { align-items: stretch; flex-direction: column; }
  .fo-button, .fo-restaurant-cta, .fo-add-button, .fo-mobile-cart-bar button, .fo-cookie-actions button, .fo-cookie-actions a { width: 100%; min-height: 44px; }
  .fo-offer-grid, .fo-dish-grid, .fo-quality-grid, .fo-reservation-benefits, .fo-reservation-form, .fo-product-options div { grid-template-columns: 1fr; }
  .fo-delivery-radius-widget { padding: 16px; }
  .fo-delivery-radius-map { min-height: 310px; }
  .fo-delivery-radius-map__tabs { left: 12px; top: 12px; }
  .fo-delivery-radius-map__controls { right: 12px; top: 12px; }
  .fo-product-card { grid-template-columns: 1fr; }
  .fo-product-order { justify-items: stretch; }
  .fo-dish-bottom { align-items: stretch; flex-direction: column; }
  .fo-cart-item-main { display: block; }
  .fo-cart-item-price { display: block; margin-top: 3px; text-align: left; }
  .fo-cart-item-actions { justify-content: flex-end; }
  .fo-cookie-banner { position: static; width: min(100% - 24px, var(--fo-width)); margin: 22px auto; transform: none; }
}
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { transition-duration: .01ms !important; animation-duration: .01ms !important; animation-iteration-count: 1 !important; scroll-behavior: auto !important; }
}
