/* Elldus Family Retreat – Gestaltung nach „Ablauf Retreat“ (Poppins, Schiefer #284b59, Mint #cae6d3) */
.efr {
	--efr-text: #284b59;
	--efr-leise: #6c8590;
	--efr-linie: #e4eee8;
	--efr-mint: #cae6d3;
	--efr-mint-hell: #eaf5ee;
	max-width: 760px;
	margin: 0 auto;
	color: var(--efr-text);
	font-family: "Poppins", system-ui, sans-serif;
	font-weight: 300;
	line-height: 1.55;
}
.efr strong,
.efr b {
	font-weight: 600;
}
.efr p {
	margin: 0 0 16px;
}
.efr a {
	color: var(--efr-text);
}

/* Mood-Header */
body:has(.efr-hero) {
	overflow-x: clip;
}
.efr-hero {
	position: relative;
	width: 100vw;
	height: min(58vh, 560px);
	min-height: 260px;
	margin-left: calc(50% - 50vw);
	overflow: hidden;
	background: var(--efr-mint);
}
.efr-hero img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: 40% 18%;
}

/* Kopf */
.efr-kopf {
	position: relative;
	width: min(440px, 90%);
	margin: -86px auto 36px;
	padding: 26px 24px 4px;
	background: #fff;
	border-radius: 28px 28px 0 0;
	text-align: center;
}
.efr-logo {
	display: inline-block;
	width: 200px;
	height: auto;
}
.efr .efr-untertitel {
	margin: 18px 0 0;
	font-size: 0.78em;
	letter-spacing: 0.2em;
	text-transform: uppercase;
}

/* Gast, Einleitung, Legende */
.efr .efr-gast {
	display: flex;
	flex-wrap: wrap;
	align-items: baseline;
	gap: 4px 14px;
	padding-bottom: 14px;
	border-bottom: 1px solid var(--efr-linie);
}
.efr-raus {
	margin-left: auto;
	font-size: 0.85em;
	color: var(--efr-leise) !important;
}
.efr .efr-einleitung {
	max-width: 62ch;
	margin: 20px 0 0;
}
.efr-brief {
	margin: 26px 0 0;
	max-width: 66ch;
}
.efr .efr-brief p {
	margin: 0 0 14px;
}
.efr .efr-brief .efr-anrede {
	font-weight: 600;
}
.efr-legende {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 18px 24px;
	margin: 28px 0 0;
	padding: 22px 26px;
	background: var(--efr-mint);
	border-radius: 24px;
}
.efr-legende-eintrag {
	display: flex;
	align-items: flex-start;
	gap: 12px;
}
.efr .efr-legende-eintrag p {
	margin: 0;
	font-size: 0.86em;
	line-height: 1.45;
}
.efr-legende-titel {
	display: block;
	margin-bottom: 2px;
	letter-spacing: 0.16em;
	text-transform: uppercase;
	font-size: 0.92em;
}
.efr-legende .efr-icon {
	flex: none;
	width: 22px;
	height: 34px;
	margin: 2px 0 0;
}
.efr .efr-betr-info {
	display: flex;
	align-items: center;
	gap: 10px;
	margin: 16px 0 0;
	font-size: 0.9em;
}
.efr-betr-info .efr-icon {
	flex: none;
	height: 22px;
	margin: 0;
}

/* Symbole */
.efr-icon {
	display: inline-block;
	width: auto;
	height: 1.3em;
	margin-left: 5px;
	vertical-align: -0.3em;
	color: var(--efr-text);
}
.efr-icons {
	white-space: nowrap;
}

/* Tage */
.efr fieldset {
	border: 0;
	padding: 0;
	margin: 44px 0 0;
	min-width: 0;
}
.efr legend {
	float: left;
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 6px 14px;
	width: 100%;
	margin: 0 0 10px;
	padding: 0;
}
.efr legend + * {
	clear: both;
}
.efr-tagpill {
	display: inline-block;
	padding: 7px 22px;
	background: var(--efr-mint);
	border-radius: 999px;
	font-size: 0.8em;
	font-weight: 300;
	letter-spacing: 0.18em;
	text-transform: uppercase;
}
.efr-tagpill strong {
	font-weight: 700;
}
.efr-trenner {
	margin: 0 0.6em;
}
.efr-datum {
	font-size: 0.8em;
	color: var(--efr-leise);
}

