/*
 * MME Kursplan – Frontend
 * Schrift erbt vom Theme/Elementor. Farben über Custom Properties,
 * im Elementor-Widget unter "Stil" einstellbar.
 */

.mkp {
	--mkp-accent: #2f5d62;
	--mkp-on-accent: #ffffff;
	--mkp-border: #e3e1dc;
	--mkp-surface: #ffffff;
	--mkp-radius: 10px;
	--mkp-danger: #a3352b;
	--mkp-success: #2b7a4b;
	--mkp-muted: color-mix(in srgb, currentColor 64%, transparent);
	--mkp-soft: color-mix(in srgb, currentColor 5%, transparent);
	--mkp-field: color-mix(in srgb, currentColor 28%, transparent);

	color: var(--mkp-text);
	position: relative;
}

.mkp *,
.mkp *::before,
.mkp *::after {
	box-sizing: border-box;
}

/* ---------------------------------------------------------------- */
/* Filter                                                           */
/* ---------------------------------------------------------------- */

.mkp__filter {
	display: flex;
	flex-wrap: wrap;
	gap: 0.5rem;
	margin: 0 0 1.25rem;
}

.mkp .mkp__chip,
.mkp .mkp__chip:hover,
.mkp .mkp__chip:focus {
	appearance: none;
	margin: 0;
	padding: 0.45em 1em;
	border: 1px solid var(--mkp-border);
	border-radius: 999px;
	background: transparent;
	color: inherit;
	font: inherit;
	font-size: 0.9em;
	line-height: 1.3;
	text-transform: none;
	letter-spacing: normal;
	cursor: pointer;
	box-shadow: none;
}

.mkp .mkp__chip:hover {
	border-color: color-mix(in srgb, var(--mkp-accent) 55%, var(--mkp-border));
}

.mkp .mkp__chip[aria-pressed="true"] {
	background: var(--mkp-accent);
	border-color: var(--mkp-accent);
	color: var(--mkp-on-accent);
}

.mkp .mkp__chip:focus-visible {
	outline: 2px solid var(--mkp-accent);
	outline-offset: 2px;
}

.mkp__notice {
	margin: 0 0 1rem;
	padding: 0.75rem 1rem;
	border-radius: var(--mkp-radius);
	background: color-mix(in srgb, var(--mkp-danger) 9%, var(--mkp-surface));
	color: var(--mkp-danger);
}

/* ---------------------------------------------------------------- */
/* Kalender (FullCalendar)                                          */
/* ---------------------------------------------------------------- */

.mkp .fc {
	--fc-border-color: var(--mkp-border);
	--fc-page-bg-color: var(--mkp-surface);
	--fc-neutral-bg-color: var(--mkp-soft);
	--fc-today-bg-color: color-mix(in srgb, var(--mkp-accent) 7%, transparent);
	--fc-now-indicator-color: var(--mkp-accent);
	--fc-list-event-hover-bg-color: color-mix(in srgb, var(--mkp-accent) 6%, transparent);
	--fc-small-font-size: 0.82em;
	font-size: 1em;
	transition: opacity 0.15s ease;
}

.mkp.is-loading .fc-view-harness {
	opacity: 0.55;
}

.mkp .fc a {
	color: inherit;
	text-decoration: none;
	box-shadow: none;
}

/* Kopfzeile */
.mkp .fc .fc-toolbar.fc-header-toolbar {
	margin-bottom: 1.25rem;
	gap: 0.75rem;
	flex-wrap: wrap;
}

.mkp .fc .fc-toolbar.fc-footer-toolbar {
	margin-top: 1rem;
	gap: 0.75rem;
}

.mkp .fc .fc-toolbar-title {
	margin: 0;
	font-size: clamp(1.15rem, 1rem + 0.9vw, 1.6rem);
	font-weight: 600;
	line-height: 1.2;
	letter-spacing: -0.01em;
}

.mkp .fc .fc-button,
.mkp .fc .fc-button:hover,
.mkp .fc .fc-button:focus {
	appearance: none;
	margin: 0;
	padding: 0.45em 0.85em;
	border: 1px solid var(--mkp-border);
	border-radius: calc(var(--mkp-radius) * 0.8);
	background: var(--mkp-surface);
	color: inherit;
	font: inherit;
	font-size: 0.9em;
	font-weight: 500;
	line-height: 1.3;
	text-transform: none;
	letter-spacing: normal;
	box-shadow: none;
}

