/**
 * Widerrufsbutton Plugin by Finisher Media - Frontend
 */

.wfm-widerruf-button {
	display: inline-block;
	background: #c0392b;
	color: #fff;
	font-weight: 600;
	font-size: 16px;
	line-height: 1.2;
	padding: 14px 28px;
	border: none;
	border-radius: 8px;
	cursor: pointer;
	text-decoration: none;
	transition: background 0.15s ease, transform 0.05s ease;
}

.wfm-widerruf-button:hover,
.wfm-widerruf-button:focus {
	background: #a93226;
	color: #fff;
}

.wfm-widerruf-button:active {
	transform: translateY(1px);
}

/* Inline-Textlink (Shortcode [widerrufsbutton]). Faellt in das Theme-Design. */
.wfm-widerruf-link {
	color: inherit;
	text-decoration: underline;
	text-underline-offset: 2px;
	cursor: pointer;
}

.wfm-widerruf-link:hover,
.wfm-widerruf-link:focus {
	text-decoration: underline;
	opacity: 0.8;
}

/* Formularcontainer */
.wfm-widerruf-wrap {
	max-width: 620px;
	margin: 0 auto;
	font-size: 16px;
	color: #1a1a1a;
}

.wfm-widerruf-wrap .wfm-intro {
	margin-bottom: 20px;
}

.wfm-field {
	margin-bottom: 18px;
}

.wfm-field label,
.wfm-field .wfm-label {
	display: block;
	font-weight: 600;
	margin-bottom: 6px;
}

.wfm-field input[type="text"],
.wfm-field input[type="email"],
.wfm-field select,
.wfm-field textarea {
	width: 100%;
	padding: 11px 12px;
	border: 1px solid #c8ccd2;
	border-radius: 6px;
	font-size: 16px;
	box-sizing: border-box;
}

.wfm-field input:focus,
.wfm-field select:focus,
.wfm-field textarea:focus {
	border-color: #c0392b;
	outline: none;
}

.wfm-field small {
	display: block;
	color: #666;
	margin-top: 5px;
	font-size: 13px;
}

.wfm-req {
	color: #c0392b;
}

.wfm-optional {
	color: #888;
	font-weight: 400;
	font-size: 13px;
}

.wfm-radio {
	display: block;
	font-weight: 400;
	margin: 6px 0;
}

.wfm-items {
	margin-top: 10px;
	padding: 12px;
	background: #f6f7f9;
	border-radius: 6px;
}

.wfm-items label {
	display: block;
	font-weight: 400;
	margin: 6px 0;
}

.wfm-privacy {
	font-size: 13px;
	color: #666;
	margin: 16px 0;
}

/* Honeypot unsichtbar */
.wfm-hp {
	position: absolute;
	left: -9999px;
	top: -9999px;
	height: 0;
	overflow: hidden;
}

.wfm-error {
	background: #fdecea;
	border: 1px solid #f5c6cb;
	color: #a93226;
	padding: 11px 14px;
	border-radius: 6px;
	margin: 14px 0;
}

/* Vorschau */
.wfm-step-preview h3,
.wfm-step-done h3 {
	margin-top: 0;
}

.wfm-preview-hint {
	color: #555;
	margin-bottom: 16px;
}

.wfm-preview-card {
	background: #f6f7f9;
	border-radius: 10px;
	padding: 18px 20px;
	margin-bottom: 18px;
}

.wfm-preview-list {
	list-style: none;
	margin: 0;
	padding: 0;
}

.wfm-preview-list li {
	padding: 5px 0;
	border-bottom: 1px solid #e6e8ec;
}

.wfm-preview-list li:last-child {
	border-bottom: none;
}

.wfm-preview-list li span {
	display: inline-block;
	min-width: 130px;
	color: #666;
}

.wfm-preview-subtitle {
	font-weight: 600;
	margin: 14px 0 6px;
}

.wfm-preview-items {
	margin: 0;
	padding-left: 20px;
}

.wfm-preview-total {
	margin-top: 10px;
}

.wfm-actions {
	display: flex;
	gap: 12px;
	align-items: center;
	flex-wrap: wrap;
}

.wfm-back {
	background: transparent;
	border: 1px solid #c8ccd2;
	color: #333;
	padding: 13px 22px;
	border-radius: 8px;
	font-size: 16px;
	cursor: pointer;
}

.wfm-back:hover {
	background: #f1f2f4;
}

/* Abschluss */
.wfm-done-card {
	text-align: center;
	background: #eefaf2;
	border: 1px solid #bfe6cd;
	border-radius: 12px;
	padding: 32px 24px;
}

.wfm-done-icon {
	width: 56px;
	height: 56px;
	line-height: 56px;
	margin: 0 auto 14px;
	background: #0a7c43;
	color: #fff;
	border-radius: 50%;
	font-size: 28px;
}

.wfm-done-ref {
	font-size: 17px;
	margin: 10px 0;
}

.wfm-is-loading {
	opacity: 0.6;
	pointer-events: none;
}
