/*
 * Anfrage-Assistent (nur Anfrageseiten, inc/anfrage.php; Verhalten: assets/js/anfrage.js).
 *
 * Aufbau: Formular als Karte (links), Seitenspalte rechts mit Zusammenfassung (anfrage.js) und Vertrauen
 * (Gastgeberfamilie auf der „Bühne“ wie bei Bild-Text, Zusagen, HolidayCheck, Telefon/E-Mail); mobil untereinander.
 * Ohne JavaScript: ein einseitiges Formular mit drei nummerierten Abschnitten. Mit JavaScript (Klasse ps-assistent):
 * drei Schritte mit Fortschritt in Sonne. Bewegung nur mit .ps-bw (JavaScript an, keine reduzierte Bewegung);
 * „Bewegung reduzieren“ schaltet zusätzlich alle Übergänge und Animationen ab (Ende der Datei).
 * Farben, Schriften, Abstände: Tokens aus theme.json (tokens.css). Rahmen der Felder Fels 500 (≥ 3:1 zu Weiß).
 */

.ps-anfrage {
	--ps-af-rahmen: var(--fels-500);
	--ps-af-radius: var(--radius-md);
	--ps-af-ring: 0 0 0 3px rgba(204, 156, 76, .45);
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	gap: 40px;
	align-items: start;
	padding-block: clamp(4px, 1vw, 16px) clamp(64px, 8vw, 128px);
}
@media (min-width: 1024px) {
	.ps-anfrage { grid-template-columns: minmax(0, 1fr) clamp(300px, 27vw, 372px); column-gap: clamp(40px, 5vw, 80px); }
}
/* Bühne für das Formular (wie Bild-Text Variante A, gespiegelt zur Gastgeber-Bühne rechts): Heu hinter der Karte,
   nach unten versetzt, nach außen bis an den Bildschirmrand (reine Malfläche, kein Überlauf); Goldwinkel an der Ecke. */
.ps-anfrage > .wpcf7 { position: relative; isolation: isolate; min-width: 0; }
.ps-anfrage > .wpcf7::before {
	content: "";
	position: absolute;
	z-index: -1;
	top: clamp(48px, 6vw, 88px);
	bottom: clamp(-56px, -4vw, -32px);
	left: 0;
	right: 12%;
	border-image: linear-gradient(var(--heu) 0 0) fill 0 / 0 / 0 0 0 100vw;
	pointer-events: none;
}
.ps-anfrage > .wpcf7::after {
	content: "";
	position: absolute;
	top: -16px;
	left: -16px;
	width: clamp(40px, 4.6vw, 64px);
	height: clamp(40px, 4.6vw, 64px);
	background:
		linear-gradient(var(--sonne-500) 0 0) left top / 100% 1.5px no-repeat,
		linear-gradient(var(--sonne-500) 0 0) left top / 1.5px 100% no-repeat;
	pointer-events: none;
}
@media (max-width: 639px) {
	.ps-anfrage > .wpcf7::before { top: 40px; right: 18%; bottom: -24px; }
	.ps-anfrage > .wpcf7::after { top: -10px; left: -10px; }
}
.ps-bw .ps-anfrage > .wpcf7::before { animation: ps-buehne 1300ms var(--ease-out) 200ms both; }
.ps-bw .ps-anfrage > .wpcf7::after { animation: ps-winkel 900ms var(--ease-out) 900ms both; }
@keyframes ps-buehne { from { clip-path: inset(0 100% 0 -100vw); } to { clip-path: inset(0 0 0 -100vw); } }
@keyframes ps-buehne-rechts { from { clip-path: inset(0 -100vw 0 100%); } to { clip-path: inset(0 -100vw 0 0); } }
.ps-bw .ps-anfrage__gastgeber::before { animation: ps-buehne-rechts 1300ms var(--ease-out) 500ms both; }
.ps-bw .ps-anfrage__gastgeber::after { animation: ps-winkel 900ms var(--ease-out) 1200ms both; }
@keyframes ps-winkel { from { clip-path: inset(0 100% 100% 0); } to { clip-path: inset(0 0 0 0); } }
.ps-anfrage .ps-sr {
	position: absolute !important;
	width: 1px;
	height: 1px;
	margin: -1px;
	padding: 0;
	overflow: hidden;
	clip: rect(0 0 0 0);
	white-space: nowrap;
	border: 0;
}
.ps-anfrage .ps-hp { position: absolute !important; left: -10000px; top: auto; width: 1px; height: 1px; overflow: hidden; }
.ps-anfrage [hidden] { display: none !important; }
.ps-anfrage :is(button, a, summary):focus-visible { outline: 2px solid var(--sonne-600); outline-offset: 3px; }

/* ---------------------------------------------- Karte des Formulars */
.ps-anfrage .wpcf7 .ps-anfrage__formular {
	position: relative;
	margin: 0;
	padding: clamp(22px, 4vw, 48px);
	background: var(--weiss);
	border: 1px solid var(--fels-200);
	border-radius: var(--ps-af-radius);
	box-shadow: var(--shadow-md);
	font: 400 var(--fs-body)/1.5 var(--font-sans);
	color: var(--text-body);
}
.ps-anfrage .wpcf7 .ps-anfrage__formular fieldset { margin: 0; padding: 0; border: 0; min-width: 0; }
.ps-anfrage .wpcf7 .ps-anfrage__formular legend { padding: 0; }

/* Schritt-Titel */
.ps-anfrage .wpcf7 .ps-schritt__kopf{
	display: flex;
	align-items: baseline;
	gap: 14px;
	margin: 0 0 clamp(22px, 3vw, 34px);
	font: 300 clamp(30px, 3.1vw, 42px)/1.08 var(--font-display);
	letter-spacing: var(--ls-display);
	color: var(--text-strong);
	outline: none;
}
.ps-anfrage .wpcf7 .ps-schritt__name { display: inline-block; }
.ps-anfrage .wpcf7 .ps-schritt__nr{ font-style: italic; font-size: .78em; color: var(--sonne-700); }
.ps-anfrage .wpcf7 .ps-assistent .ps-schritt__nr{ display: none; }
/* ohne JavaScript: drei Abschnitte untereinander */
.ps-anfrage .wpcf7 .ps-anfrage__formular:not(.ps-assistent) .ps-schritt + .ps-schritt{ margin-top: 48px; padding-top: 40px; border-top: 1px solid var(--fels-200); }

/* Gruppen und Felder */
.ps-anfrage .wpcf7 .ps-gruppe{ margin: 0 0 32px !important; }
.ps-anfrage .wpcf7 .ps-schritt > :last-child{ margin-bottom: 0 !important; }
.ps-anfrage .wpcf7 .ps-gruppe__titel{
	margin: 0 0 14px;
	font: 600 var(--fs-eyebrow)/1.4 var(--font-sans);
	letter-spacing: var(--ls-eyebrow);
	text-transform: uppercase;
	color: var(--fels-600);
}
.ps-anfrage .wpcf7 .ps-gruppe__titel .ps-feld__zusatz{ letter-spacing: .02em; text-transform: none; }
.ps-anfrage .wpcf7 .ps-reihe{ display: grid; gap: 0 20px; grid-template-columns: repeat(auto-fit, minmax(min(100%, 200px), 1fr)); }
.ps-anfrage .wpcf7 .ps-feld{ margin: 0 0 18px; min-width: 0; }
.ps-anfrage .wpcf7 .ps-feld > label{ display: block; margin: 0 0 7px; font: 600 var(--fs-small)/1.35 var(--font-sans); color: var(--text-strong); }
.ps-anfrage .wpcf7 .ps-feld__zusatz{ font-weight: 400; color: var(--fels-600); }
.ps-anfrage .wpcf7 .ps-hilfe{ margin: 4px 0 12px; font: 400 14px/1.5 var(--font-sans); color: var(--fels-600); }