.mkp .fc .fc-button:hover {
	border-color: color-mix(in srgb, var(--mkp-accent) 55%, var(--mkp-border));
	background: color-mix(in srgb, var(--mkp-accent) 6%, var(--mkp-surface));
}

.mkp .fc .fc-button:focus-visible {
	outline: 2px solid var(--mkp-accent);
	outline-offset: 2px;
	z-index: 2;
}

.mkp .fc .fc-button:disabled {
	opacity: 0.45;
	cursor: default;
}

.mkp .fc .fc-button .fc-icon {
	font-size: 1.15em;
	vertical-align: -0.1em;
}

/* Ansichts-Umschalter als zusammenhängende Gruppe */
.mkp .fc .fc-button-group > .fc-button:not(:first-child) {
	margin-left: -1px;
	border-top-left-radius: 0;
	border-bottom-left-radius: 0;
}

.mkp .fc .fc-button-group > .fc-button:not(:last-child) {
	border-top-right-radius: 0;
	border-bottom-right-radius: 0;
}

.mkp .fc .fc-button-primary:not(:disabled).fc-button-active,
.mkp .fc .fc-button-primary:not(:disabled):active {
	background: var(--mkp-accent);
	border-color: var(--mkp-accent);
	color: var(--mkp-on-accent);
	z-index: 1;
}

/* Raster */
.mkp .fc .fc-scrollgrid {
	border-radius: var(--mkp-radius);
	overflow: hidden;
	background: var(--mkp-surface);
}

.mkp .fc .fc-col-header-cell {
	background: var(--mkp-soft);
}

.mkp .fc .fc-col-header-cell-cushion {
	padding: 0.6em 0.25em;
	font-size: 0.85em;
	font-weight: 500;
	color: var(--mkp-muted);
}

.mkp .fc .fc-daygrid-day-number {
	min-width: 2em;
	margin: 0.3em;
	padding: 0.25em 0.45em;
	border-radius: 999px;
	font-size: 0.85em;
	font-variant-numeric: tabular-nums;
	text-align: center;
}

.mkp .fc .fc-day-today .fc-daygrid-day-number {
	background: var(--mkp-accent);
	color: var(--mkp-on-accent);
	font-weight: 600;
}

.mkp .fc .fc-day-other .fc-daygrid-day-top {
	opacity: 0.4;
}

.mkp .fc .fc-daygrid-day-frame {
	min-height: 6.5em;
}

/* Termine */
.mkp .fc .fc-event {
	cursor: pointer;
}

.mkp .fc .fc-daygrid-block-event,
.mkp .fc .fc-timegrid-event {
	border-radius: calc(var(--mkp-radius) * 0.45);
	border-width: 0;
}

/* Monatsansicht: Uhrzeit und Titel untereinander, Titel darf umbrechen */
.mkp .fc .fc-daygrid-event {
	white-space: normal;
}

.mkp .fc .fc-daygrid-block-event .fc-event-main {
	padding: 0.25em 0.45em 0.3em;
	font-size: 0.8em;
	line-height: 1.25;
}

.mkp .fc .fc-daygrid-block-event .fc-event-main-frame {
	display: block;
}

.mkp .fc .fc-daygrid-block-event .fc-event-time {
	display: block;
	margin: 0 0 0.1em;
	overflow: visible;
	font-weight: 600;
	font-variant-numeric: tabular-nums;
	opacity: 0.9;
}

.mkp .fc .fc-daygrid-block-event .fc-event-title-container {
	display: block;
}

.mkp .fc .fc-daygrid-block-event .fc-event-title {
	position: static;
	display: block;
	overflow: visible;
	white-space: normal;
	text-overflow: clip;
	overflow-wrap: anywhere;
	hyphens: auto;
}

.mkp .fc .fc-timegrid-event .fc-event-main {
	padding: 0.3em 0.45em;
	font-size: 0.82em;
}

.mkp .fc .fc-event:focus-visible,
.mkp .fc .fc-list-event-title:focus-visible {
	outline: 2px solid var(--mkp-accent);
	outline-offset: 2px;
}

.mkp .fc .fc-event.mkp-is-past {
	opacity: 0.45;
}

.mkp .fc .fc-daygrid-more-link {
	font-size: 0.8em;
	font-weight: 500;
	padding: 0.1em 0.4em;
}

