/**
 * Gravity Forms (Orbital) in the look of this theme.
 *
 * Only `--gf-*` custom properties on the framework wrapper, mapped to
 * theme.json tokens; eigene Feldhilfen stehen unter den Variablen,
 * no !important. Colours, radius and control sizes that GF renders inline
 * per form come from the `gform_default_styles` filter in
 * inc/gravityforms.php; this file covers everything the filter cannot
 * express. The `-md` step variables are the targets of GF's inline
 * `--gf-ctrl-size` / `--gf-ctrl-btn-*` declarations (inputSize "md").
 *
 * Property reference:
 * plugins/gravityforms/assets/css/dist/gravity-forms-theme-framework.min.css
 */

.gform-theme--framework {

	/* Typography: theme font, nothing below the base size. Field titles
	   (primary labels) are deliberately heading-sized since 2026-09-16;
	   their colour (primary) comes from the gform_default_styles filter. */
	--gf-font-family-base: var(--wp--preset--font-family--body);
	--gf-font-size-primary: var(--wp--preset--font-size--medium);
	--gf-ctrl-label-font-size-primary: var(--wp--preset--font-size--x-large);
	--gf-ctrl-label-font-size-secondary: var(--wp--preset--font-size--medium);
	--gf-ctrl-label-font-size-tertiary: var(--wp--preset--font-size--medium);
	--gf-ctrl-label-font-size-quaternary: var(--wp--preset--font-size--medium);
	--gf-ctrl-label-font-size-req: var(--wp--preset--font-size--medium);
	--gf-ctrl-label-font-weight-primary: 700;
	--gf-ctrl-label-font-weight-req: 400;
	--gf-ctrl-label-color-req: var(--wp--preset--color--neutral);
	--gf-ctrl-desc-font-size: var(--wp--preset--font-size--medium);
	--gf-ctrl-desc-line-height: 1.5;
	--gf-ctrl-file-btn-font-size: var(--wp--preset--font-size--medium);
	--gf-ctrl-file-prev-font-size: var(--wp--preset--font-size--medium);
	--gf-ctrl-file-prog-text-font-size: var(--wp--preset--font-size--small);

	/* Controls: height ≈ theme input (0.5rem + 1.65 × 1.0625rem + 0.5rem). */
	--gf-ctrl-size-md: 2.75rem;
	--gf-ctrl-padding-x: var(--wp--preset--spacing--40);
	--gf-ctrl-border-width: var(--wp--custom--form--border-width);
	--gf-ctrl-radius: var(--wp--custom--radius--small);
	--gf-ctrl-shadow: none;
	--gf-ctrl-textarea-padding-y: var(--wp--preset--spacing--30);
	--gf-ctrl-textarea-line-height: 1.5;
	--gf-ctrl-textarea-radius: var(--wp--custom--radius--small);

	/* Focus ring like global.scss :focus-visible. */
	--gf-ctrl-outline-color-focus: var(--wp--custom--color--focus);
	--gf-ctrl-outline-offset: 3px;
	--gf-ctrl-outline-width-focus: 3px;

	/* Errors: red from the theme palette. The rgba()
	   consumers of --gf-color-danger-rgb are re-mapped via color-mix. */
	--gf-color-danger: var(--wp--preset--color--error);
	--gf-ctrl-border-color-error: var(--wp--preset--color--error);
	--gf-form-validation-bg-color: color-mix(in srgb, var(--wp--preset--color--error) 3%, transparent);
	--gf-form-validation-border-color: color-mix(in srgb, var(--wp--preset--color--error) 25%, transparent);
	--gf-form-validation-heading-icon-bg-color: color-mix(in srgb, var(--wp--preset--color--error) 5%, transparent);
	--gf-form-validation-outline-color-focus: var(--wp--preset--color--error);
	--gf-form-validation-radius: var(--wp--custom--radius--small);
	--gf-form-validation-shadow: none;

	/* Submit button like theme.json elements.button. */
	--gf-ctrl-btn-font-weight: 700;
	--gf-ctrl-btn-font-size-md: var(--wp--preset--font-size--medium);
	--gf-ctrl-btn-padding-x-md: var(--wp--preset--spacing--50);
	--gf-ctrl-btn-radius: var(--wp--custom--radius--button);
	--gf-ctrl-btn-shadow: none;
	--gf-ctrl-btn-bg-color-hover-primary: var(--wp--preset--color--primary-dark);
	--gf-ctrl-btn-border-color-focus-primary: var(--wp--custom--color--focus);
	--gf-ctrl-file-btn-radius: 0; /* the button sits inside the input */
	--gf-transition-duration: 0.2s;

	/* Multi-page forms: progress bar (style "blue" in the form settings). */
	--gf-field-pg-prog-bar-bg-color-blue: var(--wp--preset--color--primary);
	--gf-field-pg-prog-bar-bg-color: var(--wp--preset--color--neutral-light);
	--gf-field-pg-prog-font-size: var(--wp--preset--font-size--medium);
	--gf-field-pg-prog-font-weight: 700;
	--gf-field-pg-prog-color: var(--wp--preset--color--contrast);

	/* Spacing on the theme scale (GF: 40px between fields, 8px label gap).
	   Since 2026-09-16 more generous: spacing 70 (2.5–4rem, fluid) between
	   fields, 0.5rem between the description above the control and the
	   control itself. */
	--gf-form-gap-y: var(--wp--preset--spacing--70);
	--gf-form-footer-margin-y-start: var(--wp--preset--spacing--70);
	--gf-label-space-primary: var(--wp--preset--spacing--20);
	--gf-desc-space: var(--wp--preset--spacing--30);
}