.ps-anfrage .wpcf7 .ps-anfrage__formular :is(input[type="text"], input[type="email"], input[type="tel"], input[type="date"], input[type="number"], select, textarea) {
	min-height: 52px;
	padding: 12px 14px;
	border: 1px solid var(--ps-af-rahmen);
	border-radius: var(--ps-af-radius);
	background-color: var(--weiss);
	font: 400 var(--fs-body)/1.35 var(--font-sans);
	color: var(--text-strong);
	transition: border-color var(--dur-fast) var(--ease-out), box-shadow var(--dur-base) var(--ease-out);
}
.ps-anfrage .wpcf7 .ps-anfrage__formular textarea { min-height: 132px; line-height: 1.5; }
.ps-anfrage .wpcf7 .ps-anfrage__formular :is(input, select, textarea):hover:not(:disabled) { border-color: var(--fels-700); }
.ps-anfrage .wpcf7 .ps-anfrage__formular :is(input, select, textarea):focus { outline: none; border-color: var(--tanne-600); box-shadow: var(--ps-af-ring); }
.ps-anfrage .wpcf7 .ps-anfrage__formular :is(input, select, textarea):disabled { opacity: .5; }
.ps-anfrage .wpcf7 .ps-anfrage__formular input[type="date"] { font-variant-numeric: tabular-nums; cursor: text; }
.ps-anfrage .wpcf7 .ps-anfrage__formular input[type="date"]::-webkit-calendar-picker-indicator { cursor: pointer; opacity: .75; }
.ps-anfrage .wpcf7 .ps-anfrage__formular select {
	appearance: none;
	padding-right: 42px;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23305746' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");
	background-repeat: no-repeat;
	background-position: right 14px center;
	background-size: 18px;
	cursor: pointer;
}

/* Gültig: Haken hinter dem Feldnamen zeichnet sich */
.ps-anfrage .wpcf7 .ps-feld > label::after{
	content: "";
	display: inline-block;
	width: 15px;
	height: 15px;
	margin-left: 8px;
	vertical-align: -2px;
	background: var(--tanne-600);
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12.5l4.5 4.5L19 7.5'/%3E%3C/svg%3E") center / contain no-repeat;
	mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12.5l4.5 4.5L19 7.5'/%3E%3C/svg%3E") center / contain no-repeat;
	clip-path: inset(0 100% 0 0);
	opacity: 0;
	transition: clip-path 380ms var(--ease-out), opacity 120ms;
}
.ps-anfrage .wpcf7 .ps-feld:has(> .wpcf7-form-control-wrap.ist-gueltig) > label::after{ clip-path: inset(0 0 0 0); opacity: 1; }

/* Fehler: ruhig in Rost, Text am Feld */
.ps-anfrage .wpcf7-not-valid-tip {
	display: flex;
	gap: 7px;
	align-items: flex-start;
	margin: 8px 0 0;
	font: 500 14px/1.4 var(--font-sans);
	color: var(--rost-600);
}
.ps-anfrage .wpcf7-not-valid-tip::before {
	content: "";
	flex: none;
	width: 16px;
	height: 16px;
	margin-top: 1px;
	background: currentColor;
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round'%3E%3Ccircle cx='12' cy='12' r='9.5'/%3E%3Cpath d='M12 7.5v5.5M12 16.5v.01'/%3E%3C/svg%3E") center / contain no-repeat;
	mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round'%3E%3Ccircle cx='12' cy='12' r='9.5'/%3E%3Cpath d='M12 7.5v5.5M12 16.5v.01'/%3E%3C/svg%3E") center / contain no-repeat;
}
.ps-anfrage .wpcf7 .ps-anfrage__formular .wpcf7-not-valid:not(:focus),
.ps-anfrage .wpcf7 .ps-anfrage__formular .ist-fehler > :is(input, select, textarea):not(:focus),
.ps-anfrage .wpcf7 .ps-stepper:has(.wpcf7-not-valid) { border-color: var(--rost-600); box-shadow: 0 0 0 3px rgba(163, 71, 47, .1); }
.ps-anfrage .wpcf7 .ps-anfrage__formular > .wpcf7-response-output { margin: 24px 0 0; padding: 14px 16px; border-radius: var(--radius-control); font-size: var(--fs-small); }
.ps-anfrage .ps-assistent > .wpcf7-response-output { display: none; }

/* ---------------------------------------------- Termin */
.ps-anfrage .wpcf7 .ps-reihe--daten{ grid-template-columns: repeat(auto-fit, minmax(min(100%, 180px), 1fr)); }
.ps-anfrage .wpcf7 .ps-naechte{ display: flex; flex-wrap: wrap; align-items: baseline; gap: 2px 10px; margin: -2px 0 18px; }
.ps-anfrage .wpcf7 .ps-naechte__zahl{ font: 300 44px/1 var(--font-display); color: var(--tanne-700); font-variant-numeric: tabular-nums; }
.ps-anfrage .wpcf7 .ps-naechte__wort{ font: italic 400 22px/1 var(--font-display); color: var(--text-strong); }
.ps-anfrage .wpcf7 .ps-naechte__daten{ flex-basis: 100%; margin-top: 4px; font: 500 14px/1.4 var(--font-sans); color: var(--fels-600); }
.ps-anfrage .wpcf7 .ps-hinweis{
	display: flex;
	gap: 12px;
	margin: 0 0 18px;
	padding: 14px 16px;
	border-radius: var(--ps-af-radius);
	background: var(--sonne-100);
	font: 400 15px/1.5 var(--font-sans);
	color: var(--fels-900);
}
.ps-anfrage .wpcf7 .ps-hinweis::before{
	content: "";
	flex: none;
	width: 20px;
	height: 20px;
	margin-top: 1px;
	background: var(--sonne-700);
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round'%3E%3Ccircle cx='12' cy='12' r='4'/%3E%3Cpath d='M12 2v2M12 20v2M4.9 4.9l1.4 1.4M17.7 17.7l1.4 1.4M2 12h2M20 12h2M4.9 19.1l1.4-1.4M17.7 6.3l1.4-1.4'/%3E%3C/svg%3E") center / contain no-repeat;
	mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round'%3E%3Ccircle cx='12' cy='12' r='4'/%3E%3Cpath d='M12 2v2M12 20v2M4.9 4.9l1.4 1.4M17.7 17.7l1.4 1.4M2 12h2M20 12h2M4.9 19.1l1.4-1.4M17.7 6.3l1.4-1.4'/%3E%3C/svg%3E") center / contain no-repeat;
}
.ps-anfrage .wpcf7 .ps-hinweis--fewo{ margin: 16px 0 0; }

