/* =========================================================================
   Speisekarten-Politur (Kundenseite)
   Rein optische Verbesserungen für die Menü-Ansicht (Kategorie-Leiste,
   Gerichte-Karten, Rabatt-/Beliebt-Badges, "Bestellung ansehen"-Balken).
   Ändert bewusst kein bestehendes Markup/Verhalten - nur Aussehen.
   ========================================================================= */

/* ---------- Horizontal category navigation (Swiper) ---------- */
#resMobilemenu{
	box-shadow:none;
	border-bottom:1px solid #e8e9ed;
	padding-top:4px !important;
	padding-bottom:4px !important;
	background:#fff;
	overflow-x:auto !important;
	overflow-y:hidden;
	scroll-behavior:smooth;
	-webkit-overflow-scrolling:touch;
	scrollbar-width:none;
}

/* Customer account menu: the visible avatar is the touch target on phones.
   Keep the dropdown above the sticky category navigation. */
.pt-header-top{z-index:1000}
.pt-account-menu-toggle{
	display:flex;
	align-items:center;
	justify-content:center;
	cursor:pointer;
	touch-action:manipulation;
	-webkit-tap-highlight-color:transparent;
}
.pt-account-menu-toggle:focus-visible{
	outline:2px solid #f46e07;
	outline-offset:3px;
}
#pt-account-dropdown{
	pointer-events:none;
}
#pt-account-dropdown.open{
	pointer-events:auto;
}
@media (max-width:767.98px){
	/* Keep language and account actions perfectly aligned in the mobile hero. */
	.pt-header-top .pt-menu > ul{
		display:flex;
		align-items:center;
		gap:12px;
	}
	.pt-header-top .pt-menu > ul > li.pt-customer-language-item,
	.pt-header-top .pt-menu > ul > li.pt-img,
	.pt-header-top .pt-menu > ul > li.pt-login{
		display:flex !important;
		align-items:center;
		justify-content:center;
		width:44px;
		height:44px;
		min-width:44px;
		margin:0 !important;
		padding:0 !important;
		border:0 !important;
		background:transparent !important;
		box-sizing:border-box;
	}
	.pt-header-top .pt-customer-language-item .dropdown{
		display:flex;
		align-items:center;
		justify-content:center;
		width:44px;
		height:44px;
		margin:0 !important;
	}
	.pt-header-top .pt-customer-language-item .dropbtn,
	.pt-header-top .pt-menu ul li.pt-login > a,
	.pt-header-top .pt-account-menu-toggle{
		display:flex !important;
		align-items:center;
		justify-content:center;
		width:44px !important;
		height:44px !important;
		min-width:44px;
		margin:0 !important;
		padding:0 !important;
		border:1.5px solid rgba(255,255,255,.78) !important;
		border-radius:9999px !important;
		background:rgba(255,255,255,.94) !important;
		box-shadow:0 5px 16px rgba(20,24,32,.16) !important;
		box-sizing:border-box;
	}
	.pt-header-top .pt-menu ul li.pt-login > a,
	.pt-header-top .pt-account-menu-toggle{
		border:2px solid #3b3f46 !important;
		box-shadow:0 0 0 2px rgba(255,255,255,.76), 0 5px 15px rgba(20,24,32,.16) !important;
	}
	.pt-header-top .pt-customer-language-item .dropbtn i{
		font-size:21px;
		line-height:1;
		color:#f46e07 !important;
	}
	.pt-header-top .pt-menu ul li.pt-login > a i{
		margin:0 !important;
		font-size:18px !important;
		line-height:1;
		color:#3f444c !important;
	}
	.pt-header-top .pt-menu ul li.pt-img{
		position:relative;
		align-items:center;
		padding:0 !important;
		border:0 !important;
		background:transparent;
	}
	.pt-header-top .pt-account-menu-toggle{
		overflow:hidden;
	}
	.pt-header-top .pt-account-menu-toggle img{
		width:100%;
		height:100%;
		object-fit:cover;
		border-radius:inherit;
	}
	.pt-header-top #pt-account-dropdown{
		top:52px !important;
		right:0 !important;
		left:auto !important;
		width:min(270px, calc(100vw - 24px)) !important;
		padding:8px !important;
		border:1px solid #e0e3e7;
		border-radius:16px !important;
		background:#fff;
		box-shadow:0 16px 36px rgba(24,29,39,.18) !important;
		z-index:1200 !important;
	}
	.pt-header-top #pt-account-dropdown li{
		width:100%;
		margin:0 !important;
	}
	.pt-header-top #pt-account-dropdown li a{
		display:flex !important;
		align-items:center;
		width:100%;
		min-height:44px;
		padding:9px 12px !important;
		font-size:14px !important;
		line-height:1.25;
		color:#292d33 !important;
		border:0 !important;
		border-radius:11px !important;
		box-sizing:border-box;
	}
	.pt-header-top #pt-account-dropdown li a:active{
		background:#f3f4f6 !important;
	}
}
#resMobilemenu::-webkit-scrollbar{ display:none; }
#resMobilemenu .swiper-slide a{
	position:relative;
	min-height:34px;
	margin:2px 0;
	padding:6px 14px;
	font-weight:500;
	color:#202125 !important;
	letter-spacing:.1px;
	border:1px solid #b7bac0 !important;
	border-radius:9999px !important;
	background:transparent;
	transition:border-color .15s ease-in-out;
}
#resMobilemenu .swiper-slide a:hover{
	color:#202125;
	background:transparent;
}
#resMobilemenu a.categories__list__active{
	color:#202125 !important;
	font-weight:500;
	border:2px solid #ff5722 !important;
	background:transparent !important;
}
#resMobilemenu .swiper-slide a img{
	filter:grayscale(15%);
	margin-inline-start:4px;
}
/* The separate category-menu button and its vertical popup intentionally
   keep their existing position, styling and behavior. */

/* ---------- Rabatt-Hinweis-Banner ("X% Rabatt bei Direktbestellung") ---------- */
.pt-savings-banner{
	border-radius:14px;
	box-shadow:0 4px 16px rgba(180,33,47,.08);
}
.pt-savings-banner{
	border-radius:12px;
	box-shadow:0 4px 16px rgba(180,33,47,.08);
	padding:.7rem .9rem !important;
	gap:.65rem !important;
}
.pt-savings-icon{
	width:2.1rem !important;
	height:2.1rem !important;
	font-size:1rem !important;
}
.pt-savings-text strong{
	font-size:1rem !important;
	line-height:1.3;
	font-weight:700;
}
.pt-savings-text span{
	font-size:.9rem !important;
	line-height:1.4;
	font-weight:600;
	opacity:1 !important;
}
/* Auf dem Handy bewusst NICHT gestapelt/zentriert (wie vorher), sondern
   weiterhin nebeneinander - spart deutlich Hoehe und wirkt aufgeraeumter. */
@media only screen and (max-width:500px){
	.pt-savings-banner{ flex-direction:row !important; text-align:left !important; }
	.pt-savings-text strong{ font-size:.95rem !important; }
	.pt-savings-text span{ font-size:.88rem !important; line-height:1.38; }
}
.pt-savings-icon-img{ width:2.1rem !important; height:2.1rem !important; flex:0 0 auto; border-radius:8px; overflow:hidden; }
.pt-savings-icon-img img{ width:100%; height:100%; object-fit:cover; }

/* ---------- Gerichte-Karten ---------- */
.item{
	margin-bottom:18px;
}
.item .item-menu{
	border:1px solid #f0f0f2;
	border-radius:16px;
	box-shadow:0 2px 10px rgba(20,20,43,.045);
	transition:box-shadow .2s ease, transform .2s ease, border-color .2s ease;
	overflow:hidden;
}
.item:hover .item-menu{
	box-shadow:0 10px 28px rgba(20,20,43,.11);
	border-color:#f7e2cf;
}
.item .item-menu[disabled]{
	box-shadow:none;
}

.item .item-left-part{
	padding:18px 20px;
}
.item-left-inner h3{
	font-size:1.02rem;
	font-weight:700;
	color:#171820;
	letter-spacing:.1px;
}
.item-left-inner p{
	color:#767a89;
	line-height:1.45;
}

/* Keep customer menu cards visually aligned while preserving full text in
   administration. Product names and descriptions are truncated only here. */
.menu-book .item-left-inner h3,
.menu-book .item-left-inner p{
	display:-webkit-box;
	-webkit-box-orient:vertical;
	overflow:hidden;
}
.menu-book .item-left-inner h3{
	-webkit-line-clamp:2;
	line-clamp:2;
	min-height:2.5em;
}
.menu-book .item-left-inner p{
	-webkit-line-clamp:2;
	line-clamp:2;
	height:2.9em;
}

/* Every product card in a grid row uses the same height. Drinks deliberately
   have no description text, but their empty description element reserves the
   same space as food cards so names and prices remain aligned. */
.menu-book .container_inner > .row > [class*="col-"]{
	display:flex;
}
.menu-book .item{
	display:flex;
	width:100%;
}
.menu-book .item .item-menu{
	flex:1 1 auto;
}
.menu-book .pt-menu-item-description{
	display:-webkit-box;
	-webkit-box-orient:vertical;
	-webkit-line-clamp:2;
	line-clamp:2;
	overflow:hidden;
	height:2.9em;
	min-height:2.9em;
	color:#767a89;
	font-size:.8rem;
	font-weight:400;
	line-height:1.45;
	text-align:start;
}
.item-price p{
	font-size:1.05rem;
	font-weight:700;
	color:#171820;
}

/* Consistent restaurant-grade food photography. Every menu image uses the
   same clean frame and focal alignment without stretching the source. */
.menu-book .item-right-inner span{
	background:#f6f4f0;
	box-shadow:inset 0 0 0 1px rgba(27,31,38,.06);
}
.menu-book .item-right-inner img{
	display:block;
	object-fit:cover;
	object-position:50% 50%;
	image-rendering:auto;
	backface-visibility:hidden;
	transition:transform .28s ease, filter .28s ease;
}
.menu-book .item:hover .item-right-inner img{
	transform:scale(1.025);
	filter:saturate(1.02) contrast(1.015);
}
/* FIX (02.08.2026): Rote Markierung + Meldung + Aktionen fuer einen im
   Warenkorb liegenden, zur gewaehlten Zeit gerade nicht bestellbaren
   Artikel (siehe ajax/fetchtocart.php, fh_cart_unavailable_message()). */
.item-menu.row.pt-cart-item-unavail{
	background-color:#fdf1f1;
	border:1px solid #f1c4c4;
	border-radius:.5rem;
	margin-bottom:.5rem;
}
.pt-cart-unavail-warning{
	flex-basis:100%;
	padding:.5rem .75rem .75rem;
}
.pt-cart-unavail-warning p{
	color:#c0293a;
	font-size:.82rem;
	font-weight:600;
	margin:0 0 .5rem;
	line-height:1.4;
}
.pt-cart-unavail-warning p i{
	margin-right:4px;
}
.pt-cart-unavail-actions{
	display:flex;
	gap:.5rem;
	flex-wrap:wrap;
}
.pt-cart-unavail-changetime,
.pt-cart-unavail-remove{
	border:1px solid #c0293a;
	background:#fff;
	color:#c0293a;
	border-radius:.4rem;
	padding:.35rem .7rem;
	font-size:.78rem;
	font-weight:600;
	cursor:pointer;
}
.pt-cart-unavail-changetime{
	background:#c0293a;
	color:#fff;
	border-color:#c0293a;
}
/* Konflikt-Modal (siehe index.php, "#pt-cart-conflict-popup") - Liste der
   betroffenen Artikel mit ihrer jeweiligen Meldung. */
#pt-cart-conflict-list{
	text-align:left;
	margin:12px 0 16px;
}
#pt-cart-conflict-list p{
	color:#c0293a;
	font-size:.85rem;
	font-weight:600;
	margin:0 0 8px;
	line-height:1.4;
}
#pt-cart-conflict-list p i{
	margin-right:4px;
}
/* FIX (02.08.2026): ".item-price p" oben ueberschreibt sonst die Farbe des
   roten Hinweistexts bei nicht bestellbaren Artikeln, wodurch er praktisch
   unsichtbar (normale dunkle Schriftfarbe) wirkte. Diese Regel ist
   spezifischer (Klasse + Klasse statt nur Klasse + Element) und steht
   ausserdem in dieser, als letztes geladenen Datei - gewinnt also sicher. */
.item-price p.category-unavailable-note{
	display:inline-flex;
	align-items:center;
	width:auto;
	max-width:100%;
	margin:6px 0 0;
	padding:3px 8px;
	border:1px solid #e6caca;
	border-radius:999px;
	background:#fffafa;
	color:#7a6565;
	font-size:11.5px;
	font-weight:400;
	line-height:1.35;
}