/* Ausschliesslich Kontaktformular 10: kompakte Feld- und Buttonabstaende,
   danach ein deutlicher Abstand zum folgenden Datenkontakt. */
.gform-theme--framework[id="gform_wrapper_10"] {
	--gf-form-gap-y: var(--wp--preset--spacing--50);
	--gf-form-footer-margin-y-start: var(--wp--preset--spacing--50);
}

.gform_wrapper:is([id="gform_wrapper_10"], [id="gform_confirmation_wrapper_10"]) {
	margin-block-end: var(--wp--preset--spacing--70);
}

/* Einreichformular: Nur der aktuelle Schritt ist kräftig ausgefüllt.
   Erledigte Schritte zeigen ihre Nummer in einem dezenten, hellen Kreis;
   GFs Häkchen (::after mit content aus dieser Variablen) entfällt, der
   unterstrichene Rücksprung-Link unterscheidet sie ausreichend
   (Felix, 04.10.). */
.gform-theme--framework[id="gform_wrapper_1"] {
	--gf-icon-ctrl-pg-numbers-complete: none;

	/* Abstand zum Seiteninhalt auf allen Formularschritten. */
	--gf-field-pg-prog-margin-y-end: var(--wp--preset--spacing--60);
	--gf-field-pg-steps-number-bg-color-active: var(--wp--preset--color--primary);
	--gf-field-pg-steps-number-border-color-active: var(--wp--preset--color--primary);
	--gf-field-pg-steps-number-color-active: var(--wp--preset--color--base);
	--gf-field-pg-steps-number-bg-color-complete: var(--wp--preset--color--base);
	--gf-field-pg-steps-number-border-color-complete: var(--wp--preset--color--neutral-light);
	--gf-field-pg-steps-number-color-complete: var(--wp--preset--color--primary);
}

/* Kurze Hinweise unter dem Feldtitel; Fehler bleiben unabhängig. */
[id="gform_wrapper_1"] .a21-field-help {
	color: var(--wp--preset--color--neutral);
	font-size: var(--gf-ctrl-desc-font-size);
	line-height: 1.5;
	overflow-wrap: anywhere;
}

[id="gform_wrapper_1"] .a21-field-help__button {
	display: inline;
	min-height: 0;
	padding: 0;
	border: 0;
	border-radius: 0;
	background: transparent;
	box-shadow: none;
	color: var(--wp--preset--color--primary-dark);
	font: inherit;
	text-decoration: underline;
	text-underline-offset: 0.15em;
	white-space: nowrap;
	cursor: pointer;
}

[id="gform_wrapper_1"] .a21-field-help__icon {
	width: 1em;
	height: 1em;
	vertical-align: -0.125em;
}

