/* =========================================================
   Inhaltsseiten – Metzgerei Kirchschlager
   Hero-Intro-Bild + Bausteine für Text und Bilder.
   Nach custom.css einbinden.
   ========================================================= */

:root {
	--kg-orange: #f7a82f;          /* Logo-Orange */
	--kg-orange-hover: #ffb940;
	--kg-orange-text: #a8620a;     /* Orange mit genug Kontrast auf Hell */
	--kg-orange-tint: #fff3de;
	--kg-ink: #1d140e;             /* fast schwarz, warm */
	--kg-body: #3a2f28;            /* Fließtext */
	--kg-muted: #6f625a;
	--kg-line: #ece2d2;
	--kg-cream: #faf6ef;
	--kg-dark: 24, 15, 10;         /* Verlauf im Hero (RGB) */
	--kg-font-sans: "Manrope", Arial, sans-serif;
	--kg-font-hand: "Indie Flower", "Segoe Print", cursive;
}


/* ---------------------------------------------------------
   Hero-Intro-Bild
   --------------------------------------------------------- */
.kg-hero {
	position: relative;
	display: flex;
	align-items: flex-end;
	min-height: 440px;
	overflow: hidden;
	background: rgb(var(--kg-dark));
	color: #fff;
}

.kg-hero__img {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: center;
}

/* Verlauf: links dunkel für den Text, unten leicht abgedunkelt */
.kg-hero::after {
	content: "";
	position: absolute;
	inset: 0;
	background:
		linear-gradient(90deg,
			rgba(var(--kg-dark), .90) 0%,
			rgba(var(--kg-dark), .72) 30%,
			rgba(var(--kg-dark), .30) 58%,
			rgba(var(--kg-dark), 0) 78%),
		linear-gradient(0deg,
			rgba(var(--kg-dark), .55) 0%,
			rgba(var(--kg-dark), 0) 40%);
	pointer-events: none;
}

.kg-hero__inner {
	position: relative;
	z-index: 1;
	width: 100%;
	padding-top: 110px;
	padding-bottom: 56px;
}

.kg-hero__content {
	max-width: 600px;
}

/* Brotkrumen */
.kg-breadcrumb ol {
	display: flex;
	flex-wrap: wrap;
	margin: 0 0 22px;
	padding: 0;
	list-style: none;
	font-family: var(--kg-font-sans);
	font-size: 13px;
	line-height: 1.4;
}

.kg-breadcrumb li {
	color: rgba(255, 255, 255, .7);
	line-height: inherit;
}

.kg-breadcrumb li + li::before {
	content: "/";
	margin: 0 9px;
	color: rgba(255, 255, 255, .4);
}

.kg-breadcrumb a {
	color: #fff;
	text-decoration: none;
}

.kg-breadcrumb a:hover,
.kg-breadcrumb a:focus-visible {
	color: var(--kg-orange);
}

.kg-breadcrumb [aria-current="page"] {
	color: var(--kg-orange);
}

.kg-hero__kicker {
	margin: 0 0 8px;
	color: var(--kg-orange);
	font-family: var(--kg-font-sans);
	font-size: 14px;
	font-weight: 700;
	letter-spacing: 2px;
	line-height: 1.4;
	text-transform: uppercase;
}

.kg-hero .kg-hero__title {
	margin: 0 0 16px;
	color: #fff;
	font-family: var(--kg-font-sans);
	font-size: 46px;
	font-weight: 700;
	letter-spacing: -.01em;
	line-height: 1.05;
	text-transform: none;
	text-shadow: 0 2px 14px rgba(0, 0, 0, .35);
}

.kg-hero__subline {
	display: flex;
	align-items: center;
	gap: 14px;
	margin: 0;
	color: #fff;
	font-family: var(--kg-font-sans);
	font-weight: 500;
	font-size: 20px;
	line-height: 1.3;
}

.kg-hero__subline::before {
	content: "";
	flex: none;
	width: 44px;
	height: 2px;
	border-radius: 2px;
	background: var(--kg-orange);
}

@media (max-width: 991px) {
	.kg-hero {
		min-height: 380px;
	}

	.kg-hero::after {
		background:
			linear-gradient(90deg,
				rgba(var(--kg-dark), .88) 0%,
				rgba(var(--kg-dark), .70) 50%,
				rgba(var(--kg-dark), .30) 100%),
			linear-gradient(0deg,
				rgba(var(--kg-dark), .55) 0%,
				rgba(var(--kg-dark), 0) 40%);
	}

	.kg-hero .kg-hero__title {
		font-size: 37px;
	}
}

@media (max-width: 575px) {
	.kg-hero {
		min-height: 340px;
	}

	.kg-hero::after {
		background: linear-gradient(0deg,
			rgba(var(--kg-dark), .92) 0%,
			rgba(var(--kg-dark), .65) 55%,
			rgba(var(--kg-dark), .35) 100%);
	}

	.kg-hero__inner {
		padding-top: 90px;
		padding-bottom: 36px;
	}

	.kg-hero .kg-hero__title {
		font-size: 30px;
	}

	.kg-hero__subline {
		font-size: 17px;
	}
}


/* ---------------------------------------------------------
   Inhaltsbereich – Grundtypografie
   --------------------------------------------------------- */
.kg-content {
	padding: 72px 0 88px;
	background: #fff;
	color: var(--kg-body);
	font-family: var(--kg-font-sans);
	font-size: 16px;
	line-height: 1.7;
}

.kg-content p {
	margin: 0 0 1.1em;
}

.kg-content a:not(.kg-btn) {
	color: var(--kg-orange-text);
	text-decoration: underline;
	text-decoration-thickness: 1px;
	text-underline-offset: 3px;
}

.kg-content a:not(.kg-btn):hover,
.kg-content a:not(.kg-btn):focus-visible {
	color: var(--kg-ink);
}

.kg-content strong {
	color: var(--kg-ink);
	font-weight: 700;
}

/* Überschriften: Theme-Vorgaben (Großbuchstaben, Abstände) zurücksetzen */
.kg-content h2,
.kg-content h3 {
	color: var(--kg-ink);
	letter-spacing: normal;
	text-transform: none;
}

.kg-content h2 {
	margin: 0 0 22px;
	font-family: var(--kg-font-sans);
	font-size: 30px;
	font-weight: 700;
	line-height: 1.15;
	letter-spacing: -.01em;
}

/* kurzer orangefarbener Strich unter H2 (wie auf der Startseite) */
.kg-content h2::after {
	content: "";
	display: block;
	width: 44px;
	height: 3px;
	margin-top: 14px;
	border-radius: 2px;
	background: var(--kg-orange);
}

.kg-content h3 {
	margin: 0 0 10px;
	font-family: var(--kg-font-sans);
	font-size: 19px;
	font-weight: 700;
	line-height: 1.35;
}

.kg-content li {
	line-height: inherit;          /* Theme setzt li auf 24px */
}

/* Handschriftliche Zeile über einer Überschrift */
.kg-content .kg-handline {
	margin: 0 0 4px;
	color: var(--kg-orange-text);
	font-family: var(--kg-font-hand);
	font-size: 26px;
	line-height: 1.1;
	transform: rotate(-2deg);
	transform-origin: left center;
}

/* Abstand zwischen den Inhaltsblöcken */
.kg-block + .kg-block {
	margin-top: 80px;
}

@media (max-width: 767px) {
	.kg-content {
		padding: 48px 0 64px;
	}

	.kg-content h2 {
		font-size: 25px;
	}

	.kg-block + .kg-block {
		margin-top: 56px;
	}
}


/* ---------------------------------------------------------
   Einleitung mit Infobox („Auf einen Blick“)
   --------------------------------------------------------- */
.kg-lead-grid {
	display: grid;
	grid-template-columns: minmax(0, 1fr) 340px;
	gap: 56px;
	align-items: start;
}

.kg-content .kg-lead {
	color: var(--kg-ink);
	font-size: 20px;
	line-height: 1.6;
}

.kg-aside {
	padding: 30px 30px 26px;
	border-top: 4px solid var(--kg-orange);
	border-radius: 0 0 8px 8px;
	background: var(--kg-cream);
}

.kg-content .kg-aside h3 {
	margin-bottom: 16px;
	font-size: 13px;
	letter-spacing: 1.5px;
	text-transform: uppercase;
}

