/* ITX Menüplan – Front-End-Ausgabe.
   Bewusst zurückhaltend gehalten, damit das Modul Schrift und Farben des Themes erbt. */

.itx-menuplan {
	--itx-mp-border: rgba(0, 0, 0, 0.12);
	--itx-mp-muted: rgba(0, 0, 0, 0.6);
	margin: 0 0 2rem;
}

.itx-menuplan__title {
	margin: 0 0 1.25rem;
}

/* --- Menü-Slots eines Tages (in beiden Layouts identisch) --- */

.itx-menuplan__menus {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 1.25rem;
}

.itx-menuplan__menu {
	min-width: 0;
}

.itx-menuplan__label {
	margin: 0 0 0.4rem;
	font-size: 1rem;
	line-height: 1.3;
}

.itx-menuplan__text {
	white-space: pre-line;
	line-height: 1.5;
}

/* --- Default-Layout: Blöcke untereinander mit Trennlinie --- */

.itx-menuplan--default .itx-menuplan__day {
	margin: 0 0 2rem;
	padding: 0 0 1.5rem;
	border-bottom: 1px solid var(--itx-mp-border);
}

.itx-menuplan--default .itx-menuplan__day:last-child {
	border-bottom: 0;
	margin-bottom: 0;
}

.itx-menuplan--default .itx-menuplan__date {
	margin: 0 0 1rem;
}

/* --- Accordion-Layout (Elementor-inspired, aber ohne Framework-Kopplung) --- */

.itx-menuplan--accordion .itx-menuplan__day--accordion {
	border: 1px solid var(--itx-mp-border);
	border-radius: .25em;
	margin: 0 0 .5rem;
	padding: 0;
}

.itx-menuplan--accordion .itx-menuplan__day--accordion:last-child {
	margin-bottom: 0;
}

.itx-menuplan--accordion .itx-menuplan__day-summary {
	cursor: pointer;
	padding: .75rem 1rem;
	list-style: none;
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 1rem;
}

.itx-menuplan--accordion .itx-menuplan__day-summary::-webkit-details-marker {
	display: none;
}

.itx-menuplan--accordion .itx-menuplan__day-summary .itx-menuplan__date {
	margin: 0;
	font-size: 1.05rem;
	font-weight: 600;
}

/* Plus/Minus-Icon aus zwei Balken – Fallback, wenn kein Upload-Icon gesetzt ist. */
.itx-menuplan--accordion .itx-menuplan__day-icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 1em;
	height: 1em;
	position: relative;
	flex: 0 0 auto;
	line-height: 0;
}

.itx-menuplan__day-icon-fallback {
	display: inline-block;
	width: 1em;
	height: 1em;
	position: relative;
}

.itx-menuplan__day-icon-fallback::before,
.itx-menuplan__day-icon-fallback::after {
	content: "";
	position: absolute;
	background: currentColor;
	top: 50%;
	left: 50%;
	transform: translate(-50%, -50%);
}

.itx-menuplan__day-icon-fallback::before {
	width: .8em;
	height: 2px;
}

.itx-menuplan__day-icon-fallback::after {
	width: 2px;
	height: .8em;
}

.itx-menuplan--accordion details[open] .itx-menuplan__day-icon-fallback::after {
	display: none;
}

/* Hochgeladene Icons – beide im DOM (open/close), passendes je nach details[open]. */
.itx-menuplan__day-icon-img,
.itx-menuplan__day-icon-svg {
	display: inline-block;
	width: 1em;
	height: 1em;
	vertical-align: middle;
	/* Inline-SVG erbt Textfarbe: 'fill="currentColor"' in der SVG-Datei nutzen,
	   oder CSS 'fill: currentColor' auf .itx-menuplan__day-icon-svg. */
}

.itx-menuplan__day-icon-svg {
	fill: currentColor;
}

.itx-menuplan__day-icon-img--close,
.itx-menuplan__day-icon-svg--close {
	display: none;
}

.itx-menuplan--accordion details[open] .itx-menuplan__day-icon-img--open,
.itx-menuplan--accordion details[open] .itx-menuplan__day-icon-svg--open {
	display: none;
}

.itx-menuplan--accordion details[open] .itx-menuplan__day-icon-img--close,
.itx-menuplan--accordion details[open] .itx-menuplan__day-icon-svg--close {
	display: inline-block;
}

.itx-menuplan--accordion .itx-menuplan__day-body {
	padding: 0 1rem 1rem;
}

/* --- Empty-Meldung --- */

.itx-menuplan__empty {
	color: var(--itx-mp-muted);
	font-style: italic;
	white-space: pre-line;
}

/* --- Standard-Text-Blöcke ([itx_menuplan_abschluss] etc.) --- */

.itx-menuplan__standard-text {
	white-space: pre-line;
	line-height: 1.5;
	margin: 0 0 1rem;
}

.itx-menuplan__standard-text:last-child {
	margin-bottom: 0;
}

/* --- Sprungmarken-Navigation ([itx_menuplan_navigation]) --- */

.itx-menuplan__nav {
	margin: 0 0 1.5rem;
}

.itx-menuplan__nav-title {
	margin: 0 0 .5rem;
	font-size: 1.1rem;
}

.itx-menuplan__nav-list {
	list-style: none;
	padding: 0;
	margin: 0;
	display: flex;
	flex-wrap: wrap;
	gap: .4rem .6rem;
}

.itx-menuplan__nav-item {
	margin: 0;
}

.itx-menuplan__nav-link {
	display: inline-block;
	padding: .25em .6em;
	border: 1px solid rgba(0, 0, 0, 0.12);
	border-radius: .25em;
	text-decoration: none;
	line-height: 1.3;
}

/* Fokus-Rahmen beim Anspringen einer Tages-Section (Barrierefreiheit). */
.itx-menuplan__day:target {
	outline: 2px solid rgba(0, 0, 0, 0.12);
	outline-offset: 4px;
	border-radius: .25em;
}

/* --- Responsive: auf schmalen Screens Menü-Slots untereinander --- */

@media (max-width: 782px) {
	.itx-menuplan__menus {
		grid-template-columns: 1fr;
	}
}