[id="gform_wrapper_1"] .a21-field-help__dialog {
	position: fixed;
	inset: 0;
	width: min(var(--wp--custom--measure), calc(100% - 2 * var(--wp--preset--spacing--40)));
	max-height: calc(100% - 2 * var(--wp--preset--spacing--40));
	box-sizing: border-box;
	margin: auto;
	padding: var(--wp--preset--spacing--50);
	border: 1px solid var(--wp--preset--color--neutral-light);
	border-radius: var(--wp--custom--radius--small);
	background: var(--wp--preset--color--base);
	color: var(--wp--preset--color--contrast);
	font-family: var(--wp--preset--font-family--body);
	font-size: var(--wp--preset--font-size--medium);
	line-height: 1.65;
	overflow-wrap: anywhere;
}

[id="gform_wrapper_1"] .a21-field-help__dialog::backdrop {
	background: color-mix(in srgb, var(--wp--preset--color--contrast) 55%, transparent);
}

[id="gform_wrapper_1"] .a21-field-help__dialog h2 {
	margin-block: 0 var(--wp--preset--spacing--40);
	font-size: var(--wp--preset--font-size--large);
	line-height: 1.3;
}

[id="gform_wrapper_1"] .a21-field-help__content > * + * {
	margin-block-start: var(--wp--preset--spacing--40);
}

[id="gform_wrapper_1"] .a21-field-help__content :is(ul, ol) {
	padding-inline-start: var(--wp--preset--spacing--50);
	list-style-position: outside;
}

[id="gform_wrapper_1"] .a21-field-help__content ul {
	list-style-type: disc;
}

[id="gform_wrapper_1"] .a21-field-help__content ol {
	list-style-type: decimal;
}

[id="gform_wrapper_1"] .a21-field-help__close {
	margin-block-start: var(--wp--preset--spacing--50);
	padding: var(--wp--preset--spacing--30) var(--wp--preset--spacing--50);
	border: 0;
	border-radius: var(--wp--custom--radius--button);
	background: var(--wp--preset--color--primary);
	color: var(--wp--preset--color--base);
	font: inherit;
	font-weight: 700;
	cursor: pointer;
}

[id="gform_wrapper_1"] .a21-field-help__close:hover {
	background: var(--wp--preset--color--primary-dark);
}

[id="gform_wrapper_1"] :is(.a21-field-help__button, .a21-field-help__close):focus-visible {
	outline: 3px solid var(--wp--custom--color--focus);
	outline-offset: 3px;
}

[id="gform_wrapper_1"] :is(.a21-field-help, .a21-field-help__content) > :first-child {
	margin-block-start: 0;
}

[id="gform_wrapper_1"] :is(.a21-field-help, .a21-field-help__content) > :last-child {
	margin-block-end: 0;
}

[id="gform_wrapper_1"] :is(.a21-field-help, .a21-field-help__content) a {
	color: var(--wp--preset--color--primary-dark);
	text-decoration: underline;
}

/* Rücksprünge sind mit Tastatur und Touch bedienbar. */
.gform_wrapper .a21-step-link {
	display: inline-flex;
	align-items: center;
	gap: var(--gf-field-pg-steps-number-margin-x-end, 0.75rem);
	min-height: 44px;
	padding: 0;
	border: 0;
	background: transparent;
	color: inherit;
	font: inherit;
	cursor: pointer;
}

.gform_wrapper .a21-step-link .gf_step_label {
	text-decoration: underline;
	text-underline-offset: 0.2em;
}

.gform_wrapper :is(.a21-step-link, .a21-preview__edit):focus-visible {
	outline: 3px solid var(--wp--custom--color--focus);
	outline-offset: 3px;
}

/* Vorschau: Textzeilen mit Bearbeiten-Spalte, Bild und Angaben gemeinsam unten.
   Farben, Typografie und Abstände folgen den Tokens des Themes. */
.gform_wrapper .a21-preview {
	margin-block-start: var(--wp--preset--spacing--50);
	padding: var(--wp--preset--spacing--60);
	border: 1px solid var(--wp--custom--color--border);
	border-radius: var(--wp--custom--radius--small);
	background: var(--wp--preset--color--base);
	box-shadow: var(--wp--custom--design--card-shadow);
	color: var(--wp--preset--color--contrast);
	overflow-wrap: anywhere;
}

.gform_wrapper .a21-preview > .a21-preview__element {
	display: grid;
	gap: var(--wp--preset--spacing--40) var(--wp--preset--spacing--60);
	padding-block-end: var(--wp--preset--spacing--60);
	margin-block-end: var(--wp--preset--spacing--60);
	border-block-end: 1px solid var(--wp--custom--color--border);
}