.kg-facts {
	margin: 0;
	padding: 0;
	list-style: none;
}

.kg-facts li {
	padding: 12px 0;
	border-top: 1px solid var(--kg-line);
	font-size: 15px;
	line-height: 1.45;
}

.kg-facts li:first-child {
	padding-top: 0;
	border-top: 0;
}

.kg-facts strong {
	display: block;
	color: var(--kg-ink);
	font-family: var(--kg-font-sans);
	font-size: 21px;
	font-weight: 700;
	line-height: 1.15;
}

@media (max-width: 991px) {
	.kg-lead-grid {
		grid-template-columns: 1fr;
		gap: 36px;
	}
}


/* ---------------------------------------------------------
   Bild + Text nebeneinander
   --------------------------------------------------------- */
.kg-media {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
	gap: 56px;
	align-items: center;
}

/* Bild rechts statt links */
.kg-media--reverse .kg-media__figure {
	order: 2;
}

.kg-figure {
	margin: 0;
}

.kg-figure img {
	display: block;
	width: 100%;
	height: auto;
	border-radius: 8px;
	box-shadow: 0 14px 34px rgba(29, 20, 14, .14);
}

.kg-media .kg-figure img {
	aspect-ratio: 4 / 3;
	object-fit: cover;
}

.kg-figure figcaption {
	margin-top: 12px;
	padding-left: 14px;
	border-left: 2px solid var(--kg-orange);
	color: var(--kg-muted);
	font-size: 14px;
	line-height: 1.5;
}

@media (max-width: 767px) {
	.kg-media {
		grid-template-columns: 1fr;
		gap: 28px;
	}

	/* auf dem Smartphone immer: Bild oben, Text darunter */
	.kg-media--reverse .kg-media__figure {
		order: 0;
	}
}


/* ---------------------------------------------------------
   Zitat / Hervorhebung
   --------------------------------------------------------- */
.kg-quote {
	position: relative;
	max-width: 820px;
	margin: 0 auto;
	padding: 44px 48px 40px;
	border-radius: 8px;
	background: var(--kg-cream);
	text-align: center;
}

/* runder orangefarbener Button mit Anführungszeichen, sitzt auf der Oberkante */
.kg-quote::before {
	content: "";
	position: absolute;
	top: -26px;
	left: 50%;
	width: 52px;
	height: 52px;
	transform: translateX(-50%);
	border: 4px solid #fff;
	border-radius: 50%;
	background: var(--kg-orange) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%231d140e' d='M10 7H6.5A2.5 2.5 0 0 0 4 9.5V13a2 2 0 0 0 2 2h2.2c-.2 1.4-1 2.3-2.4 2.8l.6 1.6C9.3 18.5 10 16.2 10 13.5V7zm10 0h-3.5A2.5 2.5 0 0 0 14 9.5V13a2 2 0 0 0 2 2h2.2c-.2 1.4-1 2.3-2.4 2.8l.6 1.6c2.9-.9 3.6-3.2 3.6-5.9V7z'/%3E%3C/svg%3E") center / 24px no-repeat;
}

.kg-quote blockquote {
	margin: 0;
	padding: 0;
	border: 0;
}

.kg-content .kg-quote blockquote p {
	margin: 0;
	color: var(--kg-ink);
	font-family: var(--kg-font-sans);
	font-weight: 500;
	font-size: 22px;
	line-height: 1.35;
	text-wrap: balance;
}

.kg-quote figcaption {
	margin-top: 18px;
	color: var(--kg-orange-text);
	font-family: var(--kg-font-hand);
	font-size: 24px;
	line-height: 1.2;
}

@media (max-width: 575px) {
	.kg-quote {
		padding: 40px 22px 32px;
	}

	.kg-content .kg-quote blockquote p {
		font-size: 18px;
	}
}


/* ---------------------------------------------------------
   Häkchen-Liste
   --------------------------------------------------------- */
.kg-checklist {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 18px 40px;
	margin: 28px 0 0;
	padding: 0;
	list-style: none;
}

.kg-content .kg-checklist li {
	position: relative;
	padding-left: 38px;
	line-height: 1.55;
}

.kg-checklist li::before {
	content: "";
	position: absolute;
	top: 1px;
	left: 0;
	width: 24px;
	height: 24px;
	border-radius: 50%;
	background: var(--kg-orange) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='none' stroke='%231d140e' stroke-width='2.6' stroke-linecap='round' stroke-linejoin='round' d='M6.5 12.5l3.5 3.5 7.5-8'/%3E%3C/svg%3E") center / 16px no-repeat;
}

.kg-checklist strong {
	display: block;
}

@media (max-width: 767px) {
	.kg-checklist {
		grid-template-columns: 1fr;
	}
}


/* ---------------------------------------------------------
   Bildergalerie (3 Bilder)
   --------------------------------------------------------- */
.kg-gallery {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 24px;
	margin-top: 32px;
}

.kg-gallery .kg-figure img {
	aspect-ratio: 1 / 1;
	object-fit: cover;
}

@media (max-width: 767px) {
	.kg-gallery {
		grid-template-columns: 1fr 1fr;
		gap: 16px;
	}

	/* drittes Bild über die volle Breite */
	.kg-gallery .kg-figure:nth-child(3) {
		grid-column: 1 / -1;
	}

	.kg-gallery .kg-figure:nth-child(3) img {
		aspect-ratio: 16 / 9;
	}
}


/* ---------------------------------------------------------
   Hinweis-Box mit Button
   --------------------------------------------------------- */
.kg-note {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 24px 40px;
	padding: 32px 36px;
	border-left: 4px solid var(--kg-orange);
	border-radius: 0 8px 8px 0;
	background: var(--kg-orange-tint);
}

.kg-content .kg-note h3 {
	margin-bottom: 4px;
	font-family: var(--kg-font-sans);
	font-size: 21px;
	font-weight: 700;
	letter-spacing: -.01em;
}

.kg-content .kg-note p {
	margin: 0;
}

.kg-content .kg-btn {
	display: inline-flex;
	flex: none;
	align-items: center;
	gap: 8px;
	padding: 14px 28px;
	border-radius: 4px;
	background: var(--kg-ink);
	color: #fff;
	font-size: 14px;
	font-weight: 700;
	letter-spacing: 1px;
	line-height: 1.4;
	text-decoration: none;
	text-transform: uppercase;
	transition: background-color .25s ease, color .25s ease;
}

.kg-content .kg-btn:hover,
.kg-content .kg-btn:focus-visible {
	background: var(--kg-orange);
	color: var(--kg-ink);
	text-decoration: none;
}

.kg-content .kg-btn:focus-visible {
	outline: 2px solid var(--kg-ink);
	outline-offset: 3px;
}

.kg-btn__arrow {
	transition: transform .25s ease;
}

.kg-btn:hover .kg-btn__arrow {
	transform: translateX(4px);
}

@media (max-width: 767px) {
	.kg-note {
		flex-direction: column;
		align-items: flex-start;
		padding: 26px 24px;
	}
}

@media (prefers-reduced-motion: reduce) {
	.kg-btn,
	.kg-btn__arrow {
		transition: none;
	}
}


/* =========================================================
   Weitere Bausteine für die Unterseiten
   ========================================================= */

/* Hintergrund-Varianten für weitere Inhaltsabschnitte */
.kg-content--cream {
	background: var(--kg-cream);
}

.kg-content--tight {
	padding-top: 56px;
}

/* Zentrierter Abschnittskopf */
.kg-section-head {
	max-width: 680px;
	margin: 0 auto 40px;
	text-align: center;
}

.kg-content .kg-section-head h2::after {
	margin-left: auto;
	margin-right: auto;
}

.kg-content .kg-section-head .kg-handline {
	transform-origin: center;
}

.kg-section-head p:last-child {
	margin-bottom: 0;
}

/* Textbreite begrenzen für reine Textabschnitte */
.kg-prose {
	max-width: 760px;
}

.kg-prose--wide {
	max-width: none;
}

.kg-prose--center {
	margin-left: auto;
	margin-right: auto;
}

/* Infobox: Link am Ende */
.kg-aside__more {
	margin: 18px 0 0;
	font-size: 15px;
}

/* ---------------------------------------------------------
   Karten mit Icon
   --------------------------------------------------------- */