/* Programmpunkte */
.efr-kurs {
	display: grid;
	grid-template-columns: 9.5em minmax(0, 1fr) 8.5em;
	align-items: center;
	gap: 0 18px;
	padding: 10px 0 10px 12px;
	border-bottom: 1px solid var(--efr-linie);
}
.efr-kurs:last-child {
	border-bottom: 0;
}
.efr-zeit {
	font-variant-numeric: tabular-nums;
}
.efr-titel {
	display: inline;
	margin: 0;
	font-weight: 400;
}
.efr-beschreibung {
	display: block;
	font-size: 0.9em;
}
.efr-hinweis {
	display: block;
	margin-top: 2px;
	font-size: 0.8em;
	color: var(--efr-leise);
}
.efr-info {
	padding-top: 6px;
	padding-bottom: 6px;
}
.efr-info .efr-zeit,
.efr-info .efr-titel,
.efr-info .efr-beschreibung {
	color: var(--efr-leise);
}
.efr-info.efr-programm {
	padding-top: 10px;
	padding-bottom: 10px;
}
.efr-info.efr-programm .efr-zeit,
.efr-info.efr-programm .efr-titel,
.efr-info.efr-programm .efr-beschreibung {
	color: var(--efr-text);
}
.efr-essen .efr-kurs {
	padding-top: 8px;
	padding-bottom: 8px;
}
.efr-essen .efr-beschreibung {
	font-size: 1em;
}
@media (max-width: 640px) {
	.efr-essen .efr-kurs {
		grid-template-columns: minmax(0, 1fr);
	}
	.efr-essen .efr-kurs-wahl {
		display: none;
	}
}
.efr-kurs-wahl select {
	width: 100%;
	min-height: 42px;
	padding: 0 14px;
	border: 1px solid #b7cbd2;
	border-radius: 999px;
	background-color: #fff;
	color: var(--efr-text);
	font-family: inherit;
	font-weight: 400;
}
.efr-kurs-wahl select:has(option:checked:not([value="0"]):not([value=""])) {
	border-color: var(--efr-text);
	background-color: var(--efr-mint-hell);
	font-weight: 600;
}
.efr-tag .efr-kurs:has(option:checked:not([value="0"])) {
	background: var(--efr-mint-hell);
	border-radius: 14px;
}
.efr-tag .efr-kurs:has(option:checked:not([value="0"])) .efr-titel {
	font-weight: 600;
}
.efr-voll .efr-titel,
.efr-voll .efr-zeit {
	color: #9aaeb5;
}
.efr-voll select {
	visibility: hidden;
}

/* Eingaben */
.efr .efr-person p {
	margin: 0;
	padding-top: 8px;
}
.efr-person label,
.efr-zugang label {
	display: block;
	margin-bottom: 6px;
	font-size: 0.9em;
}
.efr .efr-person input,
.efr .efr-zugang input[type="text"] {
	width: 100%;
	max-width: 380px;
	min-height: 46px;
	padding: 0 18px;
	border: 1px solid #b7cbd2;
	border-radius: 999px;
	background: #fff;
	color: var(--efr-text);
	font-family: inherit;
}
.efr .efr-zugang {
	text-align: center;
}
.efr .efr-zugang .efr-einleitung {
	margin: 0 auto 24px;
}
.efr .efr-zugang input[type="text"] {
	max-width: 260px;
	font-size: 1.15em;
	letter-spacing: 0.16em;
	text-align: center;
	text-transform: uppercase;
}
.efr-zugang input::placeholder {
	color: #b7cbd2;
}

/* Meldungen */
.efr-box {
	margin: 0 0 28px;
	padding: 18px 22px;
	background: var(--efr-mint-hell);
	border-radius: 18px;
}
.efr-box ul {
	margin: 8px 0 8px 18px;
	padding: 0;
}
.efr-fehler {
	background: #fbf1f0;
	color: #8a1f17;
}

/* Abschluss */
.efr .efr-einwilligung {
	margin-top: 32px;
	font-size: 0.88em;
}
.efr-einwilligung input {
	margin-right: 8px;
}
.efr .efr-senden {
	margin-top: 24px;
}
.efr .efr-zugang .efr-senden {
	text-align: center;
}
.efr .efr-senden button[type="submit"] {
	min-height: 50px;
	padding: 0 36px;
	border: 0;
	border-radius: 999px;
	background: var(--efr-text);
	color: #fff;
	font-family: inherit;
	font-weight: 600;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	font-size: 0.85em;
	cursor: pointer;
	box-shadow: none;
}
.efr .efr-senden button[type="submit"]:hover,
.efr .efr-senden button[type="submit"]:focus-visible {
	background: #1d3945;
	color: #fff;
}
.efr .efr-fussnote {
	margin-top: 36px;
	font-size: 0.72em;
	color: var(--efr-leise);
}
.efr-hp {
	position: absolute !important;
	left: -9999px !important;
	height: 1px;
	overflow: hidden;
}

@media (max-width: 640px) {
	.efr-hero {
		height: 42vh;
	}
	.efr-kopf {
		margin-top: -60px;
		padding-top: 20px;
	}
	.efr-legende {
		grid-template-columns: minmax(0, 1fr);
		padding: 20px;
	}
	.efr-kurs {
		grid-template-columns: minmax(0, 1fr) 7.5em;
		gap: 2px 12px;
		padding-left: 8px;
	}
	.efr-zeit {
		grid-column: 1 / -1;
		font-size: 0.85em;
	}
	.efr-info {
		grid-template-columns: minmax(0, 1fr);
	}
	.efr-info .efr-kurs-wahl {
		display: none;
	}
	.efr-raus {
		margin-left: 0;
		width: 100%;
	}
	.efr-tagpill {
		padding: 6px 16px;
		letter-spacing: 0.12em;
	}
}

.efr .efr-infosatz {
	display: flex;
	align-items: flex-start;
	gap: 14px;
	margin: 36px 0 0;
	padding: 18px 22px;
	background: var(--efr-mint-hell);
	border-radius: 18px;
	font-size: 0.92em;
}
.efr-infosatz .efr-icon {
	flex: none;
	height: 30px;
	margin: 2px 0 0;
}
