/* RB Umfrage - Frontend
   Nur Layout. Farben, Schrift und Button-Optik kommen aus dem Theme
   beziehungsweise dem Elementor-Kit. Hier stehen bewusst keine Farbwerte
   und keine erfundenen Rundungen. Einheiten in em, Ausnahme border. */

.rbu-wrap {
	margin: 0 0 2em;
}

/* ------------------------------------------------------------------ Raster */

.rbu-form {
	display: grid;
	gap: 1.75em 2em;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	align-items: start;
}

.rbu-cols-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.rbu-cols-1 { grid-template-columns: minmax(0, 1fr); }

/* Versteckte Felder duerfen keine Rasterzelle belegen */
.rbu-form > input[type="hidden"] {
	display: none;
}

/* Freitext und Fussbereich immer ueber die volle Breite */
.rbu-field--voll,
.rbu-foot {
	grid-column: 1 / -1;
}

@media (max-width: 1024px) {
	.rbu-form { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.rbu-cols-1 { grid-template-columns: minmax(0, 1fr); }
}

@media (max-width: 767px) {
	.rbu-form {
		grid-template-columns: minmax(0, 1fr);
		gap: 1.5em;
	}
}

/* --------------------------------------------------------------- Honeypot */

.rbu-hp {
	position: absolute;
	left: -9999em;
	width: 1em;
	height: 1em;
	overflow: hidden;
}

/* ----------------------------------------------------------------- Fragen */

.rbu-field {
	margin: 0;
	padding: 0;
	border: 0;
	min-width: 0;
}

.rbu-legend {
	display: block;
	margin: 0 0 0.6em;
	padding: 0;
	font-weight: 600;
	line-height: 1.35;
}

.rbu-required {
	color: var(--e-global-color-accent, currentColor);
}

.rbu-hint {
	margin: -0.3em 0 0.8em;
	font-size: 0.875em;
	line-height: 1.5;
	opacity: 0.7;
}

.rbu-option {
	display: flex;
	align-items: flex-start;
	gap: 0.6em;
	padding: 0.25em 0;
}

.rbu-option input[type="radio"] {
	flex: 0 0 auto;
	width: 1.1em;
	height: 1.1em;
	margin: 0.2em 0 0;
	accent-color: currentColor;
}

.rbu-option label {
	flex: 1 1 auto;
	margin: 0;
	line-height: 1.4;
	cursor: pointer;
}

.rbu-field input[type="text"],
.rbu-field textarea {
	display: block;
	width: 100%;
	max-width: 100%;
	padding: 0.6em 0.75em;
	border: 1px solid currentColor;
	font: inherit;
	line-height: 1.45;
	background: transparent;
	color: inherit;
	box-sizing: border-box;
	opacity: 0.95;
}

.rbu-field textarea {
	resize: vertical;
	min-height: 6em;
}

/* ------------------------------------------------------------ Fussbereich */

.rbu-foot {
	margin-top: 0.5em;
}

.rbu-submit {
	margin: 0 0 1.25em;
}

.rbu-button {
	font: inherit;
	cursor: pointer;
}

.rbu-privacy {
	margin: 0;
	font-size: 0.8125em;
	line-height: 1.6;
	opacity: 0.7;
	max-width: 48em;
}

/* -------------------------------------------------------------- Meldungen */

.rbu-box {
	margin: 0 0 1.5em;
	padding: 1em 1.25em;
	border-left: 4px solid currentColor;
	line-height: 1.55;
	background: rgba(127, 127, 127, 0.08);
}

.rbu-box p {
	margin: 0;
}

.rbu-box--success,
.rbu-box--info {
	border-left-color: var(--e-global-color-accent, currentColor);
}

.rbu-box--error {
	border-left-color: currentColor;
}