.kg-cards {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(230px, 1fr));
	gap: 24px;
	margin: 0;
	padding: 0;
	list-style: none;
}

.kg-cards--3 {
	grid-template-columns: repeat(3, minmax(0, 1fr));
}

.kg-card {
	position: relative;
	display: flex;
	flex-direction: column;
	padding: 30px 28px 28px;
	border: 1px solid var(--kg-line);
	border-radius: 8px;
	background: #fff;
	line-height: 1.6;
}

.kg-content--cream .kg-card {
	border-color: transparent;
	box-shadow: 0 10px 28px rgba(29, 20, 14, .06);
}

.kg-card__icon {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 52px;
	height: 52px;
	margin-bottom: 18px;
	border-radius: 50%;
	background: var(--kg-orange-tint);
}

.kg-card__icon svg {
	width: 26px;
	height: 26px;
	fill: var(--kg-orange-text);
}

.kg-card__label {
	display: inline-block;
	align-self: flex-start;
	margin-bottom: 14px;
	padding: 3px 10px;
	border-radius: 4px;
	background: var(--kg-ink);
	color: #fff;
	font-size: 12px;
	font-weight: 700;
	letter-spacing: 1px;
	line-height: 1.5;
	text-transform: uppercase;
}

.kg-content .kg-card h3 {
	margin-bottom: 8px;
}

.kg-card p {
	margin: 0;
	font-size: 15px;
}

.kg-card p + p {
	margin-top: 10px;
}

.kg-card__link {
	margin-top: auto !important;
	padding-top: 16px;
	font-weight: 700;
}

.kg-content .kg-card__link a {
	text-decoration: none;
}

/* ganze Karte klickbar */
.kg-card--link {
	transition: border-color .2s ease, box-shadow .2s ease, transform .2s ease;
}

.kg-card--link:hover {
	border-color: var(--kg-orange);
	box-shadow: 0 12px 30px rgba(29, 20, 14, .1);
	transform: translateY(-2px);
}

.kg-card--link .kg-card__link a::after {
	content: "";
	position: absolute;
	inset: 0;
}

/* Bild oben in der Karte */
.kg-card--media {
	padding: 0;
	overflow: hidden;
}

.kg-card--media img {
	display: block;
	width: 100%;
	height: auto;
	aspect-ratio: 4 / 3;
	object-fit: cover;
}

.kg-card--media .kg-card__body {
	display: flex;
	flex: 1;
	flex-direction: column;
	padding: 24px 26px 26px;
}