.gform_wrapper .a21-preview__toolbar {
	display: flex;
	align-items: baseline;
	flex-wrap: wrap;
	gap: var(--wp--preset--spacing--20) var(--wp--preset--spacing--40);
}

.gform_wrapper .a21-preview__label {
	margin: 0;
	color: var(--wp--preset--color--primary-dark);
	font-family: var(--wp--preset--font-family--body);
	font-size: var(--wp--preset--font-size--small);
	font-weight: 700;
	line-height: 1.5;
	letter-spacing: 0.06em;
	text-transform: uppercase;
}

/* Stift und Text bilden ein gemeinsames, per Tastatur erreichbares Ziel. */
.gform_wrapper .a21-preview__edit {
	display: inline-flex;
	align-items: center;
	gap: var(--wp--preset--spacing--20);
	min-height: 24px;
	padding: 0;
	border: 0;
	border-radius: 0;
	background: transparent;
	box-shadow: none;
	color: var(--wp--preset--color--primary);
	font: inherit;
	font-size: var(--wp--preset--font-size--small);
	text-decoration: underline;
	text-underline-offset: 0.15em;
	cursor: pointer;
}

.gform_wrapper .a21-preview__edit svg {
	flex: none;
}

.gform_wrapper .a21-preview__edit:hover {
	color: var(--wp--preset--color--primary-dark);
}

.gform_wrapper .a21-preview__element--title h3 {
	margin: 0;
	font-family: var(--wp--preset--font-family--heading);
	font-size: var(--wp--preset--font-size--xx-large);
	line-height: 1.4;
	text-transform: uppercase;
}

.gform_wrapper .a21-preview__element--title h3 span {
	padding-inline: var(--wp--preset--spacing--20);
	background: var(--wp--preset--color--primary);
	color: var(--wp--preset--color--base);
	box-decoration-break: clone;
}

.gform_wrapper .a21-preview__element--forderung .a21-preview__value {
	padding: var(--wp--preset--spacing--50);
	border-radius: var(--wp--custom--radius--small);
	background: var(--wp--preset--color--primary-light);
	color: var(--wp--preset--color--primary-dark);
	font-family: var(--wp--preset--font-family--heading);
	font-size: var(--wp--preset--font-size--x-large);
	font-weight: 600;
	line-height: 1.4;
}

.gform_wrapper .a21-preview__value > :first-child {
	margin-block-start: 0;
}

.gform_wrapper .a21-preview__value > :last-child {
	margin-block-end: 0;
}

/* Zwischenüberschriften bleiben unter dem Titel der Vorschau. */
.gform_wrapper .a21-preview__element--content .a21-preview__value :is(h2, h3) {
	margin-block: var(--wp--preset--spacing--50) var(--wp--preset--spacing--30);
	font-size: var(--wp--preset--font-size--large);
	line-height: 1.3;
}

.gform_wrapper .a21-preview__media {
	display: grid;
	gap: var(--wp--preset--spacing--60);
}

.gform_wrapper .a21-preview__media .a21-preview__toolbar {
	justify-content: space-between;
	margin-block-end: var(--wp--preset--spacing--30);
}

.gform_wrapper .a21-preview__details > .a21-preview__element {
	padding-block: var(--wp--preset--spacing--40);
	border-block-start: 1px solid var(--wp--custom--color--border);
}

.gform_wrapper .a21-preview__details > .a21-preview__label {
	margin-block-end: var(--wp--preset--spacing--40);
}

.gform_wrapper .a21-preview__details .a21-preview__toolbar {
	margin-block-end: var(--wp--preset--spacing--20);
}

.gform_wrapper .a21-preview__details .a21-preview__toolbar .a21-preview__label {
	color: var(--wp--preset--color--neutral);
	font-weight: 400;
	letter-spacing: normal;
	text-transform: none;
}

.gform_wrapper .a21-preview__details .a21-preview__value {
	font-weight: 700;
}

.gform_wrapper .a21-einreichung-review__image {
	margin: 0;
}

.gform_wrapper .a21-einreichung-review__image img {
	display: block;
	width: 100%;
	max-width: 100%;
	height: auto;
	aspect-ratio: 16 / 9;
	border-radius: var(--wp--custom--radius--small);
	object-fit: cover;
}