/* Calm cart and modal treatment for time-based availability conflicts. */
.item-menu.row.pt-cart-item-unavail{
	background:#fcfbfb;
	border-color:#eadcdc;
}
.pt-cart-unavail-warning p,
#pt-cart-conflict-list p{
	color:#675d5d;
	font-size:12px;
	font-weight:400;
}
.pt-cart-conflict-popup h4{ color:#333; font-size:17px; }
.pt-cart-conflict-popup h4 i{ color:#d89425; }

/* Checkout field feedback is displayed directly below the affected field. */
.pt-inline-field-error{
	display:block;
	margin:4px 0 0;
	color:#c43737;
	font-size:11.5px;
	font-weight:400;
	line-height:1.35;
}
.pt-field-missing{ border-color:#cf5a5a !important; box-shadow:0 0 0 2px rgba(207,90,90,.1) !important; }
.pt-address-summary-text{ min-width:0; }
.pt-address-summary-text small{ display:block; }
.pt-address-summary-address{ color:#676b78; white-space:normal; }
.pt-receipt-reference-lines{
	margin:0 0 10px;
	padding:9px 11px;
	border:1px solid #ece2d8;
	border-radius:9px;
	background:#fffaf5;
}
.pt-receipt-reference-lines p{
	display:flex;
	justify-content:space-between;
	gap:14px;
	margin:0 !important;
	font-size:13.5px;
	line-height:1.55;
	white-space:nowrap;
}
.discount-price{
	font-weight:400 !important;
	color:#a7abb6 !important;
	text-decoration:line-through;
	font-size:.85em;
	margin-inline-start:4px;
}

/* Bild rechts: sanftere Ecken, dezenter Rahmen, kein hartes Rechteck mehr */
.item-right-inner span{
	border-radius:14px !important;
	box-shadow:inset 0 0 0 1px rgba(0,0,0,.04);
}
.item-right-inner img{
	transition:transform .35s ease;
}
.item:hover .item-right-inner img{
	transform:scale(1.06);
}

/* Badges: etwas weicher/konsistenter, mit kleinem Schatten statt platt */
.popular, .discount-badge, .plus-18{
	display:inline-block;
	box-shadow:0 2px 6px rgba(0,0,0,.12);
	vertical-align:middle;
	font-weight:700;
	letter-spacing:.2px;
}
.discount-badge{
	background:linear-gradient(117deg, #d8283a 0%, #b4212f 100%);
}

/* "+"-Button auf dem Bild: sichtbarer, mit leichtem Schatten statt nur
   Hintergrundfarbe, damit er auf jedem Foto gut zu erkennen ist. */
.item .kHKwux{
	box-shadow:0 3px 10px rgba(214,237,249,.9);
}
.item .cart-item{
	box-shadow:0 3px 10px rgba(244,110,7,.35);
}

/* ---------- "Bestellung ansehen" - Balken unten ---------- */
.checkout{
	box-shadow:0 10px 30px rgba(245,110,7,.35);
	font-weight:700;
	letter-spacing:.2px;
}
.total-cart-count{
	font-weight:800;
	box-shadow:0 2px 6px rgba(0,0,0,.15);
}

/* ---------- "Ausverkauft"-Kennzeichnung ---------- */
.soldout-badge{
	display:inline-block;
	background:#6c6f7a;
	color:#fff;
	font-weight:700;
	font-size:12px;
	padding:4px 10px;
	border-radius:999px;
	letter-spacing:.2px;
}
/* Wenn ein Artikel ausverkauft ist (oder seine Kategorie gerade nicht
   verfuegbar ist), wird der "+"-Button per [disabled] deaktiviert - dann
   die ganze Karte klar erkennbar ausgrauen, statt dass es wie ein Fehler
   aussieht. */
.item .item-menu:has(button[disabled]){
	opacity:.55;
	filter:grayscale(35%);
}
.item .item-menu:has(button[disabled]) .item-right-inner img{
	transform:none !important;
}

@media only screen and (max-width: 700px){
	.item .item-left-part{ padding:14px 16px; }
	.item-left-inner h3{ font-size:.95rem; }
	.item-price p{ font-size:.98rem; }
	.popular, .discount-badge, .plus-18{ font-size:11px; padding:3px 7px; }
}

/* ---------- Live-Bestellstatus ("Meine Bestellungen") ---------- */
.pt-order-tracker{
	display:flex;
	align-items:flex-start;
	justify-content:center;
}
.pt-tracker-step{
	display:flex;
	flex-direction:column;
	align-items:center;
	gap:6px;
	flex-shrink:0;
}
.pt-tracker-step .dot{
	width:28px;height:28px;border-radius:50%;
	background:#f0f0f2;color:#a4a7b3;
	display:flex;align-items:center;justify-content:center;
	font-size:12px;flex-shrink:0;
	transition:background .2s ease, color .2s ease, box-shadow .2s ease;
}
.pt-tracker-step.done .dot{background:#2ecc71;color:#fff;}
.pt-tracker-step.active .dot{background:#f46e07;color:#fff;box-shadow:0 0 0 5px rgba(244,110,7,.16);}
.pt-tracker-step .label{font-size:11px;color:#9296a3;white-space:nowrap;}
.pt-tracker-step.active .label{color:#f46e07;font-weight:700;}
.pt-tracker-step.done .label{color:#2ecc71;font-weight:600;}
.pt-tracker-line{flex:1;height:3px;background:#f0f0f2;margin:13px 4px 0;border-radius:2px;min-width:16px;}
.pt-tracker-line.done{background:#2ecc71;}
.pt-order-tracker--problem{color:#b4212f;text-align:center;padding:10px;font-size:13px;line-height:1.5;}

/* Voraussichtliche Ankunftszeit + Countdown unter dem Tracker */
.pt-tracker-eta{
	text-align:center;
	margin-top:14px;
	font-size:13.5px;
	color:#5b5f6d;
	background:#fafbfc;
	border-radius:10px;
	padding:10px 14px;
}
.pt-tracker-eta i{ color:#f46e07; margin-right:6px; }
.pt-tracker-eta-countdown{ color:#9296a3; margin-left:4px; }
.pt-tracker-eta-delay{ display:block; margin-top:4px; color:#c96a00; font-size:12px; }
.pt-order-status-badge .pt-tracker-eta{ display:none; } /* in der Tabellenzelle ("Meine Bestellungen") nicht noetig, nur im Popup */


/* Kompakte Variante fuer die Tabellenzelle in "Meine Bestellungen" */
.pt-order-status-badge{display:inline-block;text-decoration:none;}
.pt-order-status-badge .pt-tracker-step .label{display:none;}
.pt-order-status-badge .pt-tracker-step .dot{width:18px;height:18px;font-size:9px;}
.pt-order-status-badge .pt-tracker-line{margin:8px 2px 0;height:2px;min-width:8px;}
.pt-order-status-badge .pt-order-tracker--problem{font-size:11px;padding:2px 4px;white-space:nowrap;}
.pt-order-status-badge .pt-order-tracker--problem br,
.pt-order-status-badge .pt-order-tracker--problem span{display:none;}

/* Groessere, luftigere Variante im Modal */
#orderTrackModalContent .pt-order-tracker{padding:22px 4px 6px;}
#orderTrackModalContent .pt-order-tracker--problem{font-size:15px;padding:20px 10px;}
#orderTrackModalContent .pt-order-tracker--problem i{font-size:28px;display:block;margin-bottom:8px;}

/* ---------- Kategorien-Popup (☰-Button neben der Kategorie-Leiste) ----------
   Oeffnet eine Liste aller Kategorien von unten (wie ein Bottom-Sheet),
   inkl. kurzer Artikel-Vorschau je Kategorie, zum direkten Anspringen. */
.pt-cat-bar-wrapper{
	position:relative;
	background:#fff;
	display:flex;
	align-items:center;
	min-height:56px;
	overflow:hidden;
}
/* FIX (24.07.2026): Neuer, robusterer Aufbau - Pfeile und Hamburger-Symbol
   liegen jetzt als feste Overlay-Elemente OBEN AUF der Kategorie-Leiste
   (position:absolute, mittig ausgerichtet ueber top:50%), statt als
   normale Nachbar-Elemente in der Zeile. Dadurch gibt es NIE mehr eine
   Ueberlappung, egal wie Swiper seine eigene Breite intern berechnet -
   die Karussell-Leiste selbst bekommt einfach passenden Platz auf der
   rechten (und ggf. linken) Seite freigehalten (padding), und ein sanfter
   weisser Farbverlauf sorgt dafuer, dass der durchscrollende Text nicht
   hart abgeschnitten unter den Symbolen verschwindet. */
#resMobilemenu{
	flex:1 1 auto;
	min-width:0;
	max-width:100%;
	/* Swiper alone controls the horizontal position. Native overflow scrolling
	   here previously competed with Swiper's transform and clipped the first
	   or last category after an automatic active-category change. */
	overflow:hidden !important;
	padding-right:52px;
	/* FIX (24.07.2026): "margin-bottom:20px" (aus einer aelteren, generischen
	   Regel in style.css) hat die Kategorie-Texte optisch nach oben
	   verschoben, wodurch sie nicht mehr auf derselben Hoehe wie die neuen
	   Pfeile/das Hamburger-Symbol standen (die sich an der WIRKLICHEN
	   Boxhoehe orientieren, inklusive diesem unsichtbaren Rand). Hier auf 0
	   gesetzt, nur innerhalb dieser Leiste. */
	margin-bottom:0;
}
.pt-cat-bar-wrapper.pt-has-prev-arrow #resMobilemenu{ padding-left:44px; }
@media (min-width: 768px){
	#resMobilemenu{ padding-right:96px; }
}
/* Links/Rechts-Pfeile fuer die Kategorie-Leiste - vorher war "navigation"
   im Swiper zwar schon konfiguriert (siehe scripts.php), es fehlten aber
   die passenden HTML-Elemente dazu, weshalb nie ein Pfeil zu sehen war.
   Blenden sich von Swiper selbst automatisch aus/an, wenn man am
   Anfang/Ende der Liste angekommen ist. */
.pt-cat-arrow{
	position:absolute;
	top:50%;
	transform:translateY(-50%);
	/* FIX (24.07.2026): Swiper setzt fuer seine eigenen Pfeil-Buttons
	   standardmaessig ZUSAETZLICH einen "margin-top" zur Mitten-
	   Ausrichtung (unabhaengig von unserer eigenen "transform"-basierten
	   Zentrierung oben) - beide zusammen haben sich aufaddiert und die
	   Pfeile zu weit nach oben verschoben. Hier auf 0 zurueckgesetzt,
	   damit nur noch unsere eigene, saubere Zentrierung gilt (genau wie
	   beim Hamburger-Symbol, das dieses Problem nicht hat, weil es kein
	   Swiper-Element ist). */
	margin-top:0 !important;
	width:36px;
	height:36px;
	border-radius:50%;
	border:1px solid #e4e4e4;
	background:#fff;
	color:#f46e07;
	display:flex;
	align-items:center;
	justify-content:center;
	cursor:pointer;
	font-size:14px;
	z-index:2;
}
.swiper-button-prev.pt-cat-arrow{ left:6px; }
.swiper-button-next.pt-cat-arrow{ right:48px; }
@media (min-width: 768px){
	.swiper-button-next.pt-cat-arrow{ right:52px; }
}
.pt-cat-arrow.swiper-button-disabled{
	display:none;
}
.pt-cat-arrow::after{ content:none; } /* Swiper's eigenes Pfeil-Icon per CSS abschalten, wir nutzen Font Awesome */
/* Sanfter weisser Verlauf rechts (und links, wenn der Pfeil dort aktiv
   ist) - der durchlaufende Kategorie-Text "verschwindet" dadurch weich,
   statt hart unter dem Pfeil/Symbol abgeschnitten zu wirken. */
.pt-cat-bar-wrapper::after{
	content:"";
	position:absolute;
	top:0; right:0; bottom:0;
	width:56px;
	background:linear-gradient(to right, rgba(255,255,255,0), #fff 65%);
	pointer-events:none;
	z-index:1;
}
@media (min-width: 768px){
	.pt-cat-bar-wrapper::after{ width:100px; }
}
/* FIX (24.07.2026): Auf dem Handy tippt/wischt man die Kategorie-Leiste
   direkt mit dem Finger durch - die Pfeile brauchen dort niemand und
   nehmen nur wertvollen Platz weg (genau wie bei Lieferando: dort gibt es
   die Pfeile auch nur am Desktop, auf dem Handy verschwinden sie). Das
   Hamburger-Menue-Symbol daneben bleibt auf beiden Groessen erhalten. */
@media (max-width: 767.98px){
	.pt-cat-arrow{ display:none; }
	#resMobilemenu{ padding-right:48px; }
}
/* FIX (24.07.2026): Genau dieselbe Groesse und dieselbe Overlay-Logik wie
   die Pfeile (siehe oben) - dadurch bleibt der Knopf IMMER exakt mittig
   ausgerichtet und ueberlappt nie mehr mit dem Pfeil oder den Kategorien
   dahinter, unabhaengig von deren Breite. */
.pt-cat-menu-btn{
	position:absolute;
	top:50%;
	right:6px;
	transform:translateY(-50%);
	width:36px; height:36px;
	border-radius:50%;
	border:none;
	background:#f46e07;
	color:#fff;
	display:flex; align-items:center; justify-content:center;
	cursor:pointer;
	padding:0;
	box-shadow:0 2px 8px rgba(244,110,7,.35);
	transition:background-color .15s ease, transform .15s ease;
	z-index:2;
}
.pt-cat-menu-btn:hover{
	background:#d65f05;
	transform:translateY(-50%) scale(1.06);
}
.pt-cat-menu-btn svg{ width:16px; height:16px; }

.pt-cat-popup-overlay{
	position:fixed; inset:0; background:rgba(20,20,43,.35);
	z-index:1200; display:none;
}
.pt-cat-popup{
	position:fixed; left:0; right:0; bottom:0;
	max-height:80vh; overflow-y:auto;
	background:#fff;
	border-radius:18px 18px 0 0;
	box-shadow:0 -10px 30px rgba(20,20,43,.2);
	z-index:1201;
	padding:18px 20px 24px;
	display:none;
	transform:translateY(100%);
	transition:transform .25s ease;
}
.pt-cat-popup-overlay.pt-cat-popup-open,
.pt-cat-popup.pt-cat-popup-open{ display:block; }
.pt-cat-popup.pt-cat-popup-open{ transform:translateY(0); }
.pt-cat-popup-handle{
	width:40px; height:4px; border-radius:3px; background:#e2e2e6;
	margin:0 auto 14px;
}
.pt-cat-popup-header{
	display:flex; align-items:center; justify-content:space-between;
	margin-bottom:10px;
}
.pt-cat-popup-header h3{ font-size:20px; font-weight:800; margin:0; }
.CloseBtnCat{
	border:none; background:#f4f4f6; width:32px; height:32px; border-radius:50%;
	font-size:18px; line-height:1; cursor:pointer; color:#333;
}
.pt-cat-popup-row{
	display:flex; align-items:center; justify-content:space-between;
	padding:14px 4px; border-bottom:1px solid #f1f1f3;
	cursor:pointer;
}
.pt-cat-popup-row:last-child{ border-bottom:none; }
.pt-cat-popup-row-img{
	width:52px; height:52px; flex:0 0 auto;
	border-radius:12px; overflow:hidden;
	margin-right:14px;
	background:#f4f4f6;
}
.pt-cat-popup-row-img img{ width:100%; height:100%; object-fit:cover; display:block; }
.pt-cat-popup-row-text{ flex:1; min-width:0; }
.pt-cat-popup-row-text h4{ font-size:16px; font-weight:700; margin:0 0 4px; }
.pt-cat-popup-row-text p{
	font-size:13px; color:#8b8f9c; margin:0;
	display:-webkit-box; -webkit-line-clamp:1; -webkit-box-orient:vertical;
	overflow:hidden;
}
.pt-cat-popup-check{ font-size:16px; color:#2ecc71; display:none; flex:0 0 auto; margin-left:10px; }
.pt-cat-popup-row.active .pt-cat-popup-check{ display:inline-block; }


/* ---------- Mindestbestellwert-Banner im Warenkorb ---------- */
.pt-minorder-banner{
	display:block;
	background:#fff;
	color:#202125;
	border:1px solid #ffd0b8;
	border-radius:12px;
	padding:10px 12px;
	margin:0 0 14px;
	font-size:12px;
	line-height:1.4;
}
.pt-minorder-banner b{ font-weight:800; }
.pt-minorder-track{height:8px;margin-bottom:7px;border-radius:999px;background:#f0f1f3;overflow:hidden}
.pt-minorder-track>span{display:block;position:relative;height:100%;min-width:8px;border-radius:inherit;background:#ff6b21;overflow:hidden;transition:width .3s ease}
.pt-minorder-running .pt-minorder-track>span:after{content:"";position:absolute;inset:0;width:55%;background:linear-gradient(90deg,transparent,rgba(255,255,255,.9),transparent);animation:ptMinOrderGlow 1.25s linear infinite}
.pt-minorder-text{font-size:12px;line-height:1.35;font-weight:600;text-align:center}
.pt-minorder-banner.pt-minorder-reached{border-color:#a6d7b0;color:#1b5e20;background:#fff}
.pt-minorder-reached .pt-minorder-track>span{background:#2e7d32}
@keyframes ptMinOrderGlow{from{transform:translateX(-120%)}to{transform:translateX(220%)}}
@media (prefers-reduced-motion:reduce){.pt-minorder-running .pt-minorder-track>span:after{animation:none}}
.checkout_button.pt-checkout-disabled{
	background:#e2e2e6 !important;
	color:#9296a3 !important;
	cursor:not-allowed !important;
	box-shadow:none !important;
	pointer-events:none;
}

/* ---------- Bestaetigungs-Popup vor dem Bezahlen ("Ihre Artikel von...") ---------- */
.pt-order-confirm-overlay{
	position:fixed; inset:0; background:rgba(20,20,43,.35);
	z-index:1300; display:none;
}
.pt-order-confirm-popup{
	position:fixed; left:0; right:0; bottom:0;
	max-height:80vh; overflow-y:auto;
	background:#fff;
	border-radius:18px 18px 0 0;
	box-shadow:0 -10px 30px rgba(20,20,43,.2);
	z-index:1301;
	padding:18px 20px 20px;
	display:none;
	transform:translateY(100%);
	transition:transform .25s ease;
}
.pt-order-confirm-overlay.pt-open,
.pt-order-confirm-popup.pt-open{ display:block; }
.pt-order-confirm-popup.pt-open{ transform:translateY(0); }
.pt-order-confirm-popup h4{ font-size:20px; font-weight:800; margin:4px 0 14px; }
.pt-order-confirm-restaurant{
	display:flex; align-items:center; gap:12px;
	background:#fafbfc; border-radius:12px; padding:10px 14px; margin-bottom:14px;
}
.pt-order-confirm-restaurant img{ width:40px; height:40px; border-radius:8px; object-fit:cover; }
.pt-order-confirm-restaurant strong{ display:block; font-size:14px; }
.pt-order-confirm-restaurant span{ font-size:12px; color:#8b8f9c; }
.pt-order-confirm-item{
	display:flex; align-items:center; gap:10px;
	padding:10px 2px; border-bottom:1px solid #f1f1f3;
	font-size:14px;
}
.pt-order-confirm-item:last-child{ border-bottom:none; }
.pt-order-confirm-qty{ font-weight:700; color:#5b5f6d; flex:0 0 auto; }
.pt-order-confirm-name{ flex:1; }
.pt-order-confirm-price{ font-weight:700; flex:0 0 auto; }
.pt-order-confirm-btn{ width:100%; margin-top:16px; }

/* ---------- Lieferzeit-Anzeige im Warenkorb ---------- */
.pt-cart-eta-badge{
	display:flex; align-items:center; gap:8px;
	background:#fafbfc; border-radius:12px;
	padding:10px 14px; margin-bottom:14px;
	font-size:13px; font-weight:600; color:#3d3f4d;
}
.pt-cart-eta-badge i{ color:#f46e07; }

/* ---------- Notiz pro Artikel im Warenkorb ---------- */
.pt-item-note-btn{
	border:none; background:none; padding:0; margin-top:2px;
	font-size:12px; font-weight:700; color:#f46e07; cursor:pointer;
}
.cart-item-note{ color:#8b8f9c; }
.pt-item-note-overlay{
	position:fixed; inset:0; background:rgba(20,20,43,.35);
	z-index:1400; display:none;
}
.pt-item-note-popup{
	position:fixed; left:0; right:0; bottom:0;
	background:#fff;
	border-radius:18px 18px 0 0;
	box-shadow:0 -10px 30px rgba(20,20,43,.2);
	z-index:1401;
	padding:18px 20px 22px;
	display:none;
	transform:translateY(100%);
	transition:transform .25s ease;
}
.pt-item-note-overlay.pt-open,
.pt-item-note-popup.pt-open{ display:block; }
.pt-item-note-popup.pt-open{ transform:translateY(0); }
.pt-item-note-head{ display:flex; align-items:center; gap:10px; margin:4px 0 14px; }
.pt-item-note-head i{
	width:30px; height:30px; border-radius:9px; background:#fdeee0; color:#f46e07;
	display:flex; align-items:center; justify-content:center; font-size:13px; flex-shrink:0;
}
.pt-item-note-popup h4{ font-size:17px; font-weight:800; margin:0; flex:1; }
.pt-item-note-close{
	border:none; background:#f4f5f7; color:#3a3d46;
	width:28px; height:28px; border-radius:50%;
	font-size:18px; line-height:1; cursor:pointer; flex-shrink:0;
}
.pt-item-note-close:hover{ background:#eaebee; }
.pt-item-note-popup textarea{
	width:100%; border:1px solid #e2e2e6; border-radius:12px;
	padding:12px 14px; font-size:14px; resize:none;
	transition:border-color .15s ease;
}
.pt-item-note-popup textarea:focus{ outline:none; border-color:#f46e07; }
.pt-item-note-counter{
	text-align:right; font-size:12px; color:#9296a3; margin-top:6px;
}
.pt-item-note-save-status{
	min-height:18px; margin-top:4px; color:#6f7480; font-size:12px;
	font-weight:600; text-align:center;
}
.pt-item-note-save-status.pt-success{ color:#247a45; }
.pt-item-note-save-status.pt-error{ color:#b33b36; }
.pt-item-note-actions{ display:flex; gap:10px; margin-top:16px; }
.pt-item-note-cancel-btn{
	flex:1; border:1px solid #e2e2e6; background:#fff; color:#3a3d46;
	font-weight:700; font-size:14px; border-radius:12px; padding:12px; cursor:pointer;
}
.pt-item-note-cancel-btn:hover{ background:#f7f7f8; }
.pt-item-note-actions .pt-btn{ flex:1; margin:0; }
body.pt-item-note-open{
	position:fixed; left:0; right:0; width:100%; overflow:hidden;
}
.pt-note-saved-toast{
	position:fixed; left:50%; bottom:calc(24px + env(safe-area-inset-bottom));
	z-index:1600; transform:translate(-50%, 18px); opacity:0;
	display:flex; align-items:center; gap:7px; max-width:calc(100vw - 32px);
	padding:10px 16px; border:1px solid #b9ddc6; border-radius:999px;
	background:#f4fbf6; color:#22683d; box-shadow:0 8px 24px rgba(20,20,43,.18);
	font-size:13px; font-weight:700; white-space:nowrap;
	transition:opacity .18s ease, transform .18s ease;
}
.pt-note-saved-toast.pt-visible{ opacity:1; transform:translate(-50%, 0); }

@media(max-width:767.98px){
	.pt-item-note-popup{
		padding-bottom:calc(18px + env(safe-area-inset-bottom));
	}
	/* A 16px input prevents Safari from zooming and shifting the page. */
	.pt-item-note-popup textarea{ font-size:16px; }
}

/* ---------- Schwebende Warenkorb-Leiste (nur Handy, bereits vorhandenes
   Element .only-mobile-cart in footer.php - blendet sich per JS schon beim
   Scrollen ein/aus, hier nur huebscher gestaltet wie bei Lieferando) ---------- */
.only-mobile-cart{
	z-index:900;
}
/* FIX (29.07.2026): Bei mittleren Bildschirmbreiten (Tablet-Bereich,
   768px-1199px) rutschte die Warenkorb-Leiste manchmal in den normalen
   Seitenfluss statt am Bildschirmrand "kleben" zu bleiben - man musste
   ganz nach unten scrollen, um sie zu finden. Trotz gruendlicher Suche
   liess sich die genaue Ursache nicht zweifelsfrei festnageln (vermutlich
   ein Zusammenspiel mit einem uebergeordneten Element). Deshalb hier zur
   Sicherheit ausdruecklich erzwungen, unabhaengig von der Ursache. */
@media (min-width: 768px) and (max-width: 1199.98px){
	.only-mobile-cart{
		position:fixed !important;
		left:3% !important;
		bottom:3% !important;
		width:94% !important;
		top:auto !important;
		right:auto !important;
	}
	.sidebar-cart-active{
		position:fixed !important;
	}
}
.only-mobile-cart .pt-custom-cart{
	background:#f46e07 !important;
	border-radius:14px;
	box-shadow:0 8px 24px rgba(20,20,43,.25);
	overflow:hidden;
}
.only-mobile-cart .pt-custom-cart a,
.only-mobile-cart .pt-custom-cart > span{
	padding:14px 18px;
	color:#fff !important;
	display:flex !important;
	align-items:center;
	gap:10px;
}
.only-mobile-cart .pt-custom-cart .total-item{
	background:rgba(255,255,255,.25);
	width:26px; height:26px; border-radius:50%;
	display:flex; align-items:center; justify-content:center;
	font-size:13px; font-weight:800; flex:0 0 auto;
}
.only-mobile-cart .pt-custom-cart .view-order{ flex:1; }
/* Solange der Mindestbestellwert nicht erreicht ist: grau statt orange,
   Zeiger statt Hand-Cursor, nicht antippbar (siehe js/custom.js,
   miniCart() - der Klick wird dort bei dieser Klasse ignoriert). Genau wie
   bei Lieferando: erst ab Erreichen des Mindestbestellwerts wird die
   Leiste wieder orange und klickbar. */
.only-mobile-cart .pt-custom-cart.pt-cart-below-minimum{
	background:#9297a3 !important;
	cursor:not-allowed;
}
.only-mobile-cart .pt-custom-cart.pt-cart-below-minimum .view-order{
	font-size:13px;
}
/* Die schwebende Leiste soll wie bei Lieferando NUR erscheinen, wenn
   tatsaechlich etwas im Warenkorb liegt - vorher wurde auch der leere
   Fallback-Text "Scheduled orders only" prominent als orange Leiste
   angezeigt, was wie eine kaputte/verwirrende Meldung wirkte. */
.only-mobile-cart:has(a[data-toggle="modal"]){ display:none !important; }

/* ---------- Öffnungszeiten-Anzeige (oben bei Bewertung/Uhrzeit) ---------- */
.pt-store-status.pt-store-open{ color:#2c4a6b; font-weight:600; }
.pt-store-status{
	display:inline-flex;
	align-items:center;
	min-height:34px;
	padding:5px 14px;
	border:2px solid #50657a;
	border-radius:9999px;
	background:#fff;
	font-size:13px;
	line-height:1.25;
}
.pt-store-status.pt-store-open{
	color:#173b2b;
	border-color:#3f8a66;
}
.pt-store-status.pt-store-closed{
	color:#5c2830;
	font-weight:700;
	background:#fff;
	border-color:#ce7b86;
}
/* FIX (24.07.2026): Der doppelte Hinweistext oben ("Das Restaurant ist
   gerade geschlossen...") wurde entfernt (siehe index.php) - diese Pille
   hier ist jetzt die EINZIGE Geschlossen-Anzeige und wurde deshalb etwas
   auffaelliger gemacht (groesser, dickerer Rahmen), damit sie trotzdem
   gut ins Auge faellt. */
.pt-store-status.pt-store-closed{
	font-size:13px;
	padding:5px 14px;
}

/* The old template rating is hard-coded and therefore unsafe for multiple
   restaurants. Keep it hidden while the database-backed Google badge below
   is shown only when a rating is configured for the current tenant. */
.opening ul > li:nth-child(2):not(.pt-google-rating-item){ display:none; }
.pt-google-rating-pill,
.pt-restaurant-info-link a{
	display:inline-flex;
	align-items:center;
	gap:6px;
	min-height:34px;
	padding:5px 12px;
	border:1px solid #d9dde3;
	border-radius:9999px;
	background:#fff;
	color:#202124 !important;
	font-size:13px;
	line-height:1.2;
	text-decoration:none !important;
}
.pt-google-rating-pill:hover,
.pt-restaurant-info-link a:hover{ border-color:#f46e07; }
.pt-google-rating-item{
	position:relative;
	z-index:2;
}
.pt-restaurant-info-link{
	position:relative;
	z-index:2;
}
.pt-restaurant-info-link a{
	position:relative;
	z-index:1;
	pointer-events:auto !important;
	touch-action:manipulation;
	cursor:pointer;
	-webkit-tap-highlight-color:rgba(244,110,7,.18);
}
.pt-google-rating-pill{
	position:relative;
	z-index:1;
	pointer-events:auto !important;
	touch-action:manipulation;
	cursor:pointer;
	-webkit-tap-highlight-color:rgba(244,110,7,.18);
}
.pt-google-rating-star{ color:#f9a825; font-size:17px; line-height:1; }
.pt-google-rating-pill small{ color:#69707a; font-size:11px; }
.pt-restaurant-info-link .icons{ margin-right:0 !important; }
.opening-section .opening ul{ align-items:center; gap:8px; }
.opening-section .opening li{ margin-right:0; }
.pt-restaurant-story{
	margin:0 0 18px;
	padding:16px 18px;
	border:1px solid #e3e6ea;
	border-radius:14px;
	background:#f8f9fa;
}
.pt-restaurant-story h2{ margin:0 0 8px !important; font-size:17px !important; color:#202124; }
.pt-restaurant-story p{ margin:0; color:#4c535c; font-size:14px; line-height:1.65; }
#info .modal-content{ border:0; border-radius:18px; overflow:hidden; box-shadow:0 18px 55px rgba(22,28,35,.22); }
#info .close{ z-index:3; margin:10px; width:34px; height:34px; border-radius:50%; background:#fff; box-shadow:0 3px 12px rgba(0,0,0,.16); }

/* ---------- Öffnungszeiten / Google / Mehr Infos ----------
   Alle drei Bedienelemente bilden eine ruhige, gleich hohe Reihe. Die Breite
   bleibt jeweils nur so gross wie der Inhalt; mobil werden Abstaende und
   Schrift leicht verdichtet, damit „Mehr Infos“ nicht mehr umbrechen muss. */
.opening-section .opening ul{
	display:flex;
	align-items:stretch;
	flex-wrap:nowrap;
	gap:8px;
}
.opening-section .opening ul > li{
	display:flex;
	align-items:center;
	flex:0 0 auto;
	min-width:0;
	margin:0;
}
.opening-section .opening ul > li:first-child{
	gap:6px;
	position:relative;
}
.opening-section .pt-store-status,
.opening-section .pt-google-rating-pill,
.opening-section .pt-restaurant-info-link a{
	height:42px;
	min-height:42px;
	box-sizing:border-box;
	white-space:nowrap;
}

@media (max-width: 767px){
	.opening-section{
		padding:.8rem 0;
	}
	.opening-section .container-fluid{
		padding-left:10px;
		padding-right:10px;
	}
	.opening-section .opening ul{
		width:100%;
		gap:5px;
		justify-content:flex-start;
	}
	.opening-section .opening ul > li:first-child > .icons{
		/* Die Uhr ist bereits durch den Öffnungsstatus eindeutig; auf dem
		   schmalen Bildschirm schafft ihr Wegfall Platz fuer alle drei Pills. */
		display:none;
	}
	.opening-section .pt-store-status,
	.opening-section .pt-google-rating-pill,
	.opening-section .pt-restaurant-info-link a{
		height:40px;
		min-height:40px;
		padding:5px 9px;
		font-size:12px;
		line-height:1;
	}
	.opening-section .pt-google-rating-pill{
		gap:4px;
	}
	.opening-section .pt-google-rating-star{
		font-size:15px;
	}
	.opening-section .pt-google-rating-pill small{
		font-size:9px;
	}
	.opening-section .pt-restaurant-info-link a{
		gap:4px;
	}
	.opening-section .pt-restaurant-info-link .icons{
		font-size:14px;
	}
	.opening-section .pt-preorder-hint{
		position:absolute;
		top:46px;
		left:0;
		white-space:nowrap;
		margin:0;
		font-size:11px;
	}
	.opening-section .opening ul:has(.pt-preorder-hint){
		padding-bottom:22px;
	}
}

/* Kurzer, zurueckhaltender Hinweis direkt neben der Geschlossen-Pille -
   ersetzt den frueheren, groesseren Absatz ganz oben auf der Seite. */
.pt-preorder-hint{
	display:inline-block;
	margin-left:8px;
	font-size:13px;
	font-weight:400;
	color:#6b6b6b;
	font-style:italic;
}
@media (max-width: 767px){
	.pt-preorder-hint{display:block;margin-left:0;margin-top:4px}
}

/* ---------- Sucheergebnisse ---------- */
.pt-search-results-heading{
	font-size:20px;
	font-weight:800;
	margin-top:10px;
}
.pt-search-results-heading .clear-search{
	color:#f46e07;
	font-weight:700;
	font-size:14px;
	text-decoration:none;
	cursor:pointer;
}
.pt-search-results-heading .clear-search:hover{ text-decoration:underline; }

/* ---------- Sprachauswahl-Globus (oben rechts) ---------- */
.dropbtn{ background:#fdeee0 !important; }
.dropbtn i{ color:#f46e07 !important; }

/* ---------- Kategorien außerhalb ihres Zeitfensters (z.B. Mittagsangebot
   nach 14 Uhr) - werden ans Ende sortiert und leicht abgedunkelt, bleiben
   aber anklickbar/durchstöberbar. ---------- */
#resMobilemenu .scrollsd.pt-cat-unavailable{ opacity:.45; }
.pt-cat-popup-row.pt-cat-unavailable{ opacity:.5; }
.pt-cat-popup-row.pt-cat-unavailable .pt-cat-popup-row-text h4:after{
	content:"· gerade nicht bestellbar";
	font-size:11px;
	font-weight:500;
	color:#b4212f;
	margin-left:6px;
}

/* Artikel-Button ausserhalb des Zeitfensters: sieht deaktiviert aus, ist
   aber klickbar (zeigt ein Erklaerungs-Popup statt einfach nichts zu tun -
   siehe js/custom.js). */
.pt-item-time-restricted{ opacity:.55; cursor:pointer !important; }

/* ---------- Öffnungszeiten-Tabellen (Footer + Info-Popup) ---------- */
.footer-info .info-table,
.info-opentime .info-table{
	width:100%;
	border-collapse:collapse;
	background:#fafbfc;
	border-radius:12px;
	overflow:hidden;
}
.footer-info .info-table tr,
.info-opentime .info-table tr{
	border-bottom:1px solid #eef0f2;
}
.footer-info .info-table tr:last-child,
.info-opentime .info-table tr:last-child{
	border-bottom:none;
}
.footer-info .info-table td,
.info-opentime .info-table td{
	padding:9px 12px;
	font-size:13.5px;
	color:#5b5f6d;
}
.footer-info .info-table tr.pt-today,
.info-opentime .info-table tr.pt-today{
	background:#fdeee0;
}
.footer-info .info-table tr.pt-today td,
.info-opentime .info-table tr.pt-today td{
	color:#202125;
	font-weight:700;
}
.pt-closed-text{ color:#b4212f !important; font-weight:600; }

/* ---------- Checkout-Banner (Kartenbild oben) ---------- */
.checkout-banner img{
	filter: saturate(1.6) contrast(1.08) brightness(1.03);
	/* Vorher gab es hier gar keine Hoehenbegrenzung - auf schmalen
	   Handy-Bildschirmen sah das durch die natuerliche Breite noch
	   proportional aus, auf breiten Desktop-Monitoren wurde die Karte
	   dadurch aber riesig (das Bild hat ein sehr breites Seitenverhaeltnis
	   und wird ueber width:100% einfach mitskaliert). Jetzt gedeckelt auf
	   eine schoene Banner-Hoehe, unabhaengig von der Bildschirmbreite.
	   object-fit:cover schneidet nur die Raender ab, verzerrt aber nichts. */
	width:100%;
	max-height:175px;
	object-fit:cover;
}
@media (min-width: 992px){
	.checkout-banner img{ height:165px; max-height:165px; }
}

/* ---------- Zahlungsart-Auswahl (kompakt, wie bei Lieferando) ---------- */
.pt-payment-summary{
	display:flex;
	align-items:center;
	gap:10px;
	background:#fafbfc;
	border:1px solid #eef0f2;
	border-radius:12px;
	padding:14px 16px;
	cursor:pointer;
}
.pt-payment-summary-icon{ color:#f46e07; font-size:18px; flex:0 0 auto; }
.pt-payment-summary-text{ flex:1; font-size:14px; color:#3a3d46; }
.pt-payment-summary-text strong{ color:#26282f; }
#pt-payment-change-link{
	color:#f46e07;
	font-weight:700;
	font-size:13px;
	text-decoration:none;
	flex:0 0 auto;
}
#pt-payment-change-link:hover{ text-decoration:underline; }
.pt-payment-options{
	display:none;
	margin-top:10px;
	padding:14px 16px;
	background:#fafbfc;
	border:1px solid #eef0f2;
	border-radius:12px;
}
.pt-payment-options.pt-open{ display:block; }

/* ---------- Öffnungszeiten-Umschaltung im Footer (Lieferservice/Abholung/Restaurant) ---------- */
.pt-hours-tabs{ display:flex; gap:6px; margin-bottom:10px; flex-wrap:wrap; }
.pt-hours-tab-link{
	font-size:11.5px;
	padding:4px 9px;
	border-radius:20px;
	border:1px solid #eef0f2;
	color:#5b5f6d;
	text-decoration:none;
	white-space:nowrap;
}
.pt-hours-tab-link.active{
	background:#f46e07;
	border-color:#f46e07;
	color:#fff;
	font-weight:700;
}
.pt-legal-links a{ color:inherit; text-decoration:underline; }

/* ---------- Warenkorb als feste Seitenleiste am Desktop (wie bei
   Lieferando) - PT_DESKTOP_CART_BREAKPOINT = 1200px, siehe auch die
   passende JS-Ausnahme in custom.js (navbarTrigger-Klick-Handler). Auf
   Handy/Tablet bleibt alles unveraendert (Popup/Drawer). ---------- */
@media (min-width: 1200px){
	.body-section{
		width:calc(100% - 440px);
		max-width:calc(100% - 440px);
		margin-right:440px;
		box-sizing:border-box;
		overflow-x:clip;
	}
	/* WICHTIG: die Warenkorb-Seitenleiste ist "position:fixed" und liegt
	   damit IMMER ueber allem, was nicht extra eingerueckt wird - bisher
	   war nur der Hauptinhalt (.body-section) eingerueckt, nicht aber die
	   Kopfzeile. Dadurch lagen Sprachauswahl, Login/Konto und der
	   ☰-Kategorien-Button rechts oben genau unter der Warenkorb-Box und
	   waren dort nicht mehr klickbar/sichtbar. Jetzt bekommt die Kopfzeile
	   denselben Abstand wie der restliche Inhalt. */
	.pt-header{ margin-right:440px; }
	.sidebar-cart-active{
		width:440px;
		visibility:visible !important;
		opacity:1 !important;
		transform:translate(0,0) !important;
		border-top-left-radius:0;
		border-bottom-left-radius:0;
		box-shadow:-4px 0 24px rgba(20,20,43,.06);
		padding-top:24px;
		/* WICHTIG: vorher gab es hier keinerlei Scroll-Moeglichkeit - bei
		   vielen Artikeln + Empfehlungen ist der Inhalt oben einfach ueber
		   den unteren Bildschirmrand hinausgelaufen und wurde abgeschnitten
		   (der "Zur Kasse"-Button war dann gar nicht mehr erreichbar). Jetzt
		   scrollt der Warenkorb bei Bedarf innerhalb seiner eigenen Box. */
		overflow-y:auto;
	}
	.sidebar-cart-active .cart-close{ display:none; }
	/* Etwas kompakter als vorher (weniger Innenabstand/Schrift), damit der
	   Lieferung/Abholung-Umschalter nicht so viel Platz im Kaestchen
	   einnimmt. */
	.pt-cart-service-option{ padding:8px 6px; }
	.pt-cart-service-label{ font-size:12.5px; }
	.pt-cart-service-status{ font-size:11px; }
	.main-wrapper.overlay-active .body-overlay{
		display:none !important;
		opacity:0 !important;
		visibility:hidden !important;
	}
	/* FIX (28.07.2026): Der dunkle Fussbereich (Copyright/Impressum-Links)
	   hoerte bisher genau am rechten Rand der Warenkorb-Box auf - das sah
	   aus wie ein abgeschnittener/fehlender Bereich. Jetzt laeuft der
	   dunkle Hintergrund bis zum Bildschirmrand durch (auch unter der
	   Warenkorb-Box), waehrend der eigentliche Text/die Links weiterhin
	   gut sichtbar links davon bleiben - genau wie ein normaler, randloser
	   Fussbereich mit einer "schwebenden" Seitenleiste obendrauf. */
	/* Keep the footer inside the main content column beside the fixed cart. */
	.body-section > .info-footer,
	.body-section > .pt-footer{
		width:100%;
		max-width:100%;
		margin-left:0;
		margin-right:0;
		box-sizing:border-box;
		clear:both;
	}
	.body-section .pt-footer .container-fluid,
	.body-section .pt-footer .row,
	.body-section .pt-footer .col-12{
		width:100%;
		max-width:100%;
		margin:0 !important;
		padding-left:0 !important;
		padding-right:0 !important;
		text-align:center !important;
	}
}

/* ==========================================================================
   Live-Bestellstatus auf der Bestaetigungsseite (thankyou.php)
   ========================================================================== */
.pt-live-order-status{
	display:flex;
	align-items:center;
	gap:10px;
	background:rgba(255,255,255,.15);
	border-radius:10px;
	padding:12px 14px;
	margin-bottom:16px;
	font-weight:600;
	color:#fff;
}
.pt-live-order-status .pt-live-status-icon{ font-size:18px; flex-shrink:0; }
.pt-live-status-confirmed .pt-live-status-icon{ color:#5ad18a; }

/* ==========================================================================
   Lieferung/Abholung-Umschalter oben im Warenkorb-Kaestchen (Desktop-
   Seitenleiste), nach Lieferando-Vorbild
   ========================================================================== */
.pt-cart-service-toggle{
	display:flex;
	gap:8px;
	margin:12px 0 18px;
}
.pt-cart-service-option{
	flex:1;
	display:flex;
	flex-direction:column;
	align-items:center;
	gap:4px;
	padding:10px 8px;
	border-radius:10px;
	border:1.5px solid #eee;
	background:#fafafa;
	color:#333;
	text-decoration:none;
	transition:border-color .15s ease, background .15s ease;
}
.pt-cart-service-option:hover{ color:#202125; text-decoration:none; border-color:#9d988e; }
.pt-cart-service-option.active{
	border:2px solid #f46e07;
	background:#fff;
	color:#000;
	box-shadow:0 0 0 1px rgba(244,110,7,.12);
}
.pt-cart-service-label{ font-weight:600; font-size:13.5px; display:flex; align-items:center; gap:6px; }
.pt-cart-service-status{ font-size:11.5px; }
.pt-cart-service-status.open{ color:#1fa860; }
.pt-cart-service-status.closed{ color:#e0453f; }

/* ==========================================================================
   Warenkorb: Artikel-Extras (z.B. Schaerfegrad) und Notizen huebscher
   darstellen - vorher eine schlichte Liste ("1 x Sehr scharf"), jetzt
   kompakte, abgerundete Chips wie bei Lieferando & Co.
   ========================================================================== */
.cart-item-name{ font-weight:600; font-size:14px; margin-bottom:2px; }
.cart-item-note{
	display:inline-flex;
	align-items:center;
	gap:5px;
	max-width:100%;
	padding:4px 7px;
	border:1px solid #f2c49e;
	border-radius:10px;
	background:#fff8f2;
	color:#353841;
	font-size:12px;
	margin:2px 0 4px;
	line-height:1.35;
	overflow-wrap:anywhere;
}
.pt-item-note-btn{
	background:none;
	border:none;
	color:#f46e07;
	font-size:12px;
	font-weight:600;
	padding:0;
	margin-bottom:6px;
	cursor:pointer;
}
.pt-cart-extras{
	display:flex;
	flex-wrap:wrap;
	gap:6px;
	margin:4px 0 8px;
}
.pt-cart-extra-chip{
	display:inline-flex;
	align-items:center;
	gap:6px;
	background:#f4f5f7;
	color:#3a3d46;
	font-size:12px;
	font-weight:500;
	padding:4px 8px;
	border-radius:999px;
}
.pt-cart-extra-chip .pt-removeexratoitem{
	cursor:pointer;
	color:#9a9da8;
	font-size:10px;
}
.pt-cart-extra-chip .pt-removeexratoitem:hover{ color:#e0453f; }

/* ==========================================================================
   Checkout: einzelne Abschnitte (Lieferart & Uhrzeit, Ausgewaehlte Artikel,
   Gastinformationen, Notiz, Trinkgeld) als klar abgegrenzte "Karten"
   darstellen - naeher am Look von Uber Eats/Lieferando & Co. Rein optisch,
   die Formular-Felder/Namen bleiben unveraendert, damit nichts an der
   eigentlichen Bestell-Funktion kaputtgeht.
   ========================================================================== */
.details-section .section{
	background:#fff;
	border:1px solid #eef0f3;
	border-radius:16px;
	padding:20px;
	margin-bottom:16px;
	box-shadow:0 2px 10px rgba(20,20,43,.04);
}
.checkout-title{
	margin-bottom:14px;
	display:flex;
	align-items:center;
	gap:10px;
}
.checkout-title h3{
	font-size:16px;
	font-weight:700;
	margin:0;
	color:#23253a;
}
/* Kleines Symbol vor jeder Ueberschrift, passend zum Thema - rein
   dekorativ per CSS eingefuegt, keine HTML-Aenderung noetig. */
.section-one .checkout-title h3:before{ content:"\f017"; font-family:"Font Awesome 5 Free"; font-weight:900; color:#f46e07; margin-right:8px; font-size:14px; }
.section-two .checkout-title h3:before{ content:"\f290"; font-family:"Font Awesome 5 Free"; font-weight:900; color:#f46e07; margin-right:8px; font-size:14px; }
.section-four .checkout-title h3:before{ content:"\f27a"; font-family:"Font Awesome 5 Free"; font-weight:900; color:#f46e07; margin-right:8px; font-size:14px; }

/* ---------- Gastinformationen/Adresse (kompakt, wie bei Uber Eats/Lieferando) ---------- */
.pt-address-summary{
	display:flex;
	align-items:center;
	gap:10px;
	background:#fafbfc;
	border:1px solid #eef0f2;
	border-radius:12px;
	padding:14px 16px;
	cursor:pointer;
	margin-bottom:14px;
}
.pt-address-summary-icon{ color:#f46e07; font-size:18px; flex:0 0 auto; }
.pt-address-summary-text{ flex:1; font-size:14px; color:#3a3d46; display:flex; flex-direction:column; }
.pt-address-summary-text strong{ color:#26282f; }
.pt-address-summary-text small{ color:#767a8c; }
#pt-address-change-link{
	color:#f46e07;
	font-weight:700;
	font-size:13px;
	text-decoration:none;
	flex:0 0 auto;
}
#pt-address-change-link:hover{ text-decoration:underline; }
/* Nur wenn die Zusammenfassungs-Zeile ueberhaupt existiert (wiederkehrender
   Gast) wird das Formular standardmaessig versteckt und erst per Klick
   aufgeklappt - neue Gaeste (keine Zusammenfassung vorhanden) sehen die
   Felder ganz normal wie bisher direkt. */
#checkout-form.pt-address-collapsible{ display:none; }
#checkout-form.pt-address-collapsible.pt-open{ display:block; }

/* ==========================================================================
   FIX (05.08.2026): Das Gast-/Adressformular nutzte bisher reines
   Bootstrap-"col-md-*" - auf Tablets (etwa 768-1024px, genau um den
   Bootstrap-"md"-Umbruch herum) fuehrte das zu einem zerrissenen Layout
   (Felder links gequetscht, rechts viel Leerraum, abgeschnittener Text bei
   automatisch ausgefuellten Werten wie der Stadt). Jetzt ein eigenes,
   robustes CSS-Grid: durchgehend 2 Spalten auf Tablet UND Desktop, eine
   Spalte auf dem Handy - unabhaengig von den urspruenglichen
   "col-md-3/4/6/9"-Groessenunterschieden (die im normalen Bootstrap-Grid
   ohnehin nicht zuverlaessig zu height-gleichen Reihen fuehrten).
   ========================================================================== */
#checkout-form{
	max-width:800px;
	margin:0 auto;
	width:100%;
}
#checkout-form .row{
	display:grid;
	grid-template-columns:repeat(2, 1fr);
	gap:0 20px; /* horizontaler Abstand durch Grid, vertikaler durch das
	               bestehende margin-bottom der Felder selbst (siehe
	               "#checkout-form .field" in style.css) */
}
#checkout-form .row > div{
	width:100% !important;
	max-width:100% !important;
	flex:none !important;
	padding:0 !important;
	margin-bottom:14px;
}
#checkout-form .field, #checkout-form input, #checkout-form select, #checkout-form textarea{
	width:100%;
	box-sizing:border-box;
}
/* Hilfstexte ("Wird automatisch anhand deiner Straße ermittelt") brauchen
   eigenen Platz nach unten, damit sie sich nicht mit der naechsten Zeile
   des Grids ueberlappen - das "margin-bottom" auf der Grid-Zelle selbst
   (oben) reicht dafuer allein nicht, wenn der Hilfstext zweizeilig
   umbricht. */
#checkout-form small.text-muted{
	display:block;
	margin-bottom:6px;
}
@media (max-width:767px){
	#checkout-form .row{ grid-template-columns:1fr; }
}

/* ==========================================================================
   Warenkorb-Schublade auf dem Handy/Tablet (unter 1200px): dieselbe
   fehlende Scroll-Moeglichkeit wie beim Desktop-Fix weiter oben - nur galt
   der bisher nur ab 1200px Breite. Bei vielen Artikeln lief der Inhalt auf
   dem Handy ueber den Bildschirmrand hinaus und der "Zur Kasse"-Button war
   nicht erreichbar. Jetzt auch hier behoben.
   ========================================================================== */
@media (max-width: 1199.98px){
	.sidebar-cart-active{
		overflow-y:auto;
		-webkit-overflow-scrolling:touch;
		max-height:100vh;
	}
}

/* ==========================================================================
   Warenkorb-Seitenleiste (Desktop): abgerundete Ecke oben links (dort wo
   sie an den Seiteninhalt "andockt") statt eckig - wirkt weniger wie
   "abgeschnitten". Und der "Zur Kasse"-Button bleibt jetzt IMMER sichtbar
   am unteren Rand (position:sticky), man muss also nicht mehr durch die
   ganze lange Liste (Artikel + Empfehlungen + Notizfeld) scrollen, um ihn
   zu finden.
   ========================================================================== */
@media (min-width: 1200px){
	.sidebar-cart-active{
		border-top-left-radius:20px;
	}
	.sidebar-cart-active .checkout-section{
		position:sticky;
		bottom:0;
		background:#fff;
		padding-top:10px;
		padding-bottom:10px;
		box-shadow:0 -4px 12px rgba(20,20,43,.06);
	}
}

/* ---------- Sichtbarer Zurueck-Button im Bestell-Bestaetigungs-Popup ---------- */
.pt-order-confirm-close{
	position:absolute;
	top:14px;
	right:14px;
	left:auto;
	width:34px;
	height:34px;
	border-radius:50%;
	border:none;
	background:#f4f5f7;
	color:#3a3d46;
	font-size:14px;
	display:flex;
	align-items:center;
	justify-content:center;
	cursor:pointer;
	z-index:2;
}
.pt-order-confirm-popup h4{ padding-right:44px; }

@media (min-width:1200px){
	.checkout-banner img{ max-height:210px; object-fit:cover; }
	.checkout-total-section{ margin-top:86px; }
	.checkout-section-all > .container{ max-width:1240px; }
}
.pt-order-confirm-close:hover{ background:#eaebee; }

/* ---------- "Zur Kasse"-Button auch auf dem Handy immer sichtbar
   (bisher nur am Desktop gemacht) - bei mehreren Artikeln musste man sonst
   ganz nach unten scrollen, um ihn zu finden. ---------- */
.sidebar-cart-active .checkout-section{
	position:sticky;
	bottom:0;
	background:#fff;
	padding-top:10px;
	padding-bottom:10px;
	box-shadow:0 -4px 12px rgba(20,20,43,.06);
	z-index:5;
}

.pt-cart-tax-summary{
	margin:0 0 8px;
	padding:0 4px;
	color:#555;
	font-size:11px;
}
.pt-cart-tax-summary:empty{ display:none; }
.pt-cart-tax-line{
	display:flex;
	justify-content:space-between;
	gap:12px;
	margin:3px 0;
}
.pt-cart-tax-line .float-right{ float:none !important; margin-left:auto; white-space:nowrap; }
.pt-tax-row{ color:#555; font-size:12px; }

.coupon-section .input-group{
	border:1px solid #d7d9dd;
	border-radius:999px;
	overflow:hidden;
	background:#fff;
}
.coupon-section #coupon_code_input{
	border:0 !important;
	box-shadow:none !important;
	text-transform:uppercase;
	font-weight:600;
	letter-spacing:.04em;
}
.coupon-section #apply-coupon-btn{
	border-radius:999px !important;
	margin:3px;
	padding:7px 15px;
}
#coupon-active-state{
	display:flex;
	align-items:center;
	justify-content:space-between;
	gap:10px;
	margin-top:9px;
	padding:8px 12px;
	border:1px solid #2e7d32;
	border-radius:999px;
	color:#245e29;
	font-size:12px;
	font-weight:600;
}
#coupon-active-state.d-none{ display:none !important; }
#remove-coupon-btn{
	border:0;
	background:transparent;
	color:#555;
	font-size:12px;
	text-decoration:underline;
	cursor:pointer;
}
.pt-coupon-inline-warning{
	margin:0 0 10px;
	padding:8px 11px;
	border:1px solid #d8a14b;
	border-radius:12px;
	background:#fffaf2;
	color:#543d17;
	font-size:12px;
}

/* ==========================================================================
   Footer (Desktop) komplett neu gestaltet: warmes dunkles Anthrazit statt
   reinem Schwarz, weniger Innenabstand (nimmt weniger Platz), dezenter
   oranger Akzentstrich oben, aufgeraeumtere Spalten. Rein optisch, keine
   Funktionsaenderung.
   ========================================================================== */
.pt-footer{
	background:#f5f5f5;
	padding:34px 30px 24px;
	border-top:3px solid #f46e07;
	color:#202125;
}
.pt-sitewide-footer{
	display:block;
	position:relative;
	left:50%;
	width:100vw !important;
	max-width:100vw !important;
	margin-left:-50vw !important;
	margin-right:0 !important;
	box-sizing:border-box;
	clear:both;
}

@media (min-width:1200px){
	.sidebar-cart-active{
		bottom:var(--pt-site-footer-overlap, 0px);
		transition:bottom .12s linear, opacity 250ms ease-in, transform 250ms ease-in;
	}
	.pt-sitewide-footer .container-fluid{
		width:100%;
		max-width:none;
	}
}
.pt-footer .pt-logo a{
	color:#202125;
	font-size:20px;
	font-weight:800;
	text-decoration:none;
	display:flex;
	align-items:center;
	gap:8px;
}
.pt-footer .pt-logo i{ color:#f46e07; }
.pt-footer .pt-social{ margin-top:14px; display:flex; gap:10px; }
.pt-footer .pt-social a{
	width:32px; height:32px;
	display:flex; align-items:center; justify-content:center;
	border-radius:50%;
	background:#e2e2e2;
	color:#202125;
	font-size:13px;
	transition:background .15s ease;
}
.pt-footer .pt-social a:hover{ background:#f46e07; color:#fff; }
.pt-footer .pt-links h3{
	color:#202125;
	font-size:13px;
	text-transform:uppercase;
	letter-spacing:.4px;
	font-weight:700;
	margin-bottom:12px;
}
.pt-footer .pt-links a{
	color:#202125;
	font-size:13.5px;
	display:block;
	margin-bottom:8px;
	text-decoration:none;
}
.pt-footer .pt-links a:hover{ color:#d95f05; }
.pt-footer .pt-links a i{ color:#f46e07; margin-right:6px; font-size:11px; }
.pt-footer .pt-copy{
	color:#202125;
	font-size:12.5px;
	border-top:1px solid #d8d8d8;
	padding-top:16px;
	margin:18px auto 0;
	text-align:center;
}
.pt-footer .container-fluid,
.pt-footer .row,
.pt-footer .col-12{
	width:100%;
	max-width:100%;
	margin-left:auto;
	margin-right:auto;
	text-align:center !important;
}
.pt-footer .col-12{ flex:0 0 100%; padding-left:0 !important; padding-right:0 !important; }
.pt-footer .row{ justify-content:center; }
.pt-footer .pt-legal-links{
	width:100%;
	margin-left:auto !important;
	margin-right:auto !important;
	text-align:center;
}
.pt-footer .pt-legal-links a{ color:#202125; }
.pt-footer .pt-legal-links a:hover{ color:#f46e07; }
.pt-google-map-pill{
	display:inline-flex !important;
	align-items:center;
	gap:6px;
	padding:5px 11px;
	border:1.5px solid #202125;
	border-radius:999px;
	background:#fff;
	color:#202125 !important;
	font-size:12px;
	font-weight:700;
}
.pt-google-map-pill i{ color:#f46e07; }
.pt-footer-price-note{
	margin:18px 0 0 !important;
	font-size:11.5px;
	color:#6b7078;
}

/* Keep native select arrows away from the outer edge. */
.wfs-service-hours select,
.time select,
#service-time{
	padding-right:38px !important;
	background-position:right 13px center !important;
}
.time .wfs-service-hours,
.time .wfs-day-picker{
	min-height:52px !important;
	padding:12px 42px 12px 16px !important;
	font-size:16px !important;
	line-height:1.35 !important;
	font-weight:600 !important;
	color:#30343b !important;
	border-color:#cfd4dc !important;
	border-radius:12px !important;
	background-color:#fff !important;
	text-overflow:ellipsis;
	white-space:nowrap;
}
.checkout-section .section-one .time{ min-width:0; }
.checkout-section .section-one .time select{
	width:100%;
	-webkit-appearance:none;
	-moz-appearance:none;
	appearance:none;
	padding-right:52px !important;
	background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%2330343b' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m7 10 5 5 5-5'/%3E%3C/svg%3E") !important;
	background-repeat:no-repeat !important;
	background-position:right 18px center !important;
	background-size:16px 16px !important;
}
.cart-item-note::before{ content:"Hinweis:"; font-weight:700; color:#9b4b0f; }

/* ---------- Oeffnungszeiten-Bereich: als saubere Karte mit Schatten statt
   flachem Hintergrund, etwas mehr Innenabstand fuer Luft. ---------- */
.info-footer{
	background:#fff !important;
	border:1px solid #eef0f2;
	box-shadow:0 4px 20px rgba(20,20,43,.05);
	padding:32px 24px !important;
	/* FIX (28.07.2026): hatte vorher 80px Seitenabstand eingebaut (siehe
	   style.css) und wirkte dadurch deutlich schmaler als der Impressum-/
	   AGB-Text darueber, obwohl beide auf derselben Seite direkt
	   untereinander stehen - jetzt dieselbe Breite/Ausrichtung wie der
	   ".container" mit dem Seiten-Text. */
	margin:0 auto 80px !important;
	width:calc(100% - 30px);
	max-width:1140px;
}
.footer-info h3{
	font-size:14px;
	text-transform:uppercase;
	letter-spacing:.4px;
	color:#26282f;
	margin-bottom:14px;
}

/* ==========================================================================
   FIX (24.07.2026): Warenkorb-Fenster auf dem Handy jetzt komplett
   bildschirmfuellend, wie gewuenscht (vorher bewusst 92% mit Rand zur
   Seite dahinter - das sollte aber nicht sein).
   ========================================================================== */
@media (max-width: 1199.98px){
	.sidebar-cart-active{
		width:100% !important;
		max-width:100%;
		left:0 !important;
	}
}

/* ==========================================================================
   Der jetzt immer sichtbare "Zur Kasse"-Balken hat den Bereich darueber
   (Empfehlungen-Karussell, Notizfeld) teilweise verdeckt, wenn man ganz
   nach unten gescrollt hat. Genug Abstand am Ende der Liste schaffen,
   damit nichts mehr dahinter verschwindet.
   ========================================================================== */
.recommendations-section,
.comment-box-section{
	padding-bottom:8px;
}
.sidebar-cart-active .checkout-section{
	margin-top:8px;
}

/* checkout.php und thankyou.php verwenden dieselbe historische Klasse wie
   der Warenkorb-Fuss. Diese ganzen Seiten duerfen niemals sticky sein. */
#full-page-container.checkout-section{
	position:relative !important;
	inset:auto !important;
	width:100%;
	max-width:100%;
	margin:0 !important;
	padding:0 !important;
	background:#fff;
	box-shadow:none !important;
	z-index:auto !important;
	overflow-x:hidden;
}

/* iPad Hochformat: Der Inhalt scrollt, die Bedienleiste bleibt am echten
   unteren Bildschirmrand und respektiert die Safari-Sicherheitsbereiche. */
@media (min-width:768px) and (max-width:1199.98px){
	.sidebar-cart-active{
		top:0 !important;
		bottom:0 !important;
		height:100vh;
		height:100dvh;
		max-height:100dvh;
		display:flex;
		flex-direction:column;
		overflow:hidden !important;
		padding:calc(24px + env(safe-area-inset-top)) 16px 0 !important;
	}
	.sidebar-cart-active .sidebar-cart-all{
		flex:1 1 auto;
		min-height:0;
		overflow-y:auto;
		overflow-x:hidden;
		-webkit-overflow-scrolling:touch;
	}
	.sidebar-cart-active .view_cart_total{
		flex:0 0 auto;
		position:sticky;
		bottom:0;
		z-index:15;
		background:#fff;
		padding-bottom:calc(10px + env(safe-area-inset-bottom));
	}
	.sidebar-cart-active .pt-cart-service-toggle{
		display:grid;
		grid-template-columns:minmax(0,1fr) minmax(0,1fr);
		gap:12px;
		margin:12px 4px 18px;
	}
	.sidebar-cart-active .pt-cart-service-option{ min-width:0; }
	.only-mobile-cart{
		left:16px !important;
		right:16px !important;
		width:auto !important;
		bottom:calc(12px + env(safe-area-inset-bottom)) !important;
	}

	#full-page-container.checkout-section .section > .container-fluid,
	#full-page-container.checkout-section .section > .container-fluid > .row{
		width:100%;
		max-width:100%;
		margin-left:0;
		margin-right:0;
	}
	#full-page-container.checkout-section .section > .container-fluid > .row{
		display:flex;
		flex-wrap:wrap;
	}
	#full-page-container.checkout-section .section > .container-fluid > .row > [class*="col-"]{
		flex:0 0 100%;
		width:100%;
		max-width:100%;
		padding:24px !important;
	}
	#full-page-container.checkout-section .thank-section,
	#full-page-container.checkout-section .order-section,
	#full-page-container.checkout-section .address-section{
		max-width:100%;
		overflow-wrap:anywhere;
	}
}
.sidebar-cart-active #cart_details{
	padding-bottom:12px;
}
.pt-cart-updating{
	opacity:1;
	pointer-events:none;
	transition:none;
}
.pt-menu-updating{
	opacity:.72;
	pointer-events:none;
	transition:opacity .12s ease;
}

/* Keep checkout columns and controls inside tablet portrait viewports. */
@media (min-width:768px) and (max-width:1199.98px){
	.checkout-section-all .container,
	.checkout-section-all .row,
	.checkout-section-all [class*="col-"]{
		max-width:100%;
		min-width:0;
	}
	.checkout-section-all > .container > .row{
		display:grid;
		grid-template-columns:minmax(0, 1fr);
		gap:18px;
		margin-left:0;
		margin-right:0;
	}
	.checkout-section-all > .container > .row > .col-lg-8,
	.checkout-section-all > .container > .row > .col-lg-4{
		width:100%;
		max-width:100%;
		padding-left:0;
		padding-right:0;
	}
	.checkout-total-section,
	.checkout-sticky{
		position:static !important;
		width:100%;
		max-width:none;
	}
	.checkout-section .radio-inputs{
		flex-wrap:wrap;
	}
	.checkout-section .radio-inputs > *{
		min-width:0;
		margin-right:8px !important;
	}
	/* iPad/Tablet: Die vier Auswahlen nicht als vier ueberbreite Zeilen
	   darstellen. Lieferart bleibt eine Zweierreihe; Datum und Uhrzeit
	   bilden darunter eine zweite, gleich breite Reihe. */
	.pt-checkout-service-grid{
		width:100%;
		max-width:900px;
		margin-left:auto;
		margin-right:auto;
	}
	.pt-checkout-service-choice .radio-inputs{
		display:grid;
		grid-template-columns:repeat(2, minmax(0, 1fr));
		gap:12px;
	}
	.pt-checkout-service-choice .radio-inputs > *{
		width:100%;
		margin:0 !important;
	}
	.pt-checkout-service-time{ margin-top:12px; }
	.pt-checkout-service-time .time{
		display:grid;
		grid-template-columns:repeat(2, minmax(0, 1fr));
		gap:12px;
		align-items:start;
	}
	.pt-checkout-service-time .time > .wfs-day-picker,
	.pt-checkout-service-time .time > .wfs-day-picker-pending{
		grid-column:1;
		grid-row:1;
		margin-bottom:0 !important;
	}
	.pt-checkout-service-time .time > #pt-delivery-time-container{
		grid-column:2;
		grid-row:1;
		min-width:0;
	}
	.pt-checkout-service-time .time > #pt-delivery-time-container > *{
		width:100%;
		margin-bottom:0 !important;
	}
}

@media (max-width:767.98px){
	.checkout-section-all .container{ padding-left:12px; padding-right:12px; }
	.details-section .section{ padding:15px; border-radius:12px; }
	.checkout-section .radio-inputs{ flex-direction:column; align-items:stretch; }
	.checkout-section .radio-inputs > *{ width:100%; margin-right:0 !important; }
	.pt-payment-summary{ align-items:flex-start; flex-wrap:wrap; }
	.pt-payment-summary-text{ min-width:0; overflow-wrap:anywhere; }
	#checkout-form input,
	#checkout-form select,
	#checkout-form textarea{ min-width:0; max-width:100%; }
}

/* Bestelldetails-Popup: Auf Tablet stehen "Heute" und die Uhrzeit
   nebeneinander. Auf Handy und bei schmalem Split-Screen wechseln sie
   automatisch wieder in eine gut bedienbare Spalte. */
.pt-service-schedule-grid{
	display:grid;
	grid-template-columns:repeat(2, minmax(0, 1fr));
	gap:10px;
	align-items:start;
	margin-top:10px;
}
.pt-service-schedule-grid > .wfs-day-picker,
.pt-service-schedule-grid > .wfs-day-picker-pending,
.pt-service-schedule-grid > div,
.pt-service-schedule-grid > div > *{
	width:100%;
	min-width:0;
	margin-bottom:0 !important;
}
@media (max-width:599.98px){
	.pt-service-schedule-grid{ grid-template-columns:minmax(0, 1fr); }
}

/* ---------- Verzoegerungs-Hinweis (nur sichtbar, wenn im Admin-Bereich
   aktiviert) - dezentes, aber gut sichtbares Banner oben auf jeder Seite. ---------- */
.pt-delay-notice{
	background:#fff4e5;
	color:#8a5300;
	font-size:13px;
	font-weight:600;
	text-align:center;
	padding:9px 16px;
	display:flex;
	align-items:center;
	justify-content:center;
	gap:8px;
}
.pt-delay-notice i{ color:#f46e07; }

/* Artikelnummer ("Nr. 101") vor dem Artikelnamen - auf der Speisekarte und
   im Bestell-Popup. Hilft Stammkunden, die telefonisch mit der Nummer statt
   dem vollen Namen bestellen ("einmal die 101 bitte") - deshalb bewusst
   auffaellig genug, um schnell erkannt zu werden, aber klein genug, um den
   Artikelnamen nicht zu verdraengen. */
.pt-menu-code-badge{
	display:inline-block;
	background:#fff6ec;
	color:#f46e07;
	font-weight:700;
	font-size:0.78em;
	border:1px solid #f9d9b8;
	border-radius:6px;
	padding:1px 7px;
	margin-right:7px;
	vertical-align:middle;
	white-space:nowrap;
}

/* ---------- Pflichtfeld-Markierung im Checkout (19.07.2026) ---------- */
/* Zeigt eine rote Umrandung + kleinen roten Punkt direkt am Feld, wenn es
   beim Absenden fehlt - vorher gab es nur eine Textmeldung oben, man musste
   selbst raten, welches Feld genau gemeint war. Verschwindet automatisch,
   sobald man anfaengt, das Feld auszufuellen (siehe custom.js). */
.pt-field-missing{
	border:2px solid #e74c3c !important;
	background:#fff6f6 !important;
	box-shadow:0 0 0 3px rgba(231,76,60,0.12);
	position:relative;
}

/* FIX: Die Google-Adressvorschlagsliste (.pac-container) rendert
   normalerweise mit einem niedrigen z-index. Bootstrap-Popups haben
   z-index:1050 - dadurch landete die Vorschlagsliste bisher UNSICHTBAR
   hinter dem Popup, obwohl sie technisch da war (kein Darstellungsfehler,
   nur falsche Stapelreihenfolge). */
.pac-container{ z-index:999999 !important; }

/* FIX (24.07.2026): "position:sticky" hat sich als unzuverlaessig
   herausgestellt (computed style zeigte korrekt "sticky", aber das
   tatsaechliche Kleben hat launisch mal funktioniert, mal nicht - siehe
   ausfuehrliche Fehlersuche im Chat). Jetzt genau derselbe bereits
   bewaehrte Mechanismus wie bei der Kopfzeile (".fixed-header", die immer
   zuverlaessig funktioniert): "position:fixed" wird per JavaScript-Klasse
   gesteuert (siehe scripts.php, ".pt-topbar-pinned"), nicht mehr per CSS
   allein. Der Platzhalter ".pt-sticky-topbar-spacer" davor verhindert,
   dass der Seiteninhalt springt, wenn die Leiste "position:fixed" wird
   (dabei verlaesst sie normalerweise den normalen Fluss - der Platzhalter
   nimmt genau so viel Platz ein, wie die Leiste braucht). */
.pt-sticky-topbar{
	background:#fff;
}
.pt-sticky-topbar.pt-topbar-pinned{
	position:fixed;
	top:68px;
	left:0;
	right:0;
	z-index:900;
	box-shadow:0 4px 12px rgba(20,20,43,.06);
}
@media (max-width: 767.98px){
	.pt-sticky-topbar.pt-topbar-pinned{ top:58px; }
}
@media (min-width: 1200px){
	.pt-sticky-topbar.pt-topbar-pinned{ right:440px; }
}
.pt-sticky-topbar-spacer{ display:none; }
.pt-sticky-topbar .search-section{
	padding:8px 0;
}
@media (max-width: 991.98px){
	.pt-sticky-topbar .search-section{ padding:8px 12px; }
}
.pt-sticky-topbar .pt-cat-bar-wrapper{
	box-shadow:0 2px 6px rgba(20,20,43,.05);
	/* FIX (24.07.2026): Das Menue-Symbol sitzt jetzt normal in der Zeile
	   (siehe .pt-cat-menu-btn), keine Platz-Reservierung mehr noetig. */
	padding-right:8px;
}

/* FIX (22.07.2026): Beim schnellen Mehrfachklicken auf die Plus-/Minus-
   Mengen-Knöpfe (Warenkorb, Artikel-Auswahl) hat der Browser das
   ohne diese Regel wie ein Doppelklick behandelt und den daneben-
   stehenden Text blau markiert (wie beim Text-Kopieren) - kein echter
   Fehler in der Bestellung selbst, aber ein verwirrendes optisches
   Problem, das nur beim schnellen Klicken auftritt (langsames Klicken
   zeigt es nicht, genau wie beschrieben). "user-select: none" verhindert,
   dass Klicks auf diese Knoepfe ueberhaupt als Text-Markierung gewertet
   werden koennen.*/
button,
.qty-selector, .cart-plus, .cart-minus, .quantity-selector,
.pt-custom-cart, .pt-custom-cart *,
[class*="qty"], [class*="quantity"]{
	-webkit-user-select: none;
	-moz-user-select: none;
	-ms-user-select: none;
	user-select: none;
}

/* FIX (24.07.2026): Kurzbeschreibung unter Logo/Ort auf der Startseite
   (siehe Einstellungen -> Design -> Kurzbeschreibung), optional. */
.pt-tagline{
	display:block;
	font-size:12.5px;
	color:rgba(255,255,255,.85);
	margin-top:2px;
	max-width:220px;
	line-height:1.35;
}
@media (max-width: 575.98px){
	.pt-tagline{ font-size:11.5px; max-width:170px; }
}

/* ==========================================================================
   FIX (24.07.2026): Liefern/Abholen prominent direkt ueber der Suche
   (statt versteckt im Warenkorb-Kaestchen) - genau wie bei Wolt/Uber Eats.
   Nutzt denselben Umschalt-Mechanismus wie das bestehende Kaestchen
   (.pt-cart-service-trigger), oeffnet also automatisch das bekannte
   "Bestelldetails aendern"-Popup mit der richtigen Vorauswahl - keine neue
   JS-Logik noetig.
   ========================================================================== */
.pt-service-toggle{
	display:flex;
	gap:8px;
	padding:10px 12px 6px;
}
@media (min-width: 768px){
	.pt-service-toggle{ padding-left:0; padding-right:0; }
}
.pt-service-toggle-btn{
	flex:1;
	text-align:center;
	padding:6px 14px;
	border-radius:10px;
	background:#f3f4f6;
	color:#5b5f6d;
	font-weight:700;
	font-size:14px;
	border:1px solid transparent;
	transition:all .15s ease;
}
.pt-service-toggle-label{ display:flex; align-items:center; justify-content:center; gap:6px; }
.pt-service-toggle-status{ display:block; text-align:center; font-size:11.5px; font-weight:500; margin-top:2px; }
.pt-service-toggle-status.open{ color:#1fa860; }
.pt-service-toggle-status.closed{ color:#e0453f; }
.pt-service-toggle-btn.active .pt-service-toggle-status.open{ color:#178a4d; }
.pt-service-toggle-btn.active{
	background:#fff;
	color:#000;
	border:2px solid #f46e07;
	box-shadow:0 0 0 1px rgba(244,110,7,.12);
}
.pt-service-toggle-btn:hover{ text-decoration:none; color:#202125; border-color:#9d988e; }
@media (min-width: 768px){
	.pt-service-toggle{ max-width:420px; margin:0 auto; }
}
/* FIX (24.07.2026): Jetzt, wo beide Stellen (dieser Umschalter hier oben
   und die Warenkorb-Seitenleiste rechts) exakt bei derselben Breite
   (1200px) wechseln, kann dieser hier ab 1200px wieder ausgeblendet
   werden, OHNE dass beim Verkleinern/Vergroessern ein Sprung/Luecke
   entsteht - vorher gab's dafuer einen Tippfehler (1299.98px statt
   1200px an einer Stelle), der jetzt behoben ist. Damit steht der
   Umschalter am vollen Desktop nicht mehr doppelt da (oben UND im
   Warenkorb-Kaestchen), bleibt aber beim Verkleinern durchgehend
   sichtbar. */
@media (min-width: 1200px){
	.pt-service-toggle{ display:none; }
}

/* ==========================================================================
   FIX (24.07.2026): Warenkorb-Leiste am Desktop etwas kompakter (kleinere
   Schrift, weniger Innenabstand) - naeher an der aufgeraeumten, dichteren
   Optik von Lieferando. Nur innerhalb der Seitenleiste selbst (wirkt sich
   NICHT auf die Handy-Warenkorb-Schublade aus, die bleibt wie sie war).
   ========================================================================== */
@media (min-width: 1200px){
	.sidebar-cart-active .cart-item-name{ font-size:13px; }
	.sidebar-cart-active .cart-item-note,
	.sidebar-cart-active small{ font-size:11.5px; }
	.sidebar-cart-active .pt-extra span{ font-size:9.5px; padding:0 6px; padding-right:10px; line-height:19px; }
	.sidebar-cart-active .pt-extra strong,
	.sidebar-cart-active .pt-extra small{ font-size:11px; }
	.sidebar-cart-active .cart-item{ padding-top:10px; padding-bottom:10px; }
	.sidebar-cart-active h3{ font-size:16px; }
}

/* FIX (24.07.2026): Die fest positionierte Kopfzeile (.fixed-header, wird
   beim Scrollen per JS aktiviert - siehe scripts.php) hat "width:100%",
   was bei "position:fixed" IMMER die volle Bildschirmbreite meint, egal
   was der Elternteil (.pt-header mit seinem margin-right:440px) an Platz
   fuer die Warenkorb-Seitenleiste reserviert. Dadurch liefen "Fuer spaeter
   bestellen"/"Anmelden" usw. unter die Warenkorb-Seitenleiste. Jetzt macht
   die Kopfzeile ab 1200px genauso viel Platz wie die Seitenleiste breit
   ist. */
@media (min-width: 1200px){
	.fixed-header{ width:calc(100% - 440px) !important; }
}

/* ==========================================================================
   FIX (24.07.2026): "Gerade geschlossen"-Popup - erscheint automatisch,
   wenn ein Kunde bestellen will, waehrend der gewaehlte Service (Lieferung/
   Abholung) gerade geschlossen ist. Zentriertes Overlay, angelehnt an
   Lieferando/Wolt/Uber Eats.
   ========================================================================== */
.pt-closed-popup-overlay{
	position:fixed; inset:0; background:rgba(20,20,43,.4);
	z-index:1500; display:none;
}
.pt-closed-popup{
	position:fixed; top:50%; left:50%;
	transform:translate(-50%,-50%);
	width:90%; max-width:380px;
	background:#fff;
	border-radius:18px;
	box-shadow:0 20px 50px rgba(20,20,43,.25);
	z-index:1501;
	padding:24px 22px 22px;
	display:none;
}
.pt-closed-popup-overlay.pt-open, .pt-closed-popup.pt-open{ display:block; }
.pt-closed-popup h4{
	font-size:19px;
	font-weight:800;
	margin:6px 0 20px;
	padding-right:24px;
	line-height:1.35;
}
.pt-closed-popup h4 span{ font-weight:600; color:#5b5f6d; display:block; font-size:16px; margin-top:2px; }
.pt-closed-popup-close{
	position:absolute;
	top:14px; right:14px;
	width:30px; height:30px;
	border-radius:50%;
	border:1px solid #e4e4e4;
	background:#fff;
	font-size:18px;
	line-height:1;
	color:#333;
	cursor:pointer;
}
.pt-closed-popup-preorder-btn{
	margin-bottom:14px;
}
.pt-closed-popup-dismiss{
	display:block;
	width:100%;
	text-align:center;
	border:none;
	background:none;
	color:#5b5f6d;
	font-weight:700;
	font-size:14px;
	padding:8px;
	cursor:pointer;
	text-decoration:underline;
}
/* FIX (05.08.2026): Speziell im "Nicht verfügbar"-Konflikt-Popup (siehe
   footer.php, "#pt-cart-conflict-popup") soll "Betroffene Artikel
   entfernen" gleichwertig neben "Lieferzeit anpassen" wirken - beides sind
   hier vollwertige, gleich wichtige Handlungen, kein nachrangiges
   "Abbrechen"/"Schliessen" wie beim urspruenglichen Zweck dieser Klasse.
   Bewusst nur fuer DIESES eine Popup ueberschrieben, damit andere Popups,
   die dieselbe Klasse fuer einen bewusst zurueckhaltenden "Verwerfen"-Knopf
   nutzen, unveraendert bleiben. */
.pt-cart-conflict-popup .pt-closed-popup-dismiss{
	background:#fff;
	border:1.5px solid #e0453f;
	color:#e0453f;
	border-radius:10px;
	text-decoration:none;
	padding:12px;
	font-size:14px;
	min-height:44px;
}
.pt-cart-conflict-popup .pt-closed-popup-dismiss:hover{
	background:#fdeeed;
}

/* ==========================================================================
   FIX (24.07.2026): Warenkorb-Artikelzeile - der Preis stand bisher mitten
   im Textbereich (nach Notiz/Extras), dadurch sprang er je nach Artikel an
   eine andere Stelle. Jetzt in einer eigenen, festen Spalte rechts, immer
   an derselben Position - unabhaengig davon, wie viel Text/wie viele
   Extras der jeweilige Artikel hat.
   ========================================================================== */
.pt-cart-item-price{
	display:block;
	font-weight:700;
	font-size:14px;
	color:#202125;
	margin-bottom:6px;
	white-space:nowrap;
}
/* "+ Notiz hinzufuegen" nahm bisher viel Platz als Text ein - jetzt ein
   kompaktes Stift-Symbol (mit kurzem Wort dahinter, damit der Zweck klar
   bleibt), spart deutlich Platz in der Zeile. */
.pt-item-note-btn-add{
	display:inline-flex;
	align-items:center;
	gap:5px;
	font-size:11.5px !important;
}
.pt-item-note-btn i{ font-size:10px; }
.cart-item-note .pt-item-note-btn{
	background:#f4f5f7;
	width:22px; height:22px;
	border-radius:50%;
	display:inline-flex;
	align-items:center;
	justify-content:center;
	margin-left:2px;
	vertical-align:middle;
}

/* FIX (24.07.2026): Der "Abholung"-Umschalter im Warenkorb-Kaestchen hatte
   auf dem Handy keinen Randabstand zum rechten Bildschirmrand. */
@media (max-width: 1199.98px){
	.pt-cart-service-toggle{ margin-left:4px; margin-right:4px; }
}

/* ==========================================================================
   FIX (24.07.2026): Empfehlungs-Karten im Warenkorb waren recht gross
   (10rem hohes Bild + eigener 6rem hoher Textbereich) - im schmalen
   Warenkorb-Kaestchen wirkte das ueberdimensioniert. Etwas kompakter.
   ========================================================================== */
.recommendations .item-right-inner{ height:6rem; }
.recommendations .item .item-left-part{ padding:10px 12px; height:auto; min-height:4.2rem; }
.recommendations .item-left-inner h3{ font-size:13px; line-height:1.3; }
.recommendations .item-price p{ font-size:12.5px; }

/* ==========================================================================
   Kleinerer Titel-Banner auf Textseiten (Impressum, Datenschutz, AGB,
   Speisekarten-Kategorien) - war vorher genauso hoch wie auf der Startseite
   und wirkte auf diesen eher schlichten Seiten zu wuchtig/gross. Jetzt eine
   kompakte, abgerundete Karte statt eines randlosen, breiten Balkens.
   ========================================================================== */
.pt-breadcrumb-p{
	height:auto;
	min-height:auto;
	padding:14px 20px;
	width:calc(100% - 30px);
	max-width:1140px;
	margin:24px auto 28px;
	border-radius:16px;
	line-height:1.3;
	box-shadow:0 6px 20px rgba(244,110,7,.18);
}
.pt-breadcrumb-p:before{ display:none; }
.pt-breadcrumb-p h3{ font-size:19px; }

/* ==========================================================================
   Gespeicherte-Adressen-Schnellauswahl im Liefer-Popup (siehe footer.php).
   ========================================================================== */
.pt-saved-address-list{ display:flex; flex-direction:column; gap:8px; }
.pt-saved-address-item{
	display:flex; align-items:center; gap:10px;
	border:1.5px solid #eef0f2; border-radius:10px;
	padding:10px 12px; cursor:pointer; font-size:13.5px; color:#26282f;
	transition:all .15s ease;
}
.pt-saved-address-item i{ color:#f46e07; font-size:13px; flex-shrink:0; }
.pt-saved-address-item:hover{ border-color:#f46e07; background:#fdeee0; }
.pt-saved-address-item.pt-saved-address-active{ border-color:#f46e07; background:#fdeee0; font-weight:600; }

/* ==========================================================================
   Hinweis-Banner im Artikel-Popup, wenn gerade geschlossen ist (siehe
   ajax/getmodalitem.php) - ersetzt das frueher separate, ueberlagernde
   "Gerade geschlossen"-Popup.
   ========================================================================== */
.pt-modal-closed-banner{
	display:flex;
	align-items:flex-start;
	gap:9px;
	background:#f7f5f1;
	color:#34373c;
	border:1px solid #ded7cc;
	border-radius:16px;
	padding:10px 12px;
	margin:12px 14px 10px;
	font-size:13px;
	font-weight:500;
	line-height:1.42;
}
.pt-modal-closed-banner i{
	display:inline-flex;
	align-items:center;
	justify-content:center;
	flex:0 0 24px;
	width:24px;
	height:24px;
	margin:0;
	border-radius:9999px;
	background:#fff;
	color:#d96b12;
	box-shadow:0 1px 4px rgba(26,31,39,.10);
}

/* ============================================================
   FIX (05.08.2026): Produkt-Details-Popup (#addtocartModal) auf dem Handy
   - vorher konnte sich das Fenster oben aus dem sichtbaren Bereich
   herausschieben (der Schliessen-Button war dadurch nicht mehr erreichbar)
   und liess sich nach dem Herunterscrollen (z.B. zu den Zubereitungsarten)
   nicht mehr zuverlaessig zurueck nach oben scrollen. Ursache: Bootstrap
   zentriert das Fenster per "modal-dialog-centered" senkrecht in der
   Bildschirmmitte OHNE eigene Hoehenbegrenzung - bei einem langen Artikel
   (viele Optionen) wurde das Fenster dadurch hoeher als der Bildschirm und
   ragte oben heraus. Jetzt: feste maximale Hoehe, das Scrollen findet
   NUR NOCH innerhalb des Fensters statt (der Bildschirm selbst bleibt
   fest), und der Schliessen-Button bleibt beim Scrollen immer oben
   sichtbar ("sticky").
   ============================================================ */
@media (max-width: 767px){
	#addtocartModal{
		padding:0 !important;
		overflow:hidden;
	}
	#addtocartModal .modal-dialog{
		display:flex;
		align-items:stretch;
		width:auto;
		height:calc(100vh - 88px);
		/* Use Safari's smallest viewport so a hidden browser toolbar cannot
		   move the action bar on the customer's first tap. */
		height:calc(100svh - 16px);
		min-height:0;
		margin:0.5rem;
	}
	#addtocartModal .modal-dialog-centered::before{
		display:none;
		content:none;
	}
	#addtocartModal .modal-content{
		height:100%;
		max-height:100%;
		overflow:hidden; /* das eigentliche Scrollen passiert in .modal-body, nicht hier */
		display:flex;
		flex-direction:column;
		border:1px solid rgba(41,45,52,.14);
		border-radius:24px !important;
		box-shadow:0 22px 55px rgba(20,24,31,.24);
	}
	#addtocartModal .modal-body{
		overflow-y:scroll;
		-webkit-overflow-scrolling:touch;
		overscroll-behavior:contain;
		touch-action:pan-y;
		scrollbar-width:thin;
		scrollbar-color:#9da3ab transparent;
		scrollbar-gutter:stable;
		flex:1 1 auto;
		min-height:0; /* noetig, damit Flexbox das Kind ueberhaupt schrumpfen laesst */
		padding:48px 0 14px;
	}
	#addtocartModal .modal-body::-webkit-scrollbar{
		width:5px;
	}
	#addtocartModal .modal-body::-webkit-scrollbar-track{
		background:transparent;
	}
	#addtocartModal .modal-body::-webkit-scrollbar-thumb{
		border-radius:9999px;
		background:#9da3ab;
	}
	#addtocartModal .pt-mobile-modal-action{
		position:relative !important;
		bottom:auto !important;
		flex:0 0 auto;
		width:100%;
		margin:0;
		padding-bottom:max(8px, env(safe-area-inset-bottom));
		background:#fff;
		border-top:1px solid #e5e7ea;
		box-shadow:0 -8px 22px rgba(25,31,40,.10);
		z-index:1001;
	}
	#addtocartModal .pt-mobile-modal-action .price-det-inner{
		padding-top:10px;
		padding-bottom:10px;
	}
	#addtocartModal .pt-buytocart{
		touch-action:manipulation;
		-webkit-tap-highlight-color:transparent;
	}
	/* Schliessen-Button bleibt beim Scrollen im Fenster immer oben sichtbar,
	   statt mit dem Inhalt mit nach oben aus dem Bildschirm zu wandern. */
	#addtocartModal .close{
		position:absolute;
		top:12px;
		left:12px;
		z-index:1002;
		float:none;
		margin:0;
		background:#fff;
		border-radius:50%;
		width:38px;
		height:38px;
		display:flex;
		align-items:center;
		justify-content:center;
		box-shadow:0 3px 12px rgba(0,0,0,.14);
	}
	#addtocartModal .wfs-special-instruction-wrapper{
		padding:12px 14px 14px !important;
		border-top:1px solid #e6e8eb;
		background:#f8f9fa;
	}
	#addtocartModal .wfs-special-note-label{
		margin-bottom:7px !important;
		font-size:13px;
		font-weight:700;
		color:#34373c;
	}
	#addtocartModal #special_note{
		min-height:72px;
		height:72px;
		margin:0;
		padding:10px 12px;
		border:1px solid #cfd3d9;
		border-radius:14px;
		background:#fff;
		font-size:14px;
		line-height:1.4;
		resize:vertical;
		box-shadow:none;
	}
}

/* ============================================================
   FIX (05.08.2026): "Bestelldetails ändern"-Popup (#wfsServiceModal) -
   auf Tablets wirkte die Abdunkelung hinter dem Popup zu schwach/kaum
   sichtbar, wodurch es wie eine zufaellige Ueberlagerung mit der
   dahinterliegenden Seite wirkte statt wie ein klar eigenstaendiges,
   im Vordergrund liegendes Fenster. Bootstraps Standard-Backdrop
   (.modal-backdrop) ist technisch korrekt vorhanden (z-index 1040,
   Popup selbst 1050 - also schon richtig UEBER der Seite) - hier wird
   die Abdunkelung nur zusaetzlich deutlich verstaerkt. Eine fruehere
   Weichzeichnung ist bewusst entfernt: Der Hintergrund soll ruhig und
   dunkel sein, aber weder unscharf noch optisch verzogen wirken.
   ============================================================ */
#wfsServiceModal.show ~ .modal-backdrop,
.modal-backdrop.show{
	background:#14141f !important;
	opacity:.58 !important;
}
.modal-backdrop{
	-webkit-backdrop-filter:none !important;
	backdrop-filter:none !important;
}
#wfsServiceModal .modal-content{
	position:relative;
	z-index:1;
	max-height:calc(100vh - 32px);
	display:flex;
	flex-direction:column;
	overflow:hidden;
}
#wfsServiceModal .modal-header{
	flex:0 0 auto;
}
#wfsServiceModal .wfsmodal-body{
	min-height:0;
	overflow-y:auto;
	overscroll-behavior:contain;
	-webkit-overflow-scrolling:touch;
}
#wfsServiceModal #update-service-modal{
	position:sticky;
	bottom:0;
	z-index:12;
	width:100%;
	margin:14px 0 0 !important;
	box-shadow:0 -10px 18px 10px #fff, 0 8px 18px rgba(226,91,0,.2);
}

/* Customer profile address cards */
.pt-profile-address-card{
	margin:16px 0; padding:18px; border:1px solid #e8e9ed; border-radius:14px;
	background:#fff; box-shadow:0 5px 18px rgba(25,28,38,.06);
}
.pt-profile-address-card .form-row > [class*="pt-address-order-"]{ display:block; }
.pt-address-order-0{ order:0; }.pt-address-order-1{ order:1; }.pt-address-order-2{ order:2; }
.pt-address-order-3{ order:3; }.pt-address-order-4{ order:4; }.pt-address-order-5{ order:5; }
.pt-address-order-7{ order:7; }.pt-address-order-8{ order:8; }
.pt-address-label-chips{ display:flex; flex-wrap:wrap; gap:8px; margin:6px 0 16px; }
.pt-address-label-chips label{ margin:0; cursor:pointer; }
.pt-address-label-chips input{ position:absolute; opacity:0; pointer-events:none; }
.pt-address-label-chips span{
	display:inline-flex; align-items:center; min-height:36px; padding:7px 14px;
	border:1px solid #d9dce3; border-radius:999px; color:#565b68; font-size:13px;
}
.pt-address-label-chips input:checked + span{ background:#242735; border-color:#242735; color:#fff; font-weight:600; }
.pt-account-danger-zone{ margin-top:22px; padding:18px; border:1px solid #f0c8c5; border-radius:14px; background:#fffafa; }
.pt-registration-phone{ display:grid; grid-template-columns:minmax(105px, 38%) 1fr; gap:8px; }
.pt-registration-phone .bootstrap-select{ width:100% !important; }
@media(max-width:575.98px){
	.pt-profile-address-card{ padding:14px; }
	.pt-address-label-chips label{ flex:1 1 auto; }
	.pt-address-label-chips span{ justify-content:center; width:100%; }
}

/* Customer frontend: compact back-to-top button for long menus and pages. */
.pt-scroll-top{
	position:fixed;
	right:22px;
	bottom:24px;
	z-index:1035;
	width:46px;
	height:46px;
	padding:0;
	display:flex;
	align-items:center;
	justify-content:center;
	border:2px solid #f46e07;
	border-radius:999px;
	background:#fff;
	color:#202125;
	font-size:16px;
	box-shadow:0 6px 20px rgba(25,31,40,.18);
	cursor:pointer;
	opacity:0;
	visibility:hidden;
	pointer-events:none;
	transform:translateY(12px);
	transition:opacity .18s ease, transform .18s ease, visibility .18s ease, background-color .15s ease;
}
.pt-scroll-top.is-visible{
	opacity:1;
	visibility:visible;
	pointer-events:auto;
	transform:translateY(0);
}
.pt-scroll-top:hover,
.pt-scroll-top:focus-visible{
	background:#fff6ef;
	color:#202125;
	outline:none;
	box-shadow:0 7px 22px rgba(244,110,7,.24);
}
body.modal-open .pt-scroll-top{
	opacity:0;
	visibility:hidden;
	pointer-events:none;
}
@media (min-width:1200px){
	body.pt-customer-menu-page .pt-scroll-top{ right:462px; }
}
@media (max-width:1199.98px){
	.pt-scroll-top{
		right:16px;
		bottom:calc(78px + env(safe-area-inset-bottom));
		width:44px;
		height:44px;
	}
}
@media (prefers-reduced-motion:reduce){
	.pt-scroll-top{ transition:none; }
}

/* Cookie-Auswahl: gleichwertige Entscheidungen, mobil gut bedienbar. */
.pt-cookie-settings-link{border:0;background:none;color:inherit;padding:0;text-decoration:underline;cursor:pointer;font:inherit}.pt-cookie-backdrop{position:fixed;inset:0;background:rgba(18,21,29,.42);z-index:99997}.pt-cookie-banner{position:fixed;left:50%;bottom:18px;transform:translateX(-50%);z-index:99998;width:min(920px,calc(100% - 24px));background:#fff;color:#252a3d;border-radius:16px;padding:20px;box-shadow:0 18px 60px rgba(0,0,0,.28)}.pt-cookie-banner[hidden],.pt-cookie-backdrop[hidden]{display:none!important}.pt-cookie-copy{display:flex;gap:14px}.pt-cookie-icon{display:grid;place-items:center;flex:0 0 46px;height:46px;border-radius:50%;background:#fff1e4;color:#f46e07;font-size:20px}.pt-cookie-copy h3{margin:0 0 5px;font-size:19px}.pt-cookie-copy p{margin:0;color:#606674;font-size:13.5px;line-height:1.55}.pt-cookie-copy a{color:#c95300;text-decoration:underline}.pt-cookie-details{margin:15px 0;border:1px solid #e4e5e9;border-radius:11px;overflow:hidden}.pt-cookie-details label{display:grid;grid-template-columns:1fr auto 90px;align-items:center;gap:12px;padding:12px;border-bottom:1px solid #eee;margin:0}.pt-cookie-details label:last-child{border-bottom:0}.pt-cookie-details strong,.pt-cookie-details small{display:block}.pt-cookie-details small{color:#727783}.pt-cookie-details em{font-size:11px;font-style:normal;color:#666;text-align:right}.pt-cookie-actions{display:flex;justify-content:flex-end;gap:8px;flex-wrap:wrap;margin-top:16px}.pt-cookie-btn{border:1px solid #c9ccd2;border-radius:9px;padding:10px 15px;font-weight:600;cursor:pointer}.pt-cookie-btn.is-secondary{background:#fff;color:#30354a}.pt-cookie-btn.is-primary{background:#f46e07;border-color:#f46e07;color:#fff}.pt-cookie-open{overflow:hidden}
@media(max-width:575.98px){.pt-cookie-banner{bottom:8px;padding:15px;max-height:calc(100vh - 16px);overflow-y:auto}.pt-cookie-copy{display:block}.pt-cookie-icon{margin-bottom:8px}.pt-cookie-details label{grid-template-columns:1fr auto}.pt-cookie-details em{grid-column:1/-1;text-align:left}.pt-cookie-actions{display:grid;grid-template-columns:1fr 1fr}.pt-cookie-actions button:first-child{grid-column:1/-1}.pt-cookie-btn{width:100%;font-size:12.5px;padding:10px 7px}}
.pt-map-consent-placeholder{min-height:300px;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;gap:8px;padding:28px;background:#f3f4f6;color:#303544}.pt-map-consent-placeholder i{font-size:34px;color:#f46e07}.pt-map-consent-placeholder span{max-width:360px;color:#6a707d;font-size:13px}.pt-map-consent-placeholder .pt-cookie-btn{margin-top:8px}
/* Optional platform referral in every restaurant footer. Kept visually quiet
   so the restaurant brand remains primary; can be disabled per tenant. */
.pt-platform-promo{display:flex;justify-content:center;align-items:center;gap:12px;flex-wrap:wrap;padding:16px 20px;background:#172f27;color:#c5d2cc;font-size:12px;text-align:center}
.pt-platform-promo a{display:inline-flex;align-items:center;gap:8px;color:#fff!important;font-weight:700;text-decoration:none!important}
.pt-platform-promo a:hover{color:#f47a3f!important}
.pt-platform-promo i{font-size:10px}


/* ============================================================
   26.08.2026 – Mobiler Warenkorb kompakter / eindeutige Navigation
   Nur UI. Keine Warenkorb-, Preis-, Mindestbestellwert- oder Checkoutlogik.
   ============================================================ */
@media (max-width:1199.98px){
    /* Der Drawer ist ein echtes 3-Zonen-Layout:
       1. Navigation oben, 2. scrollender Inhalt, 3. Zur-Kasse-Leiste unten. */
    .sidebar-cart-active{
        display:flex !important;
        flex-direction:column !important;
        overflow:hidden !important;
        padding-top:calc(12px + env(safe-area-inset-top)) !important;
    }

    /* Einziger Rueckweg zur Speisekarte – kompakt oben statt zweifach. */
    .sidebar-cart-active > .pt-cart-menu-back-fixed{
        position:relative !important;
        flex:0 0 auto !important;
        align-self:flex-start !important;
        display:inline-flex !important;
        align-items:center !important;
        justify-content:center !important;
        gap:8px !important;
        min-height:42px !important;
        margin:4px 0 8px 14px !important;
        padding:8px 14px !important;
        border:1px solid #d9dde3 !important;
        border-radius:999px !important;
        background:#fff !important;
        color:#272d36 !important;
        box-shadow:0 3px 12px rgba(20,20,43,.06) !important;
        font-size:14px !important;
        line-height:1.1 !important;
        cursor:pointer !important;
        z-index:20 !important;
    }
    .sidebar-cart-active > .pt-cart-menu-back-fixed strong{
        font-weight:700 !important;
    }
    .sidebar-cart-active > .pt-cart-menu-back-fixed > span{
        font-size:18px !important;
        line-height:1 !important;
    }

    /* Nie wieder der zweite Link unter dem Mindestbestellwert. */
    .sidebar-cart-active .pt-cart-add-more{
        display:none !important;
    }

    /* Nur der eigentliche Warenkorb-Inhalt darf scrollen. */
    .sidebar-cart-active .sidebar-cart-all{
        flex:1 1 auto !important;
        min-height:0 !important;
        overflow-y:auto !important;
        overflow-x:hidden !important;
        -webkit-overflow-scrolling:touch;
        padding-top:0 !important;
    }

    /* Der gesamte untere Bedienbereich bleibt sichtbar – nicht nur bei
       einer bestimmten Scrollposition. */
    .sidebar-cart-active > .view_cart_total{
        position:relative !important;
        inset:auto !important;
        flex:0 0 auto !important;
        width:100% !important;
        margin:0 !important;
        padding:8px 14px calc(10px + env(safe-area-inset-bottom)) !important;
        background:#fff !important;
        border-top:1px solid #edf0f3 !important;
        box-shadow:0 -5px 18px rgba(20,20,43,.08) !important;
        z-index:30 !important;
    }
    .sidebar-cart-active > .view_cart_total .view-cart-total{
        margin:0 !important;
        padding:0 !important;
    }
    .sidebar-cart-active > .view_cart_total .checkout-section{
        position:relative !important;
        inset:auto !important;
        margin:6px 0 0 !important;
        padding:0 !important;
        box-shadow:none !important;
        background:#fff !important;
    }
    .sidebar-cart-active > .view_cart_total .checkout.checkout_button{
        margin-bottom:0 !important;
    }

    /* Der X-Knopf bleibt Schliessen, bekommt aber weniger tote Flaeche. */
    .sidebar-cart-active .cart-close{
        top:calc(10px + env(safe-area-inset-top)) !important;
        right:14px !important;
    }
    .sidebar-cart-active .cart-content > h3{
        margin-top:4px !important;
    }
}

/* Auf sehr schmalen Handys Text notfalls etwas kompakter. */
@media (max-width:420px){
    .sidebar-cart-active > .pt-cart-menu-back-fixed{
        max-width:calc(100% - 82px) !important;
        font-size:13px !important;
        padding-left:12px !important;
        padding-right:12px !important;
    }
}


/* ============================================================
   26.08.2026 – Warenkorb: symmetrischer Footer + kompakter Zurueck-Button
   Nur Darstellung. Keine Warenkorb-/Mindestwert-/Checkoutlogik.
   ============================================================ */
@media (max-width:1199.98px){

    /* Oben weniger tote Flaeche: gleiche Funktion, kompaktere Pille. */
    .sidebar-cart-active > .pt-cart-menu-back-fixed{
        min-height:36px !important;
        height:auto !important;
        margin:2px 0 5px 12px !important;
        padding:6px 11px !important;
        gap:6px !important;
        font-size:13px !important;
        line-height:1.05 !important;
    }
    .sidebar-cart-active > .pt-cart-menu-back-fixed > span{
        font-size:16px !important;
    }

    /* Unterer Bedienbereich exakt box-sizing-basiert aufbauen.
       Dadurch sind linker/rechter Innenabstand wirklich identisch. */
    .sidebar-cart-active > .view_cart_total{
        width:100% !important;
        max-width:100% !important;
        box-sizing:border-box !important;
        margin:0 !important;
        padding:10px 12px calc(12px + env(safe-area-inset-bottom)) !important;
        left:auto !important;
        right:auto !important;
    }

    .sidebar-cart-active > .view_cart_total .view-cart-total{
        width:100% !important;
        max-width:100% !important;
        box-sizing:border-box !important;
        margin:0 !important;
        padding:0 !important;
    }

    .sidebar-cart-active > .view_cart_total .checkout-section{
        width:100% !important;
        max-width:100% !important;
        box-sizing:border-box !important;
        margin:0 !important;
        padding:0 !important;
        left:auto !important;
        right:auto !important;
    }

    /* Orange/grauer Zur-Kasse-Button: exakt gleiche Distanz zu beiden Seiten. */
    .sidebar-cart-active > .view_cart_total .checkout.checkout_button{
        display:flex !important;
        align-items:center !important;
        width:100% !important;
        max-width:100% !important;
        box-sizing:border-box !important;
        margin:0 !important;
        left:auto !important;
        right:auto !important;
    }

    /* Falls das Template einen inneren Wrapper setzt, darf auch dieser
       keine einseitige Einrueckung mehr erzeugen. */
    .sidebar-cart-active > .view_cart_total .checkout-section > *,
    .sidebar-cart-active > .view_cart_total .checkout.checkout_button > *{
        box-sizing:border-box !important;
    }
}

/* Auf kleinen iPhones bleibt die Pille lesbar, aber spart weiter Platz. */
@media (max-width:420px){
    .sidebar-cart-active > .pt-cart-menu-back-fixed{
        min-height:34px !important;
        margin-left:10px !important;
        padding:5px 10px !important;
        font-size:12.5px !important;
        max-width:calc(100% - 72px) !important;
    }
    .sidebar-cart-active > .view_cart_total{
        padding-left:10px !important;
        padding-right:10px !important;
        padding-bottom:calc(10px + env(safe-area-inset-bottom)) !important;
    }
}


/* ============================================================
   26.08.2026 – Warenkorb unter Mindestbestellwert weiter bedienbar
   + Desktop-Seitenleiste etwas hoeher
   Nur UI/Navigation. Checkout-Sperre bleibt unveraendert.
   ============================================================ */

/* Grau bedeutet jetzt: "noch nicht bestellbar", NICHT "Warenkorb gesperrt".
   Der Kunde darf ihn weiterhin oeffnen und bearbeiten. */
.only-mobile-cart .pt-custom-cart.pt-cart-below-minimum{
	cursor:pointer !important;
}

/* Desktop/Stock-Ansicht: der Warenkorb-Inhalt sass optisch etwas zu tief.
   Weniger oberes Padding, ohne Breite/Hoehe/Sticky-Checkout zu veraendern. */
@media (min-width:1200px){
	.sidebar-cart-active{
		padding-top:12px !important;
	}
	.sidebar-cart-active .cart-content > h3{
		margin-top:0 !important;
		margin-bottom:10px !important;
	}
}

/* ============================================================
   FIX (25.08.2026): Gespeicherte Adressen – klare Label-Pills
   Nur Darstellung; gespeicherte Adresswerte/Logik unverändert.
   ============================================================ */
.pt-saved-address-text{
	display:flex;
	align-items:center;
	gap:8px;
	min-width:0;
	flex:1 1 auto;
	flex-wrap:wrap;
}
.pt-address-label-pill{
	display:inline-flex;
	align-items:center;
	justify-content:center;
	flex:0 0 auto;
	min-height:24px;
	padding:3px 9px;
	border-radius:999px;
	background:#fff3e8;
	border:1px solid #f5c69f;
	color:#bc570d;
	font-size:11.5px;
	font-weight:700;
	line-height:1;
	white-space:nowrap;
}
.pt-saved-address-line{
	min-width:0;
	color:#343941;
	line-height:1.4;
}
.pt-saved-address-picker{
	border:1px solid #e1e4e9;
	border-radius:12px;
	background:#fff;
	overflow:hidden;
}
.pt-saved-address-toggle{
	display:flex;
	align-items:center;
	gap:10px;
	width:100%;
	min-height:58px;
	padding:9px 12px;
	border:0;
	background:#fff;
	color:#242832;
	text-align:left;
	cursor:pointer;
}
.pt-saved-address-toggle:hover,
.pt-saved-address-toggle:focus-visible{
	background:#fff8f2;
}
.pt-saved-address-toggle:focus-visible{
	outline:3px solid rgba(244,110,7,.22);
	outline-offset:-3px;
}
.pt-saved-address-toggle-icon{
	display:inline-flex;
	align-items:center;
	justify-content:center;
	flex:0 0 34px;
	width:34px;
	height:34px;
	border-radius:50%;
	background:#fff1e5;
	color:#e66100;
}
.pt-saved-address-toggle-copy{
	display:flex;
	flex-direction:column;
	min-width:0;
	flex:1 1 auto;
	line-height:1.25;
}
.pt-saved-address-toggle-copy strong{
	font-size:14px;
	font-weight:750;
}
.pt-saved-address-toggle-copy small{
	margin-top:3px;
	color:#707580;
	font-size:12px;
	white-space:nowrap;
	overflow:hidden;
	text-overflow:ellipsis;
}
.pt-saved-address-toggle.pt-has-selection{
	background:#fff8f2;
}
.pt-saved-address-toggle.pt-has-selection .pt-saved-address-toggle-copy strong{
	color:#bd5000;
}
.pt-saved-address-chevron{
	flex:0 0 auto;
	color:#666c77;
	transition:transform .18s ease;
}
.pt-saved-address-picker .pt-saved-address-list{
	display:none;
	padding:0 8px 8px;
	gap:7px;
	border-top:1px solid #f0f1f3;
}
.pt-saved-address-picker.pt-saved-address-open .pt-saved-address-list{
	display:flex;
}
.pt-saved-address-picker.pt-saved-address-open .pt-saved-address-chevron{
	transform:rotate(180deg);
}
.pt-saved-address-check{
	display:none;
	align-items:center;
	justify-content:center;
	flex:0 0 24px;
	width:24px;
	height:24px;
	border-radius:50%;
	background:#f46e07;
	color:#fff;
	font-size:11px;
}
.pt-saved-address-item.pt-saved-address-active .pt-saved-address-check{
	display:inline-flex;
}
.pt-saved-address-item.pt-saved-address-active .pt-address-label-pill{
	background:#f46e07;
	border-color:#f46e07;
	color:#fff;
}
#AddressModal .pt-address-modal-title{
	display:flex;
	align-items:center;
	gap:8px;
	flex-wrap:wrap;
	padding-right:34px;
	line-height:1.35;
}

/* ============================================================
   30.08.2026 – Gespeicherte Adressen im Checkout
   Zentrierte Auswahl, begrenzte Liste und ruhiger Modal-Hintergrund.
   ============================================================ */
#AddressModal .modal-content{
	max-height:calc(100vh - 32px);
	overflow:hidden;
}
#AddressModal .modal-body{
	min-height:0;
	overflow:hidden;
}
#AddressModal .radio-list{
	max-height:min(46vh, 340px);
	overflow-y:auto;
	overflow-x:hidden;
	padding:2px 7px 2px 2px;
	scrollbar-width:thin;
	scrollbar-color:#c9cdd4 transparent;
}
#AddressModal .radio-list::-webkit-scrollbar{ width:6px; }
#AddressModal .radio-list::-webkit-scrollbar-track{ background:transparent; }
#AddressModal .radio-list::-webkit-scrollbar-thumb{
	background:#c9cdd4;
	border-radius:999px;
}
#AddressModal .radio-item label{
	align-items:center;
	min-height:76px;
	padding:10px 58px 10px 10px;
	white-space:normal;
	border:1px solid #e3e5e9;
	transition:border-color .15s ease, background-color .15s ease, box-shadow .15s ease;
}
#AddressModal .radio-item label:hover{
	border-color:#f3b17f;
	background:#fffaf6;
}
#AddressModal .radio-item label::after{
	width:22px;
	height:22px;
	right:17px;
	top:50%;
	border:2px solid #777d87;
	transform:translateY(-50%);
}
#AddressModal .radio-item label::before{
	width:12px;
	height:12px;
	right:22px;
	top:50%;
	background:#f46e07;
	transform:translateY(-50%) scale(0);
	opacity:0;
	visibility:hidden;
}
#AddressModal .radio-item [type="radio"]:checked ~ label{
	border-color:#f46e07;
	background:#fff8f2;
	box-shadow:0 0 0 2px rgba(244,110,7,.1);
}
#AddressModal .radio-item [type="radio"]:checked ~ label::after{
	border-color:#f46e07;
}
#AddressModal .radio-item [type="radio"]:checked ~ label::before{
	opacity:1;
	visibility:visible;
	transform:translateY(-50%) scale(1);
}
#AddressModal .address-content{
	min-width:0;
	width:auto;
	flex:1 1 auto;
}
#AddressModal .address-content p{
	white-space:normal;
	overflow-wrap:anywhere;
}
@media(max-width:767.98px){
	#wfsServiceModal .modal-content{
		width:100%;
		height:auto;
		max-height:min(82svh, 720px);
	}
	#wfsServiceModal .modal-dialog{
		width:calc(100% - 24px);
		max-width:520px;
		margin:12px auto;
	}
	#wfsServiceModal .modal-header{
		padding:16px 18px;
	}
	#wfsServiceModal .modal-header .modal-title{
		font-size:clamp(24px, 7vw, 34px);
	}
	#wfsServiceModal .wfsmodal-body{
		padding:16px 18px 18px;
	}
	#AddressModal .modal-content{
		max-height:calc(100vh - 16px);
	}
	#AddressModal .radio-list{
		max-height:48vh;
	}
	.pt-saved-address-item{
		align-items:flex-start;
	}
	.pt-saved-address-text{
		gap:6px 8px;
	}
	.pt-address-label-pill{
		font-size:11px;
		padding:3px 8px;
	}
	.pt-saved-address-line{
		flex:1 1 220px;
	}
}

/* ============================================================
   13.09.2026 – Mobiler Warenkorb: sichtbare Ruecknavigation,
   kleineres Bestelldetails-Fenster und kompakte Restaurant-Notiz.
   Reiner UI-Fix; Bestell-, Preis-, Liefer- und Zeitlogik unveraendert.
   ============================================================ */
@media (max-width:1199.98px){
	.sidebar-cart-active{
		position:fixed !important;
	}
	.sidebar-cart-active > .pt-cart-menu-back-fixed{
		position:absolute !important;
		top:max(10px, env(safe-area-inset-top)) !important;
		left:12px !important;
		margin:0 !important;
		width:auto !important;
		max-width:none !important;
		min-height:36px !important;
		padding:7px 12px !important;
		z-index:80 !important;
	}
	.sidebar-cart-active > .sidebar-cart-all{
		padding-top:54px !important;
	}

	.sidebar-cart-active .cart-comment-section{
		align-items:center !important;
		gap:8px !important;
		min-height:0 !important;
		margin:0 !important;
		padding:7px 2px !important;
	}
	.sidebar-cart-active .cart-comment-section .comment-icon{
		flex:0 0 26px !important;
		width:26px !important;
		padding:0 !important;
	}
	.sidebar-cart-active .cart-comment-section .comment-icon svg{
		width:19px !important;
		height:19px !important;
	}
	.sidebar-cart-active .comment-box-section{
		display:grid !important;
		grid-template-columns:minmax(0,1fr) auto !important;
		align-items:center !important;
		gap:4px 8px !important;
		min-width:0 !important;
		padding:0 !important;
	}
	.sidebar-cart-active .comment-box{
		min-width:0 !important;
	}
	.sidebar-cart-active .comment-box h4{
		margin:0 !important;
		font-size:14px !important;
		line-height:1.2 !important;
	}
	.sidebar-cart-active .comment-box-inner{
		min-width:0 !important;
		margin-top:2px !important;
	}
	.sidebar-cart-active .comment-message{
		display:block;
		max-width:100% !important;
		margin:0 !important;
		overflow:hidden !important;
		white-space:nowrap !important;
		text-overflow:ellipsis !important;
		font-size:11.5px !important;
		line-height:1.25 !important;
	}
	.sidebar-cart-active .comment-edit{
		align-self:center !important;
		min-height:32px !important;
		margin:0 !important;
		padding:5px 8px !important;
		font-size:12px !important;
		white-space:nowrap !important;
	}
	.sidebar-cart-active .pt-note-open{
		align-items:flex-start !important;
	}
	.sidebar-cart-active .pt-note-open .comment-box-section{
		align-items:start !important;
	}
	.sidebar-cart-active .pt-note-open .order_instraction{
		display:block !important;
		width:100% !important;
		height:66px !important;
		min-height:66px !important;
		margin:6px 0 0 !important;
		padding:8px 10px !important;
		font-size:16px !important;
		line-height:1.35 !important;
		resize:none !important;
	}
}


/* ============================================================
   26.08.2026 – Stabilisierungs-Finish Kundenseite
   Leerer Warenkorb / Desktop-Hoehe / iPad-Footer
   Nur Darstellung.
   ============================================================ */

/* Die frueher vorhandene kleine orange, bewegte Einkaufstuete wieder als
   ruhigen Empty-State darstellen. Verwendet die Restaurant-Themefarbe. */
.pt-ordering-unavailable{
	margin:26px 12px;
	padding:28px 20px 24px;
	border:1px solid rgba(244,110,7,.2);
	border-radius:22px;
	background:linear-gradient(145deg,rgba(244,110,7,.075),rgba(255,255,255,.98));
	box-shadow:0 12px 32px rgba(25,31,42,.07);
}
.pt-ordering-unavailable-icon{
	width:64px;
	height:64px;
	margin:0 auto 14px;
	border-radius:20px;
	display:flex;
	align-items:center;
	justify-content:center;
	background:color-mix(in srgb,var(--pt-theme-primary,#f46e07) 13%,white);
	color:var(--pt-theme-primary,#f46e07);
	font-size:29px;
}
.pt-ordering-unavailable-kicker{
	display:inline-flex;
	padding:6px 11px;
	border-radius:999px;
	background:rgba(32,33,37,.07);
	color:#5d6169;
	font-size:11px;
	font-weight:700;
	letter-spacing:.035em;
	text-transform:uppercase;
}
.pt-ordering-unavailable h3{
	margin:14px 0 9px!important;
	font-size:20px!important;
	line-height:1.28!important;
}
.pt-ordering-unavailable p{
	margin:0 auto 18px;
	max-width:310px;
	color:#666b73;
	line-height:1.55;
}
.pt-ordering-unavailable-link{
	display:inline-flex;
	align-items:center;
	justify-content:center;
	gap:7px;
	min-height:42px;
	padding:9px 15px;
	border:1px solid rgba(32,33,37,.16);
	border-radius:999px;
	background:#fff;
	color:#202125!important;
	font-weight:650;
}
.pt-ordering-unavailable-link:hover{
	border-color:var(--pt-theme-primary,#f46e07);
	color:var(--pt-theme-primary,#f46e07)!important;
	text-decoration:none;
}
.pt-ordering-paused-pill{
	display:inline-flex!important;
	align-items:center;
	gap:7px;
	color:#6b4a22!important;
	background:#fff4e7!important;
	border-color:#f1c995!important;
}
.pt-restaurant-only-card .pt-ordering-unavailable-icon{
	background:color-mix(in srgb,var(--pt-theme-primary,#f46e07) 16%,white);
}
.pt-restaurant-only-status{
	display:inline-flex;
	align-items:center;
	justify-content:center;
	margin:11px 0 12px;
	padding:5px 10px;
	border-radius:999px;
	font-size:12px;
	font-weight:700;
}
.pt-restaurant-only-status.open{background:#e9f8ef;color:#178a4d;}
.pt-restaurant-only-status.closed{background:#fff0ef;color:#c83832;}
.pt-restaurant-only-address{
	dis:flex;
	align-items:flex-start;
	justify-content:center;
	gap:8px;
	max-width:320px;
	margin:0 auto 16px;
	color:#4f555e;
	font-size:13px;
	line-height:1.45;
}
.pt-restaurant-only-address i{margin-top:3px;color:var(--pt-theme-primary,#f46e07);}
.pt-restaurant-only-actions{
	dis:flex;
	flex-wrap:wrap;
	justify-content:center;
	gap:8px;
}
.pt-restaurant-only-actions .pt-ordering-unavailable-link{min-height:40px;padding:8px 12px;font-size:12.5px;}
.pt-restaurant-only-pill{
	color:#315f42!important;
	background:#edf8f1!important;
	border-color:#b9dfc7!important;
}
.pt-online-ordering-disabled .pt-addtocart,
.pt-online-ordering-disabled .add_to_cart,
.pt-online-ordering-disabled .ejLlrU{
	cursor:not-allowed!important;
}
.pt-online-ordering-disabled .add_to_cart,
.pt-online-ordering-disabled .pt-addtocart + .add-to-cart .kHKwux{
	opacity:.42!important;
	filter:grayscale(.35);
}
.pt-online-ordering-disabled .only-mobile-cart{
	display:none!important;
}
.pt-ordering-unavailable-pulse{
	animation:ptOrderingUnavailablePulse .48s ease-out;
}
@keyframes ptOrderingUnavailablePulse{
	0%{transform:scale(1)}
	45%{transform:scale(1.018);box-shadow:0 16px 38px rgba(244,110,7,.15)}
	100%{transform:scale(1)}
}
@media (max-width:767px){
	.pt-ordering-unavailable{margin:18px 8px;padding:24px 16px 20px;}
	.pt-ordering-unavailable h3{font-size:18px!important;}
}

.pt-empty-cart-visual{
	position:relative;
	width:92px;
	height:86px;
	margin:10px auto 14px;
	display:flex;
	align-items:center;
	justify-content:center;
}
.pt-empty-cart-bag{
	position:relative;
	z-index:2;
	width:68px;
	height:68px;
	border-radius:22px;
	display:flex;
	align-items:center;
	justify-content:center;
	background:color-mix(in srgb, var(--pt-theme-primary, #f46e07) 13%, white);
	border:1px solid color-mix(in srgb, var(--pt-theme-primary, #f46e07) 32%, white);
	color:var(--pt-theme-primary, #f46e07);
	font-size:31px;
	box-shadow:0 8px 22px rgba(25,31,42,.08);
	animation:ptEmptyCartFloat 2.8s ease-in-out infinite;
}
.pt-empty-cart-mini{
	position:absolute;
	z-index:3;
	right:3px;
	bottom:4px;
	width:32px;
	height:32px;
	border-radius:50%;
	display:flex;
	align-items:center;
	justify-content:center;
	background:var(--pt-theme-primary, #f46e07);
	color:#fff;
	border:3px solid #fff;
	font-size:12px;
	box-shadow:0 5px 12px rgba(25,31,42,.12);
	animation:ptEmptyCartMini 2.8s ease-in-out infinite;
}
@keyframes ptEmptyCartFloat{
	0%,100%{transform:translateY(0) rotate(0deg)}
	50%{transform:translateY(-5px) rotate(-1.2deg)}
}
@keyframes ptEmptyCartMini{
	0%,100%{transform:translateY(0)}
	50%{transform:translateY(-3px)}
}
@media (prefers-reduced-motion:reduce){
	.pt-empty-cart-bag,.pt-empty-cart-mini,.pt-ordering-unavailable-pulse{animation:none!important;}
}

/* Desktop: im aktuellen Stand sass die feste Warenkorbspalte noch wenige
   Pixel zu tief. Nur die obere Innenkante wird korrigiert. */
@media (min-width:1200px){
	.sidebar-cart-active{padding-top:6px!important;}
	.sidebar-cart-active .cart-content > h3{margin-top:0!important;}
}

/* iPad/Tablet Hochformat: Restaurantinfo und Oeffnungszeiten nutzen wieder
   die vorhandene Breite, statt rechts unnoetig Leerraum zu lassen. */
@media (min-width:768px) and (max-width:1100px){
	#pt-restaurant-footer-info .pt-footer-about-col{
		flex:0 0 42%!important;
		max-width:42%!important;
		padding-right:24px!important;
	}
	#pt-restaurant-footer-info .pt-footer-hours-col{
		flex:0 0 58%!important;
		max-width:58%!important;
		padding-left:24px!important;
	}
}
@media (max-width:767.98px){
	#pt-restaurant-footer-info .pt-footer-about-col,
	#pt-restaurant-footer-info .pt-footer-hours-col{
		flex:0 0 100%!important;
		max-width:100%!important;
		padding-left:15px!important;
		padding-right:15px!important;
		border-right:0!important;
	}
}


/* ============================================================
   27.08.2026 – Desktop-Warenkorb stabil im Viewport
   Reiner UI-Fix: keine Preis-/Mindestbestellwert-/Checkoutlogik.
   Der Warenkorb bleibt oben ausgerichtet; nur der Inhaltsbereich scrollt,
   Summe/Checkout bleiben unten in der Spalte sichtbar.
   ============================================================ */
@media (min-width:1200px){
    .sidebar-cart-active{
        top:0 !important;
        bottom:0 !important;
        height:100vh !important;
        height:100dvh !important;
        max-height:100dvh !important;
        display:flex !important;
        flex-direction:column !important;
        overflow:hidden !important;
        padding-top:6px !important;
        box-sizing:border-box !important;
    }
    .sidebar-cart-active > .sidebar-cart-all{
        flex:1 1 auto !important;
        min-height:0 !important;
        overflow-y:auto !important;
        overflow-x:hidden !important;
        -webkit-overflow-scrolling:touch;
        overscroll-behavior:contain;
        scroll-behavior:auto;
    }
    .sidebar-cart-active > .view_cart_total{
        flex:0 0 auto !important;
        position:relative !important;
        inset:auto !important;
        width:100% !important;
        margin:0 !important;
        background:#fff !important;
        z-index:20 !important;
    }
    .sidebar-cart-active > .view_cart_total .checkout-section{
        position:relative !important;
        inset:auto !important;
        margin:0 !important;
    }
}

/* Unter Mindestbestellwert bleibt der Warenkorb selbst immer klickbar.
   Nur der Checkout-Button darf deaktiviert sein. */
.pt-custom-cart.pt-cart-below-minimum,
.pt-custom-cart.pt-cart-below-minimum > a,
.pt-view-cart-below-minimum,
.pt-cart-open-trigger{
    pointer-events:auto !important;
    cursor:pointer !important;
}


/* ============================================================
   27.08.2026 – Warenkorb Feinschliff V2
   Nur Darstellung/Navigation; keine Preis- oder Checkoutlogik.
   ============================================================ */

/* Unter Mindestbestellwert bleibt die Kopfaktion ein normaler Warenkorb-Link.
   Der eigentliche Mindestwert-Hinweis lebt im Warenkorb selbst. */
.pt-custom-cart.pt-cart-below-minimum > a{
    opacity:1 !important;
    filter:none !important;
    pointer-events:auto !important;
}

/* Historischen blauen Ladeindikator im Warenkorb nicht mehr zeigen. Ein
   laufender Refresh bleibt bewusst ruhig, damit schnelles +/- nicht flackert. */
#cart_details.pt-cart-first-load{
    min-height:56px;
}
#cart_details img[src*="loading.gif"],
#checkout_cart_details img[src*="loading.gif"]{
    display:none !important;
}
.pt-cart-updating{
    cursor:default;
}

/* Restaurant-Anmerkung im Desktop-Warenkorb kompakter: Empfehlungen und
   Warenkorbpositionen sollen mehr Platz behalten. Funktion bleibt identisch. */
@media (min-width:1200px){
    .sidebar-cart-active .cart-comment-section{
        padding:8px 10px !important;
        margin:4px 0 2px !important;
        min-height:0 !important;
        gap:8px !important;
        align-items:center !important;
    }
    .sidebar-cart-active .cart-comment-section .comment-icon{
        flex:0 0 28px !important;
        width:28px !important;
        height:28px !important;
        display:flex !important;
        align-items:center !important;
        justify-content:center !important;
    }
    .sidebar-cart-active .cart-comment-section .comment-icon svg{
        width:18px !important;
        height:18px !important;
    }
    .sidebar-cart-active .comment-box-section{
        min-width:0 !important;
        padding-bottom:0 !important;
        display:grid !important;
        grid-template-columns:minmax(0,1fr) auto !important;
        align-items:center !important;
        column-gap:8px !important;
    }
    .sidebar-cart-active .comment-box{
        min-width:0 !important;
    }
    .sidebar-cart-active .comment-box h4{
        margin:0 !important;
        font-size:13px !important;
        line-height:1.2 !important;
        font-weight:750 !important;
        white-space:nowrap !important;
        overflow:hidden !important;
        text-overflow:ellipsis !important;
    }
    .sidebar-cart-active .comment-box-inner{
        margin-top:2px !important;
    }
    .sidebar-cart-active .comment-message{
        margin:0 !important;
        font-size:11.5px !important;
        line-height:1.25 !important;
        color:#777d87 !important;
        white-space:nowrap !important;
        overflow:hidden !important;
        text-overflow:ellipsis !important;
        max-width:100% !important;
    }
    .sidebar-cart-active .comment-edit{
        align-self:center !important;
        padding:5px 7px !important;
        margin:0 !important;
        font-size:11.5px !important;
        line-height:1.1 !important;
        min-height:28px !important;
        white-space:nowrap !important;
    }
    .sidebar-cart-active .recommendations-section{
        padding-bottom:3px !important;
        margin-bottom:2px !important;
    }
}


/* ============================================================
   27.08.2026 – Kopf-Warenkorb: sichtbares Klick-Feedback am Desktop.
   Keine Checkout-/Preislogik. Die feste Seitenleiste ist bereits offen;
   beim Klick auf "Bestellung ansehen" wird sie kurz hervorgehoben.
   ============================================================ */
@media (min-width:1200px){
    .sidebar-cart-active.pt-cart-focus-pulse{
        animation:ptCartFocusPulse .62s ease-out 1;
    }
    @keyframes ptCartFocusPulse{
        0%{ box-shadow:inset 0 0 0 0 rgba(244,110,7,0); }
        35%{ box-shadow:inset 0 0 0 3px rgba(244,110,7,.38); }
        100%{ box-shadow:inset 0 0 0 0 rgba(244,110,7,0); }
    }
}

/* Zahlungsart: dezenter Auf-/Zuklapp-Pfeil */
#pt-payment-change-link{display:inline-flex;align-items:center;gap:6px;}
#pt-payment-change-link .pt-payment-chevron{font-size:11px;transition:transform .18s ease;}
#pt-payment-change-link[aria-expanded="true"] .pt-payment-chevron{transform:rotate(180deg);}


/* ========================================================================== 
   CHECKOUT SUMMARY RESTORE (28.08.2026)
   JS-gestuetztes Mitlaufen auf Desktop. Spaet im Stylesheet platziert, damit
   aeltere Tablet-/Sticky-Regeln diesen Zustand nicht wieder ueberschreiben.
   ========================================================================== */
@media (min-width:992px){
    .checkout-section-all > .container > .row{
        align-items:stretch;
    }
    .checkout-section-all > .container > .row > .col-lg-5,
    .checkout-section-all > .container > .row > .col-md-5{
        position:relative;
        align-self:stretch;
    }
    .checkout-section-all .checkout-total-section{
        position:relative !important;
        top:auto !important;
        left:auto !important;
        width:auto;
        max-height:none;
        overflow:visible;
        margin-top:0;
    }
    .checkout-section-all .checkout-total-section > .checkout-sticky{
        position:static !important;
        top:auto !important;
    }
    .checkout-section-all .checkout-total-section.pt-summary-fixed{
        position:fixed !important;
        top:16px !important;
        left:var(--pt-summary-left) !important;
        width:var(--pt-summary-width) !important;
        max-height:calc(100vh - 32px);
        overflow-y:auto;
        z-index:30;
        overscroll-behavior:contain;
    }
    .checkout-section-all .checkout-total-section.pt-summary-bottom{
        position:absolute !important;
        top:auto !important;
        bottom:0 !important;
        left:0 !important;
        width:100% !important;
        max-height:none;
        overflow:visible;
    }
}

/* FIX 29.08.2026: Auf Mobil den unnötigen Leerraum zwischen Kategorienavigation
   und Direktbestell-Rabatt entfernen. Desktop-Abstände bleiben unverändert. */
@media only screen and (max-width:767px){
  .special-menu-for-time{ margin-top:0 !important; padding-top:0 !important; }
  .special-menu-for-time > .container-fluid{ margin-top:0 !important; padding-top:10px !important; }
  .pt-savings-banner{ margin-top:0 !important; margin-bottom:18px !important; }
}

/* ============================================================
   30.08.2026 – Mobile Warenkorb-Leiste kompakter und moderner
   Reiner UI-Fix. Keine Warenkorb-, Preis-, Mindestbestellwert-
   oder Checkoutlogik wird veraendert.
   ============================================================ */
@media (max-width: 767.98px){
    /* Schwebende Karte statt eines breiten Balkens von Rand zu Rand. */
    .only-mobile-cart{
        position:fixed !important;
        left:12px !important;
        right:12px !important;
        bottom:calc(12px + env(safe-area-inset-bottom)) !important;
        width:auto !important;
        max-width:none !important;
        margin:0 !important;
        z-index:980 !important;
        pointer-events:none;
    }
    .only-mobile-cart > ul{
        margin:0 !important;
        padding:0 !important;
    }
    .only-mobile-cart .pt-custom-cart{
        min-height:56px !important;
        margin:0 !important;
        border-radius:17px !important;
        border:1px solid rgba(255,255,255,.24) !important;
        box-shadow:0 10px 26px rgba(20,20,43,.20) !important;
        overflow:hidden !important;
        pointer-events:auto;
    }
    .only-mobile-cart .pt-custom-cart a,
    .only-mobile-cart .pt-custom-cart > span{
        min-height:56px !important;
        width:100% !important;
        display:grid !important;
        grid-template-columns:34px minmax(0,1fr) auto !important;
        align-items:center !important;
        column-gap:10px !important;
        padding:8px 12px !important;
        box-sizing:border-box !important;
        text-decoration:none !important;
    }
    .only-mobile-cart .pt-custom-cart .total-item{
        width:32px !important;
        height:32px !important;
        margin:0 !important;
        border-radius:50% !important;
        display:flex !important;
        align-items:center !important;
        justify-content:center !important;
        font-size:13px !important;
        font-weight:800 !important;
        line-height:1 !important;
        background:rgba(255,255,255,.24) !important;
        box-shadow:none !important;
    }
    .only-mobile-cart .pt-custom-cart .view-order{
        min-width:0 !important;
        margin:0 !important;
        text-align:center !important;
        font-size:14px !important;
        font-weight:750 !important;
        line-height:1.15 !important;
        white-space:nowrap !important;
        overflow:hidden !important;
        text-overflow:ellipsis !important;
    }
    .only-mobile-cart .pt-custom-cart .total-price{
        margin:0 !important;
        text-align:right !important;
        font-size:15px !important;
        font-weight:800 !important;
        line-height:1 !important;
        white-space:nowrap !important;
    }

    /* Der Nach-oben-Pfeil sitzt oberhalb der Warenkorbkarte und nicht mehr
       halb auf dem orangenen Button. */
    .pt-scroll-top{
        bottom:calc(82px + env(safe-area-inset-bottom)) !important;
        right:16px !important;
    }
}

@media (max-width: 380px){
    .only-mobile-cart{ left:8px !important; right:8px !important; }
    .only-mobile-cart .pt-custom-cart a,
    .only-mobile-cart .pt-custom-cart > span{
        grid-template-columns:30px minmax(0,1fr) auto !important;
        column-gap:7px !important;
        padding-left:9px !important;
        padding-right:9px !important;
    }
    .only-mobile-cart .pt-custom-cart .total-item{
        width:30px !important;
        height:30px !important;
    }
    .only-mobile-cart .pt-custom-cart .view-order{ font-size:13px !important; }
    .only-mobile-cart .pt-custom-cart .total-price{ font-size:14px !important; }
}

/* ============================================================
   30.08.2026 – Mobile Warenkorb: einheitlich abgerundete Karte
   Entfernt den rechteckigen/orangenen Hintergrund des inneren Links.
   Reiner CSS-Fix; Warenkorb-/Preis-/Checkoutlogik unveraendert.
   ============================================================ */
@media (max-width: 767.98px){
    .only-mobile-cart,
    .only-mobile-cart > ul{
        background:transparent !important;
        box-shadow:none !important;
        border:0 !important;
    }
    .only-mobile-cart > ul{
        overflow:visible !important;
    }
    .only-mobile-cart .pt-custom-cart{
        border-radius:18px !important;
        overflow:hidden !important;
        isolation:isolate;
        background:linear-gradient(117deg, rgb(250,67,1) 0%, rgb(240,143,11) 100%) !important;
        box-shadow:0 10px 26px rgba(20,20,43,.20) !important;
    }
    /* style.css gibt dem Link selbst nochmals einen orangenen Hintergrund.
       Auf iOS/Safari bleibt davon optisch ein rechteckiger Layer sichtbar.
       Die Farbe liegt deshalb nur noch auf der aeusseren Karte. */
    .only-mobile-cart .pt-custom-cart > a,
    .only-mobile-cart .pt-custom-cart > span{
        background:transparent !important;
        border:0 !important;
        border-radius:0 !important;
        box-shadow:none !important;
        outline:0 !important;
        overflow:hidden !important;
    }
    .only-mobile-cart .pt-custom-cart > a:hover,
    .only-mobile-cart .pt-custom-cart > a:focus,
    .only-mobile-cart .pt-custom-cart > a:active{
        background:transparent !important;
        color:#fff !important;
    }
    .only-mobile-cart .pt-custom-cart.pt-cart-below-minimum{
        background:#9297a3 !important;
    }
}

/* ============================================================
   30.08.2026 – Mobile Warenkorb: Theme-Hintergrund am Wrapper entfernen
   head.php setzt .only-mobile-cart mit !important auf die Theme-Farbe.
   Dadurch blieb hinter der abgerundeten grauen/orangenen Karte ein
   rechteckiger orangener Block sichtbar. Höhere Spezifität entfernt nur
   diesen Wrapper-Hintergrund; Statusfarbe der eigentlichen Karte bleibt.
   ============================================================ */
@media (max-width: 1199.98px){
    body .only-mobile-cart,
    body.pt-indexpage .only-mobile-cart,
    body .only-mobile-cart > ul{
        background:none !important;
        background-color:transparent !important;
        background-image:none !important;
        border:0 !important;
        box-shadow:none !important;
    }

    body .only-mobile-cart .pt-custom-cart{
        border-radius:18px !important;
        overflow:hidden !important;
        -webkit-mask-image:-webkit-radial-gradient(white, black);
    }
}

/* ============================================================
   30.08.2026 – Artikeltitel sauber neben der kompakten Artikelnummer
   Reiner Darstellungs-Fix: Nummer und Name sind getrennte Flex-Elemente.
   Dadurch nimmt die Nummer nicht mehr unnötig Zeilenbreite weg und Namen
   wie "Vegetarian Pakoras" werden auf Desktop/Tablet/Mobil sauber umgebrochen.
   ============================================================ */
.menu-book .pt-menu-item-title{
    display:flex !important;
    align-items:flex-start;
    gap:6px;
    min-width:0;
    overflow:visible;
    -webkit-line-clamp:unset;
    line-clamp:unset;
    min-height:2.5em;
}
.menu-book .pt-menu-item-title .pt-menu-code-badge{
    flex:0 0 auto;
    margin-right:0;
    margin-top:1px;
}
.menu-book .pt-menu-item-title .pt-menu-item-name{
    display:-webkit-box;
    -webkit-box-orient:vertical;
    -webkit-line-clamp:2;
    line-clamp:2;
    overflow:hidden;
    min-width:0;
    overflow-wrap:anywhere;
}
@media (min-width:1200px){
    .menu-book .pt-menu-item-title .pt-menu-item-name{
        -webkit-line-clamp:3;
        line-clamp:3;
    }
}


/* 30.08.2026 – Scroll-Abstand fuer die fixierte Suche/Kategorienleiste.
   Der Spacer bleibt im Normalzustand unsichtbar, reserviert aber waehrend des
   Fixierens exakt die gemessene Leistenhoehe. So entsteht weder ein permanenter
   weisser Block noch wird die erste Kategorie (z.B. Besteck) von der Leiste
   ueberdeckt. scripts.php schaltet dafuer nur die Aktiv-Klasse. */
#pt-sticky-topbar-spacer{
    display:none !important;
    min-height:0 !important;
    margin:0 !important;
    padding:0 !important;
}
#pt-sticky-topbar-spacer.pt-topbar-spacer-active{
    display:block !important;
}

/* Checkout-Summen werden nach Lieferung/Abholung bewusst erst nach der
   serverseitigen Warenkorb-Neuberechnung ersetzt. Während dieser kurzen Zeit
   alte Liefergebühren nicht als scheinbar gültigen Betrag stehen lassen. */
#load_checkout_total_list.pt-totals-updating{
    position:relative;
    min-height:118px;
    pointer-events:none;
}
#load_checkout_total_list.pt-totals-updating > *{
    opacity:.22;
}
#load_checkout_total_list.pt-totals-updating::after{
    content:'Preise werden aktualisiert…';
    position:absolute;
    inset:0;
    display:flex;
    align-items:center;
    justify-content:center;
    color:#4b4f58;
    font-weight:700;
    background:rgba(255,255,255,.72);
    border-radius:10px;
}

/* 01.09.2026 — Responsive Darstellung, keine Bestell-/Preislogik.
   Titel dürfen wachsen. Bilder belegen nur einen begrenzten Kartenanteil. */
@media screen{
    .menu-book .item .item-left-part{
        flex:1 1 0; width:auto; min-width:0; overflow:visible;
        padding:16px; gap:10px;
    }
    .menu-book .item .item-left-part:only-child{padding-inline-end:56px;}
    .menu-book .item-left-inner{min-width:0;}
    .menu-book .item-left-inner h3.pt-menu-item-title{
        height:auto; min-height:0; margin-bottom:8px; line-height:1.4;
        overflow:visible; -webkit-line-clamp:unset; line-clamp:unset;
    }
    .menu-book .pt-menu-item-title .pt-menu-item-name{
        display:block; overflow:visible; white-space:normal;
        -webkit-line-clamp:unset; line-clamp:unset;
        word-break:normal; overflow-wrap:break-word;
    }
    .menu-book .item-right-part{flex:0 0 28%; min-width:88px; max-width:128px;}
    .menu-book .item-right-inner{height:100%;}
    .menu-book .item-right-inner > span{width:100%; height:100%; min-height:150px;}
    .menu-book .item-price{min-width:0;}
    .menu-book .item-price p{display:block; margin-bottom:0;}
    @media (min-width:768px) and (max-width:1199.98px){
        .menu-book .item .item-left-part{padding:14px;}
        .menu-book .item .item-left-part:only-child{padding-inline-end:54px;}
        .menu-book .item-left-inner h3{font-size:15px;}
        .menu-book .item-right-part{flex-basis:26%; max-width:112px;}
    }

    /* Ruhiges, flaches Kartenband; Adresse/API und Fallback bleiben gleich. */
    .checkout-section .checkout-banner{overflow:hidden; background:#f3f5f6;}
    .checkout-section .checkout-banner img{
        display:block; width:100%; height:112px; max-height:112px;
        object-fit:cover; object-position:center; filter:none;
    }
    @media(max-width:767.98px){
        .checkout-section .checkout-banner img{height:88px; max-height:88px;}
    }
    /* Kompakte, vollständig sichtbare Vorschau. Erst der bewusste Klick
       öffnet die interaktive Google-Karte; Checkout bleibt im bisherigen Tab. */
    .checkout-section .pt-checkout-map-link{
        display:flex; align-items:center; justify-content:center; gap:16px;
        max-width:840px; margin:0 auto; padding:8px 12px;
        color:var(--pt-theme-text,#202125); text-decoration:none;
    }
    .checkout-section .checkout-banner img.pt-checkout-location-map{
        flex:0 1 560px; min-width:0; width:100%; max-width:560px;
        height:auto; max-height:none; object-fit:contain; margin:0;
        border-radius:8px;
    }
    .checkout-section .pt-checkout-map-caption{
        display:inline-flex; align-items:center; justify-content:center; gap:8px;
        flex:0 0 auto; min-height:44px; padding:8px 12px;
        border:1px solid var(--pt-theme-border,#e2e2e6); border-radius:12px;
        background:var(--pt-theme-card-bg,#fff); font-size:12px; line-height:1.4;
    }
    .checkout-section .pt-checkout-map-link:focus-visible{
        outline:2px solid var(--pt-theme-primary,#f46e07); outline-offset:-2px;
    }
    @media(max-width:767.98px){
        .checkout-section .pt-checkout-map-link{flex-direction:column; gap:4px;}
        .checkout-section .checkout-banner img.pt-checkout-location-map{flex:none;}
    }
    .coupon-section #apply-coupon-btn{
        display:inline-flex; align-items:center; justify-content:center;
        line-height:1; padding:0 15px; text-align:center;
    }

    /* Anmeldung: symmetrischer Titel trotz Schließen-Knopf. */
    #loginModal .modal-dialog{
        width:calc(100% - 32px); max-width:420px;
        margin:24px auto; min-height:calc(100% - 48px);
    }
    #loginModal .modal-header{position:relative; justify-content:center; padding:20px 56px;}
    #loginModal .modal-title{width:100%; margin:0; text-align:center;}
    #checkout-form-section > a[href="#loginModal"]{
        display:flex; align-items:center; justify-content:center;
        gap:8px; width:100%; min-height:44px; text-align:center;
    }

    /* Nur Checkout-Zeilen: keine Eingriffe in animierte Menü-/Warenkorbknöpfe. */
    #checkout_cart_details > .item-menu.row{
        display:grid; grid-template-columns:64px minmax(0,1fr) 180px;
        gap:14px; align-items:start; margin:0; padding:16px 0;
        border-bottom:1px solid var(--pt-theme-border,#e2e2e6);
    }
    #checkout_cart_details > .item-menu.row > [class*="col-"]{
        width:100%; max-width:none; min-width:0; padding:0;
    }
    #checkout_cart_details > .item-menu.row > .pt-thumb img{
        width:64px; max-width:100%; height:60px; object-fit:cover;
        border-radius:10px; float:none;
    }
    #checkout_cart_details .cart-item-name{overflow-wrap:break-word; line-height:1.45;}
    #checkout_cart_details > .item-menu.row > .pt-cart-unavail-warning{grid-column:1 / -1;}
    #checkout_cart_details .pt-cart-item-price{display:block; font-weight:600; margin-bottom:8px;}
    #checkout_cart_details .ejLlrUD{
        display:inline-flex; align-items:center; justify-content:center;
        width:auto; max-width:100%; gap:2px; padding:3px;
        border:1px solid var(--pt-theme-border,#e2e2e6);
        border-radius:14px; background:var(--pt-theme-card-bg,#fff);
        box-shadow:0 2px 6px rgba(24,29,37,.04);
    }
    #checkout_cart_details .ejLlrUD > .kHKwux,
    #checkout_cart_details .ejLlrUD > .single-cart-item-remove{
        display:inline-flex; align-items:center; justify-content:center;
        flex:0 0 44px; width:44px !important; height:44px;
        border-radius:10px; background:#f3f4f6; touch-action:manipulation;
    }
    #checkout_cart_details .ejLlrUD > .item-count{
        flex:0 0 28px; min-width:28px; text-align:center; background:transparent;
    }
    #checkout_cart_details .ejLlrUD .jWjpBq{font-variant-numeric:tabular-nums; font-weight:600;}
    #checkout_cart_details .ejLlrUD > .single-cart-item-remove{background:transparent;}
    #checkout_cart_details .single-cart-item-remove svg{padding:0; width:18px; height:18px;}
    @media(max-width:991.98px){
        #checkout_cart_details > .item-menu.row{grid-template-columns:56px minmax(0,1fr); gap:10px 12px;}
        #checkout_cart_details > .item-menu.row > .text-right{
            grid-column:2; display:flex; align-items:center;
            justify-content:space-between; gap:8px; flex-wrap:wrap;
        }
        #checkout_cart_details .pt-cart-item-price{margin-bottom:0;}
    }
}


/* 04.09.2026 – Einzelrestaurant/Plesk: Logo im Kundenkopf proportional und
   formatunabhängig anzeigen. Reiner Darstellungs-Fix; Upload- und Bestelllogik
   bleiben unverändert. */
.pt-header-top .pt-logo > a.pt-brand-logo-link{
    width:92px;
    height:58px;
    line-height:normal;
    display:flex;
    align-items:center;
    justify-content:flex-start;
    overflow:hidden;
    flex:0 0 auto;
}
.pt-header-top .pt-logo > a.pt-brand-logo-link img{
    width:100%;
    height:100%;
    max-width:100%;
    max-height:100%;
    padding:4px 0 !important;
    object-fit:contain;
    object-position:left center;
}
@media(max-width:767.98px){
    .pt-header-top .pt-logo > a.pt-brand-logo-link{width:76px;height:52px;}
}

/* Profilmenü muss über dem geöffneten Warenkorb liegen. Nur Stapelreihenfolge,
   keine Änderung an Warenkorb-, Login- oder Bestelllogik. */
.pt-header-top{z-index:1100;}
.fixed-header{z-index:1100;}
#pt-account-dropdown,
#pt-checkout-account-dropdown{z-index:1200 !important;}

/* 04.09.2026 – Hotfix: Dialoge muessen immer vor dem feststehenden
   Kopfbereich und dessen Schaltflaechen liegen. Der Kopfbereich bleibt
   weiterhin ueber dem festen Warenkorb, damit das Profilmenue bedienbar ist. */
.modal-backdrop{z-index:1290 !important;}
.modal{z-index:1300 !important;}
#wfsServiceModal{z-index:1300 !important;}

/* 04.09.2026 – Hotfix: Auf grossen Bildschirmen belegt der feste Warenkorb
   rechts 440 px. Der Footer wird deshalb exakt auf die verbleibende sichtbare
   Inhaltsbreite begrenzt und Copyright sowie Links darin mittig ausgerichtet. */
@media (min-width:1200px){
    .pt-sitewide-footer,
    .body-section > .pt-sitewide-footer{
        position:relative !important;
        left:auto !important;
        right:auto !important;
        transform:none !important;
        width:calc(100vw - 440px) !important;
        max-width:calc(100vw - 440px) !important;
        margin-left:0 !important;
        margin-right:440px !important;
        box-sizing:border-box !important;
    }
    .pt-sitewide-footer .container-fluid,
    .pt-sitewide-footer .row,
    .pt-sitewide-footer .col-12,
    .pt-sitewide-footer .pt-copy,
    .pt-sitewide-footer .pt-legal-links{
        width:100% !important;
        max-width:100% !important;
        margin-left:auto !important;
        margin-right:auto !important;
        text-align:center !important;
        justify-content:center !important;
        box-sizing:border-box !important;
    }
}