/* Hinweis mit Knopf (Winterbeginn: „Ferienwohnung wählen“) */
.ps-anfrage .wpcf7 .ps-hinweis__inhalt { display: grid; gap: 10px; justify-items: start; }
.ps-anfrage .wpcf7 .ps-hinweis__knopf {
	display: inline-flex;
	align-items: center;
	min-height: 44px;
	padding: 0 18px;
	border: 1px solid var(--tanne-600);
	border-radius: 999px;
	background: var(--weiss);
	color: var(--tanne-700);
	font: 600 14px/1.2 var(--font-sans);
	cursor: pointer;
	transition: background-color var(--dur-fast), color var(--dur-fast);
}
.ps-anfrage .wpcf7 .ps-hinweis__knopf:hover { background: var(--tanne-600); color: var(--schnee); }
.ps-anfrage .wpcf7 .ps-hinweis--winter { margin: 16px 0 0; }
.ps-anfrage .wpcf7 .ps-hinweis--monat { margin: 12px 0 0; }
.ps-anfrage .wpcf7 .ps-hinweis--verpflegung { margin: 14px 0 0; }

/* Schalter „Termin noch flexibel“ */
.ps-anfrage .wpcf7 .ps-flexibel{ margin: 0 0 4px; }
.ps-anfrage .wpcf7 .ps-schalter{ margin: 0; }
.ps-anfrage .wpcf7 .ps-schalter label{ position: relative; display: inline-flex; align-items: center; gap: 12px; min-height: 44px; cursor: pointer; font: 600 var(--fs-small)/1.3 var(--font-sans); color: var(--text-strong); }
.ps-anfrage .wpcf7 .ps-schalter input, .ps-anfrage .wpcf7 .ps-chip input, .ps-anfrage .wpcf7 .ps-wohnkarte input, .ps-anfrage .wpcf7 .ps-option input{
	position: absolute;
	width: 1px;
	height: 1px;
	margin: 0;
	opacity: 0;
	pointer-events: none;
}
.ps-anfrage .wpcf7 .ps-schalter__bahn{ position: relative; flex: none; width: 46px; height: 28px; border-radius: 999px; background: var(--fels-500); transition: background 220ms var(--ease-out); }
.ps-anfrage .wpcf7 .ps-schalter__knopf{ position: absolute; top: 3px; left: 3px; width: 22px; height: 22px; border-radius: 50%; background: var(--weiss); box-shadow: 0 1px 3px rgba(30, 29, 25, .3); transition: transform 280ms var(--ease-out); }
.ps-anfrage .wpcf7 .ps-schalter:has(input:checked) .ps-schalter__bahn{ background: var(--tanne-600); }
.ps-anfrage .wpcf7 .ps-schalter:has(input:checked) .ps-schalter__knopf{ transform: translateX(18px); }
.ps-anfrage .wpcf7 .ps-schalter:has(input:focus-visible) .ps-schalter__bahn{ outline: 2px solid var(--sonne-600); outline-offset: 3px; }

/* Monate */
.ps-anfrage .wpcf7 .ps-monate{ display: grid; gap: 18px; margin: 12px 0 18px; }
.ps-anfrage .wpcf7 .ps-monatsgruppe legend{ margin: 0 0 10px; font: 600 var(--fs-small)/1.35 var(--font-sans); color: var(--text-strong); }
.ps-anfrage .wpcf7 .ps-monatssaison__zeit{ margin-left: 6px; font-weight: 400; color: var(--fels-600); }

/* Chips (Monate, Wünsche): Plus wird zum Haken */
.ps-anfrage .wpcf7 .ps-anfrage__formular :is(.wpcf7-checkbox, .wpcf7-radio) { display: flex; flex-wrap: wrap; gap: 10px; }
.ps-anfrage .wpcf7 .ps-anfrage__formular .wpcf7-list-item { margin: 0; }
.ps-anfrage .wpcf7 .ps-chip label{
	display: inline-flex;
	align-items: center;
	gap: 9px;
	min-height: 44px;
	padding: 0 18px 0 14px;
	border: 1px solid var(--ps-af-rahmen);
	border-radius: 999px;
	background: var(--weiss);
	font: 500 15px/1.2 var(--font-sans);
	color: var(--text-strong);
	cursor: pointer;
	user-select: none;
	transition: border-color var(--dur-fast), background-color 220ms var(--ease-out), color 220ms var(--ease-out);
}
.ps-anfrage .wpcf7 .ps-chip label:hover{ border-color: var(--tanne-600); background-color: var(--tanne-50); }
.ps-anfrage .wpcf7 .ps-chip:has(input:checked) label{ border-color: var(--tanne-600); background-color: var(--tanne-600); color: var(--schnee); }
.ps-anfrage .wpcf7 .ps-chip:has(input:focus-visible) label{ outline: 2px solid var(--sonne-600); outline-offset: 3px; }
.ps-anfrage .wpcf7 .ps-chip:has(input:disabled) label{ opacity: .5; cursor: default; }
.ps-anfrage .wpcf7 .ps-wahl__haken{ position: relative; flex: none; width: 16px; height: 16px; }
.ps-anfrage .wpcf7 .ps-chip .ps-wahl__haken::before, .ps-anfrage .wpcf7 .ps-chip .ps-wahl__haken::after{
	content: "";
	position: absolute;
	left: 7px;
	top: 2px;
	width: 2px;
	height: 12px;
	border-radius: 1px;
	background: currentColor;
	transition: transform 260ms var(--ease-out), opacity 180ms;
}
.ps-anfrage .wpcf7 .ps-chip .ps-wahl__haken::after{ transform: rotate(90deg); }
.ps-anfrage .wpcf7 .ps-chip:has(input:checked) .ps-wahl__haken::before{ transform: rotate(90deg) scaleY(0); opacity: 0; }
.ps-anfrage .wpcf7 .ps-chip:has(input:checked) .ps-wahl__haken::after{ transform: rotate(180deg) scaleY(0); opacity: 0; }
.ps-anfrage .wpcf7 .ps-wahl__haken svg{ position: absolute; inset: 0; width: 100%; height: 100%; fill: none; stroke: currentColor; stroke-width: 2.6; stroke-linecap: round; stroke-linejoin: round; stroke-dasharray: 22; stroke-dashoffset: 22; transition: stroke-dashoffset 320ms var(--ease-out) 60ms; }
.ps-anfrage .wpcf7 .ps-wahl:has(input:checked) .ps-wahl__haken svg{ stroke-dashoffset: 0; }
@keyframes ps-plopp { 0% { transform: scale(1); } 35% { transform: scale(.94); } 70% { transform: scale(1.045); } 100% { transform: scale(1); } }
.ps-bw .ps-anfrage .wpcf7 .ps-chip:has(input:checked) label{ animation: ps-plopp 340ms var(--ease-out); }