.gform_wrapper .a21-einreichung-review__image figcaption {
	margin-block-start: var(--wp--preset--spacing--20);
	color: var(--wp--preset--color--neutral);
	font-size: var(--wp--preset--font-size--small);
}

/* Hinweis direkt über „Zurück“ und dem Absende-Knopf. */
.gform_wrapper .a21-einreichung-review__note {
	margin-block: var(--wp--preset--spacing--50) 0;
}

@media (min-width: 782px) {

	.gform_wrapper .a21-preview > .a21-preview__element {
		grid-template-columns: minmax(0, 1fr) minmax(0, 2.5fr);
	}

	.gform_wrapper .a21-preview > .a21-preview__element > .a21-preview__toolbar {
		flex-direction: column;
		align-items: flex-start;
	}

	.gform_wrapper .a21-preview__media {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

@media (max-width: 480px) {

	.gform_wrapper .a21-preview {
		padding: var(--wp--preset--spacing--50) var(--wp--preset--spacing--40);
	}

	.gform_wrapper .a21-preview > .a21-preview__element {
		padding-block-end: var(--wp--preset--spacing--50);
		margin-block-end: var(--wp--preset--spacing--50);
	}

	.gform_wrapper .a21-preview__element--title h3 {
		font-size: var(--wp--preset--font-size--x-large);
	}

	.gform_wrapper .a21-preview__element--forderung .a21-preview__value {
		padding: var(--wp--preset--spacing--40);
	}
}

/* Eigener Zähler der Mindestlängen-Felder (Einreichformular::counterHtml):
   der Hinweis „mindestens N Zeichen“ ist rot und wird grün, sobald die
   Zahl erreicht ist (Modifier setzt assets/js/gravityforms-help.js). */
.gform-theme--framework .a21-counter__min {
	color: var(--gf-color-danger);
}

.gform-theme--framework .a21-counter__min--met {
	color: var(--wp--preset--color--primary);
}

/* Bild direkt unter den Dateiangaben; der native Löschknopf bleibt erhalten. */
.gform_wrapper .a21-upload-preview {
	width: 100%;
	max-width: 480px;
	margin-block-start: var(--wp--preset--spacing--20);
}

.gform_wrapper .a21-upload-preview img {
	display: block;
	width: 100%;
	height: auto;
	aspect-ratio: 16 / 9;
	object-fit: cover;
	object-position: center;
}

/* GF setzt den Löschknopf erst nach erfolgreichem Upload, auch beim Fortsetzen.
   Nach dem Löschen erscheinen Drop Area und Upload-Regeln wieder. */
.gform_wrapper [id="field_1_5"]:has(.ginput_preview .gform_delete_file) :is(.gform_fileupload_multifile, .gform_fileupload_rules) {
	display: none;
}

/* Erfolgreicher Titelbild-Upload ist ein Status, kein Validierungsfehler. */
.gform-theme--framework .a21-upload-success {
	--gf-local-color: var(--wp--preset--color--primary);

	color: var(--wp--preset--color--primary);
}

/* Erfüllte Fehlermeldung (Pflicht/Mindestlänge, Klasse aus dem Skript):
   Text bleibt stehen, grün mit Haken dahinter. GF setzt die Farbe über
   --gf-local-color in einer :where()-Regel; die Doppelklasse gewinnt. */
.gform-theme--framework .gfield_validation_message.a21-resolved {
	--gf-local-color: var(--wp--preset--color--primary);

	color: var(--wp--preset--color--primary);
}

.gform-theme--framework .gfield_validation_message.a21-resolved::after {
	content: "";
	display: inline-block;
	width: 1em;
	height: 1em;
	margin-inline-start: 0.3em;
	vertical-align: -0.15em;
	background-color: currentcolor;
	mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M9 16.2 4.8 12l-1.4 1.4L9 19 21 7l-1.4-1.4z'/%3E%3C/svg%3E") center / contain no-repeat;
}

/* Fehlerkasten: Fokus überdeckt den vorhandenen Rahmen nach innen. */
.gform-theme--framework .gform_validation_errors:focus {
	--gf-ctrl-outline-offset: calc(-1 * var(--gf-ctrl-outline-width-focus));
}

/* Fehlerlinks behalten nur den äußeren Fokusring. */
.gform-theme--framework .gform_validation_errors ol a {
	--gf-form-validation-border-color-focus: transparent;
}

/* Fortsetzungsbildschirm nach „Speichern und später fortfahren“
   (Einreichformular::savedMessage): eine Box, darin Gruppen. Kleine Abstände
   innerhalb einer Gruppe, große nur zwischen den Gruppen, damit Erklärung,
   Eingabefeld und zugehöriger Knopf als zusammengehörig erkennbar sind. */
[id="gform_wrapper_1"] .form_saved_message,
.gform_wrapper[id="gform_confirmation_wrapper_1"].form_saved_message_sent {
	padding: var(--wp--preset--spacing--50);
	background: var(--wp--preset--color--neutral-light);
	color: var(--wp--preset--color--contrast);
	font-size: var(--wp--preset--font-size--medium);
	line-height: 1.65;
	overflow-wrap: anywhere;
}

/* :where hält die Spezifität niedrig, damit die Gruppenabstände unten
   greifen. */
:is([id="gform_wrapper_1"], [id="gform_confirmation_wrapper_1"]) .a21-saved :where(h2, h3, p) {
	margin: 0;
}

:is([id="gform_wrapper_1"], [id="gform_confirmation_wrapper_1"]) .a21-saved > * + * {
	margin-block-start: var(--wp--preset--spacing--60);
}

:is([id="gform_wrapper_1"], [id="gform_confirmation_wrapper_1"]) .a21-saved__group > * + * {
	margin-block-start: var(--wp--preset--spacing--30);
}

:is([id="gform_wrapper_1"], [id="gform_confirmation_wrapper_1"]) .a21-saved__title {
	display: flex;
	align-items: baseline;
	gap: var(--wp--preset--spacing--40);
	color: var(--wp--custom--color--success);
	font-size: var(--wp--preset--font-size--x-large);
	font-weight: 700;
	line-height: 1.35;
}

/* Dekoratives Häkchen; der Text benennt den Stand auch ohne Symbol. */
:is([id="gform_wrapper_1"], [id="gform_confirmation_wrapper_1"]) .a21-saved__title::before {
	content: "";
	flex: 0 0 auto;
	width: 0.4em;
	height: 0.75em;
	border: solid currentcolor;
	border-width: 0 0.12em 0.12em 0;
	transform: translateY(-0.05em) rotate(45deg);
}

[id="gform_wrapper_1"] .a21-saved h3 {
	font-size: var(--wp--preset--font-size--large);
	font-weight: 700;
	line-height: 1.35;
}

/* Der Fortsetzungslink als Text über dem Kopierknopf: nicht klickbar,
   umbrechbar (overflow-wrap der Box), im Klick als Ganzes markiert. */
[id="gform_wrapper_1"] .a21-saved__url {
	margin-block-start: var(--wp--preset--spacing--50);
	font-weight: 700;
	user-select: all;
}

/* Knopf und Statuszeile (nur bei fehlgeschlagenem Kopieren sichtbar). */
[id="gform_wrapper_1"] .a21-saved__copy {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: var(--wp--preset--spacing--30) var(--wp--preset--spacing--40);
}

[id="gform_wrapper_1"] .a21-copy-link {
	display: inline-flex;
	align-items: center;
	gap: 0.4em;
	padding: var(--wp--preset--spacing--30) var(--wp--preset--spacing--50);
	border: 1px solid var(--wp--preset--color--primary);
	border-radius: var(--wp--custom--radius--button);
	background: var(--wp--preset--color--primary);
	color: var(--wp--preset--color--base);
	font: inherit;
	font-weight: 700;
	line-height: 1.5;
	cursor: pointer;
}

[id="gform_wrapper_1"] .a21-copy-link:hover {
	border-color: var(--wp--preset--color--primary-dark);
	background: var(--wp--preset--color--primary-dark);
}

[id="gform_wrapper_1"] .a21-copy-link:focus-visible {
	outline: 3px solid var(--wp--custom--color--focus);
	outline-offset: 3px;
}

/* „Link kopiert“: Haken vor dem Text als sichtbare Bestätigung. */
[id="gform_wrapper_1"] .a21-copy-link--done::before {
	content: "";
	width: 1em;
	height: 1em;
	background-color: currentcolor;
	mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M9 16.2 4.8 12l-1.4 1.4L9 19 21 7l-1.4-1.4z'/%3E%3C/svg%3E") center / contain no-repeat;
}

[id="gform_wrapper_1"] .a21-copy-status:not(:empty, .screen-reader-text) {
	flex-basis: 100%;
	font-size: var(--wp--preset--font-size--small);
}

/* E-Mail-Bereich: Überschrift, Beschriftung, Feld und Knopf dicht
   untereinander; GFs eigene Abstände (Feldraster, Fußbereich) werden hier
   zurückgenommen. */
[id="gform_wrapper_1"] .a21-saved__email {
	margin-block-start: var(--wp--preset--spacing--60);
}

[id="gform_wrapper_1"] .a21-saved__email .form_saved_message_emailform {
	margin-block-start: var(--wp--preset--spacing--30);
}

.gform_wrapper[id="gform_wrapper_1"] .a21-saved__email .gform_fields {
	display: block;
}

.gform_wrapper[id="gform_wrapper_1"] .a21-saved__email .gfield_label {
	display: block;
	margin-block-end: var(--wp--preset--spacing--20);
	color: var(--wp--preset--color--contrast);
	font-size: var(--wp--preset--font-size--medium);
	font-weight: 700;
}

.gform_wrapper[id="gform_wrapper_1"] .a21-saved__email input[type="email"] {
	max-width: 28rem;
}

.gform_wrapper[id="gform_wrapper_1"] .a21-saved__email .gfield_validation_message {
	margin-block-start: var(--wp--preset--spacing--20);
}

.gform_wrapper[id="gform_wrapper_1"] .a21-saved__email .gform_footer {
	margin: var(--wp--preset--spacing--30) 0 0;
	padding: 0;
}

/* Zurück zum gespeicherten Formular: zurückhaltender Knopf; den Abstand
   davor gibt der Gruppenabstand von .a21-saved. */
.gform_wrapper:is([id="gform_wrapper_1"], [id="gform_confirmation_wrapper_1"]) .a21-saved__back-link {
	display: inline-block;
	padding: var(--wp--preset--spacing--30) var(--wp--preset--spacing--50);
	border: 1px solid var(--wp--preset--color--primary-dark);
	border-radius: var(--wp--custom--radius--button);
	background: var(--wp--preset--color--base);
	color: var(--wp--preset--color--primary-dark);
	font-weight: 700;
	line-height: 1.5;
	text-decoration: none;
}

.gform_wrapper:is([id="gform_wrapper_1"], [id="gform_confirmation_wrapper_1"]) .a21-saved__back-link:hover {
	background: var(--wp--preset--color--primary-dark);
	color: var(--wp--preset--color--base);
}

.gform_wrapper:is([id="gform_wrapper_1"], [id="gform_confirmation_wrapper_1"]) .a21-saved__back-link:focus-visible {
	outline: 3px solid var(--wp--custom--color--focus);
	outline-offset: 3px;
}

/* Abgelaufener Fortsetzungslink. Die Versandbestätigung nutzt oben
   dieselben Gruppen, Überschrift und Zurück-Knopf wie die Anforderungsseite. */
[id="gform_wrapper_1"] .gform_validation_error {
	position: relative;
	margin-block-end: var(--wp--preset--spacing--50);
	padding: var(--wp--preset--spacing--50);
	padding-inline-start: calc(var(--wp--preset--spacing--50) * 2 + 1.25em);
	background: var(--wp--preset--color--neutral-light);
	color: var(--wp--preset--color--error);
	font-size: var(--wp--preset--font-size--large);
	font-weight: 700;
	line-height: 1.65;
	overflow-wrap: anywhere;
}

[id="gform_wrapper_1"] .gform_validation_error::before {
	content: "";
	position: absolute;
	inset-inline-start: var(--wp--preset--spacing--50);
	top: calc(var(--wp--preset--spacing--50) + 0.2em);
	width: 1.25em;
	height: 1.25em;
	background: currentcolor;
	mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Ccircle cx='12' cy='12' r='9' fill='none' stroke='black' stroke-width='2'/%3E%3Cpath stroke='black' stroke-width='2' stroke-linecap='round' d='M12 7v6m0 4v.1'/%3E%3C/svg%3E") center / contain no-repeat;
}

/* Fußbereich: „Zurück“ links, „Weiter“/Absenden rechts, Speichern-Link als
   Textlink in eigener Zeile darunter. Flex statt Grid, damit die Knöpfe bei
   Platzmangel (schmale Viewports, langer Absende-Knopf) umbrechen dürfen;
   das leere ::after erzwingt den Umbruch vor dem Link, ohne ihn auf volle
   Breite zu ziehen. */
.gform_wrapper[id="gform_wrapper_1"] .gform_page_footer {
	align-items: center;
	column-gap: var(--gf-form-footer-gap);
	row-gap: var(--wp--preset--spacing--30);
}

/* Vorschau-Knopf und zugehöriger Hinweis bleiben gemeinsam rechts. */
.gform_wrapper[id="gform_wrapper_1"] .a21-preview-next {
	display: flex;
	flex-direction: column;
	align-items: flex-end;
	gap: var(--wp--preset--spacing--20);
	margin-inline-start: auto;
	max-width: 100%;
}

.gform_wrapper[id="gform_wrapper_1"] .a21-preview-next__hint {
	margin: 0;
	font-size: var(--wp--preset--font-size--small);
	text-align: end;
}

/* GFs Knopfregeln setzen margin auf 0 mit Spezifität (0,5,1); die Selektoren
   hier liegen darüber (0,6,1), ohne !important. */
.gform_wrapper[id="gform_wrapper_1"] .gform_page_footer button.gform_previous_button[id^="gform_previous_button_"][data-submission-type="previous"] {
	margin-inline-end: auto;
}

.gform_wrapper[id="gform_wrapper_1"] .gform_page_footer :is(button.gform_next_button[id^="gform_next_button_"][data-submission-type="next"], :is(button, input).gform_button[type="submit"][id^="gform_submit_button_"]) {
	margin-inline-start: auto;
}

.gform_wrapper[id="gform_wrapper_1"] .gform_page_footer:has(.gform_save_link)::after {
	content: "";
	flex-basis: 100%;
	order: 1;
}

/* Letzte Seite: Turnstile-Widget in eigener Zeile über den Knöpfen. */
.gform_wrapper[id="gform_wrapper_1"] .gform_page_footer .a21-field--turnstile {
	flex-basis: 100%;
	order: -1;
}

/* Der Link trägt `gform-theme__disable` (inc/a21/Einreichformular.php) und
   sieht aus wie ein Theme-Link (theme.json elements.link). */
.gform_wrapper[id="gform_wrapper_1"] .gform_save_link {
	order: 2;
	margin-block-start: var(--wp--preset--spacing--60);
	margin-inline: auto; /* zentriert in der eigenen Zeile */
	min-height: 0;
	padding: 0;
	border: 0;
	border-radius: 0;
	background: transparent;
	box-shadow: none;
	color: var(--wp--preset--color--primary);
	font: inherit;
	font-size: var(--wp--preset--font-size--medium);
	text-decoration: underline;
	text-underline-offset: 0.15em;
	cursor: pointer;
}

.gform_wrapper[id="gform_wrapper_1"] .gform_save_link:hover {
	color: var(--wp--preset--color--primary-dark);
}

.gform_wrapper[id="gform_wrapper_1"] .gform_save_link:focus-visible {
	outline: 3px solid var(--wp--custom--color--focus);
	outline-offset: 3px;
}

.gform_wrapper[id="gform_wrapper_1"] .gform_save_link svg {
	display: none; /* GF blendet das Icon selbst aus; hier unabhängig davon */
}

/* Zwischen Klick und Seitenwechsel hängt GF einen Spinner in den Knopf
   (`gform-has-spinner`, absolut in der nächsten positionierten Box) und
   blendet in Safari den Text per Inline-Style aus. Der Textlink bleibt bis
   zum Seitenwechsel lesbar; der Spinner entfällt hier. Das !important ist
   nötig, weil GF den Inline-Style setzt. */
.gform_wrapper[id="gform_wrapper_1"] .gform_save_link.gform-has-spinner {
	-webkit-text-fill-color: currentcolor !important;
	cursor: progress;
}

.gform_wrapper[id="gform_wrapper_1"] .gform_save_link .gform-loader {
	display: none;
}
