/* ==========================================================================
   Repairtek – Formulare (Kontaktformular). Design aus dem Mockup (.form-row / .form-group).
   ========================================================================== */

.rt-form { position: relative; display: flex; flex-direction: column; }

.rt-form .form-row { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
.rt-form .form-group { margin-bottom: 16px; }

.rt-form label {
	display: block;
	font-size: .84rem;
	font-weight: 600;
	color: var(--ink-2);
	margin-bottom: 8px;
}

.rt-form input:not([type="checkbox"]),
.rt-form select,
.rt-form textarea {
	width: 100%;
	padding: 14px 18px;
	background: #fff;
	border: 1px solid var(--line-2);
	border-radius: var(--r-s);
	color: var(--ink);
	font-family: var(--font-body);
	font-size: .95rem;
	line-height: 1.4;
	transition: border-color .3s, box-shadow .3s;
}
.rt-form input::placeholder,
.rt-form textarea::placeholder { color: var(--muted); }
.rt-form input:focus,
.rt-form select:focus,
.rt-form textarea:focus {
	outline: none;
	border-color: var(--brand);
	box-shadow: 0 0 0 4px rgba(var(--brand-rgb), .12);
}
.rt-form textarea { min-height: 136px; resize: vertical; }
.rt-form select {
	appearance: none;
	-webkit-appearance: none;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2368809a' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E");
	background-repeat: no-repeat;
	background-position: right 16px center;
	background-size: 15px;
	padding-right: 44px;
	cursor: pointer;
}

/* Fehlerzustand */
.rt-form [aria-invalid="true"] { border-color: #dc2626; }
.rt-form [aria-invalid="true"]:focus { box-shadow: 0 0 0 4px rgba(220, 38, 38, .12); }
.rt-field-error { margin-top: 6px; font-size: .8rem; font-weight: 500; color: #b91c1c; }

/* Datenschutz-Checkbox */
.rt-form-check { display: grid; grid-template-columns: auto 1fr; gap: 4px 12px; align-items: start; }
.rt-form-check input {
	width: 20px;
	height: 20px;
	margin-top: 2px;
	accent-color: var(--brand);
	cursor: pointer;
}
.rt-form-check label { margin: 0; font-weight: 400; font-size: .84rem; line-height: 1.55; cursor: pointer; }
.rt-form-check label a { color: var(--brand-deep); text-decoration: underline; text-underline-offset: 2px; }
.rt-form-check .rt-field-error { grid-column: 2; margin-top: 0; }

/* Widerrufsformular */
.rt-form-intro { margin-bottom: 22px; color: var(--ink-2); }
.rt-form-note { margin: 4px 0 8px; font-size: .84rem; color: var(--muted); }
.rt-form-note a { color: var(--brand-deep); text-decoration: underline; }
.rt-withdrawal-form textarea { min-height: 96px; }

/* Button + Status */
.rt-form .rt-form-submit { width: 100%; margin-top: 8px; }
.rt-form .rt-form-submit:disabled { cursor: progress; }
.rt-form[aria-busy="true"] .rt-form-submit svg { animation: rt-send 1s var(--ease) infinite; }
@keyframes rt-send { 50% { transform: translate(4px, -4px); opacity: .5; } }

.rt-form-status {
	margin-top: 16px;
	padding: 14px 18px;
	border-radius: var(--r-s);
	font-size: .9rem;
	font-weight: 500;
	line-height: 1.5;
}
.rt-form-status:focus { outline: none; }
.rt-form-status.is-success { background: rgba(22, 163, 74, .08); border: 1px solid rgba(22, 163, 74, .3); color: #166534; }
.rt-form-status.is-error { background: rgba(220, 38, 38, .06); border: 1px solid rgba(220, 38, 38, .25); color: #991b1b; }

/* Honeypot – nicht display:none (manche Bots prüfen das), sondern außerhalb des Sichtbereichs. */
.rt-hp {
	position: absolute !important;
	left: -10000px !important;
	width: 1px;
	height: 1px;
	overflow: hidden;
}

@media (max-width: 560px) {
	.rt-form .form-row { grid-template-columns: 1fr; gap: 0; }
}
