@font-face {
	font-family: 'PT_Sans-Narrow-Web-Regular';
	src: url('fonts/PT_Sans-Narrow-Web-Regular.eot');
	/* IE */
	src: url('fonts/PT_Sans-Narrow-Web-Regular.eot?#iefix') format('embedded-opentype'),
		url('fonts/PT_Sans-Narrow-Web-Regular.woff') format('woff'),
		url('fonts/PT_Sans-Narrow-Web-Regular.ttf') format('truetype');
	/* alle anderen Browser */
}

@font-face {
	font-family: 'Raleway-Medium';
	src: url('fonts/Raleway-Medium.eot');
	/* IE */
	src: url('fonts/Raleway-Medium.eot?#iefix') format('embedded-opentype'),
		url('fonts/Raleway-Medium.woff') format('woff'),
		url('fonts/Raleway-Medium.ttf') format('truetype');
	/* alle anderen Browser */
}


/* --------------------------------------------------------------------------------------------------- */

:root {
	--bg-content: #FFFFFF;
	/* Heller, sauberer Inhaltsbereich */
	/* --blue-sidebar: #003366; */
	/* Das originale, tiefe Königsblau */
	--red-brand: #FF0033;
	/* Das leuchtende Signalrot */
	/* --text-dark: #333333; */
}

body {
	background-position: center top;
	background-repeat: no-repeat;
	margin: 0px;
	padding: 0px;
	height: 100%;
	overflow-x: hidden;
}


html {
	/* background: url(hg-y.jpg1) repeat-y center, */
		/* url(head-top-seit.gif1) repeat-x left top; */
	background-color: #0C4E96;
	width: 100%;
	height: calc(100% - 240px);
	/* 240px = Höhe des Bottom Bildes */
	
	min-height: 650px;
}


/* -------------------------------------------------------
   PAGE WRAPPER – zentriert, 960px breit
------------------------------------------------------- */

#page-wrapper {
	/* width: 1140px; */
	/* max-width: 1140px; */

	width: 960px;
	max-width: 960px;

	margin: 0 auto;
	position: relative;
}


/* -------------------------------------------------------
   HEADER ROW – Flexibel und Responsive
------------------------------------------------------- */

#header-row {
	position: relative;
	width: 100%;
	max-width: 960px;
	/* Begrenzt die maximale Breite auf das Layout-Maß */
	margin: 0 auto;
	/* Zentriert den Header wie den Rest der Seite */

	/* WICHTIG: Berechnet die Höhe dynamisch anhand der Breite (430 / 960) */
	aspect-ratio: 960 / 430;
}

/* Kopfbereich wave und Bild */
#headwave {
	position: absolute;
	top: 0px;
	left: 0;
	width: 100%;
	/* Nutzt die volle Breite des responsiven Containers */
	height: 100%;
	/* Skaliert in der Höhe automatisch mit */
	background-image: url(bogen-head.svg);
	background-size: contain;
	background-repeat: no-repeat;
	background-position: center top;
}

#headerbild {
	position: absolute;
	left: 0;
	width: 100%;
	height: 100%;
	top: 40px;
	z-index: -2;
}

#headerbild img {
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
	/* Verhindert Verzerrungen und weiße Ränder beim Skalieren */

	/* object-position: center;   */
	/* oder top */
}


/* -------------------------------------------------------
   JUBILÄUMS-LOGO
------------------------------------------------------- */

#jub50-logo {
	background: url(jub50-logo.svg);
	position: relative;
	height: 160px;
	width: 160px;
	margin-top: 10px;
	z-index: 9;
}




/* -------------------------------------------------------
   MAIN ROW – Navigation + Content nebeneinander (Flexbox)
------------------------------------------------------- */

#main-row {
	/* display: flex; */
	/* flex-direction: row; */
	/* align-items: flex-start; */
	align-items: stretch;
	width: 100%;

	position: relative;

	/* top: 80px; */

}


/* -------------------------------------------------------
   NAVIGATIONSSPALTE – links, 180px fest
------------------------------------------------------- */

#nav-col {
	position: absolute;
	box-sizing: border-box;
	top: -90px;
	left: 0;
	width: 180px;
	height: 500px;
	padding-top: 50px;

	background-color: transparent;
	/* background-color: #9826bb; */

	z-index: 10;

	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='200' height='100%25' preserveAspectRatio='none' viewBox='0 0 200 700'%3E%3Cpath d='M0,0 L0,0 Q390,350 0,700 L0,400 Z' fill='%230C4E96'/%3E%3C/svg%3E");

	background-repeat: no-repeat;
	background-size: 100% 100%;
}