.mkp-badge {
	display: inline-block;
	max-width: 100%;
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
	margin-left: 0.45em;
	padding: 0.05em 0.45em;
	border-radius: 4px;
	background: rgba(0, 0, 0, 0.18);
	font-size: 0.85em;
	font-weight: 500;
	line-height: 1.4;
	vertical-align: 0.05em;
}

.mkp .fc .fc-daygrid-event .mkp-badge {
	display: table;
	margin: 0.25em 0 0;
}

.mkp .fc .fc-list .mkp-badge {
	background: color-mix(in srgb, var(--mkp-danger) 12%, transparent);
	color: var(--mkp-danger);
}

/* Liste */
.mkp .fc .fc-list {
	border-radius: var(--mkp-radius);
	overflow: hidden;
	background: var(--mkp-surface);
}

.mkp .fc .fc-list-day-cushion {
	padding: 0.65em 1em;
	background: var(--mkp-soft);
	font-weight: 600;
}

.mkp .fc .fc-list-day-side-text {
	font-weight: 400;
	color: var(--mkp-muted);
}

.mkp .fc .fc-list-event td {
	padding: 0.75em 1em;
}

.mkp .fc .fc-list-event {
	cursor: pointer;
}

.mkp .fc .fc-list-event-time {
	font-variant-numeric: tabular-nums;
	color: var(--mkp-muted);
	white-space: nowrap;
}

.mkp .fc .fc-list-event-title {
	font-weight: 500;
}

.mkp .fc .fc-list-event-dot {
	border-width: 6px;
}

.mkp .fc .fc-list-empty {
	background: var(--mkp-surface);
	padding: 3rem 1rem;
}

.mkp .fc .fc-list-empty-cushion {
	color: var(--mkp-muted);
}

/* ---------------------------------------------------------------- */
/* Detailfenster                                                    */
/* ---------------------------------------------------------------- */

.mkp-dialog {
	width: min(44rem, calc(100vw - 2rem));
	max-width: none;
	max-height: min(54rem, calc(100dvh - 2rem));
	margin: auto;
	padding: 0;
	border: 0;
	border-radius: calc(var(--mkp-radius) * 1.4);
	background: var(--mkp-surface);
	color: var(--mkp-text);
	box-shadow: 0 1.5rem 4rem rgba(16, 22, 26, 0.28), 0 0 0 1px rgba(16, 22, 26, 0.06);
	overflow: hidden;
}

.mkp-dialog[open] {
	display: flex;
	flex-direction: column;
	animation: mkp-rise 0.22s ease-out;
}

.mkp-dialog::backdrop {
	background: rgba(16, 22, 26, 0.5);
	animation: mkp-fade 0.22s ease-out;
}

html:has(.mkp-dialog[open]) {
	overflow: hidden;
}

@keyframes mkp-rise {
	from { opacity: 0; transform: translateY(14px); }
	to { opacity: 1; transform: none; }
}

@keyframes mkp-fade {
	from { opacity: 0; }
	to { opacity: 1; }
}

.mkp-dialog__frame {
	flex: 1 1 auto;
	min-height: 0;
	overflow-y: auto;
	overscroll-behavior: contain;
}

.mkp-dialog .mkp-dialog__close,
.mkp-dialog .mkp-dialog__close:hover,
.mkp-dialog .mkp-dialog__close:focus {
	appearance: none;
	position: absolute;
	top: 0.75rem;
	right: 0.75rem;
	z-index: 3;
	display: grid;
	place-items: center;
	width: 2.5rem;
	height: 2.5rem;
	margin: 0;
	padding: 0;
	border: 0;
	border-radius: 999px;
	background: color-mix(in srgb, var(--mkp-surface) 88%, transparent);
	color: inherit;
	box-shadow: 0 1px 3px rgba(16, 22, 26, 0.18);
	cursor: pointer;
}

.mkp-dialog .mkp-dialog__close:hover {
	background: var(--mkp-surface);
}

.mkp-dialog .mkp-dialog__close:focus-visible {
	outline: 2px solid var(--mkp-accent);
	outline-offset: 2px;
}

.mkp-dialog__status {
	margin: 0;
	padding: 3rem 2rem;
	text-align: center;
	color: var(--mkp-muted);
}

