/**
 * La Piazza Blocks – Design-System
 *
 * Übernommen aus dem Entwurf index.html, aber vollständig auf den Wrapper .lp
 * gescoped. Dadurch bleibt der Reset innerhalb der Widgets und greift weder ins
 * Theme (hello-elementor) noch in andere Elementor-Widgets ein.
 *
 * Breakpoints (deckungsgleich mit den Elementor-Standardwerten):
 *   Mobil   <= 767px
 *   Tablet  768px - 1024px
 *   Desktop >= 1025px
 */

/* ─── Design-Tokens ─────────────────────────────────────────────── */
.lp {
	--burgundy: #7E1306;
	--mustard: #ecca53;
	--sand: #d5be9b;
	--cappuccino: #545353;
	--cream: #FDF1DE;
	--anthracite: #545353;
	--orange: #e36223;

	--font-condensed: "Anton", Impact, "Haettenschweiler", sans-serif;
	--font-display: "Playfair Display", Georgia, serif;
	--font-serif: "Cormorant Garamond", Georgia, serif;
	--font-body: "Inter", system-ui, -apple-system, "Segoe UI", sans-serif;

	--wrap-max: 1800px;

	font-family: var(--font-body);
	color: var(--anthracite);
	line-height: 1.6;
	position: relative;
}

/* Reset – bewusst nur innerhalb von .lp */
.lp, 
.lp *, 
.lp *::before, 
.lp *::after {
	box-sizing: border-box;
}

.lp h1, 
.lp h2, 
.lp h3, 
.lp h4, 
.lp p, 
.lp ul, 
.lp li, 
.lp figure {
	margin: 0;
	padding: 0;
}

.lp ul {
	list-style: none;
}

.lp img {
	display: block;
	max-width: 100%;
	height: auto;
}

.lp a {
	text-decoration: none;
	color: inherit;
}

.lp button {
	cursor: pointer;
	border: none;
	background: none;
	font: inherit;
	color: inherit;
}

/* ─── Abwehr gegen fremde Button-Styles ─────────────────────────
   Elementor bringt über seine „Kit"-Styles globale Vorgaben mit
   (.elementor-kit-NN button { … }). Deren Spezifität (0,1,1) schlägt
   einfache Klassen. Diese Regeln stehen mit zwei Klassen (0,2,0)
   bewusst darüber und stellen das Design der Vorlage wieder her. */
.lp .lp-btn, 
.lp .lp-menu__tab, 
.lp .lp-reservation__submit, 
.lp .lp-scrolltop, 
.lp .lp-nav__burger, 
.lp .lp-nav__close {
	border-radius: 0;
	box-shadow: none;
	text-decoration: none;
	transition: background 0.2s, border-color 0.2s, color 0.2s;
}

.lp .lp-reservation__form input, 
.lp .lp-reservation__form select, 
.lp .lp-reservation__form textarea {
	border-radius: 0;
}

/* Elementor-Sections, die ein La-Piazza-Widget enthalten, brauchen keine
   eigenen Innenabstände – der Block bringt sie selbst mit. */
.elementor-widget-lp-hero .elementor-widget-container, 
.elementor-widget-lp-nav .elementor-widget-container, 
.elementor-widget-lp-topbanner .elementor-widget-container {
	line-height: 0;
}

.lp .lp-wrap, .lp.lp-wrap{
	max-width: var(--wrap-max);
	margin-inline: auto;
	padding-inline: 40px;
	width: 100%;
}

.lp .lp-wrap--narrow, .lp.lp-wrap--narrow{
	max-width: 1100px;
}

.lp .lp-wrap--tight, .lp.lp-wrap--tight{
	max-width: 820px;
}

.lp .lp-wrap--wide, .lp.lp-wrap--wide{
	max-width: 1200px;
}

/* Hinweis, den nur der Elementor-Editor zeigt */
.lp .lp-editor-notice, .lp.lp-editor-notice{
	margin: 0;
	padding: 14px 18px;
	background: #fff4e5;
	border: 1px dashed #d9a441;
	color: #7a5200;
	font-family: var(--font-body);
	font-size: 13px;
	line-height: 1.5;
	text-align: left;
}

/* ─── Animationen ───────────────────────────────────────────────── */
@keyframes lp-fade-up {
	from {
		opacity: 0;
		transform: translateY(24px);
	}
	to {
		opacity: 1;
		transform: translateY(0);
	}
}

@keyframes lp-marquee {
	from {
		transform: translateX(0);
	}
	to {
		transform: translateX(-50%);
	}
}

@keyframes lp-pulse-line {
	0%, 
	100% {
		opacity: 0.4;
	}
	50% {
		opacity: 1;
	}
}

.lp .animate-fade-up {
	animation: lp-fade-up 0.9s cubic-bezier(0.2, 0.7, 0.2, 1) both;
}

.lp .delay-1 {
	animation-delay: 0.15s;
}
.lp .delay-2 {
	animation-delay: 0.3s;
}
.lp .delay-3 {
	animation-delay: 0.45s;
}

/* Einblenden beim Scrollen – Startzustand nur, wenn JS aktiv ist */
.lp .lp-reveal.is-armed, .lp.lp-reveal.is-armed{
	opacity: 0;
	transform: translateY(20px);
	transition: opacity 0.6s ease, transform 0.6s ease;
}

.lp .lp-reveal.is-visible, .lp.lp-reveal.is-visible{
	opacity: 1;
	transform: none;
}

/* Wer Bewegung reduziert haben will, bekommt sie nicht. */
@media (prefers-reduced-motion: reduce) {
	.lp *, 
	.lp *::before, 
	.lp *::after {
		animation-duration: 0.001ms !important;
		animation-iteration-count: 1 !important;
		transition-duration: 0.001ms !important;
		scroll-behavior: auto !important;
	}

	.lp .lp-reveal.is-armed, .lp.lp-reveal.is-armed{
		opacity: 1;
		transform: none;
	}
}

/* ─── Top-Banner ────────────────────────────────────────────────── */
.lp .lp-topbanner, .lp.lp-topbanner{
	background: var(--mustard);
	color: var(--burgundy);
	text-align: center;
	font-size: 0.7rem;
	letter-spacing: 0.2em;
	text-transform: uppercase;
	padding: 8px 16px;
	line-height: 1.5;
	position: relative;
	z-index: 60;

	/* Damit die Zeile auf schmalen Fenstern sauber umbricht statt
	   den Trenner allein in die zweite Zeile zu schieben. */
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: center;
}

/* Alle Teile der Leiste in derselben Schrift und Größe.
   Ohne diese Regel erbt der verlinkte Eintrag – die Telefonnummer –
   Schrift und Größe aus dem Elementor-Kit (Rubik, 17,6px) und stand
   deutlich größer da als der Text daneben. */
.lp .lp-topbanner > *, .lp.lp-topbanner > *{
	font-family: inherit;
	font-size: inherit;
	font-weight: 500;
	letter-spacing: inherit;
	line-height: inherit;
	text-transform: inherit;
}

.lp .lp-topbanner__sep, .lp.lp-topbanner__sep{
	opacity: 0.55;
	margin: 0 16px;
}

.lp .lp-topbanner a, .lp.lp-topbanner a{
	color: inherit;
	border-bottom: 1px solid transparent;
	transition: border-color 0.2s;
}

.lp .lp-topbanner a:hover, .lp.lp-topbanner a:hover, 
.lp .lp-topbanner a:focus-visible, .lp.lp-topbanner a:focus-visible{
	border-bottom-color: currentColor;
}

@media (max-width: 767px) {
	.lp .lp-topbanner, .lp.lp-topbanner{
		font-size: 0.62rem;
		letter-spacing: 0.14em;
		padding: 9px 14px;
	}

	.lp .lp-topbanner__sep, .lp.lp-topbanner__sep{
		margin: 0 8px;
	}

	/* Variante „kompakt": auf schmalen Displays bleibt nur der erste Eintrag. */
	.lp .lp-topbanner--compact > *:not(:first-child), .lp.lp-topbanner--compact > *:not(:first-child){
		display: none;
	}
}

/* ─── Navigation ────────────────────────────────────────────────── */
.lp .lp-nav, .lp.lp-nav{
	line-height: 0;
}

.lp .lp-nav__bar, .lp.lp-nav__bar{
	position: fixed;
	top: var(--lp-nav-offset, 34px);
	left: 0;
	right: 0;
	z-index: 50;
	padding: 20px 40px;
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 24px;
	line-height: 1.6;
	transition: background 0.3s, padding 0.3s, top 0.3s;
}

.admin-bar .lp-nav__bar {
	top: calc(var(--lp-nav-offset, 34px) + 32px);
}

.lp .lp-nav__bar.is-scrolled, .lp.lp-nav__bar.is-scrolled{
	top: 0;
	background: var(--burgundy);
	-webkit-backdrop-filter: blur(12px);
	backdrop-filter: blur(12px);
	padding: 14px 40px;
	border-bottom: 1px solid rgba(253, 241, 222, 0.14);
}

.admin-bar .lp-nav__bar.is-scrolled {
	top: 32px;
}

.lp .lp-nav__logo img, .lp.lp-nav__logo img{
	height: 52px;
	width: auto;
	filter: drop-shadow(0 2px 12px rgba(0, 0, 0, 0.4));
	transition: filter 0.3s;
}

.lp .lp-nav__bar.is-scrolled .lp-nav__logo img, .lp.lp-nav__bar.is-scrolled .lp-nav__logo img{
	filter: none;
}

.lp .lp-nav__links, .lp.lp-nav__links{
	display: flex;
	align-items: center;
	gap: 44px;
}

.lp .lp-nav__links a, .lp.lp-nav__links a{
	font-size: 0.68rem;
	letter-spacing: 0.22em;
	text-transform: uppercase;
	color: #FDF1DE;
	font-weight: 500;
	transition: color 0.2s;
	text-shadow: 0 2px 12px rgba(0, 0, 0, 0.5);
}

.lp .lp-nav__bar.is-scrolled .lp-nav__links a, .lp.lp-nav__bar.is-scrolled .lp-nav__links a{
	color: var(--cream);
	text-shadow: none;
}