@media (max-width: 991px) {
	.kg-cards--3 {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

@media (max-width: 575px) {
	.kg-cards,
	.kg-cards--3 {
		grid-template-columns: 1fr;
	}
}

/* ---------------------------------------------------------
   Ablauf in Schritten
   --------------------------------------------------------- */
.kg-steps {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(210px, 1fr));
	gap: 32px;
	margin: 0;
	padding: 0;
	list-style: none;
	counter-reset: kg-step;
}

.kg-content .kg-steps li {
	position: relative;
	padding-top: 66px;
	line-height: 1.6;
	counter-increment: kg-step;
}

.kg-steps li::before {
	content: counter(kg-step);
	position: absolute;
	top: 0;
	left: 0;
	display: flex;
	align-items: center;
	justify-content: center;
	width: 48px;
	height: 48px;
	border-radius: 50%;
	background: var(--kg-orange);
	color: var(--kg-ink);
	font-family: var(--kg-font-sans);
	font-weight: 700;
	font-size: 20px;
}

/* Verbindungslinie zwischen den Schritten */
.kg-steps li::after {
	content: "";
	position: absolute;
	top: 24px;
	left: 60px;
	right: -20px;
	height: 2px;
	background: repeating-linear-gradient(90deg, var(--kg-orange) 0 6px, transparent 6px 12px);
	opacity: .6;
}

.kg-steps li:last-child::after {
	display: none;
}

.kg-steps h3 {
	margin-bottom: 6px;
}

.kg-steps p {
	margin: 0;
	font-size: 15px;
}

@media (max-width: 767px) {
	.kg-steps li::after {
		display: none;
	}
}

/* ---------------------------------------------------------
   Preisliste (Frühstück)
   --------------------------------------------------------- */
.kg-pricelists {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 24px 56px;
}

.kg-pricelist {
	margin: 0;
}

.kg-content .kg-pricelist h3 {
	margin-bottom: 8px;
	padding-bottom: 10px;
	border-bottom: 2px solid var(--kg-orange);
	font-family: var(--kg-font-sans);
	font-size: 19px;
	font-weight: 700;
	letter-spacing: -.01em;
}

.kg-pricelist ul {
	margin: 0;
	padding: 0;
	list-style: none;
}

.kg-content .kg-pricelist li {
	display: flex;
	align-items: baseline;
	gap: 10px;
	padding: 10px 0;
	border-bottom: 1px dashed var(--kg-line);
	line-height: 1.45;
}

.kg-pricelist__name {
	flex: 1;
	color: var(--kg-ink);
	font-weight: 500;
}

.kg-pricelist__name small {
	display: block;
	color: var(--kg-muted);
	font-size: 13px;
	font-weight: 400;
}

.kg-pricelist__price {
	flex: none;
	color: var(--kg-ink);
	font-weight: 700;
	white-space: nowrap;
}

.kg-pricelist-note {
	margin-top: 24px;
	color: var(--kg-muted);
	font-size: 14px;
}

@media (max-width: 767px) {
	.kg-pricelists {
		grid-template-columns: 1fr;
	}
}

/* ---------------------------------------------------------
   Termine (Seminare)
   --------------------------------------------------------- */
.kg-dates {
	display: grid;
	gap: 16px;
	margin: 0;
	padding: 0;
	list-style: none;
}

.kg-content .kg-date {
	display: grid;
	grid-template-columns: 92px minmax(0, 1fr) auto;
	gap: 24px;
	align-items: center;
	padding: 18px 24px 18px 18px;
	border: 1px solid var(--kg-line);
	border-radius: 8px;
	background: #fff;
	line-height: 1.5;
}

.kg-date__day {
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	height: 92px;
	border-radius: 6px;
	background: var(--kg-ink);
	color: #fff;
	text-align: center;
}

.kg-date__day strong {
	color: var(--kg-orange);
	font-family: var(--kg-font-sans);
	font-size: 30px;
	font-weight: 700;
	line-height: 1;
}

.kg-date__day span {
	margin-top: 4px;
	font-size: 12px;
	font-weight: 700;
	letter-spacing: 1px;
	text-transform: uppercase;
}

.kg-content .kg-date h3 {
	margin-bottom: 4px;
}

.kg-date p {
	margin: 0;
	color: var(--kg-muted);
	font-size: 15px;
}

.kg-date__price {
	color: var(--kg-ink);
	font-family: var(--kg-font-sans);
	font-weight: 700;
	font-size: 21px;
	white-space: nowrap;
}

/* Vergangene Termine (per JS mit .is-past markiert, wie beim Speiseplan) */
.kg-content .kg-date.is-past {
	opacity: .5;
}

.kg-date.is-past .kg-date__day strong {
	color: #fff;
}

.kg-date__status {
	display: inline-block;
	margin-left: 6px;
	font-weight: 700;
}

/* Ausgebuchte Termine (Klasse .is-booked manuell am <li> setzen) */
.kg-date.is-booked .kg-date__price {
	display: flex;
	flex-direction: column;
	align-items: flex-end;
	gap: 8px;
}

.kg-date.is-booked .kg-date__price::after {
	content: "Ausgebucht";
	display: inline-block;
	padding: 8px 18px;
	border-radius: 4px;
	background: var(--kg-orange);
	color: var(--kg-ink);
	font-family: var(--kg-font-sans);
	font-size: 13px;
	font-weight: 700;
	letter-spacing: 1px;
	line-height: 1.4;
	text-transform: uppercase;
	cursor: default;
}

@media (max-width: 575px) {
	.kg-date.is-booked .kg-date__price {
		flex-direction: row;
		flex-wrap: wrap;
		align-items: center;
		gap: 12px;
	}
}

@media (max-width: 575px) {
	.kg-content .kg-date {
		grid-template-columns: 72px minmax(0, 1fr);
		gap: 16px;
	}

	.kg-date__day {
		height: 72px;
	}

	.kg-date__day strong {
		font-size: 23px;
	}

	.kg-date__price {
		grid-column: 2;
		font-size: 18px;
	}
}

/* ---------------------------------------------------------
   Galerie-Varianten
   --------------------------------------------------------- */
.kg-gallery--4 {
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 16px;
}

.kg-gallery--2 {
	grid-template-columns: repeat(2, minmax(0, 1fr));
}

.kg-gallery--2 .kg-figure img {
	aspect-ratio: 4 / 3;
}

.kg-gallery .kg-figure--wide {
	grid-column: span 2;
}

.kg-gallery .kg-figure--wide img {
	aspect-ratio: auto;
	height: 100%;
}

@media (max-width: 991px) {
	.kg-gallery--4 {
		grid-template-columns: repeat(3, minmax(0, 1fr));
	}
}

@media (max-width: 767px) {
	.kg-gallery--4,
	.kg-gallery--2 {
		grid-template-columns: 1fr 1fr;
	}

	.kg-gallery--4 .kg-figure:nth-child(3),
	.kg-gallery--2 .kg-figure:nth-child(3) {
		grid-column: auto;
	}

	.kg-gallery--4 .kg-figure:nth-child(3) img,
	.kg-gallery--2 .kg-figure:nth-child(3) img {
		aspect-ratio: 1 / 1;
	}

	.kg-gallery .kg-figure--wide {
		grid-column: 1 / -1;
	}
}

/* ---------------------------------------------------------
   Galerie mit Lightbox (nur Desktop, ab 768px)
   Mobil: einspaltig, ohne Lightbox
   --------------------------------------------------------- */
@media (min-width: 768px) {
	.kg-gallery--lightbox img {
		cursor: zoom-in;
		transition: transform .25s ease, box-shadow .25s ease;
	}

	.kg-gallery--lightbox img:hover,
	.kg-gallery--lightbox img:focus-visible {
		transform: scale(1.03);
		box-shadow: 0 18px 40px rgba(29, 20, 14, .22);
	}

	.kg-gallery--lightbox img:focus-visible {
		outline: 3px solid var(--kg-orange);
		outline-offset: 3px;
	}
}

@media (max-width: 767px) {
	.kg-gallery--lightbox {
		grid-template-columns: 1fr;
	}
}

/* Lightbox (Magnific Popup) im Stil der Seite */
.mfp-bg.kg-mfp {
	background: rgb(var(--kg-dark));
	opacity: .92;
}

.kg-mfp img.mfp-img {
	padding: 40px 0;
	border-radius: 8px;
}

.kg-mfp .mfp-counter {
	color: #fff;
	font-family: var(--kg-font-sans);
	font-size: 14px;
}

.kg-mfp .mfp-close {
	opacity: .85;
}

.kg-mfp .mfp-close:hover,
.kg-mfp .mfp-close:focus {
	color: var(--kg-orange);
	opacity: 1;
}

/* sanftes Ein-/Ausblenden */
.mfp-bg.kg-mfp,
.mfp-wrap.kg-mfp .mfp-content {
	transition: opacity .2s ease-out;
}

.mfp-bg.kg-mfp:not(.mfp-ready),
.mfp-wrap.kg-mfp:not(.mfp-ready) .mfp-content,
.mfp-bg.kg-mfp.mfp-removing,
.mfp-wrap.kg-mfp.mfp-removing .mfp-content {
	opacity: 0;
}

@media (prefers-reduced-motion: reduce) {
	.kg-gallery--lightbox img,
	.mfp-bg.kg-mfp,
	.mfp-wrap.kg-mfp .mfp-content {
		transition: none;
	}
}

/* ---------------------------------------------------------
   Schlagwörter
   --------------------------------------------------------- */
.kg-tags {
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
	margin: 24px 0 0;
	padding: 0;
	list-style: none;
}

.kg-content .kg-tags li {
	padding: 7px 16px;
	border: 1px solid var(--kg-line);
	border-radius: 999px;
	background: #fff;
	color: var(--kg-ink);
	font-size: 15px;
	font-weight: 500;
	line-height: 1.4;
}

/* ---------------------------------------------------------
   Angebots-Liste (ruhige Liste mit Häkchen und Trennlinien)
   --------------------------------------------------------- */
.kg-menu-list {
	margin: 28px 0 0;
	padding: 0;
	list-style: none;
	border-top: 1px solid var(--kg-line);
}

.kg-content .kg-menu-list li {
	position: relative;
	margin: 0;
	padding: 12px 0 12px 32px;
	border-bottom: 1px solid var(--kg-line);
	color: var(--kg-ink);
	font-size: 16px;
	font-weight: 500;
	line-height: 1.45;
}

/* Häkchen im Logo-Orange */
.kg-content .kg-menu-list li::before {
	content: "";
	position: absolute;
	top: 50%;
	left: 4px;
	width: 7px;
	height: 13px;
	margin-top: -9px;
	border: solid var(--kg-orange);
	border-width: 0 2.5px 2.5px 0;
	transform: rotate(45deg);
}

@media (max-width: 575px) {
	.kg-content .kg-menu-list li {
		padding: 11px 0 11px 30px;
		font-size: 15px;
	}
}

/* ---------------------------------------------------------
   Download-Box (PDF)
   --------------------------------------------------------- */
.kg-download {
	display: flex;
	align-items: center;
	gap: 22px;
	padding: 24px 28px;
	border: 1px solid var(--kg-line);
	border-radius: 8px;
	background: #fff;
}

.kg-download__icon {
	display: flex;
	flex: none;
	align-items: center;
	justify-content: center;
	width: 60px;
	height: 72px;
	border-radius: 4px;
	background: var(--kg-ink);
	color: var(--kg-orange);
	font-size: 14px;
	font-weight: 800;
	letter-spacing: 1px;
}

.kg-download__text {
	flex: 1;
}

.kg-content .kg-download h3 {
	margin-bottom: 2px;
}

.kg-download p {
	margin: 0;
	color: var(--kg-muted);
	font-size: 15px;
}

@media (max-width: 575px) {
	.kg-download {
		flex-wrap: wrap;
	}
}

/* Zweiter, heller Button */
.kg-content .kg-btn--light {
	background: var(--kg-orange);
	color: var(--kg-ink);
}

.kg-content .kg-btn--light:hover,
.kg-content .kg-btn--light:focus-visible {
	background: var(--kg-ink);
	color: #fff;
}

.kg-btn-row {
	display: flex;
	flex-wrap: wrap;
	gap: 12px;
	margin-top: 8px;
}

/* ---------------------------------------------------------
   Allergene (nummerierte Liste)
   --------------------------------------------------------- */
.kg-allergens {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 0 40px;
	margin: 24px 0 0;
	padding: 0;
	list-style: none;
	counter-reset: kg-allergen;
}

.kg-content .kg-allergens li {
	display: flex;
	align-items: center;
	gap: 14px;
	padding: 12px 0;
	border-bottom: 1px solid var(--kg-line);
	color: var(--kg-ink);
	line-height: 1.4;
	counter-increment: kg-allergen;
}

.kg-allergens li::before {
	content: counter(kg-allergen);
	display: flex;
	flex: none;
	align-items: center;
	justify-content: center;
	width: 30px;
	height: 30px;
	border-radius: 50%;
	background: var(--kg-orange-tint);
	color: var(--kg-orange-text);
	font-size: 13px;
	font-weight: 800;
}

.kg-allergens small {
	color: var(--kg-muted);
	font-size: 13px;
}

@media (max-width: 575px) {
	.kg-allergens {
		grid-template-columns: 1fr;
	}
}

/* ---------------------------------------------------------
   Große Hervorhebung (z. B. Rabatt)
   --------------------------------------------------------- */
.kg-highlight {
	display: flex;
	align-items: center;
	gap: 32px;
	padding: 36px 40px;
	border-radius: 8px;
	background: var(--kg-ink);
	color: rgba(255, 255, 255, .8);
}

.kg-highlight__value {
	flex: none;
	color: var(--kg-orange);
	font-family: var(--kg-font-sans);
	font-weight: 700;
	font-size: 62px;
	line-height: 1;
}

.kg-content .kg-highlight h3 {
	margin-bottom: 6px;
	color: #fff;
	font-family: var(--kg-font-sans);
	font-size: 22px;
	font-weight: 700;
	letter-spacing: -.01em;
}

.kg-highlight p {
	margin: 0;
}

@media (max-width: 575px) {
	.kg-highlight {
		flex-direction: column;
		align-items: flex-start;
		gap: 12px;
		padding: 30px 26px;
	}

	.kg-highlight__value {
		font-size: 49px;
	}
}


/* =========================================================
   Wochenangebote (Google Sheet)
   ========================================================= */
.kg-offers {
	padding: 80px 0;
	background: var(--kg-cream);
	color: var(--kg-ink);
	font-family: var(--kg-font-sans);
	font-size: 15px;
	line-height: 1.5;
}

.kg-offers p,
.kg-offers ul {
	margin: 0;
	padding: 0;
}

.kg-offers ul {
	list-style: none;
}

.kg-offers li {
	line-height: inherit;
}

.kg-offers__head {
	max-width: 640px;
	margin: 0 auto 44px;
	text-align: center;
}

.kg-offers__kicker {
	color: var(--kg-orange-text);
	font-family: var(--kg-font-hand);
	font-size: 26px;
	line-height: 1;
	transform: rotate(-2deg);
}

.kg-offers .kg-offers__title {
	margin: 6px 0 14px;
	color: var(--kg-ink);
	font-family: var(--kg-font-sans);
	font-size: 38px;
	font-weight: 700;
	letter-spacing: -.01em;
	line-height: 1.1;
	text-transform: none;
}

.kg-offers__week {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	font-weight: 700;
}

.kg-offers__week-label {
	padding: 2px 10px;
	border-radius: 4px;
	background: var(--kg-ink);
	color: #fff;
	font-size: 12px;
	letter-spacing: 1px;
}

.kg-offers__body {
	display: grid;
	gap: 24px;
}

/* Knüller-Karte */
.kg-offers__deal {
	display: grid;
	grid-template-columns: 300px minmax(0, 1fr);
	overflow: hidden;
	border-radius: 8px;
	background: #fff;
	box-shadow: 0 10px 28px rgba(29, 20, 14, .07);
}

.kg-offers__deal-head {
	padding: 30px 30px 28px;
	background: var(--kg-orange);
	color: var(--kg-ink);
}

.kg-offers__badge {
	display: inline-block;
	margin-bottom: 14px;
	padding: 3px 10px;
	border-radius: 4px;
	background: var(--kg-ink);
	color: #fff;
	font-size: 12px;
	font-weight: 700;
	letter-spacing: 1px;
	text-transform: uppercase;
}

.kg-offers .kg-offers__deal-title {
	margin: 0 0 6px;
	color: var(--kg-ink);
	font-family: var(--kg-font-sans);
	font-size: 24px;
	font-weight: 700;
	letter-spacing: -.01em;
	line-height: 1.1;
	text-transform: none;
}

.kg-offers__deal-note {
	font-weight: 700;
}

.kg-offers__deal-items {
	display: grid;
	align-content: center;
	padding: 18px 32px;
}

.kg-offers__deal-item {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 24px;
	padding: 14px 0;
}

.kg-offers__deal-item + .kg-offers__deal-item {
	border-top: 1px dashed var(--kg-line);
}

.kg-offers__deal-name {
	font-family: var(--kg-font-sans);
	font-weight: 700;
	font-size: 22px;
	line-height: 1.15;
	letter-spacing: -.01em;
}

.kg-offers__deal-text {
	margin-top: 4px !important;
	color: var(--kg-muted);
}

.kg-offers__deal-price {
	flex: none;
	text-align: right;
}

.kg-offers__deal-price strong {
	display: block;
	color: var(--kg-ink);
	font-family: var(--kg-font-sans);
	font-size: 30px;
	font-weight: 700;
	line-height: 1;
	white-space: nowrap;
}

.kg-offers__deal-price span {
	display: block;
	margin-top: 4px;
	color: var(--kg-muted);
	font-size: 13px;
	font-weight: 700;
}

/* Kategorien im Raster */
.kg-offers__grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 24px;
}