.mkp-detail__media {
	margin: 0;
	aspect-ratio: 16 / 7;
	overflow: hidden;
	background: var(--mkp-soft);
}

.mkp-detail__media img {
	display: block;
	width: 100%;
	height: 100%;
	max-width: none;
	margin: 0;
	object-fit: cover;
	border-radius: 0;
}

.mkp-detail__body {
	padding: clamp(1.25rem, 3.5vw, 2.25rem);
}

.mkp-detail__head {
	display: grid;
	grid-template-columns: auto minmax(0, 1fr);
	gap: 1.1rem;
	align-items: start;
	padding-right: 2.5rem;
}

.mkp-detail__media + .mkp-detail__body .mkp-detail__head {
	padding-right: 0;
}

/* Datumskachel in der Kursfarbe: das eine markante Element */
.mkp-datebox {
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	min-width: 4.4rem;
	padding: 0.6rem 0.6rem 0.65rem;
	border-radius: var(--mkp-radius);
	background: var(--mkp-course, var(--mkp-accent));
	color: var(--mkp-course-text, var(--mkp-on-accent));
	line-height: 1;
	text-align: center;
}

.mkp-datebox__day {
	font-size: 2.1rem;
	font-weight: 650;
	letter-spacing: -0.03em;
	font-variant-numeric: tabular-nums;
}

.mkp-datebox__month {
	margin-top: 0.3rem;
	font-size: 0.85rem;
	font-weight: 500;
}

.mkp-detail__cats {
	margin: 0 0 0.3rem;
	font-size: 0.875em;
	color: var(--mkp-muted);
}

.mkp-dialog .mkp-detail__title {
	margin: 0;
	padding: 0;
	font-size: clamp(1.35rem, 1.1rem + 1vw, 1.85rem);
	font-weight: 650;
	line-height: 1.18;
	letter-spacing: -0.01em;
	color: inherit;
	outline: none;
}

.mkp-detail__when {
	margin: 0.45rem 0 0;
	line-height: 1.45;
	color: var(--mkp-muted);
	font-variant-numeric: tabular-nums;
}

.mkp-facts {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(11rem, 1fr));
	gap: 1rem 1.5rem;
	margin: 1.6rem 0;
	padding: 1.1rem 0;
	border-top: 1px solid var(--mkp-border);
	border-bottom: 1px solid var(--mkp-border);
}

.mkp-facts dt {
	margin: 0 0 0.15rem;
	font-size: 0.82em;
	font-weight: 400;
	color: var(--mkp-muted);
}

.mkp-facts dd {
	margin: 0;
	font-weight: 500;
	line-height: 1.4;
}

.mkp-facts__item.is-full dd {
	color: var(--mkp-danger);
}

.mkp-note {
	margin: 0 0 1.4rem;
	padding: 0.85rem 1rem;
	border-radius: var(--mkp-radius);
	background: color-mix(in srgb, var(--mkp-course, var(--mkp-accent)) 10%, var(--mkp-surface));
	line-height: 1.5;
}

.mkp-detail__text {
	max-width: 68ch;
	line-height: 1.65;
}

.mkp-detail__text > :first-child {
	margin-top: 0;
}

.mkp-detail__text > :last-child {
	margin-bottom: 0;
}

.mkp-dialog .mkp-section-title {
	margin: 0 0 0.75rem;
	font-size: 1.05rem;
	font-weight: 600;
	line-height: 1.3;
	color: inherit;
}

.mkp-dates {
	margin-top: 1.9rem;
}

.mkp-dates__list {
	display: grid;
	gap: 0.35rem;
	margin: 0;
	padding: 0;
	list-style: none;
}

.mkp-dates__item {
	display: grid;
	grid-template-columns: minmax(7.5rem, auto) 1fr auto;
	gap: 0.25rem 1rem;
	align-items: baseline;
	margin: 0;
	padding: 0.55rem 0.8rem;
	border-radius: calc(var(--mkp-radius) * 0.7);
	background: var(--mkp-soft);
	font-size: 0.95em;
	font-variant-numeric: tabular-nums;
}

.mkp-dates__item::before {
	content: none;
}

.mkp-dates__item.is-current {
	background: color-mix(in srgb, var(--mkp-course, var(--mkp-accent)) 12%, var(--mkp-surface));
	box-shadow: inset 3px 0 0 var(--mkp-course, var(--mkp-accent));
}

.mkp-dates__item.is-past {
	opacity: 0.5;
}