/* ---------------------------------------------- Personen: Stepper und Kinderalter */
.ps-anfrage .wpcf7 .ps-reihe--personen{ grid-template-columns: repeat(auto-fit, minmax(min(100%, 170px), 1fr)); }
.ps-anfrage .wpcf7 .ps-feld--zahl .wpcf7-form-control-wrap{ display: block; }
.ps-anfrage .wpcf7 .ps-stepper{ display: inline-flex; align-items: center; gap: 4px; padding: 3px; border: 1px solid var(--ps-af-rahmen); border-radius: 999px; background: var(--weiss); transition: border-color var(--dur-fast), box-shadow var(--dur-base); }
.ps-anfrage .wpcf7 .ps-stepper:has(.ps-stepper__zahl:focus){ border-color: var(--tanne-600); box-shadow: var(--ps-af-ring); }
.ps-anfrage .wpcf7 .ps-stepper__knopf{
	display: grid;
	place-items: center;
	width: 44px;
	height: 44px;
	padding: 0;
	border: 0;
	border-radius: 50%;
	background: var(--tanne-50);
	color: var(--tanne-700);
	cursor: pointer;
	transition: background-color var(--dur-fast), transform var(--dur-fast) var(--ease-out);
}
.ps-anfrage .wpcf7 .ps-stepper__knopf svg{ fill: none; stroke: currentColor; stroke-width: 2.2; stroke-linecap: round; }
.ps-anfrage .wpcf7 .ps-stepper__knopf:hover{ background: var(--tanne-100); }
.ps-anfrage .wpcf7 .ps-stepper__knopf:active{ transform: scale(.92); }
.ps-anfrage .wpcf7 .ps-stepper__knopf[aria-disabled="true"]{ background: var(--fels-100); color: var(--fels-600); cursor: default; transform: none; }
.ps-anfrage .wpcf7 .ps-stepper__fenster{ display: grid; width: 56px; height: 44px; overflow: hidden; }
.ps-anfrage .wpcf7 .ps-anfrage__formular input.ps-stepper__zahl {
	width: 56px;
	min-height: 44px;
	height: 44px;
	padding: 0;
	border: 0;
	background: transparent;
	box-shadow: none !important;
	text-align: center;
	font: 400 26px/44px var(--font-display);
	color: var(--text-strong);
	font-variant-numeric: tabular-nums;
	-moz-appearance: textfield;
	appearance: textfield;
}
.ps-anfrage .wpcf7 .ps-stepper__zahl::-webkit-outer-spin-button, .ps-anfrage .wpcf7 .ps-stepper__zahl::-webkit-inner-spin-button{ -webkit-appearance: none; margin: 0; }
.ps-anfrage .wpcf7 .ps-kinderalter{ margin: 4px 0 0; }
.ps-anfrage .wpcf7 .ps-kinderalter__felder{ display: grid; grid-template-columns: repeat(auto-fill, minmax(118px, 1fr)); gap: 0 14px; }
.ps-anfrage .wpcf7 .ps-feld--alter > label{ font-weight: 500; color: var(--fels-800); }

/* ---------------------------------------------- Unterkunft: Karten mit Foto, Auswahl mit Goldwinkel und Haken */
.ps-anfrage .wpcf7 .ps-anfrage__formular .ps-gruppe--unterkunft .wpcf7-radio { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; }
.ps-anfrage .wpcf7 .ps-wohnkarte label{
	position: relative;
	display: flex;
	flex-direction: column;
	height: 100%;
	border: 1px solid var(--fels-200);
	border-radius: var(--ps-af-radius);
	background: var(--weiss);
	overflow: hidden;
	cursor: pointer;
	box-shadow: var(--shadow-xs);
	transition: transform 320ms var(--ease-out), box-shadow 320ms var(--ease-out), border-color 200ms var(--ease-out);
}
.ps-anfrage .wpcf7 .ps-wohnkarte label:hover{ transform: translateY(-3px); box-shadow: var(--shadow-md); border-color: var(--fels-300); }
.ps-anfrage .wpcf7 .ps-wohnkarte__bild{ position: relative; display: block; aspect-ratio: 16 / 10; overflow: hidden; background: var(--fels-200); }
.ps-anfrage .wpcf7 .ps-wohnkarte__foto{ display: block; width: 100%; height: 100%; object-fit: cover; transition: transform 1400ms var(--ease-out); }
.ps-anfrage .wpcf7 .ps-wohnkarte label:hover .ps-wohnkarte__foto{ transform: scale(1.05); }
.ps-anfrage .wpcf7 .ps-wohnkarte__winkel{
	position: absolute;
	left: 12px;
	top: 12px;
	width: 42px;
	height: 42px;
	background:
		linear-gradient(var(--sonne-500) 0 0) left top / 100% 2px no-repeat,
		linear-gradient(var(--sonne-500) 0 0) left top / 2px 100% no-repeat;
	clip-path: inset(0 100% 100% 0);
	transition: clip-path 480ms var(--ease-out) 80ms;
	pointer-events: none;
}
.ps-anfrage .wpcf7 .ps-wohnkarte__text{ display: grid; gap: 4px; padding: 16px 18px 18px; }
.ps-anfrage .wpcf7 .ps-wohnkarte .wpcf7-list-item-label{ font: 400 23px/1.15 var(--font-display); letter-spacing: var(--ls-heading); color: var(--text-strong); }
.ps-anfrage .wpcf7 .ps-wohnkarte__satz{ font: 400 14px/1.45 var(--font-sans); color: var(--fels-600); }
.ps-anfrage .wpcf7 .ps-wohnkarte .ps-wahl__haken{
	position: absolute;
	top: 12px;
	right: 12px;
	display: grid;
	place-items: center;
	width: 30px;
	height: 30px;
	border-radius: 50%;
	background: rgba(255, 255, 255, .92);
	box-shadow: inset 0 0 0 1.5px var(--fels-500), 0 1px 3px rgba(30, 29, 25, .2);
	color: var(--tanne-950);
	transition: background-color 220ms var(--ease-out), box-shadow 220ms, transform 320ms var(--ease-out);
}
.ps-anfrage .wpcf7 .ps-wohnkarte .ps-wahl__haken svg{ position: static; width: 16px; height: 16px; }
.ps-anfrage .wpcf7 .ps-wohnkarte:has(input:checked) label{ border-color: var(--tanne-600); box-shadow: 0 0 0 1px var(--tanne-600), var(--shadow-md); }
.ps-anfrage .wpcf7 .ps-wohnkarte:has(input:checked) .ps-wohnkarte__winkel{ clip-path: inset(0 0 0 0); }
.ps-anfrage .wpcf7 .ps-wohnkarte:has(input:checked) .ps-wahl__haken{ background: var(--sonne-500); box-shadow: 0 2px 8px rgba(142, 101, 34, .35); }
.ps-bw .ps-anfrage .wpcf7 .ps-wohnkarte:has(input:checked) .ps-wahl__haken{ animation: ps-plopp 360ms var(--ease-out); }
.ps-anfrage .wpcf7 .ps-wohnkarte:has(input:focus-visible) label{ outline: 2px solid var(--sonne-600); outline-offset: 3px; }
.ps-anfrage .wpcf7 .ps-wohnkarte.ist-vorausgewaehlt label::after{ content: none; }
@media (max-width: 599px) {
	.ps-anfrage .wpcf7 .ps-anfrage__formular .ps-gruppe--unterkunft .wpcf7-radio { grid-template-columns: minmax(0, 1fr); gap: 10px; }
	.ps-anfrage .wpcf7 .ps-wohnkarte label{ flex-direction: row; align-items: stretch; }
	.ps-anfrage .wpcf7 .ps-wohnkarte__bild{ flex: none; width: 104px; aspect-ratio: auto; min-height: 92px; }
	.ps-anfrage .wpcf7 .ps-wohnkarte__text{ align-content: center; padding: 12px 14px; }
	.ps-anfrage .wpcf7 .ps-wohnkarte .wpcf7-list-item-label{ font-size: 20px; }
	.ps-anfrage .wpcf7 .ps-wohnkarte__winkel{ left: 8px; top: 8px; width: 28px; height: 28px; }
	.ps-anfrage .wpcf7 .ps-wohnkarte .ps-wahl__haken{ top: 8px; right: auto; left: 66px; }
}