.kg-offers__group {
	padding: 26px 26px 14px;
	border-top: 4px solid var(--kg-orange);
	border-radius: 0 0 8px 8px;
	background: #fff;
	box-shadow: 0 10px 28px rgba(29, 20, 14, .05);
}

.kg-offers .kg-offers__group-title {
	margin: 0 0 8px;
	color: var(--kg-ink);
	font-family: var(--kg-font-sans);
	font-size: 18px;
	font-weight: 700;
	letter-spacing: -.01em;
	line-height: 1.2;
	text-transform: none;
}

.kg-offers__item {
	display: flex;
	align-items: flex-start;
	justify-content: space-between;
	gap: 16px;
	padding: 12px 0;
}

.kg-offers__item + .kg-offers__item {
	border-top: 1px dashed var(--kg-line);
}

.kg-offers__name {
	font-weight: 700;
}

.kg-offers__text {
	display: block;
	color: var(--kg-muted);
	font-size: 13px;
	font-weight: 400;
}

.kg-offers__price {
	flex: none;
	text-align: right;
}

.kg-offers__price strong {
	display: block;
	font-size: 17px;
	white-space: nowrap;
}

.kg-offers__price span {
	display: block;
	color: var(--kg-muted);
	font-size: 12px;
}

.kg-offers__foot,
.kg-offers__empty {
	margin-top: 32px;
	color: var(--kg-muted);
	font-size: 14px;
	text-align: center;
}

.kg-offers__empty {
	padding: 36px;
	border-radius: 8px;
	background: #fff;
	color: var(--kg-ink);
	font-size: 16px;
}

.kg-offers a {
	color: var(--kg-orange-text);
	font-weight: 700;
	text-decoration: underline;
	text-underline-offset: 3px;
}


@media (max-width: 991px) {
	.kg-offers__grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.kg-offers__deal {
		grid-template-columns: 1fr;
	}
}

@media (max-width: 767px) {
	.kg-offers {
		padding: 56px 0;
	}

	.kg-offers .kg-offers__title {
		font-size: 29px;
	}

	.kg-offers__grid {
		grid-template-columns: 1fr;
	}

	.kg-offers__deal-items {
		padding: 10px 24px;
	}

	.kg-offers__deal-name {
		font-size: 18px;
	}

	.kg-offers__deal-price strong {
		font-size: 28px;
	}
}


/* =========================================================
   Kontakt
   ========================================================= */
.kg-contact-grid {
	display: grid;
	grid-template-columns: minmax(0, 1fr) 360px;
	gap: 56px;
	align-items: start;
}

@media (max-width: 991px) {
	.kg-contact-grid {
		grid-template-columns: 1fr;
		gap: 40px;
	}
}

.kg-contact-list {
	margin: 0;
	padding: 0;
	list-style: none;
}

.kg-content .kg-contact-list li {
	display: flex;
	gap: 14px;
	padding: 12px 0;
	border-top: 1px solid var(--kg-line);
	line-height: 1.5;
}

.kg-content .kg-contact-list li:first-child {
	padding-top: 0;
	border-top: 0;
}

.kg-contact-list svg {
	flex: none;
	width: 20px;
	height: 20px;
	margin-top: 2px;
	fill: var(--kg-orange-text);
}

.kg-contact-list address {
	margin: 0;
	font-style: normal;
}

.kg-hours {
	width: 100%;
	margin: 0;
	border-collapse: collapse;
	font-size: 15px;
}

.kg-hours th,
.kg-hours td {
	padding: 6px 0;
	border-bottom: 1px dashed var(--kg-line);
	color: var(--kg-body);
	font-weight: 400;
	text-align: left;
}

.kg-hours td {
	text-align: right;
	white-space: nowrap;
}

.kg-hours tr.is-today th,
.kg-hours tr.is-today td {
	color: var(--kg-orange-text);
	font-weight: 700;
}

/* ---------- Formular ---------- */
.kg-form {
	margin-top: 8px;
}

.kg-form fieldset {
	margin: 0 0 28px;
	padding: 0;
	border: 0;
}

.kg-form legend {
	width: 100%;
	margin: 0 0 16px;
	padding: 0 0 10px;
	border-bottom: 2px solid var(--kg-orange);
	color: var(--kg-ink);
	font-family: var(--kg-font-sans);
	font-weight: 700;
	font-size: 18px;
	line-height: 1.3;
}