.mkp-dates__date {
	font-weight: 500;
}

.mkp-dates__state {
	color: var(--mkp-muted);
	white-space: nowrap;
	font-size: 0.92em;
}

.mkp-dates__item.is-full .mkp-dates__state {
	color: var(--mkp-danger);
}

/* ---------------------------------------------------------------- */
/* Anmeldung                                                        */
/* ---------------------------------------------------------------- */

.mkp-booking {
	margin-top: 2rem;
	padding-top: 1.6rem;
	border-top: 1px solid var(--mkp-border);
}

.mkp-booking--link {
	border-top: 0;
	padding-top: 0;
}

.mkp-form {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 1rem 1.1rem;
	margin: 0;
}

.mkp-field {
	display: flex;
	flex-direction: column;
	gap: 0.35rem;
	min-width: 0;
}

.mkp-field--full,
.mkp-check,
.mkp-form__msg,
.mkp-form__actions {
	grid-column: 1 / -1;
}

.mkp-dialog .mkp-field label {
	margin: 0;
	font-size: 0.9em;
	font-weight: 500;
	color: inherit;
}

.mkp-optional {
	font-weight: 400;
	color: var(--mkp-muted);
}

.mkp-dialog .mkp-form input[type="text"],
.mkp-dialog .mkp-form input[type="email"],
.mkp-dialog .mkp-form input[type="tel"],
.mkp-dialog .mkp-form input[type="number"],
.mkp-dialog .mkp-form select,
.mkp-dialog .mkp-form textarea {
	width: 100%;
	max-width: none;
	min-height: 2.9rem;
	margin: 0;
	padding: 0.65em 0.85em;
	border: 1px solid var(--mkp-field);
	border-radius: calc(var(--mkp-radius) * 0.7);
	background: var(--mkp-surface);
	color: inherit;
	font: inherit;
	font-size: 1rem;
	line-height: 1.4;
	box-shadow: none;
}

.mkp-dialog .mkp-form textarea {
	min-height: 5.5rem;
	resize: vertical;
}

.mkp-dialog .mkp-form input:focus,
.mkp-dialog .mkp-form select:focus,
.mkp-dialog .mkp-form textarea:focus {
	border-color: var(--mkp-accent);
	outline: 2px solid color-mix(in srgb, var(--mkp-accent) 30%, transparent);
	outline-offset: 0;
}

.mkp-check {
	display: flex;
	gap: 0.65rem;
	align-items: flex-start;
	font-size: 0.9em;
	line-height: 1.5;
}

.mkp-dialog .mkp-check input[type="checkbox"] {
	flex: none;
	width: 1.15rem;
	height: 1.15rem;
	margin: 0.15rem 0 0;
	accent-color: var(--mkp-accent);
}

.mkp-check label {
	margin: 0;
	font-weight: 400;
}

.mkp-check a {
	color: inherit;
	text-decoration: underline;
	text-underline-offset: 0.15em;
}

.mkp-hp {
	position: absolute !important;
	left: -9999px !important;
	width: 1px;
	height: 1px;
	overflow: hidden;
}

.mkp-form__msg {
	margin: 0;
	color: var(--mkp-danger);
	font-weight: 500;
}

.mkp-form__msg:empty {
	display: none;
}

.mkp-dialog .mkp-btn,
.mkp-dialog .mkp-btn:visited,
.mkp-dialog .mkp-btn:hover,
.mkp-dialog .mkp-btn:focus {
	appearance: none;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 0.5rem;
	min-height: 3rem;
	margin: 0;
	padding: 0.8em 1.6em;
	border: 0;
	border-radius: calc(var(--mkp-radius) * 0.8);
	background: var(--mkp-accent);
	color: var(--mkp-on-accent);
	font: inherit;
	font-weight: 600;
	line-height: 1.2;
	text-decoration: none;
	text-transform: none;
	letter-spacing: normal;
	box-shadow: none;
	cursor: pointer;
}