/* Verpflegung: ruhige Kacheln mit Punkt */
.ps-anfrage .wpcf7 .ps-anfrage__formular .ps-gruppe--verpflegung .wpcf7-radio { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 176px), 1fr)); gap: 12px; }
.ps-anfrage .wpcf7 .ps-option label{
	display: flex;
	gap: 12px;
	align-items: flex-start;
	height: 100%;
	min-height: 64px;
	padding: 14px 16px;
	border: 1px solid var(--ps-af-rahmen);
	border-radius: var(--ps-af-radius);
	background: var(--weiss);
	cursor: pointer;
	transition: border-color var(--dur-fast), background-color 220ms var(--ease-out), box-shadow 220ms;
}
.ps-anfrage .wpcf7 .ps-option label:hover{ border-color: var(--tanne-600); background: var(--tanne-50); }
.ps-anfrage .wpcf7 .ps-option__punkt{ position: relative; flex: none; width: 20px; height: 20px; margin-top: 2px; border-radius: 50%; box-shadow: inset 0 0 0 1.5px var(--fels-500); transition: box-shadow 200ms; }
.ps-anfrage .wpcf7 .ps-option__punkt::after{ content: ""; position: absolute; inset: 5px; border-radius: 50%; background: var(--tanne-600); transform: scale(0); transition: transform 280ms var(--ease-out); }
.ps-anfrage .wpcf7 .ps-option__text{ display: grid; gap: 2px; }
.ps-anfrage .wpcf7 .ps-option .wpcf7-list-item-label{ font: 600 16px/1.3 var(--font-sans); color: var(--text-strong); }
.ps-anfrage .wpcf7 .ps-wahl__satz{ font: 400 14px/1.4 var(--font-sans); color: var(--fels-600); }
.ps-anfrage .wpcf7 .ps-option:has(input:checked) label{ border-color: var(--tanne-600); background: var(--tanne-50); box-shadow: inset 0 0 0 1px var(--tanne-600); }
.ps-anfrage .wpcf7 .ps-option:has(input:checked) .ps-option__punkt{ box-shadow: inset 0 0 0 1.5px var(--tanne-600); }
.ps-anfrage .wpcf7 .ps-option:has(input:checked) .ps-option__punkt::after{ transform: scale(1); }
.ps-anfrage .wpcf7 .ps-option:has(input:focus-visible) label{ outline: 2px solid var(--sonne-600); outline-offset: 3px; }
.ps-anfrage .wpcf7 .ps-vorauswahl{ display: flex; align-items: center; gap: 8px; margin: -4px 0 14px; font: italic 400 17px/1.4 var(--font-display); color: var(--tanne-700); }
.ps-anfrage .wpcf7 .ps-vorauswahl::before{ content: ""; flex: none; width: 8px; height: 8px; border-radius: 50%; background: var(--sonne-500); }

/* Nachricht, Kontakt, Einwilligung */
.ps-anfrage .wpcf7 .ps-reihe--name{ grid-template-columns: minmax(150px, .7fr) minmax(min(100%, 220px), 1.6fr); }
.ps-anfrage .wpcf7 .ps-reihe--ort{ grid-template-columns: minmax(96px, .55fr) minmax(min(100%, 180px), 1.6fr); }
@media (max-width: 519px) { .ps-anfrage .wpcf7 .ps-reihe--name, .ps-anfrage .wpcf7 .ps-reihe--ort{ grid-template-columns: minmax(0, 1fr); } }
.ps-anfrage .wpcf7 .ps-einwilligung{ margin: 8px 0 0; padding: 16px 0 0; border-top: 1px solid var(--fels-100); }
.ps-anfrage .wpcf7 .ps-einwilligung label{ display: flex; gap: 12px; align-items: flex-start; cursor: pointer; }
.ps-anfrage .wpcf7 .ps-einwilligung input[type="checkbox"]{ flex: none; width: 22px; height: 22px; margin: 1px 0 0; accent-color: var(--tanne-600); cursor: pointer; }
.ps-anfrage .wpcf7 .ps-einwilligung .wpcf7-list-item-label{ font: 400 13.5px/1.55 var(--font-sans); color: var(--fels-700); }
.ps-anfrage .wpcf7 .ps-senden__hinweis{ margin: 14px 0 0; font: 500 14px/1.45 var(--font-sans); color: var(--tanne-700); }
.ps-anfrage .wpcf7 .ps-assistent .ps-senden__hinweis{ margin-top: 18px; }

/* ---------------------------------------------- Fortschritt (mit JavaScript) */
.ps-anfrage .wpcf7 .ps-weg{ position: relative; margin: 0 0 clamp(30px, 4vw, 46px); }
.ps-anfrage .wpcf7 .ps-weg__liste{ position: relative; z-index: 1; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); margin: 0; padding: 0; list-style: none; }
.ps-anfrage .wpcf7 .ps-weg__punkt{ display: flex; justify-content: center; margin: 0; }
.ps-anfrage .wpcf7 .ps-weg__bahn{ position: absolute; top: 21px; left: calc(100% / 6); right: calc(100% / 6); height: 2px; background: var(--fels-200); border-radius: 2px; overflow: hidden; }
.ps-anfrage .wpcf7 .ps-weg__fuellung{ position: absolute; inset: 0; background: var(--sonne-500); transform: scaleX(0); transform-origin: left center; transition: transform 720ms var(--ease-out); }
.ps-anfrage .wpcf7 .ps-weg__knopf{
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 10px;
	min-width: 44px;
	padding: 0 4px;
	border: 0;
	background: none;
	cursor: pointer;
	font: 600 13px/1.25 var(--font-sans);
	letter-spacing: .02em;
	color: var(--fels-600);
	text-align: center;
}
.ps-anfrage .wpcf7 .ps-weg__knopf[aria-disabled="true"]{ cursor: default; }
.ps-anfrage .wpcf7 .ps-weg__kreis{
	position: relative;
	display: grid;
	place-items: center;
	width: 44px;
	height: 44px;
	border-radius: 50%;
	background: var(--weiss);
	box-shadow: inset 0 0 0 1.5px var(--fels-300);
	font: italic 400 21px/1 var(--font-display);
	color: var(--fels-600);
	transition: background-color 320ms var(--ease-out), box-shadow 320ms var(--ease-out), color 320ms;
}
.ps-anfrage .wpcf7 .ps-weg__kreis svg{ position: absolute; fill: none; stroke: currentColor; stroke-width: 2.6; stroke-linecap: round; stroke-linejoin: round; stroke-dasharray: 22; stroke-dashoffset: 22; transition: stroke-dashoffset 360ms var(--ease-out) 120ms; }
.ps-anfrage .wpcf7 .ps-weg__nr{ transition: opacity 160ms, transform 240ms var(--ease-out); }
.ps-anfrage .wpcf7 .ps-weg__knopf:not([aria-disabled="true"]):hover .ps-weg__kreis{ box-shadow: inset 0 0 0 1.5px var(--tanne-600); }
.ps-anfrage .wpcf7 .ist-aktiv .ps-weg__kreis{ background: var(--sonne-500); box-shadow: 0 0 0 6px rgba(204, 156, 76, .18); color: var(--tanne-950); }
.ps-anfrage .wpcf7 .ist-aktiv .ps-weg__knopf, .ps-anfrage .wpcf7 .ist-erledigt .ps-weg__knopf{ color: var(--text-strong); }
.ps-anfrage .wpcf7 .ist-erledigt .ps-weg__kreis{ background: var(--tanne-600); box-shadow: none; color: var(--schnee); }
.ps-anfrage .wpcf7 .ist-erledigt .ps-weg__nr{ opacity: 0; transform: scale(.6); }
.ps-anfrage .wpcf7 .ist-erledigt .ps-weg__kreis svg{ stroke-dashoffset: 0; }
@keyframes ps-sonne { 0% { box-shadow: 0 0 0 0 rgba(204, 156, 76, .5); } 100% { box-shadow: 0 0 0 6px rgba(204, 156, 76, .18); } }
.ps-bw .ps-anfrage .wpcf7 .ist-aktiv .ps-weg__kreis{ animation: ps-sonne 700ms var(--ease-out); }