/* -------------------------------------------------------
   CONTENTSPALTE – rechts, füllt den Rest
------------------------------------------------------- */

#content-col {
	/* flex: 1 1 auto; */
	/* verhindert Overflow bei Flex */
	min-width: 0;

	/* width: 100%; */
	/* background-color: #ff00ff; */

	/* flex: 0 0 780px; */
	/* width: 780px; */
	/* min-width: 960px; */
	background-color: #FFFFFF;
	width: 100%;

	/* top | right | bottom | left */
	/* padding: 50px 0px 50px 200px; */
	box-sizing: border-box;

	padding: 50px 50px 50px 200px;

	min-height: 650px;
}


/* -------------------------------------------------------
   RESPONSIVE: unter 960px wird der Wrapper fluid
------------------------------------------------------- */

/* @media (max-width: 1140px) { */
@media (max-width: 960px) {
	#page-wrapper {
		width: 100%;
		max-width: 100%;
		padding: 0 10px;
		box-sizing: border-box;
	}

	#content-col {
		/* flex: 1 1 auto;
        width: auto;
        min-width: 0; */

		width: 100%;
	}

}

/* -------------------------------------------------------
   HAMBURGER BUTTON – standardmäßig versteckt (Desktop)
------------------------------------------------------- */

#hamburger-btn {
	display: none;
	position: fixed;
	top: 60px;
	left: 20px;
	z-index: 1000;
	width: 44px;
	height: 44px;
	background-color: #0C4E96;
	border: none;
	border-radius: 4px;
	cursor: pointer;
	flex-direction: column;
	justify-content: center;
	align-items: center;
	gap: 6px;
	padding: 8px;
	box-shadow: 0 2px 6px rgba(0, 0, 0, 0.4);
}

.burger-line {
	display: block;
	width: 26px;
	height: 2px;
	background-color: #ffffff;
	border-radius: 2px;
	transition: transform 0.3s ease, opacity 0.3s ease;
	transform-origin: center;
}

/* X-Animation wenn Menü offen */
#hamburger-btn.is-active .burger-line:nth-child(1) {
	transform: translateY(8px) rotate(45deg);
}

#hamburger-btn.is-active .burger-line:nth-child(2) {
	opacity: 0;
	transform: scaleX(0);
}

#hamburger-btn.is-active .burger-line:nth-child(3) {
	transform: translateY(-8px) rotate(-45deg);
}


/* -------------------------------------------------------
   OVERLAY – abdunkeln des Inhalts wenn Menü offen
------------------------------------------------------- */

#nav-overlay {
	display: none;
	position: fixed;
	inset: 0;
	background: rgba(0, 0, 0, 0.45);
	z-index: 900;
	cursor: pointer;
}

#nav-overlay.overlay-active {
	display: block;
}


/* -------------------------------------------------------
   RESPONSIVE: unter 960px wird der Wrapper fluid
------------------------------------------------------- */

@media (max-width: 960px) {
	#page-wrapper {
		width: 100%;
		max-width: 100%;
		padding: 0 10px;
		box-sizing: border-box;
	}

}


/* -------------------------------------------------------
   HAMBURGER / SLIDE-IN MENÜ: unter 680px
------------------------------------------------------- */