.kg-form legend small {
	color: var(--kg-muted);
	font-family: var(--kg-font-sans);
	font-size: 14px;
}

.kg-form__row {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 0 20px;
}

.kg-form__row--3 {
	grid-template-columns: 2fr 1fr 1fr;
}

.kg-form__field {
	margin-bottom: 18px;
}

.kg-form label {
	display: block;
	margin-bottom: 6px;
	color: var(--kg-ink);
	font-size: 14px;
	font-weight: 700;
}

.kg-form .kg-req {
	color: var(--kg-orange-text);
}

.kg-form input[type="text"],
.kg-form input[type="email"],
.kg-form input[type="tel"],
.kg-form select,
.kg-form textarea {
	display: block;
	width: 100%;
	min-height: 48px;
	padding: 11px 14px;
	border: 1px solid #d9cdbb;
	border-radius: 6px;
	background: #fff;
	color: var(--kg-ink);
	font-family: var(--kg-font-sans);
	font-size: 16px;
	line-height: 1.4;
	transition: border-color .2s ease, box-shadow .2s ease;
	-webkit-appearance: none;
	appearance: none;
}

.kg-form select {
	padding-right: 40px;
	background: #fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 8'%3E%3Cpath fill='none' stroke='%231d140e' stroke-width='1.8' d='M1 1.5l5 5 5-5'/%3E%3C/svg%3E") right 14px center / 12px no-repeat;
}

.kg-form textarea {
	min-height: 170px;
	resize: vertical;
}

.kg-form input:focus,
.kg-form select:focus,
.kg-form textarea:focus {
	border-color: var(--kg-orange);
	outline: 0;
	box-shadow: 0 0 0 3px rgba(247, 168, 47, .25);
}

.kg-form .has-error input,
.kg-form .has-error select,
.kg-form .has-error textarea {
	border-color: #b3261e;
}

.kg-form__error {
	display: block;
	margin-top: 6px;
	color: #b3261e;
	font-size: 14px;
	font-weight: 700;
}

.kg-form__check {
	display: flex;
	align-items: flex-start;
	gap: 12px;
}

.kg-form__check input {
	flex: none;
	width: 20px;
	height: 20px;
	margin-top: 2px;
	accent-color: var(--kg-orange);
}

.kg-form .kg-form__check label {
	margin: 0;
	color: var(--kg-body);
	font-size: 14px;
	font-weight: 400;
	line-height: 1.55;
}

.kg-form__captcha {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 12px;
}

.kg-form__captcha-task {
	color: var(--kg-ink);
	font-family: var(--kg-font-sans);
	font-weight: 700;
	font-size: 20px;
}

.kg-form .kg-form__captcha input {
	width: 90px;
}

.kg-form__hint {
	margin: 6px 0 0;
	color: var(--kg-muted);
	font-size: 13px;
}

/* Honeypot – für Menschen unsichtbar */
.kg-form__hp {
	position: absolute !important;
	left: -9999px !important;
	width: 1px;
	height: 1px;
	overflow: hidden;
}

.kg-form__submit {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 16px 24px;
	margin-top: 8px;
}

.kg-content button.kg-btn {
	border: 0;
	cursor: pointer;
}

.kg-form__submit small {
	color: var(--kg-muted);
}

.kg-alert {
	margin-bottom: 28px;
	padding: 20px 24px;
	border-left: 4px solid;
	border-radius: 0 8px 8px 0;
	line-height: 1.55;
}

.kg-alert p {
	margin: 0;
}

.kg-alert p + p {
	margin-top: 8px;
}

.kg-alert--ok {
	border-color: #2e7d32;
	background: #edf7ee;
	color: #1b4d1f;
}

.kg-alert--error {
	border-color: #b3261e;
	background: #fdeeee;
	color: #6b1510;
}

@media (max-width: 575px) {
	.kg-form__row,
	.kg-form__row--3 {
		grid-template-columns: 1fr;
	}
}

/* ---------- Karte mit Einwilligung ---------- */
.kg-map {
	position: relative;
	overflow: hidden;
	border-radius: 8px;
	background: var(--kg-ink);
	aspect-ratio: 16 / 7;
}

.kg-map iframe {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	border: 0;
}

.kg-map__consent {
	position: absolute;
	inset: 0;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: 14px;
	padding: 30px;
	background:
		radial-gradient(circle at 30% 40%, rgba(247, 168, 47, .18), transparent 55%),
		repeating-linear-gradient(45deg, rgba(255, 255, 255, .03) 0 2px, transparent 2px 14px),
		var(--kg-ink);
	color: rgba(255, 255, 255, .8);
	text-align: center;
}

.kg-map__consent svg {
	width: 44px;
	height: 44px;
	fill: var(--kg-orange);
}

.kg-map__consent p {
	max-width: 520px;
	margin: 0;
	font-size: 14px;
}

.kg-content .kg-map__consent .kg-btn {
	background: var(--kg-orange);
	color: var(--kg-ink);
}

.kg-content .kg-map__consent .kg-btn:hover,
.kg-content .kg-map__consent .kg-btn:focus-visible {
	background: #fff;
}

@media (max-width: 767px) {
	.kg-map {
		aspect-ratio: 4 / 5;
	}
}

.kg-content .kg-map__consent p {
	color: rgba(255, 255, 255, .8);
}

/* Häkchen-Liste direkt nach Text: etwas weniger Abstand */
.kg-content p + .kg-checklist.kg-block {
	margin-top: 28px;
}

.kg-content .kg-highlight p {
	color: rgba(255, 255, 255, .8);
}

.kg-allergens small {
	display: block;
}

/* Kurzer Einleitungstext direkt vor Karten */
.kg-block.kg-prose + .kg-block.kg-cards {
	margin-top: 36px;
}


/* =========================================================
   Rechtliches, Sitemap, 404
   ========================================================= */

/* Kompakter Kopfbereich ohne Foto */
.kg-hero--compact {
	min-height: 300px;
	background:
		radial-gradient(circle at 85% 30%, rgba(247, 168, 47, .16), transparent 45%),
		repeating-linear-gradient(45deg, rgba(255, 255, 255, .025) 0 2px, transparent 2px 16px),
		rgb(var(--kg-dark));
}

.kg-hero--compact::after {
	display: none;
}

.kg-hero--compact .kg-hero__inner {
	padding-top: 80px;
	padding-bottom: 44px;
}

.kg-hero--compact .kg-hero__title {
	font-size: 50px;
}

@media (max-width: 575px) {
	.kg-hero--compact {
		min-height: 260px;
	}

	.kg-hero--compact .kg-hero__title {
		font-size: 36px;
	}
}

/* Rechtstexte */
.kg-legal-grid {
	display: grid;
	grid-template-columns: minmax(0, 1fr) 300px;
	gap: 56px;
	align-items: start;
}

.kg-legal {
	max-width: 760px;
}

.kg-content .kg-legal h2 {
	margin-top: 48px;
	font-size: 28px;
	scroll-margin-top: 24px;
}

.kg-content .kg-legal h2:first-child {
	margin-top: 0;
}

.kg-content .kg-legal h2::after {
	width: 32px;
	margin-top: 10px;
}

.kg-content .kg-legal h3 {
	margin-top: 26px;
	font-size: 17px;
}

.kg-legal-list {
	margin: 0 0 1.1em;
	padding-left: 20px;
}

.kg-content .kg-legal-list li {
	margin-bottom: 6px;
	padding-left: 4px;
}

.kg-legal-list li::marker {
	color: var(--kg-orange-text);
}

.kg-aside--sticky {
	position: sticky;
	top: 24px;
}

.kg-toc {
	margin: 0;
	padding-left: 22px;
	font-size: 15px;
}

.kg-content .kg-toc li {
	padding: 5px 0;
	line-height: 1.4;
}

.kg-content .kg-toc a {
	color: var(--kg-ink);
	text-decoration: none;
}

.kg-content .kg-toc a:hover,
.kg-content .kg-toc a:focus-visible {
	color: var(--kg-orange-text);
	text-decoration: underline;
}

@media (max-width: 991px) {
	.kg-legal-grid {
		grid-template-columns: 1fr;
		gap: 40px;
	}

	/* Inhaltsverzeichnis vor dem Text anzeigen */
	.kg-aside--sticky {
		position: static;
		order: -1;
	}
}

