/**
 * rebus Zweitschrift – Frontend-Styles.
 * Bewusst minimal gehalten: Typografie und Farben erbt das Formular vom
 * Impreza-Theme, hier stehen nur Layout und Zustände (Namespace .rzw-).
 */

.rzw-wrap {
	max-width: 560px;
}

/* hidden-Attribut muss auch gegen eigene display-Regeln gewinnen
   (sonst bleibt z. B. der Ladeindikator trotz hidden sichtbar) */
.rzw-wrap [hidden] {
	display: none !important;
}

.rzw-intro {
	margin-bottom: 1.25em;
}

/* Felder */
.rzw-field {
	margin-bottom: 1em;
}

.rzw-field label {
	display: block;
	font-weight: 600;
	margin-bottom: 0.25em;
}

.rzw-field input[type="text"],
.rzw-field input[type="email"] {
	width: 100%;
	max-width: 100%;
	padding: 0.6em 0.8em;
	border: 1px solid rgba(0, 0, 0, 0.2);
	border-radius: 4px;
	box-sizing: border-box;
}

.rzw-field-consent label {
	display: flex;
	gap: 0.5em;
	align-items: flex-start;
	font-weight: 400;
}

.rzw-field-consent input[type="checkbox"] {
	margin-top: 0.3em;
	flex: 0 0 auto;
}

.rzw-required {
	color: #b91c1c;
}

/* Fehlerzustände */
.rzw-field-invalid input {
	border-color: #b91c1c;
}

.rzw-field-error {
	display: block;
	color: #b91c1c;
	font-size: 0.875em;
	margin-top: 0.25em;
}

.rzw-error {
	background: #fef2f2;
	border: 1px solid #fecaca;
	color: #b91c1c;
	border-radius: 4px;
	padding: 0.75em 1em;
	margin-bottom: 1em;
}

/* Kein Treffer */
.rzw-no-match {
	background: #fffbeb;
	border: 1px solid #fde68a;
	border-radius: 4px;
	padding: 1em;
	margin-top: 1em;
}

.rzw-service-contact {
	margin: 0.5em 0 0;
	padding-left: 1.2em;
}

/* Buttons */
.rzw-button {
	cursor: pointer;
}

.rzw-button-link {
	background: none;
	border: none;
	padding: 0;
	text-decoration: underline;
	color: inherit;
	font-size: 0.9em;
}

.rzw-actions {
	margin-top: 1.5em;
}

/* Honeypot unsichtbar positionieren (nicht display:none, damit Bots es ausfüllen) */
.rzw-hp {
	position: absolute !important;
	left: -9999px !important;
	width: 1px;
	height: 1px;
	overflow: hidden;
}

/* Zahlung */
#rzw-paypal-buttons {
	max-width: 400px;
	margin-top: 1em;
}

.rzw-back {
	margin-top: 1.5em;
}

/* Bestätigung */
.rzw-step-success .rzw-case-number {
	font-size: 1.05em;
}

/* Ladeindikator */
.rzw-loading {
	display: flex;
	align-items: center;
	gap: 0.5em;
	margin-top: 1em;
}

.rzw-spinner {
	width: 18px;
	height: 18px;
	border: 2px solid rgba(0, 0, 0, 0.15);
	border-top-color: currentColor;
	border-radius: 50%;
	animation: rzw-spin 0.8s linear infinite;
}

@keyframes rzw-spin {
	to {
		transform: rotate(360deg);
	}
}