@media (max-width: 680px) {

	/* Hamburger-Button sichtbar machen */
	#hamburger-btn {
		display: flex;
	}

	/* 1. Haupt-Reihe flexibel machen, damit der Inhalt sauber nachrückt */
	#main-row {
		display: flex !important;
		flex-direction: column !important;
		position: relative !important;
		margin-top: 0 !important;
	}

	/* Header-Row responsive zwingen */
	#header-row {
		margin-top: 0 !important;
		width: 100% !important;
		display: block !important;
	}

	/* Navigation als sauberes fixed Slide-In */
	#nav-col {
		position: fixed !important;
		top: 0 !important;
		left: 0;
		width: 220px;
		height: 100vh;
		background-color: #0C4E96;
		z-index: 950;
		transform: translateX(-100%);
		transition: transform 0.3s ease;
		overflow-y: auto;
		padding-top: 100px;
		/* Platz für Hamburger-Button */
		box-shadow: 3px 0 12px rgba(0, 0, 0, 0.4);
		box-sizing: border-box;
	}

	/* Geöffneter Zustand des Menüs */
	#nav-col.nav-open {
		transform: translateX(0) !important;
	}

	#navigation {
		position: static;
		margin: 0;
		height: auto;
		width: 100%;
	}

	dl {
		margin: 0;
		padding: 0 10px;
	}

	dt {
		border-bottom: 1px solid rgba(255, 255, 255, 0.15);
	}

	dt a,
	dl a {
		display: block;
		line-height: 40px;
	}


	/* DEIN LOGO: Sicher platziert, ohne die Lücke zu erzeugen */
	#jub50-logo {
		position: absolute;
		top: 40px;
		/* Festgelegte Position von oben im Header */
		left: 60px;
		/* Festgelegte Position von links */
		height: 80px;
		/* Leicht verkleinert, damit es auf Handys passt */
		width: 80px;
		z-index: 10;
		/* Liegt sicher über dem Headerbild */
		margin: 0 !important;
		/* Löscht alte störende Abstände */
	}

	/* 3. Inhalt rückt nahtlos an den Header heran und bricht nicht aus */
	#content-col {
		width: 100% !important;
		position: relative !important;
		padding: 20px 15px !important;
		/* Sauberes Mobile-Padding */
		box-sizing: border-box !important;
		float: none !important;
	}

	#bottom {
		height: auto !important;
		/* padding: 40px 20px; */
		overflow: visible;
	}

	#bottom .footer-inner {
		display: flex;
		flex-direction: column;
		align-items: center;
		gap: 20px;
	}

	#bottom .footer-logo {
		width: 200px;
		min-width: 200px;
		max-width: 200px;
		order: -1;
		margin: 50px 0px 30px 0px;
	}

	#bottom .logo-schultz {
		width: 200px;
		height: auto;
	}

	#bottom .footer-col.left {
		margin: 0 !important;
		/* Wichtig: Das !important überschreibt das margin: 50px */
		text-align: center !important;
		/* Erzwingt Zentrierung für alle Spalten */
		width: 100%;
		padding-bottom: 20px;
		font-size: 1rem;
	}

	/* Diese Regel überschreibt die rechtsbündige Ausrichtung der zweiten Spalte */
	#bottom .footer-col.right {
		text-align: center !important;
		width: 100%;
		padding-bottom: 50px;
		font-size: 1rem;
	}

	.image-container.enlarged,
	.image-jub50.enlarged {
		width: 85vw;
		height: 85vw;
	}


	.image-jub50 {
		width: 100%;
		max-width: 100%;
		margin-left: 0;
	}

	.image-jub50 img {
		width: 100%;
		height: auto;

		object-fit: contain;
	}

}
/* -------------------------------------------------------
   Ende HAMBURGER / SLIDE-IN MENÜ: unter 680px
------------------------------------------------------- */

/* nur für das Logo und Schrift */
@media (max-width: 800px) {

	.footer-col.left,
	.footer-col.right {
		font-size: 0.9rem;
	}

	.logo-schultz {
		width: 150px;
		height: auto;
	}

}


/* -------------------------------------------------------
   Texte: p, li, h1–h4 (unverändert aus Original)
------------------------------------------------------- */

.wobinich {
	font-family: Raleway-Medium;
	font-size: 24px;
	color: #0C4E96;
	font-weight: bold;
	letter-spacing: 1px;
	margin-top: -50px;
	margin-right: 0px;
	margin-left: auto;
	margin-bottom: 50px;
	/* background-color: #b0b0b0; */
	text-align: right;

	padding-left: 5px;
	width: fit-content;
	border-left: 3px solid var(--red-brand);
}


p,
li {
	font-family: Raleway-Medium;
	font-size: 1rem;
	color: #000000;
	font-weight: normal;
	letter-spacing: 0px;
	margin-right: 60px;
	margin-left: 30px;
	margin-top: 10px;
	margin-bottom: 10px;
	line-height: 25px;
	list-style: none;
}

li::before {
	content: '►';
	color: var(--red-brand);
	margin-right: 10px;
	margin-left: -30px;
}

/* Das neue, alternative Listenelement für einen einfachen Punkt */
li.li-punkt::before {
	position: relative;
	content: '•';
	font-size: 2rem;
	font-weight: 900;
	color: #000000;

    margin-right: 0px;
    left: -10px;
    top: 5px;
}


