/* ===== RPROJEKTE PROJEKT STATUS-BANNER v1.5.0 ===== */

.rpst {
	--rpst-accent: #FF6600;
	--rpst-radius: 0px;
	--rpst-maxw: 1200px;
	font-family: inherit;
	border-radius: var(--rpst-radius);
}
.rpst *, .rpst *::before, .rpst *::after { box-sizing: border-box; }

/* ---- Stil-Varianten ---- */
.rpst--s-solid {
	--rpst-ink: var(--rpst-ink-custom, #ffffff);
	background: var(--rpst-accent);
}
.rpst--s-gradient {
	--rpst-ink: var(--rpst-ink-custom, #ffffff);
	background: linear-gradient(115deg, var(--rpst-accent), color-mix(in srgb, var(--rpst-accent) 68%, #0b1c2c));
}
.rpst--s-soft {
	--rpst-ink: var(--rpst-ink-custom, var(--rpst-accent));
	background: color-mix(in srgb, var(--rpst-accent) 10%, #ffffff);
	border-top: 1px solid color-mix(in srgb, var(--rpst-accent) 22%, #ffffff);
	border-bottom: 1px solid color-mix(in srgb, var(--rpst-accent) 22%, #ffffff);
}
.rpst--s-outline {
	--rpst-ink: var(--rpst-ink-custom, var(--rpst-accent));
	background: transparent;
	border: 2px solid var(--rpst-accent);
}
.rpst--shadow { box-shadow: 0 14px 34px -18px color-mix(in srgb, var(--rpst-accent) 55%, rgba(11, 28, 44, .4)); }

/* ---- Volle Breite / Sticky ---- */
.rpst--full {
	width: 100vw;
	max-width: 100vw;
	margin-left: calc(50% - 50vw);
	margin-right: calc(50% - 50vw);
	border-radius: 0;
}
.rpst--full.rpst--s-outline { border-left: 0; border-right: 0; }
.rpst--sticky {
	position: sticky;
	top: var(--rpst-sticky-top, 0px);
	z-index: 60;
}

/* ---- Innenaufbau ---- */
.rpst-inner {
	display: flex;
	align-items: center;
	flex-wrap: wrap;
	gap: 10px 20px;
	max-width: var(--rpst-maxw);
	margin: 0 auto;
	padding: var(--rpst-pad-y, 12px) 24px;
	color: var(--rpst-ink);
}
.rpst--banner .rpst-inner { padding: var(--rpst-pad-y, 24px) 24px; }
.rpst--center .rpst-inner { justify-content: center; text-align: center; }
.rpst--left .rpst-inner { justify-content: flex-start; }
.rpst--between .rpst-inner { justify-content: space-between; }

.rpst-main {
	display: inline-flex;
	align-items: center;
	flex-wrap: wrap;
	gap: 8px 18px;
}
.rpst--center .rpst-main { justify-content: center; }

/* ---- Status-Badge ---- */
.rpst-badge {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	font-size: 15px;
	font-weight: 800;
	letter-spacing: .02em;
	color: var(--rpst-ink);
	white-space: nowrap;
}
.rpst--banner .rpst-badge { font-size: 20px; }
.rpst-prefix { font-weight: 600; opacity: .82; }

.rpst-ic {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	flex: none;
	color: var(--rpst-ink);
}
.rpst-ic svg { width: 19px; height: 19px; display: block; }
.rpst--banner .rpst-ic svg { width: 23px; height: 23px; }
.rpst-ic--chip {
	width: 32px;
	height: 32px;
	border-radius: 50%;
	background: color-mix(in srgb, var(--rpst-ink) 14%, transparent);
}
.rpst--banner .rpst-ic--chip { width: 40px; height: 40px; }

/* ---- Meta & Zusatztext ---- */
.rpst-meta {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	font-size: 14.5px;
	color: var(--rpst-ink);
	opacity: .95;
}
.rpst--banner .rpst-meta { font-size: 16.5px; }
.rpst-meta strong { font-weight: 800; }
.rpst-sep { opacity: .55; }
.rpst-extra {
	display: inline-flex;
	align-items: center;
	padding: 4px 12px;
	border-radius: 999px;
	font-size: 12.5px;
	font-weight: 700;
	background: color-mix(in srgb, var(--rpst-ink) 14%, transparent);
	color: var(--rpst-ink);
}
.rpst--banner .rpst-extra { font-size: 13.5px; }

/* ---- CTA-Button (Farben fixiert gegen Theme-Hover) ---- */
a.rpst-cta,
a.rpst-cta:hover,
a.rpst-cta:focus,
a.rpst-cta:active {
	display: inline-flex;
	align-items: center;
	padding: 9px 20px;
	border-radius: 999px;
	font-size: 14px;
	font-weight: 700;
	text-decoration: none !important;
	transition: transform .15s ease, filter .15s ease;
}
.rpst--s-solid a.rpst-cta, .rpst--s-solid a.rpst-cta:hover, .rpst--s-solid a.rpst-cta:focus,
.rpst--s-gradient a.rpst-cta, .rpst--s-gradient a.rpst-cta:hover, .rpst--s-gradient a.rpst-cta:focus {
	background: #ffffff !important;
	color: var(--rpst-accent) !important;
}
.rpst--s-soft a.rpst-cta, .rpst--s-soft a.rpst-cta:hover, .rpst--s-soft a.rpst-cta:focus,
.rpst--s-outline a.rpst-cta, .rpst--s-outline a.rpst-cta:hover, .rpst--s-outline a.rpst-cta:focus {
	background: var(--rpst-accent) !important;
	color: #ffffff !important;
}
a.rpst-cta:hover { transform: translateY(-1px); filter: brightness(.96); }

/* ---- Hinweis (nur Editor) ---- */
.rpst-empty {
	padding: 14px 18px;
	border: 1px dashed #e6eaf1;
	border-radius: 10px;
	color: #5e6976;
	font-size: 14px;
	text-align: center;
}

/* ---- Mobil ---- */
@media (max-width: 640px) {
	.rpst-inner { padding: var(--rpst-pad-y, 10px) 16px; gap: 6px 12px; }
	.rpst--banner .rpst-inner { padding: var(--rpst-pad-y, 16px) 16px; }
	.rpst--banner .rpst-badge { font-size: 17px; }
	.rpst--banner .rpst-meta { font-size: 14.5px; }
	.rpst--between .rpst-inner { justify-content: center; text-align: center; }
	a.rpst-cta { width: 100%; justify-content: center; }
}