/* Sitemap */
.kg-sitemap {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 24px;
}

.kg-sitemap__group {
	padding: 28px 28px 22px;
	border: 1px solid var(--kg-line);
	border-radius: 8px;
}

.kg-content .kg-sitemap__group h2 {
	display: flex;
	align-items: center;
	gap: 14px;
	margin-bottom: 16px;
	font-size: 24px;
}

.kg-content .kg-sitemap__group h2::after {
	display: none;
}

.kg-sitemap__group .kg-card__icon {
	flex: none;
	width: 44px;
	height: 44px;
	margin: 0;
}

.kg-sitemap__group .kg-card__icon svg {
	width: 22px;
	height: 22px;
}

.kg-sitemap__group ul {
	margin: 0;
	padding: 0;
	list-style: none;
}

.kg-content .kg-sitemap__group li {
	border-top: 1px solid var(--kg-line);
}

.kg-content .kg-sitemap__group a {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
	padding: 10px 0;
	color: var(--kg-ink);
	text-decoration: none;
}

.kg-content .kg-sitemap__group a::after {
	content: "\2192";
	color: var(--kg-orange-text);
	transition: transform .2s ease;
}

.kg-content .kg-sitemap__group a:hover,
.kg-content .kg-sitemap__group a:focus-visible {
	color: var(--kg-orange-text);
}

.kg-content .kg-sitemap__group a:hover::after {
	transform: translateX(4px);
}