/* Text für fette Überschriften und wo bin ich */
h1,
.ueberschrift {
	font-family: Raleway-Medium;
	font-size: 1.7rem;
	color: #0C4E96;
	font-weight: bold;
	letter-spacing: 1px;
	margin-top: 30px;
	margin-right: 0px;
	margin-left: 30px;
	line-height: 30px;

	margin-bottom: 20px;
	border-bottom: 2px solid var(--red-brand);
	padding-bottom: 5px;
	width: fit-content;

	/* text-decoration: underline 2px solid var(--red-brand);
text-underline-offset: 8px; */

}

.ueberschrift {
	/* font-size: 1.8rem; */
	font-size: 1.56;
	border-bottom: 0px;
}


.ueberschrift span {
	color: var(--red-brand);
	display: block;
	font-size: 1.4rem;
	font-weight: bold;
	text-transform: uppercase;
	margin-top: 10px;
}


/* Text für fette Überschriften */
h2 {
	font-family: Raleway-Medium;
	/* font-size: 1.125rem; */
    font-size: 1.3rem;
	color: #000000;
	font-weight: 700;
	letter-spacing: 1px;
	margin-right: 60px;
	margin-left: 30px;
	margin-top: 0px;
	margin-bottom: 0px;
	line-height: 26px;
}


/* Bildunterschrift für 50 Jubiläum */
.img-caption {
	margin-left: 0px;
	font-size: 1rem;
	font-weight: 500;
	margin-top: 10px;
}


.slogan {
	font-family: Raleway-Medium;
	font-size: 1.3rem;
	line-height: 2rem;
	font-weight: 700;
	color: var(--blue-sidebar);
	margin-left: 30px;
	margin-right: 60px;
	width: fit-content;
	background: #E6F2FF;
	padding: 15px;
	border-left: 5px solid var(--red-brand);
	border-radius: 0 5px 5px 0;

}

/* Links im Text */
.linkintext:link,
.linkintext:active,
.linkintext:visited {
	font-family: Raleway-Medium;
	font-size: 1rem;
	color: #DC2C68;
	font-weight: bold;
	text-decoration: none;
	border-bottom: 1px #0C4E96 dotted;
	letter-spacing: 0px;
}

.linkintext:hover {
	font-family: Raleway-Medium;
	font-size: 1rem;
	color: #0C4E96;
	font-weight: bold;
	text-decoration: none;
	border-bottom: 1px #0C4E96 dotted;
	letter-spacing: 0px;
}


/* -------------------------------------------------------
   NAVIGATION (Position innerhalb nav-col)
------------------------------------------------------- */

#navigation {
	position: static;
	margin-left: 10px;
	margin-top: 30px;
	height: auto;
	width: 170px;
}

/* Navigation Links */
dt a,
dl a {
	font-family: 'PT_Sans-Narrow-Web-Regular';
	font-size: 1rem;
	font-weight: normal;
	color: #ffffff;
	letter-spacing: 1px;
	line-height: 28px;
	text-decoration: none;
	background: transparent url(link-strich-blind.jpg) no-repeat scroll left center;
	padding-left: 10px;
}

/* Navigation Links drüber */
dt a:hover {
	background: transparent url(link-strich.jpg) no-repeat scroll left center;
	padding-left: 10px;
	font-weight: 600;
	color: #ffffff;
}

/* Navigation Links inaktiv */
.dtinaktiv {
	background: transparent url(link-strich.jpg) no-repeat scroll left center;
	padding-left: 10px;
	font-family: 'PT_Sans-Narrow-Web-Regular';
	font-size: 1rem;
	font-weight: 600;
	letter-spacing: 1px;
	color: #ffffff;
	line-height: 28px;
	text-decoration: none;
	text-align: left;
}


/* -------------------------------------------------------
   DIVERSES
------------------------------------------------------- */

/* div für Anfahrtswegsformular */
#anfahrt {
	background-position: center;
	margin-right: 60px;
	margin-left: 30px;
	margin-top: 0px;
	margin-bottom: 0px;
}

/* Macht das Underline beim IE im Ticker weg */
a {
	/* color: inherit; */
	text-decoration: none;
}


/* -------------------------------------------------------
   TICKER
------------------------------------------------------- */

