/* ==========================================================================
   ESSLOKAL – Theme-Styles (Frontend + Editor)
   Farben, Schriften und Grundtypografie kommen aus theme.json.
   ========================================================================== */

:root {
	--el-creme: var(--wp--preset--color--creme, #F5F5E8);
	--el-salbei: var(--wp--preset--color--salbei, #D2DAD5);
	--el-oliv: var(--wp--preset--color--oliv, #3E433D);
	--el-terrakotta: var(--wp--preset--color--terrakotta, #A9573F);
	--el-tinte: var(--wp--preset--color--tinte, #2A2A28);
	--el-grau: var(--wp--preset--color--grau, #55594F);
	--el-papier: var(--wp--preset--color--papier, #FFFFFF);
	--el-grotesk: var(--wp--preset--font-family--grotesk);
	--el-mono: var(--wp--preset--font-family--mono);
	--el-rand: clamp(1.25rem, 6vw, 7.5rem);
}

body { -webkit-font-smoothing: antialiased; }
.wp-site-blocks { position: relative; }
.wp-site-blocks > * { margin-block-start: 0; }

:where(a):focus-visible,
:where(button):focus-visible { outline: 2px solid var(--el-terrakotta); outline-offset: 3px; }

.esslokal-leise { color: var(--el-grau); }

/* ---------- Kopf / Logo ---------- */

.esslokal-header {
	position: absolute;
	top: 0;
	right: 0;
	z-index: 20;
}
.esslokal-kopf { padding: 1.5rem 2.25rem; }
.esslokal-logo { margin: 0; }
.esslokal-logo a {
	display: flex;
	flex-direction: column;
	text-decoration: none;
	color: #1E1F1C;
	font-family: var(--el-grotesk);
	font-weight: 500;
	font-size: clamp(1.2rem, 2vw, 1.75rem);
	letter-spacing: 0.26em;
	line-height: 1.12;
	text-transform: uppercase;
}
.esslokal-logo a span:nth-child(2),
.esslokal-logo a span:nth-child(3) { padding-left: 1.26em; }
.esslokal-logo a:hover { color: var(--el-oliv); }

/* ---------- Sektionen ---------- */

.esslokal-main { padding-inline: 0; }
.esslokal-sektion {
	padding-inline: var(--el-rand);
	padding-block: clamp(3rem, 7vw, 6.5rem) 0;
	max-width: none;
	margin-block: 0;
}
.esslokal-sektion.wp-block-columns { gap: clamp(2rem, 6vw, 5rem); }

/* ---------- Hero ---------- */

.esslokal-hero.wp-block-cover {
	padding: 0;
	align-items: stretch;
	min-height: 100svh !important;
	overflow: hidden;
}
.esslokal-hero .wp-block-cover__image-background,
.esslokal-hero .wp-block-cover__video-background { animation: el-drift 40s ease-in-out infinite alternate; }
@keyframes el-drift {
	from { transform: scale(1.04); }
	to { transform: scale(1.16) translate(-2%, 1.5%); }
}
.esslokal-hero video.wp-block-cover__video-background { animation: none; }
.esslokal-hero .wp-block-cover__inner-container {
	position: relative;
	width: 100%;
	min-height: inherit;
	color: var(--el-tinte);
}
.esslokal-hero__kreise.wp-block-buttons {
	position: absolute;
	left: 13%;
	top: 33%;
	display: block;
}
.esslokal-hero__claim.wp-block-heading {
	position: absolute;
	left: 2.5rem;
	bottom: 2.25rem;
	margin: 0;
	padding: 0.5rem 0.9rem;
	font-family: var(--el-mono);
	font-size: 0.9375rem;
	font-weight: 400;
	letter-spacing: 0.04em;
	text-transform: none;
	background: color-mix(in srgb, var(--el-creme) 85%, transparent);
	color: var(--el-tinte);
}

/* ---------- Buttons: Kreis, Kontur, Oui Chef ---------- */

.wp-block-button.is-style-kreis .wp-block-button__link,
.wp-block-button.is-style-kreis-hell .wp-block-button__link {
	display: flex;
	align-items: center;
	justify-content: center;
	width: var(--el-kreis, clamp(13rem, 21vw, 19rem));
	aspect-ratio: 1;
	padding: 1.5rem;
	border-radius: 50%;
	font-family: var(--el-grotesk);
	font-size: var(--el-kreis-schrift, clamp(1.5rem, 2.4vw, 2.15rem));
	letter-spacing: 0.2em;
	line-height: 1.3;
	text-align: left;
	transition: transform 0.35s ease, background-color 0.25s ease;
}
.wp-block-button.is-style-kreis .wp-block-button__link { background: var(--el-oliv); color: var(--el-creme); }
.wp-block-button.is-style-kreis-hell .wp-block-button__link { background: var(--el-creme); color: var(--el-tinte); }
.wp-block-button.is-style-kreis .wp-block-button__link:hover,
.wp-block-button.is-style-kreis-hell .wp-block-button__link:hover { transform: scale(1.04); }
.wp-block-button.is-style-kreis-hell .wp-block-button__link:hover { background: var(--el-papier); color: var(--el-tinte); }

.esslokal-hero__kreise .is-style-kreis-hell .wp-block-button__link { padding: 1rem; letter-spacing: 0.14em; text-align: center; }
.esslokal-hero__kreise .is-style-kreis-hell {
	--el-kreis: clamp(9rem, 12.5vw, 11.25rem);
	--el-kreis-schrift: clamp(0.75rem, 1vw, 0.95rem);
	position: absolute;
	left: 92%;
	top: 82%;
}

.wp-block-button.is-style-kontur .wp-block-button__link,
.wp-block-button.is-style-oui-chef .wp-block-button__link {
	background: transparent;
	color: var(--el-tinte);
	box-shadow: inset 0 0 0 1.5px var(--el-tinte);
}
.wp-block-button.is-style-kontur .wp-block-button__link:hover {
	background: var(--el-tinte);
	color: var(--el-creme);
}
.wp-block-button.is-style-oui-chef .wp-block-button__link { position: relative; }
.wp-block-button.is-style-oui-chef .wp-block-button__link::after {
	content: "Oui, Chef!";
	position: absolute;
	inset: 0;
	display: flex;
	align-items: center;
	justify-content: center;
	opacity: 0;
	color: var(--el-creme);
	transition: opacity 0.15s ease;
}
.wp-block-button.is-style-oui-chef .wp-block-button__link:hover,
.wp-block-button.is-style-oui-chef .wp-block-button__link:focus-visible {
	background: var(--el-tinte);
	color: transparent;
}
.wp-block-button.is-style-oui-chef .wp-block-button__link:hover::after,
.wp-block-button.is-style-oui-chef .wp-block-button__link:focus-visible::after { opacity: 1; }

/* ---------- Info / Kontakt / Presse ---------- */

.esslokal-kontakt h2 { margin-top: 0; }
.esslokal-kontakt__zeiten.wp-block-heading {
	font-family: var(--el-mono);
	font-size: var(--wp--preset--font-size--base);
	font-weight: 600;
	letter-spacing: 0;
	margin-bottom: 0.25rem;
}
.wp-block-table.is-style-ohne-rahmen { margin: 0; }
.wp-block-table.is-style-ohne-rahmen table { width: auto; table-layout: auto; border: 0; }
.wp-block-table.is-style-ohne-rahmen td,
.wp-block-table.is-style-ohne-rahmen th {
	border: 0;
	padding: 0.15rem 1.5rem 0.15rem 0;
	vertical-align: top;
}

.esslokal-presse .wp-block-post-template { gap: 1.1rem; display: flex; flex-direction: column; }
.esslokal-presse .wp-block-post-template > li { margin: 0; }
.esslokal-presse__titel.wp-block-post-title {
	font-family: var(--el-mono);
	font-size: var(--wp--preset--font-size--base);
	font-weight: 400;
	letter-spacing: 0;
	text-transform: none;
	line-height: 1.5;
	margin: 0;
}
.esslokal-presse__titel a { text-decoration: underline; text-underline-offset: 3px; }
.esslokal-presse__untertitel { margin: 0.1rem 0 0; font-size: 0.9375rem; color: var(--el-grau); }
.esslokal-presse__untertitel:empty { display: none; }

/* ---------- Galerie: Karussell ---------- */

.wp-block-gallery.is-style-karussell.has-nested-images {
	display: flex;
	flex-wrap: nowrap;
	gap: 1.5rem;
	overflow-x: auto;
	scroll-snap-type: x mandatory;
	scroll-padding-inline: var(--el-rand);
	padding-inline: var(--el-rand);
	scrollbar-width: none;
	overscroll-behavior-x: contain;
}
.wp-block-gallery.is-style-karussell::-webkit-scrollbar { display: none; }
.wp-block-gallery.is-style-karussell.has-nested-images figure.wp-block-image:not(#individual-image) {
	flex: 0 0 auto;
	width: min(620px, 78vw);
	margin: 0;
	scroll-snap-align: start;
}
.wp-block-gallery.is-style-karussell.has-nested-images figure.wp-block-image img {
	width: 100%;
	height: min(440px, 56vw);
	object-fit: cover;
}
.esslokal-karussell-nav {
	display: flex;
	align-items: center;
	gap: 1rem;
	padding: 1.25rem var(--el-rand) 0;
}
.esslokal-karussell-nav button {
	width: 48px;
	height: 48px;
	border-radius: 50%;
	border: 1.5px solid var(--el-tinte);
	background: transparent;
	color: var(--el-tinte);
	cursor: pointer;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	transition: background 0.2s;
}
.esslokal-karussell-nav button:hover { background: var(--el-tinte); color: var(--el-creme); }

/* ---------- Küchenbon ---------- */

.esslokal-drucker {
	position: relative;
	max-width: 500px;
	padding-inline: 16px;
	margin-bottom: 2.5rem;
}
.esslokal-drucker::before {
	content: "";
	display: block;
	height: 10px;
	margin-inline: -16px;
	border-radius: 5px;
	background: var(--el-tinte);
	position: relative;
	z-index: 2;
}
.wp-block-group.is-style-bon {
	position: relative;
	margin-top: -4px;
	padding: 2rem 1.75rem 2.1rem;
	background: var(--el-papier);
	color: var(--el-tinte);
	font-size: 0.9375rem;
	line-height: 1.55;
	box-shadow: 0 10px 24px rgb(42 42 40 / 0.08);
}
.wp-block-group.is-style-bon > * { margin-block: 0.85rem 0; }
.wp-block-group.is-style-bon > :first-child { margin-top: 0; }
.wp-block-group.is-style-bon::after {
	content: "";
	position: absolute;
	left: 0;
	right: 0;
	bottom: -10px;
	height: 10px;
	background:
		linear-gradient(135deg, var(--el-papier) 5px, transparent 0) 0 0 / 10px 10px repeat-x,
		linear-gradient(-135deg, var(--el-papier) 5px, transparent 0) 0 0 / 10px 10px repeat-x;
}
.bon-kopf { text-align: center; font-size: 0.8125rem; color: var(--el-grau); }
.bon-kopf strong { font-size: 0.9375rem; letter-spacing: 0.3em; color: var(--el-tinte); font-weight: 600; }
.bon-kopf-links { font-size: 0.875rem; text-transform: uppercase; letter-spacing: 0.04em; }
.bon-titel.wp-block-post-title { font-size: clamp(1.4rem, 2.2vw, 1.75rem); letter-spacing: 0.03em; margin: 0.9rem 0 0; }
.bon-titel a { text-decoration: none; }
.bon-text p { margin: 0; }
.bon-summe { font-weight: 600; }
.wp-block-group.bon-inkl { gap: 0.6rem; margin-top: 0.3rem; }
.wp-block-group.bon-inkl > * { margin: 0 !important; }
.wp-block-group.bon-inkl > :first-child { flex: none; white-space: nowrap; }
.wp-block-group.bon-inkl > :last-child { color: var(--el-grau); }
.wp-block-group.is-style-bon-zeile > :first-child { white-space: nowrap; }
.bon-summe > :last-child { font-size: 1.35rem; }
.bon-knopf { margin-top: 1.25rem !important; }
.bon-fuss { text-align: center; font-size: 0.75rem; letter-spacing: 0.2em; color: var(--el-grau); text-transform: uppercase; }

.wp-block-separator.is-style-bon-linie:not(.is-style-wide),
.wp-block-separator.is-style-bon-linie {
	border: 0;
	border-top: 1.5px dashed var(--el-tinte);
	opacity: 0.55;
	width: 100%;
	max-width: none;
	background: none;
}
.wp-block-separator.is-style-bon-doppelt:not(.is-style-wide),
.wp-block-separator.is-style-bon-doppelt {
	border: 0;
	border-top: 4px double var(--el-tinte);
	opacity: 0.8;
	width: 100%;
	max-width: none;
	background: none;
}
.wp-block-separator.is-style-kurz {
	width: 40px;
	border: 0;
	border-top: 1px solid var(--el-tinte);
	margin-inline: auto;
	opacity: 1;
}

.wp-block-group.is-style-bon-zeile {
	display: flex;
	flex-wrap: nowrap;
	align-items: baseline;
	gap: 0.5rem;
	margin-top: 0.3rem;
}
.wp-block-group.is-style-bon-zeile > * { margin: 0 !important; order: 0; flex: 0 1 auto; }
.wp-block-group.is-style-bon-zeile > :last-child { order: 2; text-align: right; }
.wp-block-group.is-style-bon-zeile::after {
	content: "";
	order: 1;
	flex: 1 1 1.5rem;
	min-width: 1.5rem;
	border-bottom: 1.5px dotted #8A8E82;
	transform: translateY(-0.3em);
}
.bon-job.wp-block-post-title {
	font-family: var(--el-mono);
	font-size: inherit;
	font-weight: 600;
	letter-spacing: 0;
	text-transform: none;
}
.bon-job.wp-block-post-title::before { content: "1× "; }

.esslokal-events .wp-block-post-template,
.esslokal-jobs .wp-block-post-template { list-style: none; padding: 0; margin: 0; }
.esslokal-jobs .wp-block-post-template > li { margin: 0; }

/* Druck-Animation: nur mit JS, nur im Frontend, nur ohne „Bewegung reduzieren“. */
@media (prefers-reduced-motion: no-preference) {
	.esslokal-js .esslokal-drucker { overflow: hidden; padding-bottom: 14px; }
	.esslokal-js .esslokal-drucker::before { margin-inline: 0; }
	.esslokal-js .is-style-bon {
		transform: translateY(-101%);
	}
	.esslokal-js .is-style-bon.is-gedruckt {
		animation: el-druck 2.6s steps(26, end) both;
	}
	.esslokal-js .is-style-bon.bon-spaeter.is-gedruckt { animation-delay: 0.6s; }
}
@keyframes el-druck {
	from { transform: translateY(-101%); }
	to { transform: translateY(0); }
}

/* ---------- Sticker ---------- */

p.is-style-sticker {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 6rem;
	height: 6rem;
	padding: 0.75rem;
	border-radius: 46% 54% 42% 58% / 55% 40% 60% 45%;
	background: var(--el-terrakotta);
	color: #fff;
	font-size: 0.8125rem;
	font-weight: 600;
	letter-spacing: 0.1em;
	line-height: 1.15;
	text-align: center;
	text-transform: uppercase;
	transform: rotate(-14deg);
}

/* ---------- Auszeichnungen ---------- */

.esslokal-auszeichnungen.wp-block-group {
	gap: clamp(1.5rem, 4vw, 4rem);
	padding-bottom: clamp(3rem, 7vw, 6rem);
}
.esslokal-auszeichnungen .wp-block-image { margin: 0; }
.esslokal-auszeichnungen .wp-block-image img { width: auto; height: 60px; }
.esslokal-auszeichnungen .auszeichnung--hoch img { height: 110px; }
.esslokal-auszeichnungen .auszeichnung--flach img { height: 40px; }

/* ---------- Fuß ---------- */

.esslokal-footer-part { margin-top: 0; }
.esslokal-fuss.wp-block-group {
	position: relative;
	min-height: 200px;
	padding: 6rem var(--el-rand) 2.5rem;
	isolation: isolate;
}
.esslokal-fuss::before {
	content: "";
	position: absolute;
	inset: 0;
	z-index: -1;
	background: url("../images/marmor.jpg") center 30% / cover no-repeat;
	opacity: 0.55;
}
.esslokal-fuss__links { margin: 0; display: flex; gap: 2rem; flex-wrap: wrap; font-size: 0.9375rem; }
.esslokal-fuss__links a { text-decoration: none; }
.esslokal-fuss__links a:hover { text-decoration: underline; }
.esslokal-social.wp-block-social-links { margin: 0; gap: 0.5rem; }
.esslokal-social .wp-social-link { color: var(--el-tinte); }

/* ---------- Unterseiten ---------- */

.esslokal-seite { padding-top: clamp(7rem, 12vw, 9rem); padding-bottom: clamp(3rem, 7vw, 6rem); padding-inline: var(--el-rand); }
.esslokal-seite__titel { margin-top: 0; font-size: clamp(1.75rem, 4.5vw, 3rem); hyphens: auto; -webkit-hyphens: auto; overflow-wrap: break-word; }
.esslokal-seite .wp-block-post-content > h2 { margin-top: 2.75rem; margin-bottom: 0.75rem; }
.esslokal-seite .wp-block-post-content > .wp-block-table td:first-child { color: var(--el-grau); padding-right: 2rem; }
body:has(.esslokal-seite--salbei) { background: var(--el-salbei); }
.esslokal-seite--salbei { padding-top: 0; padding-inline: 0; }

.esslokal-seitenkopf {
	position: relative;
	min-height: clamp(20rem, 34vw, 30rem);
	margin-bottom: 2rem;
}
.esslokal-seitenkopf__bild.wp-block-image {
	position: absolute;
	left: clamp(4rem, 21vw, 19rem);
	top: clamp(5rem, 9vw, 8.5rem);
	width: clamp(12rem, 22vw, 20rem);
	margin: 0;
}
.wp-block-image.is-style-kreis img { aspect-ratio: 1; object-fit: cover; border-radius: 50%; }
.esslokal-seitenkopf__titel.wp-block-heading {
	position: absolute;
	left: clamp(1rem, 13.5vw, 12.25rem);
	top: clamp(10rem, 16.5vw, 15rem);
	margin: 0;
	font-size: clamp(2.5rem, 4.2vw, 3.75rem);
	letter-spacing: 0.08em;
	line-height: 1.02;
}

.esslokal-speisekarte { text-align: center; padding-inline: clamp(1.25rem, 4vw, 2rem); }
.esslokal-speisekarte__intro { letter-spacing: 0.14em; text-transform: uppercase; font-size: 0.875rem; }
.wp-block-group.is-style-gang {
	position: relative;
	padding: 0.4rem 2.5rem;
	border-radius: 999px;
	text-align: center;
}
.wp-block-group.is-style-gang > * { margin-block: 0.6rem 0; }
.gang-titel.wp-block-heading {
	margin: 0;
	font-family: var(--el-mono);
	font-size: 1.3rem;
	font-weight: 600;
	letter-spacing: 0.1em;
	text-transform: uppercase;
}
.gang-beschreibung { margin: 0.5rem 0 0; }
.gang-oder {
	font-family: Georgia, "Times New Roman", serif;
	font-style: italic;
	font-size: 1.35rem;
	font-weight: 400;
	letter-spacing: 0;
	line-height: 1;
	margin-block: 0.35rem !important;
}
.gang-titel .gang-zusatz,
.preis-zusatz { font-weight: 400; text-transform: none; letter-spacing: 0.04em; }
.esslokal-gaenge { display: flex; flex-direction: column; align-items: center; }
.esslokal-gaenge > * { margin-block: 0 !important; }
.esslokal-gaenge > .is-style-gang + .is-style-gang { margin-top: 2.25rem !important; }

/* Preise im Stil der gedruckten Karte */
.esslokal-preise {
	max-width: 640px;
	margin: clamp(4rem, 8vw, 6rem) auto 3rem !important;
	text-align: left;
}
.esslokal-preise > * { margin-block: 0.4rem 0; }
.preise-titel.wp-block-heading {
	margin: 3rem 0 0.75rem !important;
	font-size: clamp(2rem, 4vw, 2.75rem);
	letter-spacing: 0.04em;
}
.esslokal-preise > .preise-titel:first-child { margin-top: 0 !important; }
.esslokal-preise .is-style-bon-zeile { margin-top: 0.55rem; font-size: 1.0625rem; }
.esslokal-preise .is-style-bon-zeile > :first-child { white-space: normal; }
.esslokal-preise .is-style-bon-zeile strong { text-transform: uppercase; letter-spacing: 0.1em; }
.esslokal-preise .is-style-bon-zeile::after { border-bottom-style: dotted; border-bottom-width: 2px; }
.esslokal-preise .is-style-bon-zeile > :last-child { min-width: 2.5em; }
.preise-extra { margin-top: 1.25rem !important; line-height: 1.9; }
.preise-hinweis { margin-top: 2.5rem !important; text-transform: uppercase; letter-spacing: 0.12em; line-height: 1.7; color: var(--el-grau); }
.preise-hinweis strong { color: var(--el-tinte); }
.preise-fuss { margin-top: 1.5rem !important; font-size: 0.875rem; }
.esslokal-speisekarte > .wp-block-group.is-style-gang,
.esslokal-speisekarte > .wp-block-separator,
.esslokal-speisekarte > .esslokal-gaenge { margin-block-start: 2.5rem; }
.esslokal-speisekarte .wp-block-separator.is-style-kurz { margin-block: 3rem; }
/* Bilder aus älteren Gang-Mustern ausblenden. */
.gang-bild.wp-block-image { display: none; }

.esslokal-preisbox {
	margin-top: 3rem !important;
	padding: 1.75rem 2.5rem;
	border: 1.5px solid var(--el-tinte);
	border-radius: 999px;
	max-width: 560px;
	margin-inline: auto !important;
}
.esslokal-preisbox p { margin: 0.25rem 0; letter-spacing: 0.08em; }

/* ---------- 404 „86“ ---------- */

.esslokal-86 {
	position: relative;
	min-height: 100svh;
	display: flex;
	align-items: center;
	justify-content: center;
	flex-wrap: wrap;
	gap: clamp(2rem, 6vw, 5rem);
	padding: 8rem var(--el-rand) 4rem;
	isolation: isolate;
}
.esslokal-86::before {
	content: "";
	position: absolute;
	inset: 0;
	z-index: -1;
	background: url("../images/marmor.jpg") center / cover no-repeat;
	opacity: 0.6;
}
.esslokal-86__kreis {
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	width: clamp(15rem, 29vw, 26rem);
	aspect-ratio: 1;
	margin: 0;
	border-radius: 50%;
	background: var(--el-oliv);
	color: var(--el-creme);
	font-size: 0.875rem;
	letter-spacing: 0.24em;
	text-transform: uppercase;
}
.esslokal-86__kreis span {
	font-family: var(--el-grotesk);
	font-size: clamp(6rem, 10vw, 9.5rem);
	line-height: 1;
	letter-spacing: 0.04em;
}
.esslokal-86__text {
	max-width: 460px;
	padding: 2rem;
	background: color-mix(in srgb, var(--el-creme) 90%, transparent);
}
.esslokal-86__text h1 { font-size: clamp(1.6rem, 2.4vw, 2rem); text-transform: none; margin-top: 0; }

/* ---------- Abschnitte (Muster „Esslokal – Abschnitte“) ---------- */

.esslokal-abschnitt.wp-block-group {
	padding: clamp(3.5rem, 8vw, 7rem) var(--el-rand);
	margin-block: 0 !important;
}
.esslokal-abschnitt + .esslokal-abschnitt { margin-top: 0 !important; }
.esslokal-abschnitt > .wp-block-heading:first-child { margin-top: 0; }
.esslokal-abschnitt--mitte { text-align: center; }
.esslokal-abschnitt .wp-block-columns { gap: clamp(2rem, 5vw, 4.5rem); }
.esslokal-abschnitt h3.wp-block-heading { font-size: var(--wp--preset--font-size--medium); letter-spacing: 0.06em; text-transform: uppercase; hyphens: auto; -webkit-hyphens: auto; }
.esslokal-intro { font-size: var(--wp--preset--font-size--medium); max-width: 46rem; }
.esslokal-cover .wp-block-cover__inner-container { color: var(--el-creme); }
.esslokal-cover .wp-block-heading { color: var(--el-creme); }
.esslokal-faq { max-width: 760px; }
.wp-block-details summary { cursor: pointer; font-weight: 600; list-style-position: outside; }
.wp-block-details[open] summary { margin-bottom: 0.5rem; }
.wp-block-pullquote { padding: 2.5rem 0; text-align: center; }
.wp-block-pullquote cite { display: block; margin-top: 1rem; font-family: var(--el-mono); font-size: 0.875rem; font-style: normal; letter-spacing: 0.1em; text-transform: uppercase; }
.wp-block-quote cite { font-size: 0.875rem; font-style: normal; color: var(--el-grau); }
.wp-block-button.is-style-outline .wp-block-button__link { background: transparent; color: currentColor; border: 1.5px solid currentColor; }
.esslokal-preise-abschnitt .is-style-bon-zeile strong { text-transform: uppercase; letter-spacing: 0.1em; }
.esslokal-drucker:only-child { margin-inline: auto; }

/* Volle Breite auch innerhalb normaler Seiten */
.esslokal-seite:not(.esslokal-seite--salbei) .wp-block-post-content > .alignfull {
	margin-inline: calc(-1 * var(--el-rand)) !important;
	max-width: none;
	width: auto;
}
.esslokal-seite--frei { padding-top: 0; padding-bottom: 0; }
.esslokal-seite--frei .wp-block-post-content > :first-child:not(.alignfull) { margin-top: clamp(7rem, 12vw, 9rem); }

/* ---------- Schwebender Reservieren-Knopf ---------- */

.esslokal-reservieren-fix {
	position: fixed;
	right: 1.25rem;
	bottom: 1.25rem;
	z-index: 40;
	display: inline-flex;
	align-items: center;
	gap: 0.6rem;
	padding: 0.85rem 1.35rem;
	border-radius: 999px;
	background: var(--el-oliv);
	color: var(--el-creme);
	font-family: var(--el-mono);
	font-size: 0.875rem;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	text-decoration: none;
	box-shadow: 0 8px 24px rgb(30 31 28 / 0.18);
	transition: background-color 0.2s, transform 0.2s;
	white-space: nowrap;
	view-transition-name: esslokal-reservieren;
}
.esslokal-reservieren-fix:hover { background: var(--el-tinte); color: var(--el-creme); transform: translateY(-2px); }
.esslokal-reservieren-fix:focus-visible { outline: 2px solid var(--el-terrakotta); outline-offset: 3px; }
a.is-laedt { cursor: progress; }
a.is-laedt > span::after,
.wp-block-button a.is-laedt::after { content: " …"; }

/* ---------- Mobil ---------- */

@media (max-width: 781px) {
	.esslokal-kopf { padding: 1rem 1.1rem; }
	.esslokal-hero.wp-block-cover { min-height: 88svh !important; }
	.esslokal-hero__kreise.wp-block-buttons { left: 9%; top: 22%; }
	.esslokal-hero__kreise .is-style-kreis-hell { left: 62%; top: 88%; }
	.esslokal-hero__claim.wp-block-heading { left: 1rem; right: 1rem; bottom: 1rem; font-size: 0.8125rem; }
	.esslokal-drucker { max-width: none; }
	.wp-block-group.is-style-bon { padding-inline: 1.25rem; font-size: 0.875rem; }
	.esslokal-kontakt .wp-block-table.is-style-ohne-rahmen td:first-child { white-space: nowrap; padding-right: 1rem; }
	.esslokal-seite .wp-block-post-content > .wp-block-table td { display: block; padding: 0; }
	.esslokal-seite .wp-block-post-content > .wp-block-table td:first-child { padding-top: 0.6rem; font-size: 0.8125rem; }
	.esslokal-auszeichnungen .wp-block-image img { height: 46px; }
	.esslokal-auszeichnungen .auszeichnung--hoch img { height: 84px; }
	.esslokal-auszeichnungen .auszeichnung--flach img { height: 30px; }
	.esslokal-seitenkopf { min-height: 17rem; }
	.esslokal-seitenkopf__bild.wp-block-image { left: 34%; top: 5rem; width: 11rem; }
	.esslokal-seitenkopf__titel.wp-block-heading { left: 0; top: 8.5rem; }
	.wp-block-group.is-style-gang { padding-inline: 0.5rem; }
	.esslokal-preisbox { border-radius: 2rem; padding: 1.5rem; }
	.esslokal-reservieren-fix { right: 50%; transform: translateX(50%); bottom: 1rem; }
	.esslokal-reservieren-fix:hover { transform: translateX(50%); }
	/* Platz für den schwebenden Reservieren-Knopf */
	.esslokal-fuss.wp-block-group { padding-bottom: 6.5rem; }
}

@media (prefers-reduced-motion: reduce) {
	.esslokal-hero .wp-block-cover__image-background { animation: none; }
}

/* ---------- Editor: alles sichtbar und statisch ---------- */

.editor-styles-wrapper .esslokal-header { position: relative; }
.editor-styles-wrapper .is-style-bon { transform: none !important; }