.lp .lp-nav__links a:hover, .lp.lp-nav__links a:hover, 
.lp .lp-nav__links a:focus-visible, .lp.lp-nav__links a:focus-visible{
	color: var(--mustard);
}

.lp .lp-nav__bar.is-scrolled .lp-nav__links a:hover, .lp.lp-nav__bar.is-scrolled .lp-nav__links a:hover, 
.lp .lp-nav__bar.is-scrolled .lp-nav__links a:focus-visible, .lp.lp-nav__bar.is-scrolled .lp-nav__links a:focus-visible{
	color: var(--mustard);
}

.lp .lp-nav__links a.lp-nav__cta, .lp.lp-nav__links a.lp-nav__cta, 
.lp .lp-nav__cta, .lp.lp-nav__cta{
	color: var(--mustard);
	font-weight: 600;
	text-shadow: none;
}

.lp .lp-nav__bar.is-scrolled .lp-nav__links a.lp-nav__cta, .lp.lp-nav__bar.is-scrolled .lp-nav__links a.lp-nav__cta, 
.lp .lp-nav__bar.is-scrolled .lp-nav__cta, .lp.lp-nav__bar.is-scrolled .lp-nav__cta{
	color: var(--mustard);
}

.lp .lp-nav__burger, .lp.lp-nav__burger{
	display: none;
	flex-direction: column;
	justify-content: center;
	gap: 5px;
	cursor: pointer;
	/* 44px Tap-Target laut WCAG, optisch bleibt es der schmale Burger */
	width: 44px;
	height: 44px;
	align-items: center;
	background: none;
	border: none;
	padding: 0;
}

.lp .lp-nav__burger span, .lp.lp-nav__burger span{
	display: block;
	width: 24px;
	height: 2px;
	background: #FDF1DE;
	transition: background 0.3s;
}

.lp .lp-nav__bar.is-scrolled .lp-nav__burger span, .lp.lp-nav__bar.is-scrolled .lp-nav__burger span{
	background: var(--cream);
}

.lp .lp-nav__mobile, .lp.lp-nav__mobile{
	display: none;
	position: fixed;
	inset: 0;
	background: var(--cappuccino);
	z-index: 100;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: 40px;
	padding: 80px 24px;
	overflow-y: auto;
}

.lp .lp-nav__mobile.is-open, .lp.lp-nav__mobile.is-open{
	display: flex;
}

.lp .lp-nav__mobile a, .lp.lp-nav__mobile a{
	font-family: var(--font-condensed);
	font-size: clamp(2.5rem, 8vw, 5rem);
	line-height: 1.05;
	text-transform: uppercase;
	color: var(--cream);
	letter-spacing: 0.05em;
	transition: color 0.2s;
	text-align: center;
}

.lp .lp-nav__mobile a:hover, .lp.lp-nav__mobile a:hover, 
.lp .lp-nav__mobile a:focus-visible, .lp.lp-nav__mobile a:focus-visible{
	color: var(--mustard);
}

.lp .lp-nav__mobile a.lp-nav__cta, .lp.lp-nav__mobile a.lp-nav__cta{
	color: var(--mustard);
}

.lp .lp-nav__mobile a.lp-nav__cta:hover, .lp.lp-nav__mobile a.lp-nav__cta:hover{
	color: var(--cream);
}

.lp .lp-nav__close, .lp.lp-nav__close{
	position: absolute;
	top: 18px;
	right: 20px;
	width: 48px;
	height: 48px;
	display: flex;
	align-items: center;
	justify-content: center;
	font-size: 2rem;
	line-height: 1;
	color: var(--cream);
}

/* Wenn das Mobilmenü offen ist, darf der Hintergrund nicht mitscrollen. */
body.lp-menu-open {
	overflow: hidden;
}

@media (max-width: 1024px) {
	.lp .lp-nav__bar, .lp.lp-nav__bar{
		padding: 16px 24px;
	}

	.lp .lp-nav__bar.is-scrolled, .lp.lp-nav__bar.is-scrolled{
		padding: 12px 24px;
	}

	.lp .lp-nav__links, .lp.lp-nav__links{
		display: none;
	}

	.lp .lp-nav__burger, .lp.lp-nav__burger{
		display: flex;
	}
}

@media (max-width: 767px) {
	.lp .lp-nav__bar, .lp.lp-nav__bar{
		padding: 12px 16px;
	}

	.lp .lp-nav__bar.is-scrolled, .lp.lp-nav__bar.is-scrolled{
		padding: 10px 16px;
	}

	.lp .lp-nav__logo img, .lp.lp-nav__logo img{
		height: 42px;
	}
}

/* ─── Hero ──────────────────────────────────────────────────────── */
.lp .lp-hero, .lp.lp-hero{
	position: relative;
	min-height: 100vh;
	display: flex;
	align-items: center;
	justify-content: center;
	overflow: hidden;
}

.lp .lp-hero__bg, .lp.lp-hero__bg{
	position: absolute;
	inset: 0;
	overflow: hidden;
	background-color: var(--cappuccino);
	background-size: cover;
	background-position: center;
	background-repeat: no-repeat;
}

.lp .lp-hero__bg video, .lp.lp-hero__bg video, 
.lp .lp-hero__bg img, .lp.lp-hero__bg img{
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: center;
}

/* Die Abdunklung war im Entwurf auf ein dunkles Video abgestimmt. Über einem
   hellen Foto (Poster bzw. Mobilansicht) wurde der Text unlesbar, deshalb ist
   die Mitte des Verlaufs kräftiger. Optisch bleibt es derselbe Effekt. */
.lp .lp-hero__overlay, .lp.lp-hero__overlay{
	position: absolute;
	inset: 0;
	background: linear-gradient(
		to bottom,
		rgba(20, 8, 4, 0.58) 0%,
		rgba(30, 10, 5, 0.46) 50%,
		rgba(20, 8, 4, 0.82) 100%
	);
}

.lp .lp-hero__content, .lp.lp-hero__content{
	position: relative;
	z-index: 10;
	text-align: center;
	padding: 120px 20px 100px;
	width: 100%;
}

.lp .lp-hero__eyebrow, .lp.lp-hero__eyebrow{
	font-size: 0.65rem;
	letter-spacing: 0.3em;
	text-transform: uppercase;
	color: var(--mustard);
	margin-bottom: 22px;
}

.lp .lp-hero__title, .lp.lp-hero__title{
	font-family: var(--font-condensed);
	font-weight: 400;
	text-transform: uppercase;
	color: #fff;
	line-height: 0.88;
	letter-spacing: 0.01em;
	font-size: clamp(3.8rem, 10vw, 9.5rem);
	text-shadow: 0 2px 30px rgba(0, 0, 0, 0.3);
	margin-bottom: 28px;
}

.lp .lp-hero__sub, .lp.lp-hero__sub{
	font-family: var(--font-serif);
	font-style: italic;
	color: rgba(255, 255, 255, 0.82);
	font-size: clamp(1rem, 2vw, 1.35rem);
	margin-bottom: 48px;
	letter-spacing: 0.06em;
}

.lp .lp-hero__ctas, .lp.lp-hero__ctas{
	display: flex;
	gap: 14px;
	justify-content: center;
	flex-wrap: wrap;
}

.lp .lp-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 12px;
	padding: 15px 40px;
	min-height: 48px;
	/* Schriftart und -größe explizit: sonst greift die Kit-Vorgabe (Rubik). */
	font-family: var(--font-condensed);
	font-weight: 400;
	font-size: 1.1rem;
	line-height: 1.2;
	letter-spacing: 0.15em;
	text-transform: uppercase;
	border: none;
}

.lp .lp-btn--primary {
	background: var(--burgundy);
	color: #fff;
}

.lp .lp-btn--primary:hover, 
.lp .lp-btn--primary:focus-visible {
	background: var(--orange);
	color: #fff;
}

.lp .lp-btn--ghost {
	background: transparent;
	border: 1px solid rgba(255, 255, 255, 0.55);
	color: #fff;
}

.lp .lp-btn--ghost:hover, 
.lp .lp-btn--ghost:focus-visible {
	border-color: #fff;
	background: rgba(255, 255, 255, 0.1);
	color: #fff;
}

.lp .lp-hero__scroll, .lp.lp-hero__scroll{
	position: absolute;
	bottom: 36px;
	left: 50%;
	transform: translateX(-50%);
	color: var(--cream);
	font-size: 0.65rem;
	letter-spacing: 0.3em;
	text-transform: uppercase;
	z-index: 10;
	animation: lp-fade-up 1.2s 0.8s both;
}

.lp .lp-hero__scroll::after, .lp.lp-hero__scroll::after{
	content: "";
	display: block;
	width: 1px;
	height: 40px;
	background: var(--cream);
	margin: 10px auto 0;
	animation: lp-pulse-line 2s infinite;
}

@media (max-width: 767px) {
	.lp .lp-hero, .lp.lp-hero{
		min-height: 88vh;
	}

	.lp .lp-hero__content, .lp.lp-hero__content{
		padding: 110px 20px 90px;
	}

	.lp .lp-hero__sub, .lp.lp-hero__sub{
		margin-bottom: 36px;
	}

	.lp .lp-hero__ctas, .lp.lp-hero__ctas{
		flex-direction: column;
		align-items: stretch;
		max-width: 320px;
		margin-inline: auto;
	}

	.lp .lp-hero__scroll, .lp.lp-hero__scroll{
		display: none;
	}

	/* Video auf dem Handy weglassen – das Poster steht als
	   Hintergrundbild schon hinter dem Element. */
	.lp .lp-hero__bg video[data-lp-desktop-only], .lp.lp-hero__bg video[data-lp-desktop-only]{
		display: none;
	}
}

/* ─── Marquee ───────────────────────────────────────────────────── */
.lp .lp-marquee, .lp.lp-marquee{
	background: var(--burgundy);
	overflow: hidden;
}

.lp .lp-marquee__track, .lp.lp-marquee__track{
	display: flex;
	width: max-content;
	animation: lp-marquee var(--lp-marquee-speed, 25s) linear infinite;
	white-space: nowrap;
}

