/**
 * Primus Mikrointeraktionen – Lesefortschritt + Formularfeedback.
 * Keine Layoutverschiebung; keine Tracking-Hooks.
 */

/* === Lesefortschritt (nur auf freigegebenen langen Seiten) === */
.primus-reading-progress {
	position: fixed;
	top: 0;
	left: 0;
	width: 100%;
	max-width: 100%;
	height: 3px;
	z-index: 110;
	pointer-events: none;
	overflow: hidden;
	background: transparent;
}

.primus-reading-progress__bar {
	display: block;
	width: 100%;
	height: 100%;
	transform-origin: left center;
	transform: scaleX(0);
	background: linear-gradient(
		90deg,
		var(--wp--preset--color--primus-blue, #1656a6) 0%,
		var(--wp--preset--color--primus-gold, #c9a227) 100%
	);
}

@media (prefers-reduced-motion: no-preference) {
	.primus-reading-progress__bar {
		transition: transform 80ms linear;
	}
}

@media (prefers-reduced-motion: reduce) {
	.primus-reading-progress__bar {
		transition: none;
	}
}

/* === Formularfeedback (Fluent Forms / Primus Kontakt) === */
.primus-kontakt-ff .ff-el-form-control:focus-visible,
.kontakt-hub__form-section .ff-el-form-control:focus-visible {
	outline: 2px solid var(--wp--preset--color--primus-gold, #c9a227);
	outline-offset: 2px;
	border-color: var(--wp--preset--color--primus-blue, #1656a6);
}

.primus-kontakt-ff .ff-el-is-error .ff-el-form-control,
.kontakt-hub__form-section .ff-el-is-error .ff-el-form-control,
.fluentform .ff-el-is-error .ff-el-form-control {
	/* border-color allein reicht bei nativen Controls nicht zuverlässig;
	   Outline ist der stabile sichtbare Fehlerindikator. */
	border-color: #8a1f1f !important;
	outline: 2px solid #8a1f1f;
	outline-offset: 1px;
	box-shadow: 0 0 0 1px rgba(138, 31, 31, 0.18);
}

.primus-kontakt-ff .ff-el-is-error .text-danger,
.kontakt-hub__form-section .ff-el-is-error .text-danger,
.fluentform .ff-el-is-error .text-danger,
.primus-kontakt-ff .error.text-danger,
.kontakt-hub__form-section .error.text-danger,
.fluentform .error.text-danger {
	display: block;
	margin-top: 0.4rem;
	font-size: 0.875rem;
	line-height: 1.45;
	color: #8a1f1f;
}

.primus-kontakt-ff .ff-message-success,
.kontakt-hub__form-section .ff-message-success,
.fluentform .ff-message-success,
.primus-kontakt-ff .ff_success,
.kontakt-hub__form-section .ff_success,
.fluentform .ff_success {
	margin: 0 0 1rem;
	padding: 1rem 1.1rem 1rem 1.15rem;
	border: 1px solid rgba(22, 86, 166, 0.18);
	border-left: 4px solid var(--wp--preset--color--primus-gold, #c9a227);
	border-radius: 4px;
	background-color: var(--wp--preset--color--surface, #eef2f6);
	color: var(--wp--preset--color--ink, #333);
	font-family: var(--wp--preset--font-family--lato, Lato, sans-serif);
	font-size: 1rem;
	line-height: 1.55;
}

.primus-kontakt-ff .ff-message-success::before,
.kontakt-hub__form-section .ff-message-success::before,
.fluentform .ff-message-success::before {
	content: "";
	display: inline-block;
	width: 0.7rem;
	height: 0.7rem;
	margin-right: 0.55rem;
	vertical-align: -0.05rem;
	border-radius: 50%;
	background: var(--wp--preset--color--primus-gold, #c9a227);
	box-shadow: 0 0 0 3px rgba(201, 162, 39, 0.22);
}

.primus-kontakt-ff .ff-btn-submit:focus-visible,
.kontakt-hub__form-section .ff-btn-submit:focus-visible {
	outline: 2px solid var(--wp--preset--color--primus-gold, #c9a227);
	outline-offset: 3px;
}

/* Kein dauerhaftes „grün gültig“ für alle Felder – absichtlich nicht gestylt. */