#hgticker {
	position: absolute;
	top: 0px;
	min-height: 40px;
	width: 100%;
	background-color: #DC2C68;
	z-index: -10;
}


/* Ticker */
.marquee-container {
	position: relative;
	overflow: hidden;
	white-space: nowrap;
	color: #fff;
	/* width: 900px; */
	width: 90%;
	height: 40px;
	margin: 0 auto;
	z-index: 1;
	/* background-color: #484848;  */
}

.marquee-text {
	display: inline-block;
	padding-left: 100%;

	/* animation: marquee 20s linear infinite;
	-webkit-animation: marquee 20s linear infinite; */

	animation-name: marquee;
	animation-timing-function: linear;
	animation-iteration-count: infinite;

	margin: 10px 0;
}


@keyframes marquee {
	0% {
		transform: translateX(0);
		-webkit-transform: translateX(0);
		-moz-transform: translateX(0);
		-ms-transform: translateX(0);
		-o-transform: translateX(0);
	}

	100% {
		transform: translateX(-100%);
		-webkit-transform: translateX(-100%);
		-moz-transform: translateX(-100%);
		-ms-transform: translateX(-100%);
		-o-transform: translateX(-100%);
	}
}

/* /Ticker */


/* -------------------------------------------------------
   LINK BOTTOM (E-Mail Button im Footer-Bild)
------------------------------------------------------- */

#link-bottom {
	position: absolute;
	bottom: 0px;
	left: 50%;
	top: 140px;
	height: 20px;
	width: 211px;
	margin-left: 155px;
}


/* -------------------------------------------------------
   BOTTOM FOOTER-BILD
------------------------------------------------------- */

#bottom {
	font-family: Arial, Helvetica, sans-serif;
	font-size: 1rem;
	font-weight: 400;
	color: #c8c8c8;
	background: #484848;
	position: relative;
	width: 100%;
	height: 250px;
	overflow: hidden;
	display: flex;
	align-items: center;
	justify-content: center;
}

#bottom .footer-inner {
	position: relative;
	z-index: 2;
	display: flex;
	align-items: center;
	justify-content: space-between;
	width: 960px;
	max-width: 960px;
	/* Erhöhtes Padding schiebt den linken und rechten Block weiter nach innen */
	padding-left: 50px;
	padding-right: 50px;
	box-sizing: border-box;
}

#bottom .footer-col {
	display: flex;
	flex-direction: column;
	gap: 3px;
	line-height: 1.55;
	/* flex: 1 sorgt dafür, dass beide Spalten gleich breit sind -> Logo wandert exakt in die Mitte */
	flex: 1;
}

/* NEU: Holt die Links in den Spalten ab und entfernt Blau/Unterstreichung */
#bottom .footer-col a {
	color: inherit !important;
	text-decoration: none !important;
}

#bottom .footer-col.right {
	text-align: right;
}

#bottom .footer-logo {
	flex: 0 0 auto;
	width: calc(150px + (100vw - 680px) * 0.17857);

	/* bei < 680px tritt das ein aber es 200px gross sein */
	/* min-width: 150px; */

	max-width: 200px;

	display: flex;
	justify-content: center;
	align-items: center;
}

#bottom .logo-schultz {
	width: 100%;
	height: auto;
}


/* -------------------------------------------------------
   GOOGLE MAPS
------------------------------------------------------- */

#google-maps {
	/* Verhindert, dass Margins das Div über die 100% Breite des Eltern-Elements drücken */
	margin-left: 30px;
	margin-right: 0px;
	margin-top: 0px;

	/* Hier passiert die Magie: */
	width: 90%;
	/* Nutzt den verfügbaren Platz des Parents */
	max-width: 650px;
	/* Wird niemals größer als 650px */
	aspect-ratio: 1 / 1;
	/* Hält die Karte perfekt quadratisch */
}

#google-maps iframe {
	width: 100%;
	height: 100%;
	border: 0;
	/* Entfernt den Standard-Rahmen */
}



.gallery-wrapper {
	display: flex;
	gap: 50px;
	padding: 20px;
	flex-wrap: wrap;
}


/* Standardgröße für die Bilder im Raster */
.image-container {
	position: relative;
	width: 180px;
	height: 180px;
	cursor: pointer;
	overflow: hidden;
	transition: all 0.4s ease-in-out;
	z-index: 1;
}