.lp .lp-marquee:hover .lp-marquee__track, .lp.lp-marquee:hover .lp-marquee__track{
	animation-play-state: paused;
}

.lp .lp-marquee__text, .lp.lp-marquee__text{
	font-family: var(--font-condensed);
	text-transform: uppercase;
	color: var(--cream);
	font-size: clamp(2.5rem, 8vw, 7rem);
	line-height: 1;
	padding: 18px 0;
	opacity: 0.95;
}

.lp .lp-marquee__sep, .lp.lp-marquee__sep{
	color: var(--mustard);
	margin: 0 20px;
}

/* ─── Spezialitäten ─────────────────────────────────────────────── */
.lp .lp-specialties, .lp.lp-specialties{
	background: var(--cappuccino);
	padding: 80px 0;
}

.lp .lp-specialties__grid, .lp.lp-specialties__grid{
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 1px;
	background: rgba(213, 190, 155, 0.2);
}

.lp .lp-specialties__card, .lp.lp-specialties__card{
	background: var(--cappuccino);
	padding: 48px 40px;
}

.lp .lp-specialties__icon, .lp.lp-specialties__icon{
	font-size: 3rem;
	line-height: 1;
	margin-bottom: 24px;
}

.lp .lp-specialties__title, .lp.lp-specialties__title{
	font-family: var(--font-condensed);
	font-weight: 400;
	text-transform: uppercase;
	color: var(--cream);
	font-size: 1.9rem;
	line-height: 1.1;
	margin-bottom: 12px;
}

.lp .lp-specialties__text, .lp.lp-specialties__text{
	font-size: 0.85rem;
	color: rgba(253, 241, 222, 0.8);
	line-height: 1.7;
}