.mkp-dialog .mkp-btn:hover {
	background: color-mix(in srgb, var(--mkp-accent) 86%, #000);
}

.mkp-dialog .mkp-btn:focus-visible {
	outline: 2px solid var(--mkp-accent);
	outline-offset: 3px;
}

.mkp-dialog .mkp-btn:disabled {
	opacity: 0.6;
	cursor: progress;
}

.mkp-closed {
	margin: 0;
	padding: 0.9rem 1rem;
	border-radius: var(--mkp-radius);
	background: var(--mkp-soft);
}

.mkp-success {
	display: flex;
	gap: 0.85rem;
	align-items: flex-start;
	padding: 1.1rem 1.2rem;
	border-radius: var(--mkp-radius);
	background: color-mix(in srgb, var(--mkp-success) 10%, var(--mkp-surface));
	outline: none;
}

.mkp-success svg {
	flex: none;
	color: var(--mkp-success);
}

.mkp-success p {
	margin: 0;
	line-height: 1.5;
}

.mkp-plain {
	margin: 0;
	padding-left: 1.2em;
}

/* ---------------------------------------------------------------- */
/* Klein                                                            */
/* ---------------------------------------------------------------- */

@media (max-width: 600px) {
	.mkp-dialog {
		width: 100%;
		max-height: 92dvh;
		margin: auto 0 0;
		border-radius: calc(var(--mkp-radius) * 1.4) calc(var(--mkp-radius) * 1.4) 0 0;
	}

	.mkp-form {
		grid-template-columns: 1fr;
	}

	.mkp-dialog .mkp-btn {
		width: 100%;
	}

	.mkp-dates__item {
		grid-template-columns: 1fr auto;
	}

	.mkp-dates__time {
		grid-column: 1;
		grid-row: 2;
		color: var(--mkp-muted);
	}

	.mkp-dates__state {
		grid-column: 2;
		grid-row: 1 / span 2;
		align-self: center;
	}

}

/* Schmales Widget (Smartphone, schmale Spalte): Liste als gestapelte Zeilen
   Uhrzeit oben, darunter Farbpunkt und Kursname. Kein seitliches Überlaufen. */
.mkp.mkp--narrow .fc .fc-list-table,
.mkp.mkp--narrow .fc .fc-list-table tbody,
.mkp.mkp--narrow .fc .fc-list-table tr,
.mkp.mkp--narrow .fc .fc-list-table th,
.mkp.mkp--narrow .fc .fc-list-table td {
	display: block;
	width: auto;
	border: 0;
}

.mkp.mkp--narrow .fc .fc-list-day,
.mkp.mkp--narrow .fc .fc-list-event {
	border-top: 1px solid var(--mkp-border);
}

.mkp.mkp--narrow .fc .fc-list-table tr:first-child {
	border-top: 0;
}

.mkp.mkp--narrow .fc .fc-list-day-cushion {
	display: flex;
	justify-content: space-between;
	align-items: baseline;
	gap: 0.75rem;
	padding: 0.6em 0.9em;
}

.mkp.mkp--narrow .fc .fc-list-day-cushion::after {
	display: none;
}

.mkp.mkp--narrow .fc .fc-list-day-side-text {
	float: none;
	font-size: 0.9em;
}

.mkp.mkp--narrow .fc .fc-list-table tr.fc-list-event {
	display: grid;
	grid-template-columns: auto minmax(0, 1fr);
	align-items: center;
	column-gap: 0.6em;
	padding: 0.75em 0.9em;
}

.mkp.mkp--narrow .fc .fc-list-event td {
	padding: 0;
}

.mkp.mkp--narrow .fc .fc-list-event-time {
	grid-column: 1 / -1;
	margin-bottom: 0.2em;
	font-size: 0.85em;
}

.mkp.mkp--narrow .fc .fc-list-event-graphic {
	grid-column: 1;
}

.mkp.mkp--narrow .fc .fc-list-event-title {
	grid-column: 2;
	overflow-wrap: anywhere;
}

/* Kompakte Kopfzeile (schmales Widget): Titel mittig zwischen den Pfeilen */
.mkp .fc .fc-header-toolbar .fc-toolbar-chunk:nth-child(2) {
	min-width: 0;
	text-align: center;
}

@media (max-width: 600px) {
	.mkp .fc .fc-toolbar-title {
		font-size: 1.1rem;
	}
}

@media (prefers-reduced-motion: reduce) {
	.mkp-dialog[open],
	.mkp-dialog::backdrop {
		animation: none;
	}
}


/* Theme-Reset (z. B. Hello Elementor) färbt jede zweite Tabellenzeile ein – im Kalender neutralisieren.
   "Heute" bleibt markiert, da .fc .fc-day-today spezifischer ist. */
.mkp .fc table tbody > tr > td,
.mkp .fc table tbody > tr > th {
	background-color: transparent;
}


/* ---------------------------------------------------------------- */
/* Website-Design (SiJo Yoga): Detailfenster in den globalen Farben/Schriften */
/* Nutzt die Elementor-Globals, mit festen Werten als Fallback.       */
/* ---------------------------------------------------------------- */
.mkp .mkp-dialog{--pad:clamp(1.25rem,4vw,2.25rem);width:min(46rem,calc(100vw - 2rem));border-radius:22px;box-shadow:0 30px 80px -20px rgba(105,62,24,.45);color:var(--e-global-color-mme_c_braun, #693E18);}
.mkp .mkp-dialog::backdrop{background:rgba(60,35,14,.55);-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);}
.mkp .mkp-dialog__frame{scrollbar-width:thin;scrollbar-color:rgba(199,166,100,.6) transparent;}
.mkp .mkp-detail__body{padding:var(--pad);}
.mkp .mkp-detail__head{margin:calc(var(--pad)*-1) calc(var(--pad)*-1) 0;padding:var(--pad) calc(var(--pad) + 2.75rem) calc(var(--pad)*.85) var(--pad);background:var(--e-global-color-primary, #F7F1EE);border-bottom:1px solid rgba(199,166,100,.35);align-items:center;}
.mkp .mkp-datebox{border-radius:14px 0 14px 0;box-shadow:0 8px 18px -10px rgba(105,62,24,.6);}
.mkp .mkp-dialog .mkp-detail__title{font-family:var(--e-global-typography-mme_t_h4-font-family, inherit),serif;font-weight:var(--e-global-typography-mme_t_h4-font-weight, 600);font-size:clamp(1.3rem,1.05rem + 1vw,1.75rem);letter-spacing:0;color:var(--e-global-color-secondary, #693E18);}
.mkp .mkp-detail__when{color:var(--e-global-color-mme_c_gold_text, #7E5F28);}
.mkp .mkp-dialog .mkp-dialog__close,.mkp .mkp-dialog .mkp-dialog__close:hover,.mkp .mkp-dialog .mkp-dialog__close:focus{background:var(--e-global-color-mme_c_weiss, #FFFFFF);color:var(--e-global-color-secondary, #693E18);border:1px solid rgba(199,166,100,.6);box-shadow:0 4px 12px -4px rgba(105,62,24,.35);}
.mkp .mkp-dialog .mkp-dialog__close:hover{background:var(--e-global-color-accent, #C7A664);color:var(--e-global-color-mme_c_creme, #F7F1EE);}
.mkp .mkp-facts{margin:.4rem 0 1.5rem;padding:1.1rem 0;border-top:0;border-color:rgba(199,166,100,.35);grid-template-columns:repeat(auto-fit,minmax(9rem,1fr));}
.mkp .mkp-facts dt{font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:1.5px;color:var(--e-global-color-mme_c_gold_text, #7E5F28);}
.mkp .mkp-facts dd{font-size:1.05em;font-weight:600;color:var(--e-global-color-secondary, #693E18);}
.mkp .mkp-note{background:var(--e-global-color-mme_c_creme_hell, #FEF5E4);border-left:3px solid var(--e-global-color-accent, #C7A664);border-radius:0 12px 12px 0;color:var(--e-global-color-secondary, #693E18);}
.mkp .mkp-detail__text{max-width:none;}
.mkp .mkp-detail__text img{display:block;width:100%;height:auto;max-height:340px;object-fit:cover;border-radius:16px;margin:1rem 0;}
.mkp .mkp-dialog .mkp-section-title{font-family:var(--e-global-typography-mme_t_h5-font-family, inherit),serif;font-weight:var(--e-global-typography-mme_t_h5-font-weight, 600);font-size:1.2rem;color:var(--e-global-color-secondary, #693E18);padding-bottom:.5rem;margin-bottom:1rem;border-bottom:2px solid var(--e-global-color-accent, #C7A664);display:inline-block;}
.mkp .mkp-dates__list{max-height:16.5rem;overflow-y:auto;padding-right:4px;scrollbar-width:thin;scrollbar-color:rgba(199,166,100,.6) transparent;}
.mkp .mkp-dates__item{background:var(--e-global-color-mme_c_grau_hell, #F5F5F3);border-radius:10px;}
.mkp .mkp-dates__item.is-current{background:var(--e-global-color-mme_c_creme_hell, #FEF5E4);box-shadow:inset 3px 0 0 var(--e-global-color-accent, #C7A664);}
.mkp .mkp-dates__date{color:var(--e-global-color-secondary, #693E18);font-weight:600;}
.mkp .mkp-dates__time{color:var(--e-global-color-mme_c_gold_text, #7E5F28);}
.mkp .mkp-booking{margin:2rem calc(var(--pad)*-1) calc(var(--pad)*-1);padding:var(--pad);background:var(--e-global-color-primary, #F7F1EE);border-top:1px solid rgba(199,166,100,.35);}
.mkp .mkp-dialog .mkp-field label{font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:1.5px;color:var(--e-global-color-secondary, #693E18);}
.mkp .mkp-optional{text-transform:none;letter-spacing:0;font-weight:400;color:var(--e-global-color-mme_c_gold_text, #7E5F28);}
.mkp .mkp-dialog .mkp-form input[type=text],.mkp .mkp-dialog .mkp-form input[type=email],.mkp .mkp-dialog .mkp-form input[type=tel],.mkp .mkp-dialog .mkp-form input[type=number],.mkp .mkp-dialog .mkp-form select,.mkp .mkp-dialog .mkp-form textarea{background:var(--e-global-color-mme_c_weiss, #FFFFFF);border:1px solid rgba(105,62,24,.18);border-radius:8px;color:var(--e-global-color-secondary, #693E18);}
.mkp .mkp-dialog .mkp-form input:focus,.mkp .mkp-dialog .mkp-form select:focus,.mkp .mkp-dialog .mkp-form textarea:focus{border-color:var(--e-global-color-accent, #C7A664);outline:2px solid rgba(199,166,100,.3);}
.mkp .mkp-dialog .mkp-check input[type=checkbox]{accent-color:var(--e-global-color-accent, #C7A664);}
.mkp .mkp-check{color:var(--e-global-color-secondary, #693E18);}
.mkp .mkp-dialog .mkp-btn,.mkp .mkp-dialog .mkp-btn:visited,.mkp .mkp-dialog .mkp-btn:focus{background:var(--e-global-color-accent, #C7A664);color:var(--e-global-color-mme_c_creme, #F7F1EE);border:1px solid var(--e-global-color-mme_c_gold, #C7A664);border-radius:16px 0 16px 0;font-family:var(--e-global-typography-accent-font-family, inherit),sans-serif;font-weight:700;padding:.9em 2em;transition:all .3s ease;}
.mkp .mkp-dialog .mkp-btn:hover{background:var(--e-global-color-mme_c_creme, #F7F1EE);color:var(--e-global-color-secondary, #693E18);border-radius:0 16px 0 16px;}
.mkp .mkp-success{background:var(--e-global-color-mme_c_creme_hell, #FEF5E4);color:var(--e-global-color-secondary, #693E18);}
@media (min-width:601px){.mkp .mkp-dates__list{grid-template-columns:1fr 1fr;}}
@media (max-width:600px){
.mkp .mkp-dialog{border-radius:22px 22px 0 0;}
.mkp .mkp-dialog::before{content:'';position:absolute;top:8px;left:50%;transform:translateX(-50%);width:42px;height:4px;border-radius:4px;background:rgba(105,62,24,.25);z-index:4;}
.mkp .mkp-dialog{width:100%;max-width:100%;margin:auto 0 0;}
.mkp .mkp-facts{grid-template-columns:repeat(3,minmax(0,1fr));gap:.75rem 1rem;}
.mkp .mkp-facts dd{font-size:1em;word-break:break-word;}
.mkp .mkp-datebox{min-width:3.6rem;padding:.5rem .5rem .55rem;}
.mkp .mkp-datebox__day{font-size:1.7rem;}
.mkp .mkp-detail__head{gap:.85rem;}
.mkp .mkp-dates__list{max-height:none;overflow:visible;}
.mkp .mkp-detail__head{padding-top:calc(var(--pad) + .5rem);}
}

/* Wochenansicht: Beschriftung "ganztägig" nicht abschneiden */
.mkp .fc .fc-timegrid-axis-cushion{max-width:none;white-space:nowrap;font-size:.78em;}
.mkp .fc .fc-timegrid-slot-label-cushion{white-space:nowrap;}