/* Das Bild im Raster mit Bogen-Schnitt */
.image-container img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
	clip-path: path('M 0,180 Q 100,180 180,140 L 180,0 L 0,0 Z');
	transition: clip-path 0.4s ease-in-out, max-width 0.4s, max-height 0.4s;
}





/* Überschreibt die Standardwerte des Containers */
.image-jub50 {
	width: 100% !important;
	max-width: 100% !important;
	/* height: auto !important; */

	height: 300px;

	margin-left: 0px !important;
	margin-right: 0px !important;
	box-sizing: border-box;
}

/* Deaktiviert den Clip-Path für das Bild in diesem Container */
.image-jub50 img {
	width: 100% !important;
	height: auto !important;
	max-width: 100% !important;
	clip-path: none;

	object-fit: contain;
}



/* Das Lightbox-Fenster (wird im Hintergrund vorbereitet) */
.dynamic-lightbox {
	position: fixed;
	top: 0;
	left: 0;
	width: 100vw;
	height: 100vh;
	background: rgba(0, 0, 0, 0.85);
	z-index: 9999;
	display: flex;
	align-items: center;
	justify-content: center;
	opacity: 0;
	pointer-events: none;
	transition: opacity 0.3s ease-in-out;
	cursor: pointer;
}

/* Wird per JS aktiviert */
.dynamic-lightbox.active {
	opacity: 1;
	pointer-events: auto;
}

/* Das vergrößerte Bild in der Lightbox */
.dynamic-lightbox img {
	max-width: 85vw;
	max-height: 85vh;
	object-fit: contain;
	box-shadow: 0 10px 30px rgba(0, 0, 0, 0.5);
	transform: scale(0.95);
	transition: transform 0.3s ease-in-out;
}

.dynamic-lightbox.active img {
	transform: scale(1);
}






/* ################################################### */

/* für den TinyMCE Version TinyMCE 5.10.9 */

/* ################################################### */



/* ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ */
/* gleichmäßiger Wortabstand */


.tinymce_gleichmaessiger-abstand {
	text-align: justify;
	/* background-color: #ffff00; */
	/* font-size: 24px; */
}

.tinymce_gleichmaessiger-abstand::after {
	content: "";
	display: inline-block;
	width: 100%;
}


/* ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ */
/* Spalten 2 - 5 spaltig */


.tinymce-columns {
	display: flex;
	gap: 20px;
	margin: 1em 0;
}

.tinymce-columns .column {
	flex: 1;
	min-width: 0;
}

/* mobil: Spalten untereinander */
@media (max-width: 800px) {
	.tinymce-columns {
		flex-direction: column;
	}
}


/* ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ */
/* preislisten oder sonstiges mit Preisen in der Zeile am Ende */

.tinymce-wrapper {
	position: relative;
	display: block;
	width: 100%;
}

.tinymce-text {
	display: block;
	text-align: inherit;
	/* übernimmt links oder zentriert */
}

.tinymce-price {
	position: absolute;
	right: 0;
	top: 0;
	white-space: nowrap;
	font: inherit;
}




/* ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ */
/* markiertest Bild rund machen */


.tinymce-img-round {
	border-radius: 50%;
	aspect-ratio: 1 / 1;
	object-fit: cover;
	display: inline-block;
}


/* ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ */
/* Template Textfluss in Spalten  */


.columns-3 {
	column-count: 4;
	column-gap: 2rem;
}



/* ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ */
/* virtuelles DIN A4 Blatt im TinyCME Editor */


/* Container muss relative Position haben */
.tox-editor-container {
	position: relative;
}


.a4-overlay {
	position: absolute;
	width: 100ch;
	/* Breite in Zeichen 85ch*/
	height: 70em;
	/* Höhe in Zeilen 65em*/
	top: 0;
	/* 2 em Abstand vom oberen Rand */
	left: 50%;
	/* zentriert horizontal */
	transform: translateX(-50%);
	/* genau zentrieren */
	pointer-events: none;
	background-color: rgba(194, 224, 244, 0.35);
	border-bottom: 2px dotted red;
	z-index: 5;
}


/* hintergrund wird nicht ausgedruckt  */
@media print {
	.a4-overlay {
		display: none !important;
	}
}


body#tinymce.editor-paper {
	/* background: #f9f9f9; */
	max-width: 800px;
	/* margin: 20px auto;  */
	margin: 0px auto;
	padding: 40px !important;
	/* box-shadow: 0 0 10px rgba(0,0,0,0.1); */
	box-sizing: border-box;
}


/* ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ */
/* css multi columns */


.tinymce-multicolumn {
	column-width: 280px;
	column-gap: 20px;
	column-rule: 1px solid #000;
}

/* Highlight */
.tinymce-multicolumn,
[style*="column-count"] {
	transition: box-shadow .15s ease, background .15s ease;
}

.tinymce-multicolumn.mce-selected,
[style*="column-count"].mce-selected {
	box-shadow: 0 0 2px rgba(0, 0, 0, 0.2);
	outline: 2px dashed #2276d2;
	background: rgba(34, 118, 210, .05);
}


.mc-static>* {
	break-inside: avoid;
	-webkit-column-break-inside: avoid;
	page-break-inside: avoid;
}


/* ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ */


.tinymce-columns {
	display: flex;
	gap: 20px;
	margin: 1em 0;
}

.tinymce-columns .column {
	flex: 1;
	padding: 6px;
	border: 1px solid transparent;
}

.tinymce-columns[data-mce-selected] .column {
	border: 1px solid #3399ff;
	background: #e6f0ff;
}


/* Responsive: Spalten untereinander auf mobilen Geräten  */
@media (max-width: 800px) {
	.tinymce-columns {
		flex-direction: column;
	}
}





/* ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ */
/* für das Template */


/* ------------------------------- */
/* Text */
/* ------------------------------- */
/*  | */
/* Bild		| Text */
/*  | */
/* ------------------------------- */
/* Text */
/* ------------------------------- */


.tpl-box {
	width: 100%;
	margin: 25px 0;
	border: 2px solid transparent;

	position: relative;
}

.tpl-box:hover {
	border: 2px solid #0078d7;
}



.tpl-top,
.tpl-bottom {
	padding: 18px;
}

.tpl-middle {
	display: grid;
	grid-template-columns: 260px 1fr;
	min-height: 220px;
}



.tpl-image {
	min-height: 250px;
	/* wenn nur height steht wird unter dem Bild die Farbe des Template nicht angezeigt */
	/* height: 250px; */
	overflow: hidden;
}

.tpl-image img {
	width: 100%;
	height: 250px;
	object-fit: cover;
	display: block;
}


.tpl-image:focus {
	border: 2px solid #0078d7;
	background: #f0f8f8;
}


.tpl-text {
	padding: 20px;
	/* background: #ffffff; */
}

.tpl-text p {
	margin: 0 0 10px 0;
}

.tpl-edit {
	min-height: 50px;
	outline: none;

	/* border: 1px dashed #ccc; */
}

.tpl-edit:focus {
	/* outline: 2px solid #0078d7; */

	/* border: 2px solid #0078d7; */
}

/* verhindert Kollabieren leerer Felder */
.tpl-top:empty::before,
.tpl-bottom:empty::before,
.tpl-text:empty::before,
.tpl-image:empty::before {
	content: "\00a0";
	display: block;
}

/* sorgt dafür, dass der Bereich klickbar bleibt */
.tpl-top,
.tpl-bottom,
.tpl-text,
.tpl-image {
	min-height: 40px;
}


/* Responsive */
@media (max-width: 700px) {
	.tpl-middle {
		grid-template-columns: 1fr;
	}

	.tpl-image {
		height: 220px;
	}

	.grid-box.responsive {
		grid-template-columns: 1fr !important;
	}

	.grid-box.responsive .grid-cell {
		grid-column: 1/2 !important;
		grid-row: auto !important;
	}


}



/* ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ */



.menu-card {
	width: 35%;
	border: 3px solid #000;
	margin-bottom: 2em;
}

.menu-header {
	font-size: 20px;
	font-weight: bold;
	text-align: center;
	border-bottom: 3px solid #000;
	padding: 0.5em 0;
}

.menu-item {
	display: flex;
	justify-content: space-between;
	padding: 0.5em;
}

.menu-text {
	flex: 3;
	text-align: center;
}

.menu-price {
	flex: 1;
	text-align: right;
}

.menu-price p {
	margin: 0.5em 0;
}

.menu-text hr {
	border: none;
	border-top: 1px solid #000;
	width: 50%;
	margin: 1em auto;
}


/* ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ */















/* https: //nekocalc.com/de/px-zu-rem-umrechner */