/* Zentrale Frontend-Darstellung der Terminplanung. */
.event-planning {
	--event-accent: var(--design-accent, #176e66);
	--event-border: var(--design-border, #dfe7e5);
	--event-surface: var(--design-surface, #fff);
	--event-muted: #687773;
	width: 100%;
	box-sizing: border-box;
}
.event-planning__header { margin: 0 0 clamp(1.5rem, 4vw, 3rem); }
.event-planning__eyebrow { margin: 0 0 .45rem; color: var(--event-accent); font-size: .75rem; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; }
.event-planning__header h1,
.event-planning__header h2,
.event-planning__header h3,
.event-planning__header h4,
.event-planning__header h5,
.event-planning__header h6,
.event-planning__header > div { margin: 0; font-size: clamp(2rem, 5vw, 4.5rem); line-height: .98; }
.event-planning__items { display: grid; grid-template-columns: repeat(var(--event-columns-mobile, 1), minmax(0, 1fr)); gap: clamp(1rem, 2.2vw, 2rem); align-items: stretch; }
.event-planning__month { grid-column: 1 / -1; margin: 1.5rem 0 0; padding-bottom: .7rem; border-bottom: 1px solid var(--event-border); font-size: clamp(1.2rem, 2vw, 1.7rem); }
.event-card { min-width: 0; overflow: hidden; border: 1px solid var(--event-border); border-radius: 16px; background: var(--event-surface); box-shadow: 0 8px 28px rgba(27, 48, 44, .06); }
.event-planning--static.event-planning--cards .event-planning__items { grid-auto-rows:1fr; }
.event-planning--cards .event-card { display:flex; flex-direction:column; height:100%; }
.event-planning--cards .event-card__content { flex:1 1 auto; }
.event-card__media { display: flex; align-items: center; justify-content: center; width: 100%; overflow: hidden; background: rgba(127, 143, 139, .08); }
.event-card__media img { display: block; width: 100%; height: auto; max-height: min(70vh, 780px); object-fit: contain; object-position: center; transition: transform .35s ease; }
.event-card__media:hover img { transform: scale(1.015); }
.event-planning--ratio-16-9 .event-card__media { aspect-ratio: 16 / 9; }
.event-planning--ratio-4-3 .event-card__media { aspect-ratio: 4 / 3; }
.event-planning--ratio-1-1 .event-card__media { aspect-ratio: 1 / 1; }
.event-planning--ratio-3-4 .event-card__media { aspect-ratio: 3 / 4; }
.event-planning--ratio-16-9 .event-card__media img,
.event-planning--ratio-4-3 .event-card__media img,
.event-planning--ratio-1-1 .event-card__media img,
.event-planning--ratio-3-4 .event-card__media img { height: 100%; max-height: none; }
.event-planning--fit-cover .event-card__media img { object-fit: cover; }
.event-card__content { padding: clamp(1.1rem, 2.3vw, 1.75rem); }
.event-card__date { display: block; margin-bottom: .65rem; color: var(--event-accent); font-size: .78rem; font-weight: 700; letter-spacing: .045em; line-height: 1.45; text-transform: uppercase; }
.event-card__title { margin: 0; font-size: clamp(1.15rem, 2vw, 1.6rem); line-height: 1.2; }
.event-card__location { margin: .8rem 0 0; color: var(--event-muted); }
.event-card__location a { color: inherit; text-decoration-thickness: 1px; text-underline-offset: .18em; }
.event-card__details { margin-top: 1.15rem; padding-top: 1rem; border-top: 1px solid var(--event-border); }
.event-card__details summary { color: var(--event-accent); font-weight: 650; cursor: pointer; }
.event-card__information { margin-top: 1rem; line-height: 1.65; }
.event-planning__empty { padding: 1.25rem 0; color: var(--event-muted); }

/* Kompakte Liste: Bild und Inhalt stehen nebeneinander. */
.event-planning--list .event-planning__items { grid-template-columns: 1fr; gap: .85rem; }
.event-planning--list .event-card { display: grid; grid-template-columns: minmax(150px, 260px) 1fr; }
.event-planning--list .event-card__media { height: 100%; min-height: 160px; }
.event-planning--list .event-card__media img { height: 100%; max-height: 260px; }
.event-planning--list.event-planning--ratio-auto .event-card__media img { object-fit: contain; }
.event-planning--list .event-card--no-image { display: block; }

/* Zeitleiste mit bewusst ruhiger Führung. */
.event-planning--timeline .event-planning__items { grid-template-columns: 1fr; gap: 0; padding-left: clamp(1.3rem, 3vw, 2.3rem); border-left: 2px solid var(--event-border); }
.event-planning--timeline .event-card { position: relative; display: grid; grid-template-columns: minmax(160px, 240px) 1fr; margin-bottom: 1.2rem; overflow: visible; }
.event-planning--timeline .event-card::before { position: absolute; top: 1.5rem; left: calc(clamp(1.3rem, 3vw, 2.3rem) * -1 - 7px); width: 12px; height: 12px; border: 2px solid var(--event-surface); border-radius: 50%; background: var(--event-accent); box-shadow: 0 0 0 2px var(--event-accent); content: ""; }
.event-planning--timeline .event-card__media { overflow: hidden; border-radius: 15px 0 0 15px; }

/* Slider und Carousel: Touch-Wischen, Scroll-Snap und gemeinsame Navigation. */
.event-planning--slider,
.event-planning--carousel { --event-visible: var(--event-columns-mobile, 1); }
.event-planning--slider { --event-visible: 1; }
.event-planning--slider .event-planning__items,
.event-planning--carousel .event-planning__items {
	display: flex;
	align-items: stretch;
	gap: clamp(.8rem, 2vw, 1.5rem);
	padding: 2px 2px 14px;
	overflow-x: auto;
	overflow-y: hidden;
	border: 0;
	scroll-behavior: smooth;
	scroll-snap-type: x mandatory;
	scrollbar-width: none;
	-webkit-overflow-scrolling: touch;
}
.event-planning--slider .event-planning__items::-webkit-scrollbar,
.event-planning--carousel .event-planning__items::-webkit-scrollbar { display: none; }
.event-planning--slider .event-card,
.event-planning--carousel .event-card {
	display: flex;
	flex-direction: column;
	flex: 0 0 calc((100% - (var(--event-visible) - 1) * clamp(.8rem, 2vw, 1.5rem)) / var(--event-visible));
	margin: 0;
	overflow: hidden;
	scroll-snap-align: start;
}
.event-planning--slider .event-card__content,
.event-planning--carousel .event-card__content { flex:1 1 auto; }
.event-planning--slider .event-card::before,
.event-planning--carousel .event-card::before { display: none; }
.event-planning--slider .event-card__media,
.event-planning--carousel .event-card__media { height: auto; min-height: 0; border-radius: 15px 15px 0 0; }
.event-planning__controls { display:flex; align-items:center; justify-content:center; gap:.65rem; margin-top:1.1rem; }
.event-planning__arrow { display:inline-flex; align-items:center; justify-content:center; width:42px; height:42px; padding:0; border:1px solid var(--event-border); border-radius:50%; background:var(--event-surface); color:inherit; cursor:pointer; transition:transform .18s ease, background .18s ease; }
.event-planning__arrow:hover { transform:translateY(-2px); background:rgba(127,143,139,.08); }
.event-planning__dots { display:flex; align-items:center; justify-content:center; gap:7px; min-height:42px; }
.event-planning__dot { width:8px; height:8px; padding:0; border:0; border-radius:999px; background:#b9c3c0; cursor:pointer; transition:width .2s ease, background .2s ease; }
.event-planning__dot.is-active { width:24px; background:var(--event-accent); }
.event-planning__status { position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0 0 0 0); white-space:nowrap; }

@media (min-width: 681px) {
	.event-planning__items { grid-template-columns: repeat(var(--event-columns-tablet, 2), minmax(0, 1fr)); }
	.event-planning--carousel { --event-visible: var(--event-columns-tablet, 2); }
	.event-planning--list .event-planning__items,
	.event-planning--timeline .event-planning__items { grid-template-columns: 1fr; }
}
@media (min-width: 961px) {
	.event-planning__items { grid-template-columns: repeat(var(--event-columns-desktop, 3), minmax(0, 1fr)); }
	.event-planning--carousel { --event-visible: var(--event-columns-desktop, 3); }
	.event-planning--list .event-planning__items,
	.event-planning--timeline .event-planning__items { grid-template-columns: 1fr; }
}
@media (max-width: 680px) {
	.event-planning--list .event-card,
	.event-planning--timeline .event-card { display: block; }
	.event-planning--list .event-card__media,
	.event-planning--timeline .event-card__media { height: auto; min-height: 0; border-radius: 15px 15px 0 0; }
	.event-planning--list .event-card__media img,
	.event-planning--timeline .event-card__media img { width: 100%; height: auto; max-height: 70vh; }
	.event-planning--timeline .event-planning__items { padding-left: 1rem; }
	.event-planning--timeline .event-card::before { left: -1.45rem; }
	.event-planning--slider.event-planning--timeline .event-planning__items,
	.event-planning--carousel.event-planning--timeline .event-planning__items { padding-left:2px; }
}
@media (prefers-reduced-motion: reduce) {
	.event-card__media img { transition: none; }
	.event-planning--slider .event-planning__items,
	.event-planning--carousel .event-planning__items { scroll-behavior: auto; }
}