/* ---------------------------------------------- Weiter, Zurück, Absenden */
.ps-anfrage .wpcf7 .ps-anfrage__schritte{ position: relative; }
.ps-anfrage .wpcf7 .ps-schrittnav{ display: flex; align-items: center; justify-content: space-between; gap: 12px 20px; margin-top: clamp(28px, 4vw, 40px); padding-top: 24px; border-top: 1px solid var(--fels-200); }
.ps-anfrage .wpcf7 .ps-schrittnav.ist-erster{ justify-content: flex-end; }
.ps-anfrage .wpcf7 .ps-schrittknopf{
	position: relative;
	isolation: isolate;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 10px;
	min-height: 52px;
	padding: 0 26px;
	border: 0;
	border-radius: var(--radius-control);
	overflow: hidden;
	cursor: pointer;
	font: 600 13px/1.2 var(--font-sans);
	letter-spacing: var(--ls-button);
	text-transform: uppercase;
	transition: color var(--dur-fast), translate 420ms var(--ease-out);
}
.ps-anfrage .wpcf7 .ps-schrittknopf--weiter{ background: var(--tanne-600); color: var(--schnee); }
.ps-anfrage .wpcf7 .ps-schrittknopf--weiter::before{ content: ""; position: absolute; inset: 0; z-index: -1; background: var(--tanne-800); transform: scaleX(0); transform-origin: right center; transition: transform 520ms var(--ease-out); }
.ps-anfrage .wpcf7 .ps-schrittknopf--weiter:is(:hover, :focus-visible)::before { transform: scaleX(1); transform-origin: left center; }
.ps-anfrage .wpcf7 .ps-schrittknopf__pfeil{ display: inline-block; font-family: var(--font-sans); font-size: 17px; line-height: 1; transition: transform 420ms var(--ease-out); }
.ps-anfrage .wpcf7 .ps-schrittknopf--weiter:is(:hover, .ps-anfrage .wpcf7 :focus-visible) .ps-schrittknopf__pfeil{ transform: translateX(4px); }
.ps-anfrage .wpcf7 .ps-schrittknopf--zurueck{ min-height: 44px; padding: 0 10px 0 4px; background: none; color: var(--tanne-700); letter-spacing: .04em; }
.ps-anfrage .wpcf7 .ps-schrittknopf--zurueck:hover{ color: var(--tanne-900); }
.ps-anfrage .wpcf7 .ps-schrittknopf--zurueck:is(:hover, .ps-anfrage .wpcf7 :focus-visible) .ps-schrittknopf__pfeil{ transform: translateX(-4px); }

.ps-anfrage .wpcf7 .ps-senden{ position: relative; display: inline-flex; margin: 24px 0 0; border-radius: var(--radius-control); transition: translate 420ms var(--ease-out); }
.ps-anfrage .wpcf7 .ps-assistent .ps-senden{ margin: 0; }
.ps-anfrage .wpcf7 .ps-anfrage__formular .ps-senden input[type="submit"] {
	min-height: 56px;
	padding: 0 30px;
	border: 0;
	border-radius: var(--radius-control);
	background: var(--sonne-500);
	color: var(--tanne-950);
	font: 700 13px/1 var(--font-sans);
	letter-spacing: var(--ls-button);
	text-transform: uppercase;
	cursor: pointer;
	transition: background-color 240ms var(--ease-out), color 200ms;
}
.ps-anfrage .wpcf7 .ps-anfrage__formular .ps-senden input[type="submit"]:hover { background: var(--sonne-400); }
.ps-anfrage .wpcf7 .ps-anfrage__formular .ps-senden input[type="submit"]:focus-visible { outline: 2px solid var(--tanne-700); outline-offset: 3px; box-shadow: none; }
.ps-anfrage .wpcf7 .ps-senden::after{ content: ""; position: absolute; left: 0; bottom: 0; height: 3px; width: 34%; border-radius: 3px; background: var(--tanne-800); opacity: 0; pointer-events: none; }
.ps-anfrage .wpcf7 .ps-senden.ist-laedt input[type="submit"]{ cursor: progress; }
.ps-anfrage .wpcf7 .ps-senden.ist-laedt::after{ opacity: 1; animation: ps-laden 1100ms ease-in-out infinite; }
@keyframes ps-laden { 0% { left: 0; transform: translateX(-100%); } 100% { left: 100%; transform: translateX(0); } }
.ps-anfrage .wpcf7 .ps-senden__haken{ position: absolute; inset: 0; display: grid; place-items: center; pointer-events: none; opacity: 0; }
.ps-anfrage .wpcf7 .ps-senden__haken svg{ fill: none; stroke: var(--schnee); stroke-width: 2.8; stroke-linecap: round; stroke-linejoin: round; stroke-dasharray: 22; stroke-dashoffset: 22; }
.ps-anfrage .wpcf7 .ps-anfrage__formular .ps-senden.ist-gesendet input[type="submit"] { background: var(--tanne-600); color: transparent; }
.ps-anfrage .wpcf7 .ps-senden.ist-gesendet .ps-senden__haken{ opacity: 1; }
.ps-anfrage .wpcf7 .ps-senden.ist-gesendet .ps-senden__haken svg{ stroke-dashoffset: 0; transition: stroke-dashoffset 420ms var(--ease-out) 80ms; }
.ps-anfrage .wpcf7-spinner { display: none; }
@media (max-width: 479px) {
	.ps-anfrage .wpcf7 .ps-schrittnav{ flex-direction: column-reverse; align-items: stretch; }
	.ps-anfrage .wpcf7 .ps-schrittnav .ps-schrittknopf--weiter, .ps-anfrage .wpcf7 .ps-schrittnav .ps-senden, .ps-anfrage .wpcf7 .ps-anfrage__formular .ps-senden input[type="submit"] { width: 100%; }
	.ps-anfrage .wpcf7 .ps-schrittnav .ps-schrittknopf--zurueck{ align-self: center; }
}

