/**
 * PW Bausteine – Darstellung der Blöcke.
 * Farben und Abstände kommen aus dem Theme (CSS-Variablen), mit neutralen Rückfallwerten.
 */

.wp-block-pwit-documents,
.wp-block-pwit-events,
.wp-block-pwit-people,
.wp-block-pwit-sponsors,
.wp-block-pwit-event-details {
	--pwit-primary: var(--wp--preset--color--primary, #1e5b4a);
	--pwit-accent: var(--wp--preset--color--accent, #e8b931);
	--pwit-surface: var(--wp--preset--color--surface, #f0f3f1);
	--pwit-border: var(--wp--preset--color--border, #c5d1c9);
	--pwit-muted: var(--wp--preset--color--muted, #55625b);
	--pwit-text: var(--wp--preset--color--contrast, #1b2420);
}

:where(.wp-block-pwit-documents, .wp-block-pwit-events, .wp-block-pwit-people, .wp-block-pwit-sponsors, .wp-block-pwit-event-details) .screen-reader-text {
	border: 0;
	clip-path: inset(50%);
	height: 1px;
	margin: -1px;
	overflow: hidden;
	padding: 0;
	position: absolute;
	width: 1px;
	word-wrap: normal !important;
}

/* ---------- Downloads ---------- */

.pwit-docs {
	list-style: none;
	margin: 0 0 2rem;
	padding: 0;
	border-top: 1px solid var(--pwit-border);
}

.pwit-docs__heading {
	margin-bottom: 0.75rem;
}

.pwit-docs__item {
	display: flex;
	gap: 0.875rem;
	align-items: flex-start;
	padding: 0.875rem 0;
	border-bottom: 1px solid var(--pwit-border);
}

.pwit-docs__icon {
	flex: none;
	color: var(--pwit-primary);
	margin-top: 0.1em;
}

.pwit-docs__text {
	display: flex;
	flex-direction: column;
	gap: 0.125rem;
}

.pwit-docs__link {
	font-weight: 600;
}

.pwit-docs__meta {
	font-weight: 400;
	color: var(--pwit-muted);
	font-size: 0.875em;
}

.pwit-docs__desc {
	color: var(--pwit-muted);
	font-size: 0.9375em;
}

/* ---------- Termine ---------- */

.pwit-events__month {
	margin: 2rem 0 0.75rem;
}

.pwit-events__month:first-child {
	margin-top: 0;
}

.pwit-events__list {
	list-style: none;
	margin: 0;
	padding: 0;
}

.pwit-event {
	display: grid;
	grid-template-columns: 4rem 1fr;
	gap: 1.25rem;
	align-items: start;
	padding: 1.25rem 0;
	border-bottom: 1px solid var(--pwit-border);
}

.pwit-event:first-child {
	border-top: 1px solid var(--pwit-border);
}

/* Kalenderblatt: die wiedererkennbare Form der Terminliste. */
.pwit-event__badge {
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	aspect-ratio: 1;
	background: var(--pwit-surface);
	border-top: 4px solid var(--pwit-accent);
	border-radius: 0 0 4px 4px;
	line-height: 1;
}

.pwit-event__day {
	font-size: 1.625rem;
	font-weight: 700;
	color: var(--pwit-primary);
	font-variant-numeric: tabular-nums;
}

.pwit-event__month {
	font-size: 0.8125rem;
	margin-top: 0.25rem;
	color: var(--pwit-text);
}

.pwit-event__body > * {
	margin: 0;
}

.pwit-event__body > * + * {
	margin-top: 0.25rem;
}

.pwit-event__title {
	font-size: var(--wp--preset--font-size--large, 1.25rem);
	line-height: 1.3;
}

.pwit-event__title a {
	color: inherit;
	text-decoration: none;
}

.pwit-event__title a:hover {
	text-decoration: underline;
}

.pwit-event__when {
	font-weight: 600;
}

.pwit-event__where,
.pwit-event__excerpt {
	color: var(--pwit-muted);
}

.pwit-events__empty {
	padding: 1.25rem;
	background: var(--pwit-surface);
	border-radius: 4px;
}

.pwit-events__all {
	margin-top: 1.25rem;
}

@media (max-width: 480px) {
	.pwit-event {
		grid-template-columns: 3.25rem 1fr;
		gap: 1rem;
	}

	.pwit-event__day {
		font-size: 1.375rem;
	}
}

/* ---------- Termindaten (Einzelansicht) ---------- */

.pwit-event-details {
	background: var(--pwit-surface);
	border-left: 4px solid var(--pwit-accent);
	padding: 1.25rem 1.5rem;
	border-radius: 0 4px 4px 0;
}

.pwit-event-details dl {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(12rem, 1fr));
	gap: 1rem 2rem;
	margin: 0;
}

.pwit-event-details dt {
	font-size: 0.875rem;
	color: var(--pwit-muted);
}

.pwit-event-details dd {
	margin: 0.125rem 0 0;
	font-weight: 600;
}

.pwit-event-details dd a {
	font-weight: 400;
}

.pwit-event-details__ical {
	margin: 1.25rem 0 0;
}

/* ---------- Ansprechpartner ---------- */

.pwit-people {
	list-style: none;
	margin: 0;
	padding: 0;
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(min(100%, max(13rem, calc((100% - (var(--pwit-columns, 3) - 1) * 2rem) / var(--pwit-columns, 3)))), 1fr));
	gap: 2.5rem 2rem;
}

.pwit-person__photo {
	aspect-ratio: 1;
	overflow: hidden;
	border-radius: 4px;
	background: var(--pwit-surface);
	margin-bottom: 1rem;
	max-width: 16rem;
}

.pwit-person__photo img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}

.pwit-person__initials {
	display: flex;
	align-items: center;
	justify-content: center;
	height: 100%;
	font-size: 2.5rem;
	font-weight: 700;
	color: var(--pwit-primary);
	letter-spacing: 0.02em;
}

.pwit-person__body > * {
	margin: 0;
}

.pwit-person__name {
	font-size: var(--wp--preset--font-size--large, 1.25rem);
	line-height: 1.3;
}

.pwit-person__role {
	color: var(--pwit-muted);
	margin-top: 0.125rem !important;
}

.pwit-person__contact {
	list-style: none;
	padding: 0;
	margin-top: 0.75rem !important;
}

.pwit-person__contact li {
	display: flex;
	gap: 0.5rem;
	align-items: flex-start;
	overflow-wrap: anywhere;
}

.pwit-person__contact li + li {
	margin-top: 0.25rem;
}

.pwit-person__contact .pwit-contact__icon {
	flex: none;
	margin-top: 0.3em;
	color: var(--pwit-primary);
}

.pwit-person__note {
	margin-top: 0.5rem !important;
	font-size: 0.9375em;
}

/* ---------- Sponsoren ---------- */

.pwit-sponsors__heading {
	margin: 2rem 0 1rem;
}

.pwit-sponsors__heading:first-child {
	margin-top: 0;
}

.pwit-sponsors__grid {
	list-style: none;
	margin: 0;
	padding: 0;
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(10rem, 1fr));
	gap: 1rem;
}

.pwit-sponsors__grid.is-top-level {
	grid-template-columns: repeat(auto-fill, minmax(15rem, 1fr));
}

.pwit-sponsor > a,
.pwit-sponsor > img,
.pwit-sponsor > .pwit-sponsor__fallback {
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: 0.5rem;
	height: 100%;
	min-height: 7rem;
	padding: 1rem;
	background: var(--wp--preset--color--base, #fff);
	border: 1px solid var(--pwit-border);
	border-radius: 4px;
	color: inherit;
	text-decoration: none;
	box-sizing: border-box;
}

.is-top-level .pwit-sponsor > a,
.is-top-level .pwit-sponsor > img,
.is-top-level .pwit-sponsor > .pwit-sponsor__fallback {
	min-height: 10rem;
}

.pwit-sponsor > a:hover {
	border-color: var(--pwit-primary);
}

.pwit-sponsor__logo {
	max-width: 100%;
	max-height: 5rem;
	width: auto;
	height: auto;
	object-fit: contain;
}

.is-top-level .pwit-sponsor__logo {
	max-height: 7rem;
}

.pwit-sponsor__fallback,
.pwit-sponsor > a > .pwit-sponsor__fallback {
	font-weight: 600;
	text-align: center;
	border: 0;
	padding: 0;
	min-height: 0;
}

.pwit-sponsor__name {
	font-size: 0.875rem;
	color: var(--pwit-muted);
	text-align: center;
}