@media (max-width: 991px) {
	.kg-sitemap {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

@media (max-width: 575px) {
	.kg-sitemap {
		grid-template-columns: 1fr;
	}
}

/* 404 */
.kg-404 {
	display: grid;
	grid-template-columns: auto minmax(0, 1fr);
	gap: 56px;
	align-items: center;
	margin-bottom: 72px;
}

.kg-404__code {
	margin: 0 !important;
	color: var(--kg-orange);
	font-family: var(--kg-font-sans);
	font-weight: 700;
	font-size: 144px;
	line-height: .9;
	letter-spacing: -4px;
}

.kg-404__text {
	max-width: 620px;
}

@media (max-width: 767px) {
	.kg-404 {
		grid-template-columns: 1fr;
		gap: 12px;
		margin-bottom: 48px;
	}

	.kg-404__code {
		font-size: 88px;
	}
}


/* =========================================================
   Link-Hover reparieren
   Der Theme-Skin (custom_skin.css) färbt alle Links beim Hover
   weiß: a:not(.no-skin):not(.btn):not(.badge):not(.nav-link):hover
   Die Selektoren unten sind bewusst gleich aufgebaut, damit sie
   stärker sind und in den hellen Inhaltsbereichen greifen.
   ========================================================= */

/* Textlinks: dunkel wie beim Mittagstisch */
.kg-content a:not(.no-skin):not(.btn):not(.badge):not(.nav-link):hover,
.kg-content a:not(.no-skin):not(.btn):not(.badge):not(.nav-link):focus,
.kg-offers a:not(.no-skin):not(.btn):not(.badge):not(.nav-link):hover,
.kg-offers a:not(.no-skin):not(.btn):not(.badge):not(.nav-link):focus {
	color: var(--kg-ink);
}

/* Sitemap und Inhaltsverzeichnis: orange */
.kg-content .kg-sitemap__group a:not(.no-skin):not(.btn):not(.badge):not(.nav-link):hover,
.kg-content .kg-sitemap__group a:not(.no-skin):not(.btn):not(.badge):not(.nav-link):focus,
.kg-content .kg-toc a:not(.no-skin):not(.btn):not(.badge):not(.nav-link):hover,
.kg-content .kg-toc a:not(.no-skin):not(.btn):not(.badge):not(.nav-link):focus {
	color: var(--kg-orange-text);
}

/* Brotkrumen im Hero: orange */
.kg-hero .kg-breadcrumb a:not(.no-skin):not(.btn):not(.badge):not(.nav-link):hover,
.kg-hero .kg-breadcrumb a:not(.no-skin):not(.btn):not(.badge):not(.nav-link):focus {
	color: var(--kg-orange);
}

/* Buttons: dunkle Schrift auf Orange, weiße Schrift auf Dunkel */
.kg-content a.kg-btn:not(.no-skin):not(.btn):not(.badge):not(.nav-link):hover,
.kg-content a.kg-btn:not(.no-skin):not(.btn):not(.badge):not(.nav-link):focus {
	color: var(--kg-ink);
}

.kg-content a.kg-btn.kg-btn--light:not(.no-skin):not(.btn):not(.badge):not(.nav-link):hover,
.kg-content a.kg-btn.kg-btn--light:not(.no-skin):not(.btn):not(.badge):not(.nav-link):focus {
	color: #fff;
}

/* Preisliste in Spalten (viele Gruppen, unterschiedlich lang) */
.kg-pricelists--cols {
	display: block;
	columns: 2;
	column-gap: 56px;
}

.kg-pricelists--cols .kg-pricelist {
	margin-bottom: 36px;
	break-inside: avoid;
}

@media (max-width: 767px) {
	.kg-pricelists--cols {
		columns: 1;
	}
}


/* =========================================================
   Wochenplan (Tagesspecials heiße Theke)
   Desktop: 5 Tage nebeneinander, darunter als Liste
   (Tageskachel wie bei den Seminar-Terminen).
   Der heutige Tag wird per JS mit .is-today markiert.
   ========================================================= */
.kg-week {
	display: grid;
	grid-template-columns: repeat(5, minmax(0, 1fr));
	gap: 20px;
	margin: 0;
	padding: 18px 0 0;             /* Platz für das „heute“-Schild */
	list-style: none;
}

.kg-content .kg-week__day {
	position: relative;
	display: flex;
	flex-direction: column;
	border-radius: 8px;
	background: #fff;
	box-shadow: 0 10px 28px rgba(29, 20, 14, .06);
	line-height: 1.6;
	transition: transform .25s ease, box-shadow .25s ease;
}

/* Tageskopf: dunkel, Kürzel in Orange (wie .kg-date__day) */
.kg-week__head {
	display: flex;
	flex-direction: column;
	padding: 22px 22px 18px;
	border-radius: 8px 8px 0 0;
	background: var(--kg-ink);
	color: #fff;
	transition: background-color .25s ease;
}

.kg-week__head strong {
	color: var(--kg-orange);
	font-family: var(--kg-font-sans);
	font-size: 36px;
	font-weight: 700;
	line-height: 1;
}

.kg-week__head span {
	margin-top: 6px;
	font-size: 12px;
	font-weight: 700;
	letter-spacing: 1.5px;
	line-height: 1.4;
	text-transform: uppercase;
}

.kg-week__body {
	flex: 1;
	padding: 22px 22px 26px;
}

.kg-content .kg-week__body h3 {
	margin-bottom: 8px;
	font-size: 18px;
}

.kg-week__body p {
	margin: 0;
	font-size: 15px;
}

/* Preis-Stempel (z. B. Wurst-Tag) */
.kg-week__price {
	position: absolute;
	top: 18px;
	right: 16px;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	width: 64px;
	height: 64px;
	border-radius: 50%;
	background: var(--kg-orange);
	color: var(--kg-ink);
	font-family: var(--kg-font-sans);
	font-weight: 700;
	font-size: 20px;
	line-height: 1;
	white-space: nowrap;
	transform: rotate(-10deg);
	box-shadow: 0 0 0 3px var(--kg-ink), 0 0 0 4px rgba(247, 168, 47, .5);
}

.kg-week__price small {
	margin-bottom: 2px;
	font-family: var(--kg-font-sans);
	font-size: 10px;
	font-weight: 800;
	letter-spacing: 1px;
	text-transform: uppercase;
}

/* ---------- Heute ---------- */
.kg-content .kg-week__day.is-today {
	box-shadow: 0 0 0 3px var(--kg-orange), 0 18px 38px rgba(29, 20, 14, .14);
	transform: translateY(-8px);
}

.kg-week__day.is-today .kg-week__head {
	background: var(--kg-orange);
	color: var(--kg-ink);
}

.kg-week__day.is-today .kg-week__head strong {
	color: var(--kg-ink);
}

.kg-week__day.is-today .kg-week__price {
	background: var(--kg-ink);
	color: var(--kg-orange);
	box-shadow: 0 0 0 3px var(--kg-orange), 0 0 0 4px rgba(29, 20, 14, .4);
}

/* Schild „heute!“ auf der Oberkante */
.kg-week__day.is-today::before {
	content: "heute!";
	position: absolute;
	top: -17px;
	left: 16px;
	z-index: 1;
	padding: 0 12px 2px;
	border-radius: 4px;
	background: var(--kg-ink);
	color: var(--kg-orange);
	font-family: var(--kg-font-hand);
	font-size: 21px;
	line-height: 1.4;
	transform: rotate(-3deg);
}

/* Hinweis am Wochenende */
.kg-content .kg-week__note {
	margin: 32px 0 0;
	color: var(--kg-orange-text);
	font-family: var(--kg-font-hand);
	font-size: 24px;
	line-height: 1.3;
	text-align: center;
}

/* ---------- Unter 1200 px: Liste mit Tageskachel links ---------- */
@media (max-width: 1199px) {
	.kg-week {
		grid-template-columns: 1fr;
		gap: 16px;
		max-width: 820px;
		margin: 0 auto;
	}

	.kg-content .kg-week__day {
		display: grid;
		grid-template-columns: 104px minmax(0, 1fr) auto;
		align-items: stretch;
	}

	.kg-week__head {
		align-items: center;
		justify-content: center;
		padding: 16px 8px;
		border-radius: 8px 0 0 8px;
		text-align: center;
	}

	.kg-week__head strong {
		font-size: 31px;
	}

	.kg-week__head span {
		font-size: 11px;
		letter-spacing: 1px;
	}

	.kg-week__body {
		align-self: center;
		padding: 18px 24px;
	}

	.kg-week__price {
		position: static;
		align-self: center;
		margin-right: 22px;
	}

	.kg-content .kg-week__day.is-today {
		transform: none;
	}

	.kg-week__day.is-today::before {
		left: 120px;
		top: -15px;
		font-size: 19px;
	}
}

@media (max-width: 575px) {
	.kg-content .kg-week__day {
		grid-template-columns: 76px minmax(0, 1fr) auto;
	}

	.kg-week__head strong {
		font-size: 25px;
	}

	.kg-week__head span {
		font-size: 9px;
		letter-spacing: .5px;
	}

	.kg-week__body {
		padding: 16px 16px 16px 18px;
	}

	.kg-content .kg-week__body h3 {
		font-size: 17px;
	}

	.kg-week__body p {
		font-size: 14px;
		line-height: 1.55;
	}

	.kg-week__price {
		width: 52px;
		height: 52px;
		margin-right: 14px;
		font-size: 16px;
	}

	.kg-week__price small {
		font-size: 8px;
	}

	.kg-week__day.is-today::before {
		left: 92px;
	}
}

@media (prefers-reduced-motion: reduce) {
	.kg-content .kg-week__day,
	.kg-week__head {
		transition: none;
	}
}


/* ---------------------------------------------------------
   Hilfsklassen (ersetzen frühere Inline-Styles)
   --------------------------------------------------------- */

/* Häkchen-Liste einspaltig, z. B. innerhalb eines Text-Bild-Blocks */
.kg-checklist.kg-checklist--single {
	grid-template-columns: 1fr;
	margin: 14px 0;
}

/* Zusätzlicher Abstand nach oben, z. B. für eine Zwischenüberschrift im Fließtext */
.kg-content .kg-space-top {
	margin-top: 28px;
}

/* Links im Hinweis über der Google-Karte (weiß, auch bei Hover/Fokus) */
.kg-content .kg-map__consent a:not(.kg-btn),
.kg-content .kg-map__consent a:not(.no-skin):not(.btn):not(.badge):not(.nav-link):not(.kg-btn):hover,
.kg-content .kg-map__consent a:not(.no-skin):not(.btn):not(.badge):not(.nav-link):not(.kg-btn):focus {
	color: #fff;
}

/* Häkchen-Liste innerhalb einer Karte (z. B. Stellenangebote) */
.kg-card .kg-checklist.kg-checklist--card {
	grid-template-columns: 1fr;
	gap: 10px;
	margin: 18px 0 0;
}

.kg-content .kg-card .kg-checklist--card li {
	font-size: 15px;
}

/* Zentrierter Hinweistext unter einem Block */
.kg-content .kg-center {
	margin-top: 32px;
	text-align: center;
}


/* =========================================================
   Ausdruck Speiseplan / Wochenangebote (ausdruck.php)
   ========================================================= */
.kg-print__controls {
	display: grid;
	grid-template-columns: minmax(0, 1.4fr) auto auto;
	align-items: end;
	gap: 0 28px;
}

.kg-print__types {
	margin: 0 0 18px;
	padding: 0;
	border: 0;
}

.kg-form legend.kg-print__legend {
	width: auto;
	margin: 0 0 6px;
	padding: 0;
	border: 0;
	color: var(--kg-ink);
	font-family: var(--kg-font-sans);
	font-size: 14px;
	font-weight: 700;
	line-height: inherit;
}

/* Umschalter Speiseplan / Wochenangebote */
.kg-choice {
	display: inline-flex;
	border: 1px solid #d9cdbb;
	border-radius: 6px;
	background: #fff;
	overflow: hidden;
}

.kg-form .kg-choice__item {
	position: relative;
	margin: 0;
	font-weight: 400;
}

.kg-choice__item input {
	position: absolute;
	opacity: 0;
}

.kg-choice__item span {
	display: block;
	min-height: 46px;
	padding: 12px 20px;
	color: var(--kg-body);
	font-size: 15px;
	line-height: 22px;
	white-space: nowrap;
	cursor: pointer;
	transition: background-color .2s ease, color .2s ease;
}

.kg-choice__item + .kg-choice__item span {
	border-left: 1px solid #d9cdbb;
}

.kg-choice__item input:checked + span {
	background: var(--kg-ink);
	color: #fff;
	font-weight: 700;
}

.kg-choice__item input:focus-visible + span {
	outline: 2px solid var(--kg-orange);
	outline-offset: -4px;
}

.kg-print__actions {
	display: flex;
	flex-wrap: wrap;
	gap: 12px;
	margin-bottom: 18px;
}

/* Vorschau im Seitenverhältnis A4 quer */
.kg-print__preview {
	margin: 12px 0 0;
	border: 1px solid var(--kg-line);
	border-radius: 8px;
	background: #f1ece4;
	overflow: hidden;
	aspect-ratio: 297 / 210;
}

.kg-print__preview iframe {
	display: block;
	width: 100%;
	height: 100%;
	border: 0;
}

.kg-content .kg-print__fallback {
	margin: 10px 0 36px;
	color: var(--kg-muted);
	font-size: 14px;
}

/* Unsichtbarer Rahmen für den Druckdialog */
.kg-print__frame {
	position: fixed;
	right: 0;
	bottom: 0;
	width: 1px;
	height: 1px;
	border: 0;
	opacity: 0;
}

@media (max-width: 991px) {
	.kg-print__controls {
		grid-template-columns: 1fr;
	}
}

@media (max-width: 575px) {
	.kg-choice {
		display: flex;
	}

	.kg-form .kg-choice__item {
		flex: 1;
	}

	.kg-choice__item span {
		padding: 12px;
		text-align: center;
	}

	.kg-print__actions .kg-btn {
		justify-content: center;
		width: 100%;
	}
}

/* Leiste „Daten aus dem Google Sheet“ mit Knopf „Jetzt aktualisieren“ */
.kg-print__sync {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 12px 24px;
	margin: 0 0 32px;
	padding: 16px 20px;
	border: 1px solid var(--kg-line);
	border-radius: 8px;
	background: var(--kg-cream);
}

.kg-content .kg-print__sync p {
	display: flex;
	flex-wrap: wrap;
	align-items: baseline;
	gap: 4px 16px;
	margin: 0;
	color: var(--kg-body);
	font-size: 15px;
}

.kg-print__sync strong {
	color: var(--kg-ink);
}

.kg-print__sync span {
	color: var(--kg-muted);
}

.kg-content .kg-print__sync button[disabled] {
	cursor: wait;
	opacity: .7;
}