.ps-anfrage .wpcf7 .ps-sendefehler{ margin: 24px 0 0; padding: 16px 18px; border-left: 3px solid var(--rost-600); border-radius: var(--radius-control); background: var(--rost-100); font: 400 15px/1.5 var(--font-sans); color: var(--fels-950); }
.ps-anfrage .wpcf7 .ps-sendefehler p{ margin: 0 0 6px; }
.ps-anfrage .wpcf7 .ps-sendefehler__titel{ font-weight: 700; color: var(--rost-600); }
.ps-anfrage .wpcf7 .ps-sendefehler__wege{ display: flex; flex-wrap: wrap; gap: 4px 18px; margin: 4px 0 0 !important; }
.ps-anfrage .wpcf7 .ps-sendefehler__wege a{ display: inline-flex; align-items: center; min-height: 44px; font-weight: 600; color: var(--tanne-800); }

/* Nach dem Senden: Inhalt tritt zurück, der Knopf zeigt den Haken (danach Danke-Ansicht) */
.ps-anfrage .wpcf7 .ps-anfrage__formular.ist-gesendet :is(.ps-anfrage__schritte, .ps-weg, .ps-schrittknopf--zurueck) { opacity: .18; pointer-events: none; transition: opacity 280ms var(--ease-out); }

/* ---------------------------------------------- Danke-Ansicht */
.ps-anfrage .wpcf7 .ps-danke {
	padding: clamp(28px, 4vw, 52px);
	background: var(--weiss);
	border: 1px solid var(--fels-200);
	border-radius: var(--ps-af-radius);
	box-shadow: var(--shadow-md);
	color: var(--text-body);
}
.ps-anfrage .wpcf7 .ps-anfrage__formular .ps-danke{ padding: 0; border: 0; box-shadow: none; }
.ps-anfrage .wpcf7 .ps-danke__haken{ margin: 0; }
.ps-anfrage .wpcf7 .ps-danke__haken svg{ display: block; width: 56px; height: 56px; fill: none; stroke-linecap: round; stroke-linejoin: round; }
.ps-anfrage .wpcf7 .ps-danke__haken circle{ stroke: var(--sonne-500); stroke-width: 2; stroke-dasharray: 140; stroke-dashoffset: 0; transform: rotate(-90deg); transform-origin: 50% 50%; }
.ps-anfrage .wpcf7 .ps-danke__haken path{ stroke: var(--tanne-600); stroke-width: 3; stroke-dasharray: 32; stroke-dashoffset: 0; }
.ps-bw .ps-anfrage .wpcf7 .ps-danke.ist-da .ps-danke__haken circle{ animation: ps-zeichnen-kreis 700ms var(--ease-out) both; }
.ps-bw .ps-anfrage .wpcf7 .ps-danke.ist-da .ps-danke__haken path{ animation: ps-zeichnen-haken 420ms var(--ease-out) 520ms both; }
@keyframes ps-zeichnen-kreis { from { stroke-dashoffset: 140; } to { stroke-dashoffset: 0; } }
@keyframes ps-zeichnen-haken { from { stroke-dashoffset: 32; } to { stroke-dashoffset: 0; } }
.ps-anfrage .wpcf7 .ps-danke__titel{ margin: 20px 0 0; font: 300 clamp(30px, 3.4vw, 46px)/1.08 var(--font-display); letter-spacing: var(--ls-display); color: var(--text-strong); outline: none; }
.ps-anfrage .wpcf7 .ps-danke__titel::after{ content: ""; display: block; width: 72px; height: 2px; margin-top: 20px; background: var(--sonne-500); transform-origin: left center; }
.ps-bw .ps-anfrage .wpcf7 .ps-danke.ist-da .ps-danke__titel::after{ animation: ps-linie 800ms var(--ease-out) 300ms both; }
@keyframes ps-linie { from { transform: scaleX(0); } to { transform: scaleX(1); } }
.ps-anfrage .wpcf7 .ps-danke__text{ margin: 20px 0 0; font: 400 var(--fs-lead)/1.55 var(--font-sans); color: var(--text-body); max-width: 40em; }
.ps-anfrage .wpcf7 .ps-danke__text strong{ color: var(--text-strong); font-weight: 600; overflow-wrap: anywhere; }
.ps-anfrage .wpcf7 .ps-danke__unter{ margin: 32px 0 12px; font: 600 var(--fs-eyebrow)/1.4 var(--font-sans); letter-spacing: var(--ls-eyebrow); text-transform: uppercase; color: var(--fels-600); }
.ps-anfrage .wpcf7 .ps-danke__liste{ margin: 0; padding: 0; list-style: none; counter-reset: ps-danke; display: grid; gap: 12px; }
.ps-anfrage .wpcf7 .ps-danke__liste li{ counter-increment: ps-danke; display: grid; grid-template-columns: 32px 1fr; align-items: baseline; font: 400 var(--fs-body)/1.5 var(--font-sans); color: var(--text-body); }
.ps-anfrage .wpcf7 .ps-danke__liste li::before{ content: counter(ps-danke); font: italic 400 22px/1 var(--font-display); color: var(--sonne-700); }
.ps-anfrage .wpcf7 .ps-danke__eilig{ margin: 28px 0 0; padding-top: 20px; border-top: 1px solid var(--fels-200); font: 400 var(--fs-body)/1.5 var(--font-sans); }
.ps-anfrage .wpcf7 .ps-danke__eilig a{ display: inline-flex; align-items: center; min-height: 44px; font-weight: 600; color: var(--tanne-700); }

/* ---------------------------------------------- Zusammenfassung (anfrage.js) */
.ps-zusammenfassung { position: relative; padding: 26px 26px 18px; background: var(--weiss); border: 1px solid var(--fels-200); border-radius: var(--ps-af-radius); box-shadow: var(--shadow-sm); }
.ps-zusammenfassung::before { content: ""; position: absolute; top: -1px; left: 26px; right: 26px; height: 2px; background: var(--sonne-500); transform-origin: left center; }
.ps-bw .ps-zusammenfassung::before { animation: ps-linie 1100ms var(--ease-out) 400ms both; }
.ps-zusammenfassung__titel { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin: 0 0 10px; font: 600 var(--fs-eyebrow)/1.4 var(--font-sans); letter-spacing: var(--ls-eyebrow); text-transform: uppercase; color: var(--text-accent); }
.ps-zusammenfassung__marke { padding: 4px 10px; border-radius: 999px; background: var(--tanne-600); color: var(--schnee); letter-spacing: .06em; }
.ps-zusammenfassung__liste { margin: 0; }
.ps-zusammenfassung__zeile { display: grid; gap: 2px; padding: 12px 0; border-top: 1px solid var(--fels-100); }
.ps-zusammenfassung__zeile dt { font: 600 13px/1.3 var(--font-sans); color: var(--fels-600); }
.ps-zusammenfassung__zeile dd { margin: 0 -6px; padding: 2px 6px; border-radius: 4px; font: 400 19px/1.35 var(--font-display); color: var(--text-strong); overflow-wrap: anywhere; }
.ps-zusammenfassung__zusatz { display: block; margin-top: 2px; font: 600 13px/1.35 var(--font-sans); letter-spacing: .02em; color: var(--tanne-700); }
.ps-zusammenfassung__zeile dd.ist-offen { font: italic 400 17px/1.35 var(--font-display); color: var(--fels-600); }
@keyframes ps-neu { 0% { background-color: var(--sonne-100); transform: translateX(4px); } 30% { transform: none; } 100% { background-color: transparent; } }
.ps-bw .ps-zusammenfassung__zeile dd.ist-neu { animation: ps-neu 1100ms var(--ease-out); }