@media (max-width: 1024px) {
	.lp .lp-specialties__grid, .lp.lp-specialties__grid{
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.lp .lp-specialties__card, .lp.lp-specialties__card{
		padding: 40px 28px;
	}
}

@media (max-width: 767px) {
	.lp .lp-specialties__grid, .lp.lp-specialties__grid{
		grid-template-columns: minmax(0, 1fr);
	}

	.lp .lp-specialties__card, .lp.lp-specialties__card{
		padding: 32px 24px;
	}

	.lp .lp-specialties__icon, .lp.lp-specialties__icon{
		margin-bottom: 16px;
	}
}

/* ─── Über uns ──────────────────────────────────────────────────── */
.lp .lp-about, .lp.lp-about{
	display: grid;
	grid-template-columns: 1fr 1fr;
	min-height: 90vh;
}

/* Variante „Bild rechts" – nur ab Tablet aufwärts, darunter stapelt es ohnehin. */
@media (min-width: 1025px) {
	.lp .lp-about--flip .lp-about__media, .lp.lp-about--flip .lp-about__media{
		order: 2;
	}

	.lp .lp-about--flip .lp-about__content, .lp.lp-about--flip .lp-about__content{
		order: 1;
	}
}

.lp .lp-about__media, .lp.lp-about__media{
	position: relative;
	overflow: hidden;
	min-height: 500px;
	background: var(--cappuccino);
}

.lp .lp-about__media img, .lp.lp-about__media img{
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform 8s ease;
}

.lp .lp-about__media:hover img, .lp.lp-about__media:hover img{
	transform: scale(1.04);
}

.lp .lp-about__content, .lp.lp-about__content{
	background: var(--cream);
	display: flex;
	align-items: center;
	padding: 80px;
}

.lp .lp-about__tag, .lp.lp-about__tag{
	font-family: var(--font-serif);
	font-style: italic;
	color: var(--burgundy);
	font-size: 1.5rem;
	margin-bottom: 24px;
}

.lp .lp-about__title, .lp.lp-about__title{
	font-family: var(--font-condensed);
	font-weight: 400;
	text-transform: uppercase;
	color: var(--anthracite);
	font-size: clamp(2.5rem, 5vw, 5rem);
	line-height: 0.9;
}

.lp .lp-about__title em, .lp.lp-about__title em{
	color: var(--burgundy);
	font-style: normal;
}

.lp .lp-about__text, .lp.lp-about__text{
	margin-top: 36px;
	max-width: 480px;
	color: rgba(84, 83, 83, 0.8);
	font-size: 0.95rem;
	line-height: 1.9;
}

.lp .lp-about__text p + p, .lp.lp-about__text p + p{
	margin-top: 16px;
}

.lp .lp-about__stats, .lp.lp-about__stats{
	display: flex;
	flex-wrap: wrap;
	gap: 48px;
	margin-top: 52px;
}

.lp .lp-about__stat-num, .lp.lp-about__stat-num{
	font-family: var(--font-condensed);
	font-size: 3rem;
	color: var(--burgundy);
	line-height: 1;
}

.lp .lp-about__stat-label, .lp.lp-about__stat-label{
	font-size: 0.65rem;
	text-transform: uppercase;
	letter-spacing: 0.2em;
	color: var(--cappuccino);
	margin-top: 4px;
}

@media (max-width: 1024px) {
	.lp .lp-about, .lp.lp-about{
		grid-template-columns: minmax(0, 1fr);
		min-height: 0;
	}

	.lp .lp-about__media, .lp.lp-about__media{
		min-height: 380px;
		order: 2;
	}

	.lp .lp-about__content, .lp.lp-about__content{
		padding: 64px 32px;
		order: 1;
	}

	.lp .lp-about__text, .lp.lp-about__text{
		max-width: none;
	}
}

@media (max-width: 767px) {
	.lp .lp-about__media, .lp.lp-about__media{
		min-height: 300px;
	}

	.lp .lp-about__content, .lp.lp-about__content{
		padding: 48px 20px;
	}

	.lp .lp-about__stats, .lp.lp-about__stats{
		gap: 28px;
	}
}

/* ─── Unsere Küche (Produkte) ───────────────────────────────────── */
.lp .lp-dishes, .lp.lp-dishes{
	padding: 100px 0;
	background: rgba(213, 190, 155, 0.25);
}

.lp .lp-dishes__header, .lp.lp-dishes__header{
	display: flex;
	align-items: flex-end;
	justify-content: space-between;
	flex-wrap: wrap;
	gap: 20px;
	margin-bottom: 60px;
}

.lp .lp-dishes__title, .lp.lp-dishes__title{
	font-family: var(--font-condensed);
	font-weight: 400;
	text-transform: uppercase;
	color: var(--anthracite);
	font-size: clamp(3rem, 7vw, 7rem);
	line-height: 0.9;
}

.lp .lp-link, .lp.lp-link{
	display: inline-block;
	font-size: 0.7rem;
	letter-spacing: 0.2em;
	text-transform: uppercase;
	color: var(--burgundy);
	border-bottom: 1px solid var(--burgundy);
	padding-bottom: 3px;
	transition: color 0.2s, border-color 0.2s;
}

.lp .lp-link:hover, .lp.lp-link:hover, 
.lp .lp-link:focus-visible, .lp.lp-link:focus-visible{
	color: var(--orange);
	border-color: var(--orange);
}

.lp .lp-dishes__grid, .lp.lp-dishes__grid{
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 32px;
}

.lp .lp-dish, .lp.lp-dish{
	display: block;
	color: inherit;
}

.lp .lp-dish__media, .lp.lp-dish__media{
	aspect-ratio: 4 / 5;
	overflow: hidden;
	background: var(--cappuccino);
}

.lp .lp-dish__media img, .lp.lp-dish__media img{
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform 0.7s ease;
}

.lp .lp-dish:hover .lp-dish__media img, .lp.lp-dish:hover .lp-dish__media img, 
.lp .lp-dish:focus-visible .lp-dish__media img, .lp.lp-dish:focus-visible .lp-dish__media img{
	transform: scale(1.06);
}

.lp .lp-dish__info, .lp.lp-dish__info{
	padding-top: 24px;
}

.lp .lp-dish__row, .lp.lp-dish__row{
	display: flex;
	align-items: baseline;
	justify-content: space-between;
	gap: 16px;
	border-bottom: 1px solid rgba(84, 83, 83, 0.15);
	padding-bottom: 12px;
	margin-bottom: 10px;
}

.lp .lp-dish__name, .lp.lp-dish__name{
	font-family: var(--font-condensed);
	font-weight: 400;
	text-transform: uppercase;
	font-size: 1.4rem;
	line-height: 1.15;
	color: var(--anthracite);
}

.lp .lp-dish__price, .lp.lp-dish__price{
	font-family: var(--font-condensed);
	font-size: 1.4rem;
	color: var(--burgundy);
	white-space: nowrap;
}

/* WooCommerce liefert Preise mit eigenem Markup – hier neutralisiert. */
.lp .lp-dish__price .woocommerce-Price-amount, .lp.lp-dish__price .woocommerce-Price-amount, 
.lp .lp-menu__price .woocommerce-Price-amount, .lp.lp-menu__price .woocommerce-Price-amount{
	font-family: inherit;
	font-size: inherit;
	color: inherit;
}

.lp .lp-dish__price del, .lp.lp-dish__price del, 
.lp .lp-menu__price del, .lp.lp-menu__price del{
	opacity: 0.45;
	margin-right: 6px;
	font-size: 0.8em;
}

.lp .lp-dish__price ins, .lp.lp-dish__price ins, 
.lp .lp-menu__price ins, .lp.lp-menu__price ins{
	text-decoration: none;
}

.lp .lp-dish__desc, .lp.lp-dish__desc{
	font-size: 0.82rem;
	color: var(--cappuccino);
	line-height: 1.7;
}

@media (max-width: 1024px) {
	.lp .lp-dishes__grid, .lp.lp-dishes__grid{
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 24px;
	}

	.lp .lp-dishes__header, .lp.lp-dishes__header{
		margin-bottom: 44px;
	}
}

@media (max-width: 767px) {
	.lp .lp-dishes__grid, .lp.lp-dishes__grid{
		grid-template-columns: minmax(0, 1fr);
		gap: 36px;
	}

	.lp .lp-dish__media, .lp.lp-dish__media{
		aspect-ratio: 3 / 2;
	}
}

/* ─── Speisekarte ───────────────────────────────────────────────── */
.lp .lp-menu, .lp.lp-menu{
	padding: 100px 0;
	background: var(--cream);
}

.lp .lp-menu__heading, .lp.lp-menu__heading{
	text-align: center;
	font-family: var(--font-condensed);
	font-weight: 400;
	text-transform: uppercase;
	font-size: clamp(3rem, 9vw, 8rem);
	color: var(--anthracite);
	line-height: 0.85;
	margin-bottom: 60px;
}

.lp .lp-menu__heading em, .lp.lp-menu__heading em{
	color: var(--burgundy);
	font-style: normal;
}

.lp .lp-menu__tabs, .lp.lp-menu__tabs{
	display: flex;
	flex-wrap: wrap;
	gap: 4px;
	justify-content: center;
	margin-bottom: 60px;
}

.lp .lp-menu__tab {
	font-family: var(--font-body);
	font-size: 0.65rem;
	font-weight: 400;
	line-height: 1.2;
	letter-spacing: 0.2em;
	text-transform: uppercase;
	padding: 12px 20px;
	min-height: 44px;
	/* Rahmen und eckige Form gegen die Kit-Vorgabe durchsetzen. */
	border: 1px solid rgba(84, 83, 83, 0.2);
	color: var(--cappuccino);
	background: transparent;
}

.lp .lp-menu__tab:hover, 
.lp .lp-menu__tab:focus-visible, 
.lp .lp-menu__tab[aria-selected="true"] {
	background: var(--burgundy);
	color: var(--cream);
	border-color: var(--burgundy);
}

.lp .lp-menu__panel[hidden], .lp.lp-menu__panel[hidden]{
	display: none;
}

.lp .lp-menu__items, .lp.lp-menu__items{
	display: flex;
	flex-direction: column;
}

.lp .lp-menu__item, .lp.lp-menu__item{
	display: flex;
	align-items: baseline;
	justify-content: space-between;
	gap: 16px;
	padding: 20px 0;
	border-bottom: 1px solid rgba(84, 83, 83, 0.1);
	color: inherit;
}

.lp .lp-menu__item:first-child, .lp.lp-menu__item:first-child{
	border-top: 1px solid rgba(84, 83, 83, 0.1);
}

.lp a.lp-menu__item{
	transition: background 0.2s, padding 0.2s;
}

.lp a.lp-menu__item:hover, 
.lp a.lp-menu__item:focus-visible{
	background: rgba(213, 190, 155, 0.28);
	padding-inline: 12px;
}

.lp .lp-menu__item-body, .lp.lp-menu__item-body{
	flex: 1;
	min-width: 0;
}

.lp .lp-menu__name, .lp.lp-menu__name{
	font-family: var(--font-condensed);
	font-weight: 400;
	text-transform: uppercase;
	font-size: 1.2rem;
	line-height: 1.2;
	color: var(--anthracite);
	margin-bottom: 4px;
}

.lp .lp-menu__desc, .lp.lp-menu__desc{
	font-size: 0.8rem;
	color: var(--cappuccino);
	line-height: 1.6;
}

.lp .lp-menu__price, .lp.lp-menu__price{
	font-family: var(--font-condensed);
	font-size: 1.2rem;
	color: var(--burgundy);
	white-space: nowrap;
}

.lp .lp-menu__empty, .lp.lp-menu__empty{
	padding: 32px 0;
	text-align: center;
	color: var(--cappuccino);
	font-size: 0.85rem;
}

@media (max-width: 767px) {
	.lp .lp-menu__heading, .lp.lp-menu__heading{
		margin-bottom: 40px;
	}

	.lp .lp-menu__tabs, .lp.lp-menu__tabs{
		/* Auf dem Handy als horizontale Leiste statt Umbruch über 4 Zeilen */
		flex-wrap: nowrap;
		overflow-x: auto;
		justify-content: flex-start;
		margin-bottom: 40px;
		padding-bottom: 8px;
		scrollbar-width: thin;
		-webkit-overflow-scrolling: touch;
	}

	.lp .lp-menu__tab, .lp.lp-menu__tab{
		flex: 0 0 auto;
	}

	.lp .lp-menu__item, .lp.lp-menu__item{
		gap: 12px;
	}

	.lp a.lp-menu__item:hover{
		padding-inline: 0;
	}
}

/* ─── Lieferservice ─────────────────────────────────────────────── */
.lp .lp-delivery, .lp.lp-delivery{
	padding: 100px 0;
	background: var(--cream);
}

.lp .lp-delivery__grid, .lp.lp-delivery__grid{
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 80px;
	align-items: center;
}

.lp .lp-eyebrow, .lp.lp-eyebrow{
	font-size: 0.65rem;
	letter-spacing: 0.3em;
	text-transform: uppercase;
	color: var(--burgundy);
	margin-bottom: 16px;
}

.lp .lp-delivery__title, .lp.lp-delivery__title{
	font-family: var(--font-condensed);
	font-weight: 400;
	text-transform: uppercase;
	font-size: clamp(2.2rem, 6vw, 5.5rem);
	line-height: 0.9;
	color: var(--anthracite);
	margin-bottom: 32px;
}

.lp .lp-delivery__lead, .lp.lp-delivery__lead{
	font-size: 0.9rem;
	color: var(--cappuccino);
	line-height: 1.8;
	margin-bottom: 36px;
}

.lp .lp-delivery__facts, .lp.lp-delivery__facts{
	border-top: 1px solid rgba(84, 83, 83, 0.12);
	padding-top: 32px;
	display: flex;
	flex-direction: column;
	gap: 20px;
	margin-bottom: 40px;
}

.lp .lp-delivery__fact, .lp.lp-delivery__fact{
	display: flex;
	align-items: flex-start;
	gap: 16px;
}

.lp .lp-delivery__check, .lp.lp-delivery__check{
	font-family: var(--font-condensed);
	font-size: 1.2rem;
	color: var(--burgundy);
	flex-shrink: 0;
	line-height: 1.4;
}

.lp .lp-delivery__fact-title, .lp.lp-delivery__fact-title{
	font-family: var(--font-condensed);
	font-weight: 400;
	text-transform: uppercase;
	font-size: 1rem;
	color: var(--anthracite);
	letter-spacing: 0.05em;
}

.lp .lp-delivery__fact-text, .lp.lp-delivery__fact-text{
	font-size: 0.82rem;
	color: var(--cappuccino);
	margin-top: 3px;
	line-height: 1.6;
}

.lp .lp-delivery__aside, .lp.lp-delivery__aside{
	background: var(--cappuccino);
	display: flex;
	align-items: center;
	justify-content: center;
	min-height: 400px;
	padding: 40px;
	text-align: center;
}

.lp .lp-delivery__aside-icon, .lp.lp-delivery__aside-icon{
	color: var(--mustard);
	margin: 0 auto 20px;
	display: block;
}

.lp .lp-delivery__aside-title, .lp.lp-delivery__aside-title{
	font-family: var(--font-condensed);
	font-weight: 400;
	text-transform: uppercase;
	font-size: 1.8rem;
	color: var(--cream);
	margin-bottom: 12px;
	line-height: 1.1;
}

.lp .lp-delivery__aside-text, .lp.lp-delivery__aside-text{
	font-size: 0.82rem;
	color: rgba(253, 241, 222, 0.7);
	line-height: 1.7;
	max-width: 280px;
	margin: 0 auto 20px;
}

.lp .lp-delivery__zones, .lp.lp-delivery__zones{
	border-top: 1px solid rgba(253, 241, 222, 0.2);
	padding-top: 20px;
}

.lp .lp-delivery__zone, .lp.lp-delivery__zone{
	font-size: 0.7rem;
	letter-spacing: 0.15em;
	text-transform: uppercase;
	color: var(--mustard);
}

.lp .lp-delivery__zone + .lp-delivery__zone, .lp.lp-delivery__zone + .lp-delivery__zone{
	color: rgba(253, 241, 222, 0.5);
	margin-top: 6px;
}

/* ─── Lieferservice: Knopfreihe ─────────────────────────────────
   Zwei Wege zur Bestellung nebeneinander – telefonisch und online.
   Auf schmalen Fenstern stehen sie untereinander und füllen die
   Breite, damit beide gleich gut zu treffen sind. */
.lp .lp-delivery__actions, .lp.lp-delivery__actions{
	display: flex;
	flex-wrap: wrap;
	gap: 14px;
	margin-top: 40px;
}

/* Etwas schmaler als ein einzeln stehender Knopf: Mit den 40px Innen-
   abstand von `.lp-btn` brauchen die beiden zusammen 713px, die Spalte
   ist aber nur 654px breit – der zweite Knopf rutschte in die nächste
   Zeile, obwohl daneben Platz war. */
.lp .lp-delivery__actions .lp-btn, .lp.lp-delivery__actions .lp-btn{
	padding-inline: 20px;
	letter-spacing: 0.11em;
	white-space: nowrap;
}

/* Zweite Wahl auf hellem Grund: `--ghost` ist für dunkle Flächen
   gedacht (weiße Schrift) und wäre hier nicht zu lesen. */
.lp .lp-delivery__actions .lp-btn--ghost{
	background: transparent;
	border: 1px solid var(--burgundy);
	color: var(--burgundy);
}

.lp .lp-delivery__actions .lp-btn--ghost:hover,
.lp .lp-delivery__actions .lp-btn--ghost:focus-visible{
	background: var(--burgundy);
	border-color: var(--burgundy);
	color: var(--cream);
}

@media (max-width: 520px) {
	.lp .lp-delivery__actions .lp-btn, .lp.lp-delivery__actions .lp-btn{
		flex: 1 1 100%;
		justify-content: center;
	}
}

/* ─── Lieferservice: alle Orte ──────────────────────────────────
   Der Mindestbestellwert hängt am Ort. Statt 27 Zeilen in den
   Fließtext zu setzen, öffnet dieser Link die vollständige Liste. */
.lp .lp-delivery__zones-open, .lp.lp-delivery__zones-open{
	display: inline-block;
	margin-top: 8px;
	padding: 0;
	background: none;
	border: none;
	border-bottom: 1px solid currentColor;
	color: var(--burgundy);
	font-family: inherit;
	font-size: 0.78rem;
	letter-spacing: 0.04em;
	cursor: pointer;
	transition: color 0.2s;
}

.lp .lp-delivery__zones-open:hover, .lp.lp-delivery__zones-open:hover,
.lp .lp-delivery__zones-open:focus-visible, .lp.lp-delivery__zones-open:focus-visible{
	color: var(--orange);
}

.lp .lp-delivery__dialog, .lp.lp-delivery__dialog{
	position: fixed;
	inset: 0;
	z-index: 200;
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 24px;
	background: rgba(84, 83, 83, 0.55);
	-webkit-backdrop-filter: blur(3px);
	backdrop-filter: blur(3px);
}

/* Der Baustein setzt `hidden`; ohne diese Regel gewinnt das
   `display: flex` von oben und das Fenster stünde immer offen. */
.lp .lp-delivery__dialog[hidden], .lp.lp-delivery__dialog[hidden]{
	display: none;
}

.lp .lp-delivery__dialog-box, .lp.lp-delivery__dialog-box{
	position: relative;
	width: min(520px, 100%);
	max-height: min(78vh, 720px);
	overflow-y: auto;
	background: var(--cream);
	color: var(--anthracite);
	padding: 40px 36px 32px;
	box-shadow: 0 24px 60px rgba(84, 83, 83, 0.3);
}

.lp .lp-delivery__dialog-close, .lp.lp-delivery__dialog-close{
	position: absolute;
	top: 10px;
	right: 14px;
	background: none;
	border: none;
	color: var(--burgundy);
	font-size: 1.9rem;
	line-height: 1;
	padding: 4px 8px;
	cursor: pointer;
}

.lp .lp-delivery__dialog-title, .lp.lp-delivery__dialog-title{
	font-family: var(--font-condensed);
	font-size: 1.7rem;
	letter-spacing: 0.02em;
	text-transform: uppercase;
	color: var(--burgundy);
	margin: 0 0 8px;
}

.lp .lp-delivery__dialog-lead, .lp.lp-delivery__dialog-lead{
	font-size: 0.85rem;
	line-height: 1.55;
	margin: 0 0 22px;
}

.lp .lp-delivery__dialog-list, .lp.lp-delivery__dialog-list{
	list-style: none;
	margin: 0;
	padding: 0;
}

.lp .lp-delivery__dialog-row, .lp.lp-delivery__dialog-row{
	display: flex;
	align-items: baseline;
	justify-content: space-between;
	gap: 16px;
	padding: 9px 0;
	border-bottom: 1px solid rgba(84, 83, 83, 0.14);
	font-size: 0.88rem;
}

.lp .lp-delivery__dialog-row:last-child, .lp.lp-delivery__dialog-row:last-child{
	border-bottom: none;
}

.lp .lp-delivery__dialog-ort, .lp.lp-delivery__dialog-ort{
	text-transform: uppercase;
	letter-spacing: 0.08em;
	font-size: 0.78rem;
}

/* Ortsteile, die es in zwei Gemeinden gibt – der Zusatz sagt, welche
   gemeint ist. */
.lp .lp-delivery__dialog-zusatz, .lp.lp-delivery__dialog-zusatz{
	display: inline-block;
	margin-left: 6px;
	padding: 1px 7px;
	background: rgba(126, 19, 6, 0.1);
	color: var(--burgundy);
	font-size: 0.65rem;
	letter-spacing: 0.06em;
}

.lp .lp-delivery__dialog-wert, .lp.lp-delivery__dialog-wert{
	flex: none;
	font-weight: 600;
	color: var(--burgundy);
	white-space: nowrap;
}

@media (max-width: 520px) {
	.lp .lp-delivery__dialog-box, .lp.lp-delivery__dialog-box{
		padding: 34px 22px 24px;
	}
}

@media (max-width: 1024px) {
	.lp .lp-delivery__grid, .lp.lp-delivery__grid{
		grid-template-columns: minmax(0, 1fr);
		gap: 48px;
	}

	.lp .lp-delivery__aside, .lp.lp-delivery__aside{
		min-height: 320px;
	}
}

@media (max-width: 767px) {
	.lp .lp-delivery__facts, .lp.lp-delivery__facts{
		gap: 16px;
		margin-bottom: 32px;
	}

	.lp .lp-delivery__aside, .lp.lp-delivery__aside{
		min-height: 0;
		padding: 36px 24px;
	}

	.lp .lp-btn, .lp.lp-btn{
		padding: 15px 28px;
	}
}

/* ─── Galerie ───────────────────────────────────────────────────── */
.lp .lp-gallery, .lp.lp-gallery{
	background: var(--cappuccino);
}

.lp .lp-gallery__grid, .lp.lp-gallery__grid{
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 0;
}

.lp .lp-gallery__cell, .lp.lp-gallery__cell{
	aspect-ratio: 1;
	overflow: hidden;
}

.lp .lp-gallery__cell img, .lp.lp-gallery__cell img{
	width: 100%;
	height: 100%;
	object-fit: cover;
	filter: grayscale(20%);
	transition: filter 0.5s, transform 0.7s;
}

.lp .lp-gallery__cell:hover img, .lp.lp-gallery__cell:hover img{
	filter: grayscale(0);
	transform: scale(1.06);
}

.lp .lp-gallery__cta, .lp.lp-gallery__cta{
	padding: 80px 24px;
	text-align: center;
}

.lp .lp-gallery__cta-title, .lp.lp-gallery__cta-title{
	font-family: var(--font-condensed);
	font-weight: 400;
	text-transform: uppercase;
	color: var(--cream);
	font-size: clamp(2.5rem, 7vw, 6rem);
	line-height: 0.9;
}

.lp .lp-gallery__cta-link, .lp.lp-gallery__cta-link{
	display: inline-block;
	margin-top: 32px;
	font-size: 0.68rem;
	letter-spacing: 0.3em;
	text-transform: uppercase;
	color: var(--mustard);
	border-bottom: 1px solid var(--mustard);
	padding-bottom: 4px;
	transition: color 0.2s, border-color 0.2s;
}

.lp .lp-gallery__cta-link:hover, .lp.lp-gallery__cta-link:hover, 
.lp .lp-gallery__cta-link:focus-visible, .lp.lp-gallery__cta-link:focus-visible{
	color: var(--cream);
	border-color: var(--cream);
}

@media (max-width: 767px) {
	.lp .lp-gallery__grid, .lp.lp-gallery__grid{
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.lp .lp-gallery__cta, .lp.lp-gallery__cta{
		padding: 56px 20px;
	}
}

/* ─── Nachhaltigkeit ────────────────────────────────────────────── */
.lp .lp-sustain, .lp.lp-sustain{
	padding: 100px 0;
	background: var(--cream);
}

.lp .lp-sustain__header, .lp.lp-sustain__header{
	display: flex;
	align-items: flex-end;
	justify-content: space-between;
	gap: 32px;
	margin-bottom: 80px;
	flex-wrap: wrap;
}

.lp .lp-sustain__headline, .lp.lp-sustain__headline{
	font-family: var(--font-condensed);
	font-weight: 400;
	text-transform: uppercase;
	font-size: clamp(3rem, 7vw, 7rem);
	line-height: 0.9;
	color: var(--anthracite);
}

.lp .lp-sustain__headline em, .lp.lp-sustain__headline em{
	color: var(--burgundy);
	font-style: normal;
}

.lp .lp-sustain__tagline, .lp.lp-sustain__tagline{
	font-family: var(--font-serif);
	font-style: italic;
	font-size: 1.1rem;
	color: var(--cappuccino);
	max-width: 320px;
	line-height: 1.6;
}

.lp .lp-sustain__pillars, .lp.lp-sustain__pillars{
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 1px;
	background: rgba(84, 83, 83, 0.12);
	border: 1px solid rgba(84, 83, 83, 0.12);
}

.lp .lp-sustain__pillar, .lp.lp-sustain__pillar{
	background: var(--cream);
	padding: 48px 40px;
	transition: background 0.2s;
}

.lp .lp-sustain__pillar:hover, .lp.lp-sustain__pillar:hover{
	background: rgba(213, 190, 155, 0.3);
}

.lp .lp-sustain__pillar-icon, .lp.lp-sustain__pillar-icon{
	font-size: 2.5rem;
	line-height: 1;
	margin-bottom: 20px;
}

.lp .lp-sustain__badge, .lp.lp-sustain__badge{
	display: inline-block;
	margin-bottom: 16px;
	background: var(--burgundy);
	color: var(--cream);
	font-size: 0.6rem;
	font-weight: 700;
	letter-spacing: 0.15em;
	text-transform: uppercase;
	padding: 4px 12px;
}

.lp .lp-sustain__pillar-title, .lp.lp-sustain__pillar-title{
	font-family: var(--font-condensed);
	font-weight: 400;
	text-transform: uppercase;
	font-size: 1.8rem;
	line-height: 1.1;
	color: var(--anthracite);
	margin-bottom: 12px;
}

.lp .lp-sustain__pillar-text, .lp.lp-sustain__pillar-text{
	font-size: 0.85rem;
	color: var(--cappuccino);
	line-height: 1.7;
}

.lp .lp-sustain__dietary, .lp.lp-sustain__dietary{
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 1px;
	background: rgba(84, 83, 83, 0.12);
	border: 1px solid rgba(84, 83, 83, 0.12);
	border-top: none;
}

.lp .lp-sustain__diet, .lp.lp-sustain__diet{
	background: var(--cappuccino);
	padding: 36px 40px;
	display: flex;
	align-items: flex-start;
	gap: 20px;
}

.lp .lp-sustain__diet-icon, .lp.lp-sustain__diet-icon{
	font-size: 1.8rem;
	line-height: 1.2;
	flex-shrink: 0;
}

.lp .lp-sustain__diet-title, .lp.lp-sustain__diet-title{
	font-family: var(--font-condensed);
	font-weight: 400;
	text-transform: uppercase;
	font-size: 1.2rem;
	color: var(--cream);
	margin-bottom: 6px;
}

.lp .lp-sustain__diet-text, .lp.lp-sustain__diet-text{
	font-size: 0.82rem;
	color: rgba(253, 241, 222, 0.8);
	line-height: 1.6;
}

@media (max-width: 1024px) {
	.lp .lp-sustain__header, .lp.lp-sustain__header{
		margin-bottom: 52px;
	}

	.lp .lp-sustain__pillars, .lp.lp-sustain__pillars, 
	.lp .lp-sustain__dietary, .lp.lp-sustain__dietary{
		grid-template-columns: minmax(0, 1fr);
	}

	.lp .lp-sustain__tagline, .lp.lp-sustain__tagline{
		max-width: none;
	}
}

@media (max-width: 767px) {
	.lp .lp-sustain__pillar, .lp.lp-sustain__pillar{
		padding: 32px 24px;
	}

	.lp .lp-sustain__diet, .lp.lp-sustain__diet{
		padding: 28px 24px;
		gap: 16px;
	}
}

/* ─── Stimmen ───────────────────────────────────────────────────── */
.lp .lp-testimonials, .lp.lp-testimonials{
	background: var(--sand);
	padding: 100px 0;
	text-align: center;
}

.lp .lp-testimonials__tag, .lp.lp-testimonials__tag{
	font-size: 0.65rem;
	letter-spacing: 0.3em;
	text-transform: uppercase;
	color: var(--cappuccino);
	margin-bottom: 16px;
}

.lp .lp-testimonials__title, .lp.lp-testimonials__title{
	font-family: var(--font-condensed);
	font-weight: 400;
	text-transform: uppercase;
	color: var(--anthracite);
	font-size: clamp(2.5rem, 6vw, 5rem);
	line-height: 0.9;
	margin-bottom: 64px;
}

.lp .lp-testimonials__title em, .lp.lp-testimonials__title em{
	font-style: italic;
	color: var(--burgundy);
}

.lp .lp-testimonials__grid, .lp.lp-testimonials__grid{
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 2px;
	background: rgba(84, 83, 83, 0.15);
}

.lp .lp-testimonial, .lp.lp-testimonial{
	background: var(--sand);
	padding: 48px 40px;
	text-align: left;
}

.lp .lp-testimonial__stars, .lp.lp-testimonial__stars{
	color: var(--mustard);
	font-size: 1.1rem;
	letter-spacing: 3px;
	margin-bottom: 20px;
}

.lp .lp-testimonial__text, .lp.lp-testimonial__text{
	font-family: var(--font-serif);
	font-style: italic;
	font-size: 1.05rem;
	line-height: 1.75;
	color: var(--anthracite);
	margin-bottom: 24px;
}

.lp .lp-testimonial__name, .lp.lp-testimonial__name{
	font-size: 0.68rem;
	letter-spacing: 0.18em;
	text-transform: uppercase;
	color: var(--cappuccino);
}

@media (max-width: 1024px) {
	.lp .lp-testimonials__grid, .lp.lp-testimonials__grid{
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.lp .lp-testimonials__title, .lp.lp-testimonials__title{
		margin-bottom: 44px;
	}
}

@media (max-width: 767px) {
	.lp .lp-testimonials__grid, .lp.lp-testimonials__grid{
		grid-template-columns: minmax(0, 1fr);
	}

	.lp .lp-testimonial, .lp.lp-testimonial{
		padding: 32px 24px;
	}
}

/* ─── Reservierung ──────────────────────────────────────────────── */
.lp .lp-reservation, .lp.lp-reservation{
	padding: 100px 0;
	background: var(--cream);
}

.lp .lp-reservation__title, .lp.lp-reservation__title{
	font-family: var(--font-condensed);
	font-weight: 400;
	text-transform: uppercase;
	color: var(--anthracite);
	font-size: clamp(3rem, 10vw, 9rem);
	line-height: 0.85;
	text-align: center;
}

.lp .lp-reservation__title em, .lp.lp-reservation__title em{
	color: var(--burgundy);
	font-style: normal;
}

.lp .lp-reservation__form, .lp.lp-reservation__form{
	margin-top: 60px;
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 1px;
	background: rgba(84, 83, 83, 0.15);
	border: 1px solid rgba(84, 83, 83, 0.15);
}

.lp .lp-field, .lp.lp-field{
	background: var(--cream);
	display: flex;
	flex-direction: column;
}

.lp .lp-field--full, .lp.lp-field--full{
	grid-column: 1 / -1;
}

.lp .lp-field label, .lp.lp-field label{
	font-size: 0.62rem;
	letter-spacing: 0.2em;
	text-transform: uppercase;
	color: var(--cappuccino);
	padding: 18px 24px 0;
}

.lp .lp-reservation__form input, .lp.lp-reservation__form input, 
.lp .lp-reservation__form select, .lp.lp-reservation__form select, 
.lp .lp-reservation__form textarea, .lp.lp-reservation__form textarea{
	background: var(--cream);
	color: var(--anthracite);
	font-family: var(--font-body);
	font-size: 0.75rem;
	letter-spacing: 0.15em;
	text-transform: uppercase;
	padding: 6px 24px 22px;
	border: none;
	outline: none;
	width: 100%;
	transition: background 0.2s;
	/* 16px verhindert den Auto-Zoom auf iOS beim Fokus */
	-webkit-appearance: none;
	appearance: none;
	border-radius: 0;
}

.lp .lp-reservation__form input::placeholder, .lp.lp-reservation__form input::placeholder, 
.lp .lp-reservation__form textarea::placeholder, .lp.lp-reservation__form textarea::placeholder{
	color: rgba(84, 83, 83, 0.4);
	text-transform: none;
	letter-spacing: 0.04em;
}

.lp .lp-reservation__form input:focus, .lp.lp-reservation__form input:focus, 
.lp .lp-reservation__form select:focus, .lp.lp-reservation__form select:focus, 
.lp .lp-reservation__form textarea:focus, .lp.lp-reservation__form textarea:focus{
	background: rgba(213, 190, 155, 0.3);
}

.lp .lp-reservation__form select, .lp.lp-reservation__form select{
	padding-top: 6px;
}

.lp .lp-reservation__form textarea, .lp.lp-reservation__form textarea{
	grid-column: 1 / -1;
	resize: vertical;
	min-height: 100px;
	padding-top: 22px;
	text-transform: none;
	letter-spacing: 0.04em;
}

.lp .lp-reservation__submit {
	grid-column: 1 / -1;
	background: var(--burgundy);
	color: var(--cream);
	font-family: var(--font-condensed);
	font-weight: 400;
	text-transform: uppercase;
	font-size: 1.5rem;
	line-height: 1.2;
	letter-spacing: 0.08em;
	padding: 28px;
	width: 100%;
	border: none;
}

.lp .lp-reservation__submit:hover, 
.lp .lp-reservation__submit:focus-visible {
	background: var(--orange);
	color: var(--cream);
}

.lp .lp-reservation__submit[disabled] {
	background: var(--anthracite);
	cursor: default;
}

.lp .lp-reservation__note, .lp.lp-reservation__note{
	margin-top: 20px;
	text-align: center;
	font-size: 0.75rem;
	color: var(--cappuccino);
}

.lp .lp-reservation__note a, .lp.lp-reservation__note a{
	color: var(--burgundy);
	border-bottom: 1px solid currentColor;
}

/* Eingebettetes WPForms-Formular an das Design angleichen */
.lp .lp-reservation__embed, .lp.lp-reservation__embed{
	margin-top: 60px;
}

.lp .lp-reservation__embed .wpforms-container, .lp.lp-reservation__embed .wpforms-container{
	margin: 0;
	max-width: none;
}

@media (max-width: 767px) {
	.lp .lp-reservation__form, .lp.lp-reservation__form{
		grid-template-columns: minmax(0, 1fr);
		margin-top: 40px;
	}

	.lp .lp-reservation__form input, .lp.lp-reservation__form input, 
	.lp .lp-reservation__form select, .lp.lp-reservation__form select, 
	.lp .lp-reservation__form textarea, .lp.lp-reservation__form textarea{
		/* iOS zoomt bei < 16px in das Feld hinein */
		font-size: 16px;
	}
}

/* ─── Kontakt ───────────────────────────────────────────────────── */
.lp .lp-contact, .lp.lp-contact{
	padding: 100px 0;
	background: rgba(213, 190, 155, 0.25);
}

.lp .lp-contact__label, .lp.lp-contact__label{
	font-size: 0.65rem;
	letter-spacing: 0.3em;
	text-transform: uppercase;
	color: rgba(84, 83, 83, 0.4);
	margin-bottom: 24px;
}

.lp .lp-contact__grid, .lp.lp-contact__grid{
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 40px;
	border-top: 2px solid var(--anthracite);
	padding-top: 40px;
}

.lp .lp-contact__block-label, .lp.lp-contact__block-label{
	font-size: 0.65rem;
	letter-spacing: 0.2em;
	text-transform: uppercase;
	color: var(--burgundy);
	margin-bottom: 12px;
}

.lp .lp-contact__main, .lp.lp-contact__main{
	font-family: var(--font-condensed);
	font-weight: 400;
	text-transform: uppercase;
	font-size: 1.6rem;
	color: var(--anthracite);
	line-height: 1.2;
	overflow-wrap: anywhere;
}

.lp .lp-contact__main a, .lp.lp-contact__main a, 
.lp .lp-contact__sub a, .lp.lp-contact__sub a{
	transition: color 0.2s;
}

.lp .lp-contact__main a:hover, .lp.lp-contact__main a:hover, 
.lp .lp-contact__sub a:hover, .lp.lp-contact__sub a:hover, 
.lp .lp-contact__main a:focus-visible, .lp.lp-contact__main a:focus-visible, 
.lp .lp-contact__sub a:focus-visible, .lp.lp-contact__sub a:focus-visible{
	color: var(--burgundy);
}

.lp .lp-contact__sub, .lp.lp-contact__sub{
	color: var(--cappuccino);
	margin-top: 6px;
	font-size: 0.87rem;
	overflow-wrap: anywhere;
}

.lp .lp-contact__map, .lp.lp-contact__map{
	margin-top: 60px;
	height: 320px;
	border: 0;
	width: 100%;
	display: block;
	filter: grayscale(30%) contrast(1.05);
}

@media (max-width: 1024px) {
	.lp .lp-contact__grid, .lp.lp-contact__grid{
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 32px;
	}
}

@media (max-width: 767px) {
	.lp .lp-contact__grid, .lp.lp-contact__grid{
		grid-template-columns: minmax(0, 1fr);
		gap: 28px;
	}

	.lp .lp-contact__map, .lp.lp-contact__map{
		margin-top: 40px;
		height: 260px;
	}
}

/* ─── Footer ────────────────────────────────────────────────────── */
.lp .lp-footer, .lp.lp-footer{
	background: var(--cappuccino);
	color: var(--cream);
	overflow: hidden;
}

.lp .lp-footer__big, .lp.lp-footer__big{
	font-family: var(--font-condensed);
	font-weight: 400;
	text-transform: uppercase;
	white-space: nowrap;
	line-height: 0.85;
	font-size: clamp(4rem, 16vw, 16rem);
	padding: 40px 0 30px 24px;
}

.lp .lp-footer__bottom, .lp.lp-footer__bottom{
	max-width: var(--wrap-max);
	margin-inline: auto;
	padding: 24px 40px 40px;
	display: flex;
	align-items: center;
	justify-content: space-between;
	flex-wrap: wrap;
	gap: 16px;
	border-top: 1px solid rgba(253, 241, 222, 0.12);
}

.lp .lp-footer__tagline, .lp.lp-footer__tagline{
	font-family: var(--font-serif);
	font-style: italic;
	color: var(--mustard);
	font-size: 1.1rem;
}

.lp .lp-footer__copy, .lp.lp-footer__copy{
	font-size: 0.65rem;
	letter-spacing: 0.2em;
	text-transform: uppercase;
	color: rgba(253, 241, 222, 0.5);
}

.lp .lp-footer__links, .lp.lp-footer__links{
	display: flex;
	gap: 24px;
	flex-wrap: wrap;
}

.lp .lp-footer__links a, .lp.lp-footer__links a{
	font-size: 0.65rem;
	letter-spacing: 0.15em;
	text-transform: uppercase;
	color: rgba(253, 241, 222, 0.5);
	transition: color 0.2s;
	padding: 6px 0;
}

.lp .lp-footer__links a:hover, .lp.lp-footer__links a:hover, 
.lp .lp-footer__links a:focus-visible, .lp.lp-footer__links a:focus-visible{
	color: var(--cream);
}

@media (max-width: 767px) {
	.lp .lp-footer__big, .lp.lp-footer__big{
		padding: 32px 0 24px 16px;
	}

	.lp .lp-footer__bottom, .lp.lp-footer__bottom{
		padding: 20px;
		justify-content: flex-start;
		gap: 20px;
	}
}

/* ─── Scroll-to-Top ─────────────────────────────────────────────── */
.lp .lp-scrolltop {
	position: fixed;
	bottom: 32px;
	right: 32px;
	width: 48px;
	height: 48px;
	background: var(--burgundy);
	color: var(--cream);
	display: flex;
	align-items: center;
	justify-content: center;
	font-size: 1.2rem;
	line-height: 1;
	padding: 0;
	border: none;
	z-index: 40;
	opacity: 0;
	pointer-events: none;
	transition: opacity 0.3s, background 0.2s;
}

.lp .lp-scrolltop.is-visible {
	opacity: 1;
	pointer-events: auto;
}

.lp .lp-scrolltop:hover, 
.lp .lp-scrolltop:focus-visible {
	background: var(--orange);
	color: var(--cream);
}

@media (max-width: 767px) {
	.lp .lp-scrolltop, .lp.lp-scrolltop{
		bottom: 20px;
		right: 20px;
	}
}

/* ─── Fokus-Sichtbarkeit (Tastaturbedienung) ────────────────────── */
.lp a:focus-visible, 
.lp button:focus-visible, 
.lp input:focus-visible, 
.lp select:focus-visible, 
.lp textarea:focus-visible {
	outline: 2px solid var(--mustard);
	outline-offset: 2px;
}

/* ─── Im Editor: fixierte Elemente nicht über das Panel legen ───── */
.elementor-editor-active .lp-nav__bar, 
.elementor-editor-active .lp-scrolltop {
	position: absolute;
}

/* ─── Speisekarte mit Bildern ───────────────────────────────────
   Nur aktiv, wenn am Block „Bilder anzeigen" eingeschaltet ist. Die
   Startseite listet die Karte weiterhin kompakt ohne Bilder. */
.lp .lp-menu__item--bild {
	gap: 20px;
	align-items: center;
}

.lp .lp-menu__media {
	flex: 0 0 auto;
	width: 110px;
	height: 110px;
	overflow: hidden;
	background: rgba(213, 190, 155, 0.35);
}

.lp .lp-menu__media img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform 0.6s ease;
}

.lp a.lp-menu__item--bild:hover .lp-menu__media img,
.lp a.lp-menu__item--bild:focus-visible .lp-menu__media img {
	transform: scale(1.06);
}

@media (max-width: 767px) {
	.lp .lp-menu__item--bild {
		gap: 14px;
	}

	.lp .lp-menu__media {
		width: 80px;
		height: 80px;
	}
}

/* ─── Untermenü ─────────────────────────────────────────────────
   Auf dem Desktop klappt es unter dem Menüpunkt auf, auf dem Handy
   steht es eingerückt darunter – dort gibt es kein Überfahren mit
   der Maus, auf das man sich verlassen könnte. */
.lp .lp-nav__hat-sub {
	position: relative;
}

.lp .lp-nav__pfeil {
	display: inline-block;
	width: 0;
	height: 0;
	margin-left: 7px;
	vertical-align: middle;
	border-left: 4px solid transparent;
	border-right: 4px solid transparent;
	border-top: 4px solid currentColor;
	opacity: 0.75;
}

.lp .lp-nav__sub {
	position: absolute;
	top: 100%;
	left: 50%;
	transform: translateX(-50%) translateY(6px);
	min-width: 210px;
	padding: 10px 0;
	margin: 0;
	background: var(--cream);
	border: 1px solid rgba(84, 83, 83, 0.12);
	box-shadow: 0 18px 40px rgba(0, 0, 0, 0.16);
	list-style: none;
	opacity: 0;
	visibility: hidden;
	transition: opacity 0.2s ease, transform 0.2s ease, visibility 0.2s;
	z-index: 70;
}

/* Ein kleiner Puffer nach oben – sonst schließt das Menü, sobald die
   Maus die Lücke zwischen Punkt und Klappe überquert. */
.lp .lp-nav__sub::before {
	content: "";
	position: absolute;
	top: -10px;
	left: 0;
	right: 0;
	height: 10px;
}

.lp .lp-nav__hat-sub:hover .lp-nav__sub,
.lp .lp-nav__hat-sub:focus-within .lp-nav__sub {
	opacity: 1;
	visibility: visible;
	transform: translateX(-50%) translateY(0);
}

.lp .lp-nav__sub li {
	margin: 0;
}

/* Die Klappe steht auf hellem Grund und braucht deshalb dunkle
   Schrift – anders als die Leiste darüber, die seit 11.09. weinrot ist
   und ihre Links in Creme führt.

   Der Selektor nennt `.lp-nav__bar` und `.lp-nav__links` mit, weil die
   Klappe in der Linkliste steckt: `.lp .lp-nav__bar--solid
   .lp-nav__links a` ist sonst das spezifischere Gebot und färbt auch
   die Einträge der Klappe cremefarben – Schrift auf gleichfarbigem
   Grund, also unlesbar. */
.lp .lp-nav__bar .lp-nav__links .lp-nav__sub a,
.lp .lp-nav__sub a {
	display: block;
	padding: 9px 20px;
	font-size: 0.68rem;
	letter-spacing: 0.16em;
	text-transform: uppercase;
	color: var(--anthracite);
	text-shadow: none;
	white-space: nowrap;
	transition: background 0.2s, color 0.2s;
}

.lp .lp-nav__bar .lp-nav__links .lp-nav__sub a:hover,
.lp .lp-nav__bar .lp-nav__links .lp-nav__sub a:focus-visible,
.lp .lp-nav__sub a:hover,
.lp .lp-nav__sub a:focus-visible {
	background: rgba(213, 190, 155, 0.35);
	color: var(--burgundy);
}

/* Untermenü im Mobilmenü */
.lp .lp-nav__mobile-sub {
	display: flex;
	flex-direction: column;
	gap: 14px;
	margin-top: -18px;
	padding-bottom: 6px;
	text-align: center;
}

.lp .lp-nav__mobile-sub a {
	font-family: var(--font-body);
	font-size: 0.8rem;
	letter-spacing: 0.18em;
	text-transform: uppercase;
	color: rgba(253, 241, 222, 0.75);
	line-height: 1.3;
}

.lp .lp-nav__mobile-sub a:hover,
.lp .lp-nav__mobile-sub a:focus-visible {
	color: var(--mustard);
}

/* ─── Kopfleiste mit festem Hintergrund ─────────────────────────
   Für Seiten ohne großes Titelbild (Shop, Produkt, Warenkorb, Kasse).
   Ohne diese Variante stünde helle Schrift auf hellem Grund. Optisch
   entspricht sie dem Zustand, den die Leiste sonst beim Scrollen
   annimmt – nur eben von Anfang an. */
.lp .lp-nav__bar--solid {
	/* Bewusst nicht `sticky`: Die Leiste steckt im Kopfbereich des
	   Theme-Builders, und der ist genauso hoch wie sie selbst. `sticky`
	   klebt aber nur innerhalb des Elternelements – die Leiste würde
	   sofort mit hinausscrollen. Klebrig gemacht wird deshalb der
	   Kopfbereich, siehe unten. */
	position: static;
	background: var(--burgundy);
	-webkit-backdrop-filter: blur(12px);
	backdrop-filter: blur(12px);
	border-bottom: 1px solid rgba(253, 241, 222, 0.14);
	padding: 14px 40px;
}

.lp .lp-nav__bar--solid .lp-nav__links a {
	color: var(--cream);
	text-shadow: none;
}

.lp .lp-nav__bar--solid .lp-nav__links a:hover,
.lp .lp-nav__bar--solid .lp-nav__links a:focus-visible {
	color: var(--mustard);
}

/* Nur in der festen Variante – auf der Startseite bleibt die
   Hervorhebung senfgelb. */
.lp .lp-nav__bar--solid .lp-nav__links a.lp-nav__cta {
	color: var(--mustard);
}

.lp .lp-nav__bar--solid .lp-nav__logo img {
	filter: none;
}

.lp .lp-nav__bar--solid .lp-nav__burger span {
	background: var(--cream);
}

@media (max-width: 1024px) {
	.lp .lp-nav__bar--solid {
		padding: 12px 24px;
	}
}

@media (max-width: 767px) {
	.lp .lp-nav__bar--solid {
		padding: 10px 16px;
	}
}

/* ─── Kopfbereich festhalten ────────────────────────────────────
   Auf Shop-Seiten liefert der Theme-Builder den Kopf in einem eigenen
   Bereich aus. Dieser wird klebrig gemacht, damit die Leiste beim
   Scrollen oben stehen bleibt. `:has()` sorgt dafür, dass nur der Kopf
   mit der festen Variante betroffen ist – Seiten mit großem Titelbild
   behalten ihre eigene, mitlaufende Leiste. */
.elementor-location-header:has(.lp-nav__bar--solid) {
	position: sticky;
	top: 0;
	z-index: 100;
}

.admin-bar .elementor-location-header:has(.lp-nav__bar--solid) {
	top: 32px;
}

@media (max-width: 782px) {
	.admin-bar .elementor-location-header:has(.lp-nav__bar--solid) {
		top: 46px;
	}
}

/* ─── Warenkorb-Zähler (Fly-Cart) ───────────────────────────────
   Das Warenkorb-Plugin setzt sein Aussehen über einen eigenen
   Style-Block, der je nach Seite unterschiedlich ausfällt: auf der
   Produktseite rund und burgunder, sonst weiß und fast eckig. Das
   sah aus wie zwei verschiedene Elemente.

   Hier wird es vereinheitlicht – auf allen Seiten gleich, in der
   Hausfarbe. Bewusst **ohne** `.lp`-Voranstellung: Der Zähler hängt
   direkt am `body` und liegt außerhalb der Blöcke. `!important` ist
   nötig, weil die Vorgaben des Plugins aus einem Style-Block im
   Seitenkopf kommen.

   Nebenbei behoben: Die Ziffer war dunkelgrau – auf dunklem Grund
   kaum zu lesen. Sie steht jetzt in Weiß. */
.woofc-count {
	background-color: #7E1306 !important;
	/* Eckig wie alles andere – der Kreis fiel als einziges rundes
	   Element auf der Seite aus dem Rahmen. */
	border-radius: 0 !important;
	box-shadow: 0 6px 18px rgba(0, 0, 0, 0.22) !important;
	font-family: "Inter", system-ui, -apple-system, "Segoe UI", sans-serif !important;
	font-weight: 600 !important;
}

.woofc-count:hover {
	background-color: #e36223 !important;
}

/* Das Warenkorb-Symbol war dunkelgrau und lag damit fast unsichtbar auf
   dem dunklen Grund. */
.woofc-count i,
.woofc-count [class*="woofc-icon"] {
	color: #fff !important;
}

/* Die kleine Blase mit der Anzahl.
   Achtung: Sie erbt die Schriftfarbe des Zählers. Eine Farbangabe an der
   Hülle allein führte hier zu weißer Ziffer auf cremeweißer Blase – also
   zu einer unsichtbaren Zahl. Deshalb wird die Blase eigens gesetzt:
   Senfgelb aus der Hausfarbenpalette mit dunkler Ziffer, das hebt sich
   sowohl vom Burgunder als auch vom Hintergrund der Seite ab. */
.woofc-count .woofc-count-number {
	background-color: #ecca53 !important;
	color: #545353 !important;
	border-radius: 0 !important;
	font-weight: 700 !important;
	box-shadow: 0 2px 6px rgba(0, 0, 0, 0.25) !important;
}

/* Das Warenkorb-Fenster selbst war ebenfalls abgerundet (24 px). Auch
   das gehört zum eckigen Erscheinungsbild – ebenso die Schaltflächen
   und Felder darin. */
/* Zwei Klassen plus Elementname: Die Vorgabe des Plugins ist genauer
   formuliert als eine einzelne Klasse und hätte sonst Vorrang. */
div.woofc-inner.woofc-cart-area,
.woofc-area div.woofc-inner,
.woofc-inner,
.woofc-cart-area {
	border-radius: 0 !important;
}

.woofc-area .woofc-checkout a,
.woofc-area .woofc-continue a,
.woofc-area button,
.woofc-area input,
.woofc-area .button,
/* Mit Elementnamen davor, sonst gewinnt die Vorgabe des Plugins. */
a.woofc-action-checkout,
a.woofc-action-cart,
.woofc-area a.woofc-action-checkout,
.woofc-action-checkout,
.woofc-action-cart,
.woofc-item-inner,
.woofc-item {
	border-radius: 0 !important;
}

/* ─── Luft über dem großen Schriftzug ───────────────────────────
   Die Striche über dem Ö in „Danke schön!" stießen direkt an die
   Oberkante des Fußbereichs. Anton setzt sehr eng, deshalb hier
   etwas mehr Raum nach oben. */
.lp .lp-footer__big {
	padding-top: 64px;
}

@media (max-width: 767px) {
	.lp .lp-footer__big {
		padding-top: 44px;
	}
}

/* ─── Kontaktspalten: gleichrangige Zeilen und Symbole ──────────
   Bei Telefon/E-Mail und bei den sozialen Netzwerken sind beide
   Angaben gleichwertig. Die übliche Abstufung in Groß und Klein
   liest sich dort wie ein Rangunterschied, den es nicht gibt. */
.lp .lp-contact__zeile {
	font-size: 1.15rem;
	line-height: 1.35;
	display: flex;
	align-items: center;
	gap: 9px;
}

.lp .lp-contact__zeile + .lp-contact__zeile {
	margin-top: 8px;
}

.lp .lp-contact__icon {
	flex: 0 0 auto;
	color: var(--burgundy);
	opacity: 0.85;
	transition: opacity 0.2s, color 0.2s;
}

.lp .lp-contact__zeile:hover .lp-contact__icon {
	opacity: 1;
	color: var(--orange);
}

@media (max-width: 767px) {
	.lp .lp-contact__zeile {
		font-size: 1.05rem;
	}
}

/* ─── Formulare von WPForms ─────────────────────────────────────
   Die runden Felder kamen nicht aus eigenem CSS, sondern aus den
   Einstellungen des Formulars: WPForms gibt sie als CSS-Variablen
   am Formular-Container aus (`--wpforms-field-border-radius: 999px`
   und so weiter). Deshalb war die Quelle auch nirgends im Stylesheet
   zu finden.

   Hier werden dieselben Variablen mit den Hauswerten belegt – eckig
   wie alles andere, Hausfarben statt des abweichenden Dunkelrots
   (#540811). Über die offiziellen Variablen, damit kein Wettlauf mit
   `!important` entsteht und spätere WPForms-Updates nichts brechen. */
/* Zum `!important`: WPForms schreibt diese Variablen **inline** an den
   Formular-Container (`style="--wpforms-field-border-radius: 999px"`).
   Gegen ein Inline-Style kommt eine gewöhnliche Regel nicht an – wohl
   aber eine mit Vorrang. Nur deshalb steht es hier. */
.wpforms-container,
.wpforms-container-full {
	--wpforms-field-border-radius: 0px !important;
	--wpforms-field-background-color: #FDF1DE !important;
	--wpforms-field-border-color: rgba(84, 83, 83, 0.22) !important;
	--wpforms-field-text-color: #545353 !important;
	--wpforms-label-color: #545353 !important;
	--wpforms-label-sublabel-color: #545353 !important;
	--wpforms-button-border-radius: 0px !important;
	--wpforms-button-background-color: #7E1306 !important;
	--wpforms-button-text-color: #ffffff !important;
	--wpforms-page-break-color: #7E1306 !important;
}

/* Sicherheitsnetz: Felder, die ihren Radius nicht aus der Variablen
   beziehen, sondern fest gesetzt bekommen. */
.wpforms-container input[type="text"],
.wpforms-container input[type="email"],
.wpforms-container input[type="tel"],
.wpforms-container input[type="number"],
.wpforms-container input[type="date"],
.wpforms-container select,
.wpforms-container textarea {
	border-radius: 0 !important;
}

/* Die Schaltfläche im Stil der übrigen Knöpfe: Anton, versal, eckig. */
.wpforms-container .wpforms-submit,
.wpforms-container button[type="submit"] {
	font-family: "Anton", Impact, "Haettenschweiler", sans-serif !important;
	font-weight: 400;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	border-radius: 0 !important;
	background-color: #7E1306 !important;
	color: #fff !important;
	transition: background-color 0.2s;
}

.wpforms-container .wpforms-submit:hover,
.wpforms-container button[type="submit"]:hover {
	background-color: #e36223 !important;
}

/* Auch die Telefonvorwahl-Auswahl übernimmt die eckige Form. */
.wpforms-container .iti__selected-country,
.wpforms-container .iti--separate-dial-code .iti__selected-flag {
	border-radius: 0 !important;
}

/* ─── Verweis auf die ganze Kategorie ────────────────────────────
   Auf der Startseite zeigt jeder Reiter nur die ersten Gerichte –
   sonst müsste man durch fünfzig Pizzen blättern, bevor es
   weitergeht. Darunter führt ein Verweis zur vollständigen Liste. */
.lp .lp-menu__more,
.lp.lp-menu__more {
	display: inline-block;
	margin-top: 26px;
	padding: 14px 26px;
	border: 1px solid var(--burgundy);
	color: var(--burgundy);
	font-family: var(--font-condensed);
	font-size: 0.92rem;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	text-decoration: none;
	transition: background-color 0.2s ease, color 0.2s ease;
}

.lp .lp-menu__more:hover,
.lp .lp-menu__more:focus-visible {
	background: var(--burgundy);
	color: #fff;
}