/* ---------------------------------------------- Seitenspalte: Gastgeber auf der Bühne, Zusagen, Bewertung, direkt */
.ps-anfrage__seite { display: grid; gap: 30px; align-content: start; min-width: 0; margin: 0; }
.ps-anfrage__seite > * { margin: 0; }
.ps-anfrage__gastgeber { position: relative; isolation: isolate; margin: 8px 0 0 !important; }
.ps-anfrage__gastgeber img { display: block; width: 100%; height: auto; aspect-ratio: 4 / 3; object-fit: cover; border-radius: var(--radius-image); }
/* Bühne wie Bild-Text Variante A: Heu hinter dem Foto, versetzt, nach außen bis an den Bildschirmrand (reine Malfläche) */
.ps-anfrage__gastgeber::before {
	content: "";
	position: absolute;
	z-index: -1;
	top: 0;
	left: 16%;
	right: 0;
	aspect-ratio: 1.12;
	translate: 0 13%;
	border-image: linear-gradient(var(--heu) 0 0) fill 0 / 0 / 0 100vw 0 0;
	pointer-events: none;
}
/* Goldwinkel an der Innenecke (zum Formular hin) */
.ps-anfrage__gastgeber::after {
	content: "";
	position: absolute;
	top: -14px;
	left: -14px;
	width: 56px;
	height: 56px;
	background:
		linear-gradient(var(--sonne-500) 0 0) left top / 100% 1.5px no-repeat,
		linear-gradient(var(--sonne-500) 0 0) left top / 1.5px 100% no-repeat;
	pointer-events: none;
}
.ps-anfrage__gastgeber figcaption { margin: 14px 0 0; padding-left: 16%; font: italic 400 17px/1.4 var(--font-display); color: var(--fels-800); text-align: left; }
.ps-anfrage__zusagen { display: grid; gap: 10px; margin: 6px 0 0 !important; padding: 0; list-style: none; }
.ps-anfrage__zusagen li {
	display: flex;
	align-items: center;
	gap: 12px;
	margin: 0;
	font: 600 16px/1.35 var(--font-sans);
	color: var(--text-strong);
}
.ps-anfrage__zusagen li::before {
	content: "";
	flex: none;
	width: 24px;
	height: 24px;
	border-radius: 50%;
	background: var(--tanne-600) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23fcfaf5' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 12.5l4 4L18 8'/%3E%3C/svg%3E") center / 14px no-repeat;
}
.ps-anfrage__bewertung { padding: 16px 0 0; border-top: 1px solid var(--fels-200); font: 400 15px/1.55 var(--font-sans); color: var(--fels-800); }
.ps-anfrage__bewertung a { color: var(--text-strong); text-decoration-color: var(--fels-400); text-underline-offset: 3px; }
.ps-anfrage__bewertung a:hover { text-decoration-color: var(--sonne-500); }
.ps-anfrage__direkt { display: grid; gap: 0; padding: 16px 0 0; border-top: 1px solid var(--fels-200); font: 400 15px/1.5 var(--font-sans); color: var(--fels-800); }
.ps-anfrage__direkt a { display: inline-flex; align-items: center; gap: 10px; min-height: 44px; font: 600 17px/1.3 var(--font-sans); color: var(--tanne-700); text-decoration: none; }
.ps-anfrage__direkt a:hover { color: var(--tanne-900); text-decoration: underline; text-underline-offset: 3px; }
.ps-anfrage__direkt a::before { content: ""; flex: none; width: 20px; height: 20px; background: var(--sonne-700); -webkit-mask: var(--ps-af-icon) center / contain no-repeat; mask: var(--ps-af-icon) center / contain no-repeat; }
.ps-anfrage__direkt a[href^="tel:"] { --ps-af-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M22 16.9v3a2 2 0 0 1-2.2 2 19.8 19.8 0 0 1-8.6-3.1 19.5 19.5 0 0 1-6-6A19.8 19.8 0 0 1 2.1 4.2 2 2 0 0 1 4.1 2h3a2 2 0 0 1 2 1.7c.1.9.4 1.8.7 2.7a2 2 0 0 1-.5 2.1L8 9.8a16 16 0 0 0 6 6l1.3-1.3a2 2 0 0 1 2.1-.4c.9.3 1.8.6 2.7.7a2 2 0 0 1 1.7 2z'/%3E%3C/svg%3E"); }
.ps-anfrage__direkt a[href^="mailto:"] { --ps-af-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='2' y='4' width='20' height='16' rx='2'/%3E%3Cpath d='m22 7-10 6L2 7'/%3E%3C/svg%3E"); overflow-wrap: anywhere; }

@media (max-width: 1023px) {
	.ps-anfrage__seite { grid-template-columns: minmax(0, 1fr); }
	.ps-anfrage__gastgeber { max-width: 520px; }
}
@media (min-width: 640px) and (max-width: 1023px) {
	/* Tablet: Zusammenfassung volle Breite, darunter Foto und Vertrauen nebeneinander */
	.ps-anfrage__seite { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); column-gap: 40px; }
	.ps-anfrage__seite > .ps-zusammenfassung { grid-column: 1 / -1; }
	.ps-anfrage__gastgeber { grid-row: span 3; }
}
@media (max-width: 639px) {
	.ps-anfrage { gap: 32px; }
	.ps-anfrage__gastgeber { margin-right: 18px !important; }
	.ps-anfrage__gastgeber::before { left: 18%; }
}

/* ---------------------------------------------- Legenden wie Überschriften im Fluss (nicht im Rahmen des Fieldsets) */
.ps-anfrage .wpcf7 :is(.ps-schritt, .ps-gruppe, .ps-monatsgruppe) > legend { float: left; width: 100%; }
.ps-anfrage .wpcf7 :is(.ps-schritt, .ps-gruppe, .ps-monatsgruppe) > legend + * { clear: both; }
.ps-anfrage .wpcf7 .ps-anfrage__formular .wpcf7-form-control-wrap { display: block; }
.ps-anfrage .wpcf7 .ps-anfrage__formular .ps-feld--zahl .wpcf7-form-control-wrap { display: inline-block; }

/* ---------------------------------------------- Handy: Personen als Zeile (Name links, Stepper rechts) */
@media (max-width: 519px) {
	.ps-anfrage .wpcf7 .ps-reihe--personen { grid-template-columns: minmax(0, 1fr); }
	.ps-anfrage .wpcf7 .ps-feld--zahl { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 8px 12px; }
	.ps-anfrage .wpcf7 .ps-feld--zahl > label { margin: 0; }
	.ps-anfrage .wpcf7 .ps-feld--zahl > label .ps-feld__zusatz { display: block; font-size: 13px; }
	.ps-anfrage .wpcf7 .ps-feld--zahl > .wpcf7-not-valid-tip, .ps-anfrage .wpcf7 .ps-feld--zahl .wpcf7-not-valid-tip { flex-basis: 100%; }
}

/* Knopf „Nach oben“ (kopf.js) liegt mobil über „Weiter“; auf der kurzen Anfrageseite nicht nötig */
@media (max-width: 781px) {
	body:has(.ps-anfrage__formular) .ps-nachoben { display: none !important; }
}

/* ---------------------------------------------- Bewegung reduzieren: alles sofort */
@media (prefers-reduced-motion: reduce) {
	.ps-anfrage *, .ps-anfrage *::before, .ps-anfrage *::after { transition: none !important; animation: none !important; }
}
