/* ==========================================================================
   Rischer Referenzen – Frontend
   Farben kommen aus den Plugin-Einstellungen (--rr-accent, --rr-dark, --rr-light).
   Schrift wird vom Theme geerbt.
   ========================================================================== */

:root {
	--rr-accent: #009ee3;
	--rr-dark: #111111;
	--rr-light: #f3f5f7;
}

.rr {
	--rr-text: #161a1d;
	--rr-muted: #67727c;
	--rr-line: #dde2e6;
	--rr-wrap: 1240px;
	--rr-ease: cubic-bezier(.2, .7, .2, 1);
	color: var(--rr-text);
	font-family: inherit;
	-webkit-font-smoothing: antialiased;
}

.rr,
.rr *,
.rr *::before,
.rr *::after {
	box-sizing: border-box;
}

.rr img {
	display: block;
	max-width: 100%;
}

.rr a {
	text-decoration: none;
}

.rr svg {
	width: 1em;
	height: 1em;
	flex: none;
}

.rr h1,
.rr h2,
.rr h3 {
	font-family: inherit;
	margin: 0;
	padding: 0;
}

.rr-wrap {
	width: 100%;
	max-width: var(--rr-wrap);
	margin-inline: auto;
	padding-inline: clamp(16px, 4vw, 40px);
}

/* ---------- Kleinteile ---------- */

.rr .rr-eyebrow {
	display: flex;
	align-items: center;
	flex-wrap: wrap;
	gap: 10px;
	margin: 0 0 14px;
	font-size: 12px;
	font-weight: 600;
	line-height: 1.4;
	letter-spacing: .14em;
	text-transform: uppercase;
	color: var(--rr-muted);
}

.rr .rr-eyebrow--light {
	color: rgba(255, 255, 255, .85);
}

.rr-eyebrow__mark {
	display: inline-block;
	width: 10px;
	height: 10px;
	background: var(--rr-accent);
	flex: none;
}

.rr .rr-label {
	display: flex;
	align-items: center;
	gap: 14px;
	margin: 0 0 24px;
	font-size: 12px;
	font-weight: 700;
	line-height: 1.4;
	letter-spacing: .16em;
	text-transform: uppercase;
	color: var(--rr-accent);
}

.rr .rr-label::before {
	content: "";
	width: 28px;
	height: 2px;
	background: currentColor;
	flex: none;
}

.rr .rr-label--light {
	color: #fff;
}

.rr .rr-label--light::before {
	background: var(--rr-accent);
}

.rr a.rr-btn,
.rr a.rr-btn:visited {
	display: inline-flex;
	align-items: center;
	gap: 12px;
	padding: 16px 26px;
	border: 2px solid var(--rr-dark);
	color: var(--rr-dark);
	background: transparent;
	font-size: 13px;
	font-weight: 700;
	letter-spacing: .12em;
	text-transform: uppercase;
	transition: background-color .25s, color .25s;
}

.rr a.rr-btn:hover,
.rr a.rr-btn:focus-visible {
	background: var(--rr-dark);
	color: #fff;
}

.rr a.rr-btn svg {
	font-size: 18px;
	transition: transform .25s var(--rr-ease);
}

.rr a.rr-btn:hover svg {
	transform: translateX(4px);
}

/* ---------- Platzhalter ohne Bild ---------- */

.rr-ph {
	position: relative;
	width: 100%;
	height: 100%;
	min-height: 100%;
	background: var(--rr-dark);
	overflow: hidden;
}

.rr-ph__grid {
	display: none;
}

.rr-ph__mark {
	position: absolute;
	right: 9%;
	bottom: 0;
	width: 26%;
	max-width: 260px;
	color: var(--rr-accent);
	line-height: 0;
}

.rr .rr-ph__mark svg,
.rr-ph__mark svg {
	display: block;
	width: 100%;
	height: auto;
}

/* Platzhalter im Hero: Marke nach oben rücken, damit sie nicht unter den Key Facts verschwindet */
.rr-hero .rr-ph__mark {
	top: 16%;
	bottom: auto;
	width: 17%;
	max-width: 210px;
	opacity: .9;
}

.rr-pager__bg .rr-ph__grid {
	position: absolute;
	inset: 0;
}

.rr-ph__txt {
	position: absolute;
	left: 24px;
	bottom: 20px;
	right: 45%;
	color: rgba(255, 255, 255, .7);
	font-size: 12px;
	font-weight: 600;
	letter-spacing: .12em;
	text-transform: uppercase;
	line-height: 1.4;
}

/* ==========================================================================
   Projektseite
   ========================================================================== */

.rr-single {
	background: #fff;
}

/* ---------- Hero ---------- */

.rr-hero {
	position: relative;
	display: flex;
	min-height: clamp(480px, 74vh, 780px);
	color: #fff;
	background: var(--rr-dark);
	overflow: hidden;
	isolation: isolate;
}

.rr-hero__media {
	position: absolute;
	inset: 0;
	z-index: -2;
}

.rr .rr-hero__img {
	width: 100%;
	height: 100%;
	max-width: none;
	object-fit: cover;
	animation: rr-hero-in 1.6s var(--rr-ease) both;
}

@keyframes rr-hero-in {
	from { transform: scale(1.06); opacity: .4; }
	to   { transform: scale(1);    opacity: 1; }
}

.rr-hero__shade {
	position: absolute;
	inset: 0;
	z-index: -1;
	background:
		linear-gradient(180deg, rgba(0, 0, 0, .45) 0%, rgba(0, 0, 0, 0) 26%),
		linear-gradient(0deg, rgba(0, 0, 0, .82) 0%, rgba(0, 0, 0, .35) 45%, rgba(0, 0, 0, 0) 75%);
}

.rr-hero--noimg .rr-hero__shade {
	background: linear-gradient(0deg, rgba(0, 0, 0, .55) 0%, rgba(0, 0, 0, 0) 60%);
}

.rr-hero__inner {
	position: relative;
	display: flex;
	flex-direction: column;
	justify-content: space-between;
	gap: 48px;
	padding-top: clamp(24px, 4vw, 40px);
	padding-bottom: calc(clamp(40px, 6vw, 72px) + 72px);
}

.rr .rr-back,
.rr .rr-back:visited {
	align-self: flex-start;
	display: inline-flex;
	align-items: center;
	gap: 10px;
	padding: 10px 14px 10px 0;
	color: rgba(255, 255, 255, .85);
	font-size: 12px;
	font-weight: 700;
	letter-spacing: .14em;
	text-transform: uppercase;
	transition: color .2s, gap .25s var(--rr-ease);
}

.rr .rr-back svg {
	font-size: 18px;
}

.rr .rr-back:hover {
	color: #fff;
	gap: 14px;
}

.rr-hero__text {
	max-width: 940px;
	animation: rr-rise .9s .15s var(--rr-ease) both;
}

@keyframes rr-rise {
	from { transform: translateY(24px); opacity: 0; }
	to   { transform: none;             opacity: 1; }
}

.rr .rr-hero__title {
	color: #fff;
	font-size: clamp(2rem, 4.8vw, 4.1rem);
	font-weight: 600;
	line-height: 1.06;
	letter-spacing: -.015em;
	hyphens: auto;
	-webkit-hyphens: auto;
	overflow-wrap: break-word;
	text-wrap: balance;
}

.rr .rr-hero__sub {
	margin: 18px 0 0;
	color: rgba(255, 255, 255, .75);
	font-size: clamp(1rem, 1.4vw, 1.2rem);
	line-height: 1.4;
}

.rr-hero::after {
	content: "";
	position: absolute;
	left: 0;
	bottom: 0;
	width: min(34%, 420px);
	height: 8px;
	background: var(--rr-accent);
	z-index: 1;
}

/* ---------- Key Facts ---------- */

.rr-band {
	position: relative;
	z-index: 2;
}

.rr-single .rr-band .rr-facts {
	margin-top: -72px;
	padding: clamp(28px, 3.6vw, 48px) clamp(24px, 3.6vw, 48px) clamp(24px, 3vw, 40px);
	background: #fff;
}

.rr-facts {
	--rr-cols: 4;
	display: grid;
	grid-template-columns: repeat(var(--rr-cols), minmax(0, 1fr));
	gap: 36px clamp(24px, 3vw, 48px);
}

.rr-fact {
	/* kein container-type: bringt Elementor-Container auf dem Smartphone bei der Höhe durcheinander */
	min-width: 0;
}

.rr-fact::before {
	content: "";
	display: block;
	width: 32px;
	height: 4px;
	margin-bottom: 22px;
	background: var(--rr-accent);
	transform-origin: left;
	transition: width .6s var(--rr-ease);
}

.rr-fact.is-counted::before {
	width: 56px;
}

.rr-fact__value {
	display: flex;
	align-items: baseline;
	flex-wrap: wrap;
	column-gap: .3em;
	font-size: 2.6rem;
	font-size: clamp(1.5rem, 3.4vw, 3.4rem);
	font-weight: 600;
	line-height: 1;
	letter-spacing: -.02em;
	color: var(--rr-text);
}

.rr-fact__fig {
	display: inline-flex;
	align-items: baseline;
	gap: .14em;
	white-space: nowrap;
}

.rr-fact__num {
	font-variant-numeric: tabular-nums;
}

.rr-fact__prefix {
	font-size: .4em;
	font-weight: 600;
	letter-spacing: .04em;
	color: var(--rr-muted);
}

.rr-fact__unit {
	font-size: .46em;
	font-weight: 600;
	letter-spacing: 0;
	color: var(--rr-accent);
}

.rr-fact__label {
	margin-top: 14px;
	font-size: 12px;
	font-weight: 600;
	line-height: 1.4;
	letter-spacing: .12em;
	text-transform: uppercase;
	color: var(--rr-muted);
}

.rr-facts--dark .rr-fact__value { color: #fff; }
.rr-facts--dark .rr-fact__prefix,
.rr-facts--dark .rr-fact__label { color: rgba(255, 255, 255, .65); }

/* ---------- Beschreibung + Details ---------- */

.rr-body {
	padding-block: clamp(56px, 8vw, 120px);
}

.rr-body__grid {
	display: grid;
	grid-template-columns: minmax(0, 7fr) minmax(0, 4fr);
	gap: clamp(40px, 7vw, 112px);
	align-items: start;
}

.rr .rr-lead {
	font-size: clamp(1.12rem, 1.55vw, 1.4rem);
	line-height: 1.65;
	color: var(--rr-text);
	hyphens: auto;
	-webkit-hyphens: auto;
}

.rr .rr-lead p {
	margin: 0 0 1em;
}

.rr .rr-lead p:last-child {
	margin-bottom: 0;
}

.rr .rr-lead a {
	color: var(--rr-accent);
	text-decoration: underline;
	text-underline-offset: 3px;
}

/* Details-Spalte */
.rr-details {
	display: grid;
	gap: 48px;
}

.rr .rr-meta {
	margin: 0;
	padding: 0;
	border-top: 2px solid var(--rr-dark);
}

.rr-meta__row {
	display: grid;
	grid-template-columns: 120px minmax(0, 1fr);
	gap: 16px;
	padding: 14px 0;
	border-bottom: 1px solid var(--rr-line);
}

.rr .rr-meta dt {
	margin: 0;
	font-size: 12px;
	font-weight: 600;
	line-height: 1.6;
	letter-spacing: .12em;
	text-transform: uppercase;
	color: var(--rr-muted);
}

.rr .rr-meta dd {
	margin: 0;
	font-size: 1rem;
	font-weight: 600;
	line-height: 1.45;
}

.rr .rr-block .rr-label {
	margin-bottom: 8px;
}

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

.rr .rr-list li {
	position: relative;
	margin: 0;
	padding: 14px 0 14px 30px;
	border-bottom: 1px solid var(--rr-line);
	font-size: 1rem;
	line-height: 1.5;
}

.rr .rr-list li::before {
	content: "";
	position: absolute;
	left: 0;
	top: calc(14px + .75em - 4px);
	width: 8px;
	height: 8px;
	background: var(--rr-accent);
}

.rr .rr-list--plus li::before {
	width: 12px;
	height: 12px;
	top: calc(14px + .75em - 6px);
	background:
		linear-gradient(var(--rr-accent), var(--rr-accent)) center / 12px 2px no-repeat,
		linear-gradient(var(--rr-accent), var(--rr-accent)) center / 2px 12px no-repeat;
}

/* ---------- Galerie-Bereich ---------- */

.rr-gallery-sec {
	padding-block: clamp(56px, 7vw, 104px);
	background: var(--rr-dark);
	color: #fff;
}

.rr-gallery-sec__head {
	display: flex;
	align-items: baseline;
	justify-content: space-between;
	gap: 24px;
	margin-bottom: 8px;
}

.rr-gallery-sec__hint {
	color: rgba(255, 255, 255, .55);
	font-size: 13px;
	letter-spacing: .08em;
}

/* ==========================================================================
   Diashow
   ========================================================================== */

.rr-slider {
	--rr-ratio: 16/10;
	position: relative;
	width: 100%;
}

.rr-slider__stage {
	position: relative;
	aspect-ratio: var(--rr-ratio);
	background: #0a0a0a;
	overflow: hidden;
	touch-action: pan-y;
	user-select: none;
	-webkit-user-select: none;
}

.rr-slider__track {
	position: absolute;
	inset: 0;
}

.rr .rr-slide {
	position: absolute;
	inset: 0;
	margin: 0;
	opacity: 0;
	visibility: hidden;
	transition: opacity .7s var(--rr-ease), visibility 0s .7s;
}

.rr .rr-slide.is-active {
	opacity: 1;
	visibility: visible;
	transition: opacity .7s var(--rr-ease), visibility 0s;
}

.rr .rr-slide__img {
	width: 100%;
	height: 100%;
	max-width: none;
	object-fit: contain;
	transform: scale(1.015);
	transition: transform 1.2s var(--rr-ease);
	cursor: zoom-in;
}

.rr .rr-slide.is-active .rr-slide__img {
	transform: none;
}

.rr-slider--cover .rr-slide__img {
	object-fit: cover !important;
}

.rr .rr-slide__caption {
	position: absolute;
	left: 0;
	right: 0;
	bottom: 0;
	padding: 48px 140px 18px 24px;
	background: linear-gradient(0deg, rgba(0, 0, 0, .7), rgba(0, 0, 0, 0));
	color: #fff;
	font-size: 14px;
	line-height: 1.45;
}

/* Buttons – bewusst mit hoher Spezifität, damit Theme-Buttonstile nicht greifen */
.rr .rr-slider__btn,
.rr .rr-slider__btn:hover,
.rr .rr-slider__btn:focus,
.rr .rr-slider__zoom,
.rr .rr-slider__zoom:hover,
.rr .rr-slider__zoom:focus,
.rr .rr-thumb,
.rr .rr-thumb:hover,
.rr .rr-thumb:focus {
	appearance: none;
	-webkit-appearance: none;
	margin: 0;
	padding: 0;
	border: 0;
	border-radius: 0;
	box-shadow: none;
	font: inherit;
	line-height: 1;
	text-decoration: none;
	cursor: pointer;
}

.rr .rr-slider__btn,
.rr .rr-slider__btn:focus {
	position: absolute;
	bottom: 0;
	z-index: 3;
	display: grid;
	place-items: center;
	width: 60px;
	height: 60px;
	background: var(--rr-accent);
	color: #fff;
	font-size: 22px;
	transition: background-color .2s, color .2s;
}

.rr .rr-slider__btn:hover,
.rr .rr-slider__btn:focus-visible {
	background: #fff;
	color: var(--rr-dark);
}

.rr .rr-slider__btn--prev {
	right: 61px;
}

.rr .rr-slider__btn--next {
	right: 0;
}

.rr .rr-slider__btn svg {
	transition: transform .25s var(--rr-ease);
}

.rr .rr-slider__btn--next:hover svg { transform: translateX(3px); }
.rr .rr-slider__btn--prev:hover svg { transform: translateX(-3px); }

.rr .rr-slider__zoom,
.rr .rr-slider__zoom:focus {
	position: absolute;
	top: 16px;
	right: 16px;
	z-index: 3;
	display: grid;
	place-items: center;
	width: 44px;
	height: 44px;
	background: rgba(0, 0, 0, .45);
	color: #fff;
	font-size: 18px;
	backdrop-filter: blur(6px);
	-webkit-backdrop-filter: blur(6px);
	transition: background-color .2s;
}

.rr .rr-slider__zoom:hover,
.rr .rr-slider__zoom:focus-visible {
	background: var(--rr-accent);
}

.rr-slider__count {
	position: absolute;
	left: 0;
	bottom: 0;
	z-index: 3;
	display: flex;
	align-items: center;
	gap: 12px;
	height: 60px;
	padding: 0 20px;
	background: rgba(0, 0, 0, .55);
	color: #fff;
	font-size: 14px;
	font-weight: 600;
	letter-spacing: .08em;
	font-variant-numeric: tabular-nums;
	backdrop-filter: blur(6px);
	-webkit-backdrop-filter: blur(6px);
}

.rr-slider__tot {
	color: rgba(255, 255, 255, .55);
}

.rr-slider__sep {
	width: 28px;
	height: 1px;
	background: rgba(255, 255, 255, .5);
}

.rr-slider__progress {
	position: absolute;
	left: 0;
	right: 0;
	top: 0;
	z-index: 3;
	height: 3px;
	background: rgba(255, 255, 255, .12);
}

.rr-slider__progress span {
	display: block;
	height: 100%;
	width: 0;
	background: var(--rr-accent);
	transition: width .6s var(--rr-ease);
}

.rr-slider__thumbs {
	display: flex;
	gap: 8px;
	margin-top: 10px;
	overflow-x: auto;
	scrollbar-width: thin;
	padding-bottom: 4px;
}

.rr .rr-thumb,
.rr .rr-thumb:focus {
	position: relative;
	flex: 0 0 auto;
	width: 116px;
	aspect-ratio: 3 / 2;
	background: #000;
	opacity: .45;
	transition: opacity .25s;
}

.rr .rr-thumb img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.rr .rr-thumb::after {
	content: "";
	position: absolute;
	left: 0;
	right: 0;
	bottom: 0;
	height: 3px;
	background: var(--rr-accent);
	transform: scaleX(0);
	transform-origin: left;
	transition: transform .35s var(--rr-ease);
}

.rr .rr-thumb:hover,
.rr .rr-thumb:focus-visible {
	opacity: .8;
}

.rr .rr-thumb.is-active {
	opacity: 1;
}

.rr .rr-thumb.is-active::after {
	transform: scaleX(1);
}

/* Heller Untergrund (z. B. Widget auf weißer Seite) */
.rr-slider__thumbs:only-child { margin-top: 0; }

/* ---------- Lightbox ---------- */

.rr-lightbox {
	position: fixed;
	inset: 0;
	/* Unter dem Website-Cursor (z-index 999999), damit die Maus sichtbar bleibt */
	z-index: 999990;
	display: grid;
	grid-template-rows: 1fr auto;
	background: #08090a;
	color: #fff;
	opacity: 0;
	transition: opacity .3s;
}

.rr-lightbox.is-open {
	opacity: 1;
}

.rr-lightbox__stage {
	position: relative;
	display: grid;
	place-items: center;
	padding: 64px 88px 16px;
	min-height: 0;
	touch-action: pan-y;
}

.rr-lightbox__img {
	max-width: 100%;
	max-height: calc(100vh - 150px);
	width: auto;
	height: auto;
	object-fit: contain;
	transition: opacity .3s;
}

.rr-lightbox__bar {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 24px;
	padding: 16px 24px 24px;
	font-size: 14px;
	line-height: 1.4;
}

.rr-lightbox__count {
	font-weight: 600;
	letter-spacing: .08em;
	font-variant-numeric: tabular-nums;
	white-space: nowrap;
}

.rr-lightbox__caption {
	color: rgba(255, 255, 255, .7);
	text-align: right;
}

.rr-lightbox button,
.rr-lightbox button:hover,
.rr-lightbox button:focus {
	appearance: none;
	-webkit-appearance: none;
	position: absolute;
	display: grid;
	place-items: center;
	margin: 0;
	padding: 0;
	border: 0;
	border-radius: 0;
	box-shadow: none;
	cursor: pointer;
	font: inherit;
	line-height: 1;
}

.rr-lightbox button svg {
	width: 1em;
	height: 1em;
}

.rr-lightbox .rr-lightbox__close,
.rr-lightbox .rr-lightbox__close:focus {
	background: transparent;
	color: #fff;
	top: 12px;
	right: 12px;
	width: 52px;
	height: 52px;
	font-size: 26px;
}

.rr-lightbox .rr-lightbox__prev,
.rr-lightbox .rr-lightbox__next,
.rr-lightbox .rr-lightbox__prev:focus,
.rr-lightbox .rr-lightbox__next:focus {
	color: #fff;
	top: 50%;
	width: 60px;
	height: 60px;
	margin-top: -30px;
	background: var(--rr-accent);
	font-size: 22px;
}

.rr-lightbox .rr-lightbox__prev { left: 16px; }
.rr-lightbox .rr-lightbox__next { right: 16px; }

.rr-lightbox .rr-lightbox__prev:hover,
.rr-lightbox .rr-lightbox__next:hover,
.rr-lightbox .rr-lightbox__prev:focus-visible,
.rr-lightbox .rr-lightbox__next:focus-visible {
	background: #fff;
	color: #111;
}

.rr-lightbox .rr-lightbox__close:hover,
.rr-lightbox .rr-lightbox__close:focus-visible {
	background: transparent;
	color: var(--rr-accent);
}

html.rr-noscroll {
	overflow: hidden;
}

/* ---------- Vorheriges / Nächstes Projekt ---------- */

.rr-pager {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 2px;
	background: #fff;
}

.rr .rr-pager__item,
.rr .rr-pager__item:visited {
	position: relative;
	display: flex;
	align-items: flex-end;
	min-height: clamp(200px, 22vw, 300px);
	padding: clamp(24px, 3.5vw, 48px);
	background: var(--rr-dark);
	color: #fff;
	overflow: hidden;
	isolation: isolate;
}

.rr-pager__item--next {
	justify-content: flex-end;
	text-align: right;
}

.rr-pager__bg {
	position: absolute;
	inset: 0;
	z-index: -1;
}

.rr .rr-pager__img {
	width: 100%;
	height: 100%;
	max-width: none;
	object-fit: cover;
	opacity: .3;
	transform: scale(1.02);
	transition: opacity .5s, transform 1s var(--rr-ease);
}

.rr .rr-pager__item:hover .rr-pager__img {
	opacity: .5;
	transform: scale(1.07);
}

.rr-pager__txt {
	display: grid;
	gap: 12px;
	max-width: 520px;
}

.rr-pager__dir {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	color: var(--rr-accent);
	font-size: 12px;
	font-weight: 700;
	letter-spacing: .14em;
	text-transform: uppercase;
}

.rr-pager__item--next .rr-pager__dir {
	flex-direction: row-reverse;
	justify-content: flex-start;
}

.rr-pager__dir svg {
	font-size: 18px;
}

.rr-pager__title {
	font-size: clamp(1.15rem, 2vw, 1.6rem);
	font-weight: 600;
	line-height: 1.25;
}

.rr-allref {
	display: flex;
	justify-content: center;
	padding-block: clamp(40px, 5vw, 72px);
}

/* ==========================================================================
   Übersicht
   ========================================================================== */

.rr-archive__head {
	padding-top: clamp(64px, 9vw, 136px);
	padding-bottom: clamp(32px, 4vw, 56px);
}

.rr .rr-archive__title {
	font-size: clamp(2.6rem, 6.4vw, 5.4rem);
	font-weight: 600;
	line-height: 1;
	letter-spacing: -.025em;
	color: var(--rr-text);
}

.rr .rr-archive__intro {
	max-width: 60ch;
	margin: 24px 0 0;
	color: var(--rr-muted);
	font-size: clamp(1.05rem, 1.5vw, 1.3rem);
	line-height: 1.55;
}

.rr-archive__body {
	padding-bottom: clamp(64px, 9vw, 136px);
}

.rr-filter {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	margin-bottom: clamp(28px, 3.5vw, 48px);
}

.rr .rr-filter__btn,
.rr .rr-filter__btn:hover,
.rr .rr-filter__btn:focus {
	appearance: none;
	-webkit-appearance: none;
	display: inline-flex;
	align-items: center;
	gap: 10px;
	margin: 0;
	padding: 11px 16px;
	border: 1px solid var(--rr-line);
	border-radius: 0;
	box-shadow: none;
	background: #fff;
	color: var(--rr-text);
	font: inherit;
	font-size: 14px;
	font-weight: 600;
	line-height: 1.2;
	text-decoration: none;
	cursor: pointer;
	transition: border-color .2s, background-color .2s, color .2s;
}

.rr .rr-filter__btn:hover {
	border-color: var(--rr-dark);
}

.rr .rr-filter__btn .rr-filter__count {
	color: var(--rr-muted);
	font-size: 12px;
	font-weight: 600;
	font-variant-numeric: tabular-nums;
}

.rr .rr-filter__btn.is-active,
.rr .rr-filter__btn.is-active:hover,
.rr .rr-filter__btn.is-active:focus {
	background: var(--rr-dark);
	border-color: var(--rr-dark);
	color: #fff;
}

.rr .rr-filter__btn.is-active .rr-filter__count {
	color: var(--rr-accent);
}

.rr-cards {
	--rr-cols: 3;
	--rr-gap: clamp(20px, 2.6vw, 36px);
	display: grid;
	grid-template-columns: repeat(var(--rr-cols), minmax(0, 1fr));
	gap: calc(var(--rr-gap) * 1.6) var(--rr-gap);
}

.rr-card {
	min-width: 0;
}

.rr-card.is-hidden {
	display: none;
}

.rr-card.is-entering {
	animation: rr-rise .55s var(--rr-ease) both;
}

.rr .rr-card__link,
.rr .rr-card__link:visited,
.rr .rr-card__link:hover {
	display: flex;
	flex-direction: column;
	height: 100%;
	color: var(--rr-text);
}

.rr-card__media {
	position: relative;
	aspect-ratio: 4 / 3;
	background: var(--rr-dark);
	overflow: hidden;
}

.rr .rr-card__img {
	width: 100%;
	height: 100%;
	max-width: none;
	object-fit: cover;
	transition: transform 1s var(--rr-ease);
}

.rr-card__media::after {
	content: "";
	position: absolute;
	left: 0;
	bottom: 0;
	width: 56px;
	height: 6px;
	background: var(--rr-accent);
	transition: width .55s var(--rr-ease);
	z-index: 2;
}

.rr .rr-card__link:hover .rr-card__img,
.rr .rr-card__link:focus-visible .rr-card__img {
	transform: scale(1.045);
}

.rr .rr-card__link:hover .rr-card__media::after,
.rr .rr-card__link:focus-visible .rr-card__media::after {
	width: 100%;
}

.rr-card .rr-ph__mark {
	width: 30%;
}

.rr-card__body {
	display: flex;
	flex-direction: column;
	flex: 1;
	padding-top: 22px;
}

.rr-card .rr-eyebrow {
	margin-bottom: 10px;
	font-size: 11px;
}

.rr-card .rr-eyebrow__mark {
	width: 8px;
	height: 8px;
}

.rr .rr-card__title {
	margin: 0 0 20px;
	font-size: clamp(1.1rem, 1.4vw, 1.3rem);
	font-weight: 600;
	line-height: 1.3;
	color: var(--rr-text);
	hyphens: auto;
	-webkit-hyphens: auto;
	transition: color .2s;
}

.rr .rr-card__link:hover .rr-card__title {
	color: var(--rr-accent);
}

.rr .rr-card__facts {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 16px;
	margin: auto 0 20px;
	padding: 16px 0 0;
	border-top: 1px solid var(--rr-line);
}

.rr .rr-card__facts dt {
	margin: 0 0 4px;
	font-size: 11px;
	font-weight: 600;
	letter-spacing: .1em;
	text-transform: uppercase;
	color: var(--rr-muted);
}

.rr .rr-card__facts dd {
	margin: 0;
	font-size: 1.05rem;
	font-weight: 600;
	line-height: 1.3;
	font-variant-numeric: tabular-nums;
}

.rr-card__more {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	margin-top: auto;
	color: var(--rr-text);
	font-size: 12px;
	font-weight: 700;
	letter-spacing: .14em;
	text-transform: uppercase;
}

.rr-card__more svg {
	color: var(--rr-accent);
	font-size: 18px;
	transition: transform .3s var(--rr-ease);
}

.rr .rr-card__link:hover .rr-card__more svg {
	transform: translateX(6px);
}

.rr-empty {
	padding: 48px 24px;
	border: 1px dashed var(--rr-line);
	color: var(--rr-muted);
	text-align: center;
}

/* ==========================================================================
   Responsive
   ========================================================================== */

@media (max-width: 1024px) {
	.rr-cards {
		grid-template-columns: repeat(min(var(--rr-cols), 2), minmax(0, 1fr));
	}
	.rr-body__grid {
		grid-template-columns: minmax(0, 1fr);
	}
	.rr-details {
		grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
		column-gap: 48px;
	}
	.rr-details .rr-meta {
		grid-column: 1 / -1;
	}
}

@media (max-width: 900px) {
	.rr-facts {
		grid-template-columns: repeat(min(var(--rr-cols), 2), minmax(0, 1fr));
	}
}

@media (max-width: 640px) {
	.rr-cards {
		grid-template-columns: minmax(0, 1fr);
	}
	.rr-pager {
		grid-template-columns: 1fr;
	}
	.rr-hero__inner {
		padding-bottom: calc(40px + 56px);
	}
	.rr-single .rr-band .rr-facts {
		margin-top: -56px;
	}
	.rr-facts {
		gap: 28px 20px;
	}
	.rr-fact__value {
		font-size: clamp(1.5rem, 8vw, 2.4rem);
	}
	.rr .rr-slider__btn {
		width: 48px;
		height: 48px;
		font-size: 18px;
	}
	.rr .rr-slider__btn--prev { right: 49px; }
	.rr-slider__count {
		height: 48px;
		padding: 0 14px;
		font-size: 13px;
	}
	.rr .rr-thumb {
		width: 84px;
	}
	.rr-meta__row {
		grid-template-columns: 1fr;
		gap: 2px;
	}
	.rr-lightbox__stage {
		padding: 56px 8px 8px;
	}
	.rr-lightbox .rr-lightbox__prev,
	.rr-lightbox .rr-lightbox__next {
		top: auto;
		bottom: 12px;
		margin-top: 0;
		width: 48px;
		height: 48px;
	}
	.rr-lightbox__bar {
		padding: 16px 76px 24px;
		flex-direction: column;
		gap: 6px;
	}
	.rr-lightbox__caption {
		text-align: center;
	}
	.rr-slide__caption {
		padding-right: 110px;
	}
}

@media (prefers-reduced-motion: reduce) {
	.rr *,
	.rr *::before,
	.rr *::after,
	.rr-lightbox {
		animation: none !important;
		transition: none !important;
	}
}

/* ==========================================================================
   Bausteine im Design der Rischer-Website (Elementor-Seiten)
   ========================================================================== */

:root {
	--rr-navy: #292d74;
}

.rr {
	--rr-ink: #252625;
}

/* ---------- Bildzeichen + Überzeile ---------- */

.rr-mark {
	display: inline-block;
	width: 1.45em;
	height: auto;
	color: var(--rr-accent);
	flex: none;
}

.rr .rr-kicker {
	display: inline-flex;
	align-items: center;
	gap: .6em;
	margin: 0;
	font-size: 15px;
	font-weight: 700;
	line-height: 1.2;
	letter-spacing: .12em;
	text-transform: uppercase;
	color: var(--rr-ink);
}

.rr .rr-kicker .rr-mark {
	width: 1.3em;
	margin-top: -.08em;
}

.rr .rr-kicker--light {
	color: #fff;
}

/* ---------- Seitenkopf ---------- */

.rr-phero {
	--rr-hero-w: 1140px;
	--rr-hero-overlay: .86;
	position: relative;
	display: flex;
	align-items: flex-end;
	min-height: 290px;
	background: var(--rr-navy);
	color: #fff;
	overflow: hidden;
	isolation: isolate;
}

.rr .rr-phero__img {
	position: absolute;
	inset: 0;
	z-index: -2;
	width: 100%;
	height: 100%;
	max-width: none;
	object-fit: cover;
}

.rr-phero__shade {
	position: absolute;
	inset: 0;
	z-index: -1;
	background: var(--rr-navy);
	opacity: var(--rr-hero-overlay);
}

/* Ohne Projektbild: eigener Hintergrund (Stil-Tab) sichtbar, Überlagerung standardmäßig aus */
.rr-phero:not(.rr-phero--img) {
	--rr-hero-overlay: 0;
}

.rr-phero__lines {
	display: none;
}

.rr-phero__lines {
	position: absolute;
	top: 0;
	bottom: 0;
	left: 50%;
	width: min(calc(100% - 32px), var(--rr-hero-w));
	transform: translateX(-50%);
	pointer-events: none;
}

.rr-phero__lines i {
	position: absolute;
	top: 0;
	bottom: 0;
	width: 4px;
	margin-left: -2px;
	background: var(--rr-accent);
}

.rr-phero__inner {
	position: relative;
	width: min(calc(100% - 32px), var(--rr-hero-w));
	margin: 0 auto;
	padding: 120px 40px 56px;
	text-align: center;
}

.rr .rr-phero__title {
	margin: 0;
	color: #fff;
	font-size: clamp(2.3rem, 4.6vw, 4.6rem);
	font-weight: 600;
	line-height: 1.08;
	letter-spacing: -.01em;
	hyphens: auto;
	-webkit-hyphens: auto;
	overflow-wrap: break-word;
}

.rr .rr-phero__sub {
	margin: 14px 0 0;
	color: rgba(255, 255, 255, .8);
	font-size: clamp(1rem, 1.4vw, 1.25rem);
}

@media (max-width: 767px) {
	.rr-phero {
		min-height: 220px;
	}
	.rr .rr-phero__title {
		font-size: clamp(1.7rem, 7.4vw, 2.3rem);
	}
	.rr-phero__inner {
		padding: 100px 20px 40px;
	}
	.rr-phero__lines i:not(:first-child):not(:last-child) {
		display: none;
	}
}

/* ---------- Bildkacheln ---------- */

.rr-tiles {
	display: grid;
	grid-template-columns: repeat(var(--rr-cols, 2), minmax(0, 1fr));
	gap: var(--rr-tile-gap, 0);
}

.rr-tile {
	--rr-tile-pad: clamp(24px, 3.2vw, 56px);
	--rr-tile-shade: .5;
	position: relative;
	aspect-ratio: var(--rr-tile-ratio, 8/3);
	min-width: 0;
	overflow: hidden;
	background: var(--rr-navy);
}

.rr-tile.is-hidden {
	display: none;
}

.rr-tile.is-entering {
	animation: rr-rise .55s var(--rr-ease) both;
}

.rr .rr-tile__link,
.rr .rr-tile__link:visited,
.rr .rr-tile__link:hover {
	position: absolute;
	inset: 0;
	display: block;
	color: #fff;
}

.rr-tile__media {
	position: absolute;
	inset: 0;
}

.rr .rr-tile__img {
	width: 100%;
	height: 100%;
	max-width: none;
	object-fit: cover;
	transition: transform 1.1s var(--rr-ease);
}

.rr-tile__shade {
	position: absolute;
	inset: 0;
	background-color: #141c38;
	opacity: var(--rr-tile-shade);
	transition: opacity .5s var(--rr-ease);
}

.rr-tile__body {
	position: absolute;
	top: var(--rr-tile-pad);
	left: var(--rr-tile-pad);
	right: var(--rr-tile-pad);
	z-index: 2;
}

.rr .rr-tile__title {
	margin: 0;
	color: #fff;
	font-size: clamp(1.3rem, 1.75vw, 2.1rem);
	font-weight: 600;
	line-height: 1.2;
	text-shadow: 0 1px 12px rgba(0, 0, 0, .18);
	hyphens: auto;
	-webkit-hyphens: auto;
	overflow-wrap: break-word;
}

.rr-tile__cats {
	display: block;
	margin-bottom: 8px;
	font-size: 12px;
	font-weight: 700;
	letter-spacing: .12em;
	text-transform: uppercase;
	color: rgba(255, 255, 255, .8);
}

.rr-tile__more {
	position: absolute;
	left: var(--rr-tile-pad);
	bottom: calc(var(--rr-tile-pad) * .8);
	z-index: 2;
	display: inline-flex;
	align-items: center;
	gap: 10px;
	color: #fff;
	font-size: 13px;
	font-weight: 700;
	letter-spacing: .12em;
	text-transform: uppercase;
	opacity: 0;
	transform: translateY(8px);
	transition: opacity .35s, transform .45s var(--rr-ease);
}

.rr-tile__more svg {
	color: var(--rr-accent);
	font-size: 20px;
}

/* Kein Balken unten beim Hover */
.rr-tile::after {
	display: none;
}

.rr .rr-tile__link:hover .rr-tile__img,
.rr .rr-tile__link:focus-visible .rr-tile__img {
	transform: scale(1.05);
}

.rr .rr-tile__link:hover .rr-tile__shade,
.rr .rr-tile__link:focus-visible .rr-tile__shade {
	opacity: calc(var(--rr-tile-shade) * .6);
}

.rr .rr-tile__link:hover .rr-tile__more,
.rr .rr-tile__link:focus-visible .rr-tile__more {
	opacity: 1;
	transform: none;
}


.rr-tile .rr-ph {
	background: var(--rr-navy);
}

.rr-tile .rr-ph__mark {
	width: 16%;
	right: 8%;
	opacity: .55;
}

@media (max-width: 767px) {
	.rr-tiles {
		grid-template-columns: minmax(0, 1fr);
	}
	.rr-tile {
		aspect-ratio: var(--rr-tile-ratio-m, 4/3);
	}
	.rr-tile__more {
		opacity: 1;
		transform: none;
	}
}

/* ---------- Projekte-Slider ---------- */

.rr-pslider {
	--rr-per: var(--rr-per-d, 2);
	position: relative;
}

.rr-pslider__viewport {
	overflow: hidden;
	touch-action: pan-y;
}

.rr-pslider__track {
	display: flex;
	gap: var(--rr-tile-gap, 0);
	transition: transform .75s var(--rr-ease);
	will-change: transform;
}

.rr-pslider .rr-tile {
	flex: 0 0 calc((100% - (var(--rr-per) - 1) * var(--rr-tile-gap, 0px)) / var(--rr-per));
}

.rr-pslider__nav {
	position: absolute;
	right: 0;
	bottom: 0;
	z-index: 4;
	display: flex;
	gap: 1px;
}

.rr-pslider.is-static .rr-pslider__nav {
	display: none;
}

.rr .rr-pslider__btn,
.rr .rr-pslider__btn:focus {
	appearance: none;
	-webkit-appearance: none;
	display: grid;
	place-items: center;
	width: 60px;
	height: 60px;
	margin: 0;
	padding: 0;
	border: 0;
	border-radius: 0;
	box-shadow: none;
	background: var(--rr-accent);
	color: #fff;
	font-size: 22px;
	line-height: 1;
	cursor: pointer;
	transition: background-color .2s, color .2s;
}

.rr .rr-pslider__btn:hover,
.rr .rr-pslider__btn:focus-visible {
	background: #fff;
	color: var(--rr-navy);
}

@media (max-width: 767px) {
	.rr-pslider {
		--rr-per: var(--rr-per-m, 1);
	}
	.rr-pslider .rr-tile {
		aspect-ratio: var(--rr-tile-ratio-m, 4/3);
	}
	.rr .rr-pslider__btn {
		width: 48px;
		height: 48px;
		font-size: 18px;
	}
}

/* ---------- Projektkarte ---------- */

.rr-pcard {
	height: 100%;
	padding: 20px 20px 40px;
	background: #fff;
	border: 1px solid var(--rr-light);
	border-radius: 0 40px 0 0;
}

.rr .rr-pcard__rows {
	list-style: none;
	margin: 0;
	padding: 0;
}

.rr .rr-pcard__row {
	display: flex;
	align-items: baseline;
	justify-content: space-between;
	gap: 20px;
	margin: 0;
	padding: 28px 10px 24px;
	border-bottom: 1px solid var(--rr-navy);
}

.rr-pcard__label {
	font-size: 14px;
	font-weight: 700;
	line-height: 1.4;
	letter-spacing: .04em;
	color: var(--rr-ink);
}

.rr-pcard__value {
	font-size: 16px;
	line-height: 1.4;
	color: var(--rr-ink);
	text-align: right;
}

.rr .rr-pcard__row--head {
	padding-top: 40px;
	border-bottom-color: transparent;
	padding-bottom: 4px;
}

.rr-pcard__row--head .rr-pcard__value {
	color: var(--rr-accent);
	font-size: 13px;
	font-weight: 700;
	letter-spacing: .12em;
	text-transform: uppercase;
	text-align: left;
}

/* Karte und Diashow gleich hoch */
.elementor-widget-rr-details:only-child,
.elementor-widget-rr-details:only-child > .elementor-widget-container {
	height: 100%;
}

/* Diashow ohne Bilder */
.rr-slider--empty .rr-slider__stage {
	background: var(--rr-navy);
}

.rr-slider--empty .rr-ph {
	background: var(--rr-navy);
}

.rr-slider--empty .rr-ph__mark {
	width: 22%;
	opacity: .6;
}

.rr-slider__stage {
	overflow: hidden;
}

/* ---------- Blueprint-Abschnitt (Kurzbeschreibung) ---------- */

/* Dunkler Abschnitt (Kurzbeschreibung) – bewusst ohne Raster */
.rr-blueprint {
	background-color: #24292a;
}

.rr .rr-field p,
.rr-field p {
	margin: 0 0 1em;
	color: inherit;
	font-family: inherit;
	font-size: inherit;
	font-weight: inherit;
	line-height: inherit;
	letter-spacing: inherit;
	text-transform: inherit;
}

.rr-field p:last-child {
	margin-bottom: 0;
}



/* ---------- Buttons im Rischer-Stil ---------- */

.rr-button-wrap {
	line-height: 0;
}

.rr .rr-button,
.rr .rr-button:visited {
	display: inline-flex;
	align-items: center;
	gap: 22px;
	padding: 19px 26px 19px 22px;
	border: 1px solid #e3e8ec;
	background: transparent;
	color: var(--rr-accent);
	font-size: 16px;
	font-weight: 700;
	line-height: 1.2;
	letter-spacing: .01em;
	text-decoration: none;
	transition: background-color .25s, border-color .25s, color .25s;
}

.rr .rr-button .rr-mark {
	width: 17px;
	color: var(--rr-accent);
	transition: color .25s;
}

.rr .rr-button:hover,
.rr .rr-button:focus-visible {
	background: var(--rr-accent);
	border-color: var(--rr-accent);
	color: #fff;
}

.rr .rr-button:hover .rr-mark,
.rr .rr-button:focus-visible .rr-mark {
	color: #fff;
}

.rr .rr-button--dark,
.rr .rr-button--dark:visited {
	border-color: rgba(255, 255, 255, .8);
	color: #fff;
}

.rr .rr-button--image,
.rr .rr-button--image:visited {
	border-color: rgba(255, 255, 255, .55);
	color: #fff;
}

/* ---------- Filter im Button-Stil ---------- */

.rr-overview--tiles .rr-filter {
	margin-bottom: 46px;
}

.rr-filter--outline {
	justify-content: center;
	gap: 14px;
}

.rr .rr-filter--outline .rr-filter__btn,
.rr .rr-filter--outline .rr-filter__btn:hover,
.rr .rr-filter--outline .rr-filter__btn:focus {
	gap: 14px;
	padding: 17px 22px;
	border: 1px solid #fff;
	background: transparent;
	color: var(--rr-accent);
	font-size: 15px;
	font-weight: 700;
	letter-spacing: .01em;
}

.rr .rr-filter__btn .rr-mark {
	display: none;
	width: 15px;
}

.rr .rr-filter--outline .rr-filter__btn:hover {
	border-color: var(--rr-accent);
}

.rr .rr-filter--outline .rr-filter__btn .rr-filter__count {
	display: none;
}

.rr .rr-filter--outline .rr-filter__btn.is-active,
.rr .rr-filter--outline .rr-filter__btn.is-active:hover,
.rr .rr-filter--outline .rr-filter__btn.is-active:focus {
	background: #fff;
	border-color: #fff;
	color: var(--rr-ink);
}

.rr .rr-filter--outline .rr-filter__btn.is-active .rr-mark {
	display: inline-block;
}

@media (max-width: 767px) {
	.rr-filter--outline {
		gap: 8px;
		padding-inline: 16px;
	}
	.rr .rr-filter--outline .rr-filter__btn {
		padding: 12px 14px;
		font-size: 14px;
	}
	.rr .rr-button {
		gap: 16px;
		padding: 16px 20px 16px 18px;
		font-size: 15px;
	}
}

/* ---------- Besonderheiten als Kästchen ---------- */

.rr.rr-chips {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 10px;
	list-style: none;
	margin: 0;
	padding: 0;
}

.rr .rr-chips__item {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	margin: 0;
	padding: 11px 16px;
	border: 1px solid #fff;
	background: rgba(255, 255, 255, .55);
	color: var(--rr-ink);
	font-size: 15px;
	line-height: 1.35;
}

.rr .rr-chips__item::before {
	content: "";
	width: 11px;
	height: 11px;
	flex: none;
	background:
		linear-gradient(var(--rr-accent), var(--rr-accent)) center / 11px 2px no-repeat,
		linear-gradient(var(--rr-accent), var(--rr-accent)) center / 2px 11px no-repeat;
}

.rr-blueprint .rr .rr-chips__item {
	border-color: rgba(255, 255, 255, .28);
	background: transparent;
	color: #fff;
}

/* ---------- Key Facts im Website-Stil (Counter) ---------- */

.rr-facts--stacked {
	text-align: center;
	gap: 40px 24px;
}

.rr-facts--stacked .rr-fact {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 4px;
}

.rr-facts--stacked .rr-fact::before {
	display: none;
}

.rr-facts--stacked .rr-fact__value {
	justify-content: center;
	align-items: baseline;
	column-gap: .12em;
	font-size: clamp(2.8rem, 5vw, 4.7rem);
	font-weight: 700;
	line-height: 1;
	letter-spacing: -.02em;
	color: var(--rr-accent);
}

.rr-facts--stacked .rr-fact__fig {
	gap: .12em;
}

.rr-facts--stacked .rr-fact__num,
.rr-facts--stacked .rr-fact__prefix--sym {
	font-size: 1em;
	font-weight: inherit;
	letter-spacing: inherit;
	color: var(--rr-accent);
}

.rr-facts--stacked .rr-fact__prefix,
.rr-facts--stacked .rr-fact__unit {
	font-size: .42em;
	font-weight: 700;
	letter-spacing: 0;
	color: var(--rr-accent);
}

.rr-facts--stacked .rr-fact__prefix--sym {
	font-size: 1em;
}

.rr-facts--stacked .rr-fact__label {
	margin: 0;
	font-size: 20px;
	font-weight: 400;
	line-height: 1.3;
	letter-spacing: 0;
	text-transform: none;
	color: var(--rr-ink);
}

.rr-blueprint .rr-facts--stacked .rr-fact__label {
	color: #fff;
}

@media (max-width: 900px) {
	.rr-facts--stacked {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

@media (max-width: 600px) {
	.rr-facts--stacked {
		grid-template-columns: minmax(0, 1fr);
		gap: 30px;
	}
	.rr-facts--stacked .rr-fact__value {
		font-size: 3rem;
	}
	.rr-facts--stacked .rr-fact__label {
		font-size: 18px;
	}
}

/* ==========================================================================
   Hover-Effekt der Projektkacheln (wie Team-Karten):
   Schwarz-Weiß → Farbe, Zusatzzeilen klappen auf, Cursor „Mehr erfahren“
   ========================================================================== */

.rr-tile__reveal {
	display: grid;
	grid-template-rows: 0fr;
	margin-top: 0;
	opacity: 0;
	transition:
		grid-template-rows .45s var(--rr-ease),
		margin-top .45s var(--rr-ease),
		opacity .3s ease;
}

.rr-tile__reveal-inner {
	display: flex;
	flex-direction: column;
	gap: 3px;
	min-height: 0;
	overflow: hidden;
}

.rr-tile__line {
	color: rgba(255, 255, 255, .92);
	font-size: 14px;
	line-height: 1.4;
	text-shadow: 0 1px 10px rgba(0, 0, 0, .25);
}

.rr-tile__line--strong {
	color: #fff;
	font-weight: 700;
}

.rr .rr-tile__link:hover .rr-tile__reveal,
.rr .rr-tile__link:focus-visible .rr-tile__reveal {
	grid-template-rows: 1fr;
	margin-top: 12px;
	opacity: 1;
}

@media (hover: hover) and (pointer: fine) {
	.rr .rr-tile__img {
		filter: grayscale(1);
		transition:
			transform 1.1s var(--rr-ease),
			filter .6s ease;
	}

	.rr .rr-tile__link:hover .rr-tile__img,
	.rr .rr-tile__link:focus-visible .rr-tile__img {
		filter: grayscale(0);
	}
}

/* Ohne Maus (Touch): Zusatzzeilen immer sichtbar */
@media (hover: none) {
	.rr-tile__reveal {
		grid-template-rows: 1fr;
		margin-top: 8px;
		opacity: 1;
	}
}

/* Hinweis „Mehr dazu“ im Eck – nur ohne Maus (Smartphone, Tablet).
   Gestaltet wie der Website-Cursor „Mehr erfahren“: Rahmen, Fadenkreuz, fette Schrift. */
.rr-tile__tag {
	display: none;
}

@media (hover: none), (pointer: coarse) {
	.rr-tile__tag {
		position: absolute;
		right: calc(var(--rr-tile-pad) * .75);
		bottom: calc(var(--rr-tile-pad) * .75);
		z-index: 3;
		display: inline-flex;
		align-items: center;
		gap: 14px;
		height: 44px;
		padding: 0 18px 0 14px;
		border: 1.5px solid #fff;
		background: rgba(8, 9, 10, .18);
		-webkit-backdrop-filter: blur(4px);
		backdrop-filter: blur(4px);
		color: #fff;
		pointer-events: none;
	}

	.rr-tile__tag-cross {
		position: relative;
		flex: 0 0 14px;
		width: 14px;
		height: 14px;
		opacity: .75;
	}

	.rr-tile__tag-cross::before,
	.rr-tile__tag-cross::after {
		content: "";
		position: absolute;
		left: 50%;
		top: 50%;
		background: #fff;
		transform: translate(-50%, -50%);
	}

	.rr-tile__tag-cross::before {
		width: 14px;
		height: 1px;
	}

	.rr-tile__tag-cross::after {
		width: 1px;
		height: 14px;
	}

	.rr-tile__tag-label {
		font-size: 14px;
		font-weight: 700;
		letter-spacing: 1px;
		line-height: 1.2;
		white-space: nowrap;
	}

	/* Statt des Hover-Textes „Projekt ansehen“ */
	.rr .rr-tile__more {
		display: none;
	}
}

/* Ist der Website-Cursor aktiv, übernimmt er „Mehr erfahren“. */
.custom-cursor-enabled .rr-tile__more {
	display: none;
}

/* Reset für verlinkte Kacheln mit elementor-element-Klasse (Cursor-Erkennung) */
.rr a.rr-tile__link.elementor-element,
.rr a.rr-card__link.elementor-element,
.rr a.rr-pager__item.elementor-element {
	text-decoration: none;
	transition: none;
}

@media (prefers-reduced-motion: reduce) {
	.rr .rr-tile__img {
		filter: none;
	}
}


/* ==========================================================================
   Projektsteckbrief (statt weißer Karte)
   ========================================================================== */

.rr-sheet {
	--rr-sheet-line: rgba(255, 255, 255, .2);
	--rr-sheet-text: #fff;
	--rr-sheet-muted: rgba(255, 255, 255, .7);
	color: var(--rr-sheet-text);
}

.rr-sheet--light {
	--rr-sheet-line: rgba(37, 38, 37, .16);
	--rr-sheet-text: var(--rr-ink);
	--rr-sheet-muted: #5f676d;
}

.rr .rr-sheet__meta {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(140px, 1fr));
	gap: 26px 32px;
	margin: 0 0 44px;
	padding: 0 0 34px;
	border-bottom: 1px solid var(--rr-sheet-line);
}

.rr .rr-sheet__fact dt {
	margin: 0 0 10px;
	color: var(--rr-accent);
	font-size: 12px;
	font-weight: 700;
	line-height: 1.2;
	letter-spacing: .16em;
	text-transform: uppercase;
}

.rr .rr-sheet__fact dd {
	margin: 0;
	color: var(--rr-sheet-text);
	font-size: clamp(1.5rem, 2.2vw, 2rem);
	font-weight: 600;
	line-height: 1.15;
	letter-spacing: -.01em;
	overflow-wrap: anywhere;
}

.rr .rr-sheet__head {
	display: flex;
	align-items: center;
	gap: 12px;
	margin: 0 0 6px;
	color: var(--rr-sheet-text);
	font-size: 13px;
	font-weight: 700;
	line-height: 1.2;
	letter-spacing: .14em;
	text-transform: uppercase;
}

.rr .rr-sheet__head .rr-mark {
	width: 19px;
	color: var(--rr-accent);
}

.rr .rr-sheet__list {
	list-style: none;
	margin: 0;
	padding: 0;
	counter-reset: none;
}

.rr .rr-sheet__list li {
	display: grid;
	grid-template-columns: 46px minmax(0, 1fr);
	align-items: baseline;
	margin: 0;
	padding: 19px 0 18px;
	border-bottom: 1px solid var(--rr-sheet-line);
}

.rr-sheet__no {
	color: var(--rr-accent);
	font-size: 13px;
	font-weight: 700;
	letter-spacing: .06em;
	font-variant-numeric: tabular-nums;
}

.rr-sheet__txt {
	color: var(--rr-sheet-text);
	font-size: 17px;
	line-height: 1.4;
}

/* Diashow auf Navy: Rahmenfarbe angleichen */
.rr-slider__stage {
	isolation: isolate;
}

.rr .rr-sheet__tags {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	list-style: none;
	margin: 28px 0 0;
	padding: 0;
}

.rr .rr-sheet__tags li {
	margin: 0;
	padding: 8px 12px;
	border: 1px solid var(--rr-sheet-line);
	color: var(--rr-sheet-muted);
	font-size: 13px;
	font-weight: 600;
	line-height: 1.2;
	letter-spacing: .02em;
}


/* ==========================================================================
   Steuer-Buttons im Stil des „Nach oben“-Buttons der Website:
   feiner Rahmen, dünner Pfeil, keine Vollfläche
   ========================================================================== */

.rr .rr-slider__btn,
.rr .rr-slider__btn:focus,
.rr .rr-slider__btn:hover,
.rr .rr-pslider__btn,
.rr .rr-pslider__btn:focus,
.rr .rr-pslider__btn:hover,
.rr .rr-slider__zoom,
.rr .rr-slider__zoom:focus,
.rr .rr-slider__zoom:hover {
	display: grid;
	place-items: center;
	width: 54px;
	height: 54px;
	margin: 0;
	padding: 0;
	border: 1px solid rgba(227, 232, 236, .85);
	border-radius: 0;
	background: rgba(20, 24, 60, .28);
	color: #fff;
	font-size: 20px;
	box-shadow: none;
	backdrop-filter: blur(6px);
	-webkit-backdrop-filter: blur(6px);
	transition: border-color .5s ease, color .5s ease, background-color .5s ease;
}

.rr .rr-slider__btn svg,
.rr .rr-pslider__btn svg,
.rr .rr-slider__zoom svg {
	transition: transform .5s ease;
}

.rr .rr-slider__btn:hover,
.rr .rr-slider__btn:focus-visible,
.rr .rr-pslider__btn:hover,
.rr .rr-pslider__btn:focus-visible,
.rr .rr-slider__zoom:hover,
.rr .rr-slider__zoom:focus-visible {
	border-color: #e3e8ec;
	background: rgba(20, 24, 60, .45);
	color: var(--rr-accent);
	outline: none;
}

.rr .rr-slider__btn--prev:hover svg,
.rr .rr-pslider__btn--prev:hover svg {
	transform: translateX(-3px);
}

.rr .rr-slider__btn--next:hover svg,
.rr .rr-pslider__btn--next:hover svg {
	transform: translateX(3px);
}

.rr .rr-slider__zoom:hover svg {
	transform: scale(1.12);
}

/* Diashow: Buttons frei schwebend mit Abstand zum Rand */
.rr .rr-slider__btn {
	bottom: 18px;
}

.rr .rr-slider__btn--next {
	right: 18px;
}

.rr .rr-slider__btn--prev {
	right: 80px;
}

.rr .rr-slider__zoom,
.rr .rr-slider__zoom:hover,
.rr .rr-slider__zoom:focus {
	top: 18px;
	right: 18px;
	width: 54px;
	height: 54px;
	font-size: 26px;
}

.rr-slider__count {
	left: 18px;
	bottom: 18px;
	height: 54px;
	padding: 0 18px;
	border: 1px solid rgba(227, 232, 236, .85);
	background: rgba(20, 24, 60, .28);
	font-size: 13px;
	font-weight: 600;
	letter-spacing: .1em;
}

.rr-slider__progress {
	display: none;
}

/* Projekte-Slider */
.rr-pslider__nav {
	right: 20px;
	bottom: 20px;
	gap: 8px;
}

/* Lightbox */
.rr-lightbox .rr-lightbox__prev,
.rr-lightbox .rr-lightbox__next,
.rr-lightbox .rr-lightbox__prev:focus,
.rr-lightbox .rr-lightbox__next:focus {
	width: 54px;
	height: 54px;
	margin-top: -27px;
	border: 1px solid rgba(227, 232, 236, .6);
	background: transparent;
	color: #fff;
	font-size: 20px;
	transition: border-color .5s ease, color .5s ease;
}

.rr-lightbox .rr-lightbox__prev:hover,
.rr-lightbox .rr-lightbox__next:hover,
.rr-lightbox .rr-lightbox__prev:focus-visible,
.rr-lightbox .rr-lightbox__next:focus-visible {
	border-color: #e3e8ec;
	background: transparent;
	color: var(--rr-accent);
}

@media (max-width: 767px) {
	.rr .rr-slider__btn,
	.rr .rr-slider__btn:hover,
	.rr .rr-slider__btn:focus,
	.rr .rr-pslider__btn,
	.rr .rr-pslider__btn:hover,
	.rr .rr-pslider__btn:focus {
		width: 46px;
		height: 46px;
		font-size: 18px;
	}
	.rr .rr-slider__btn {
		bottom: 12px;
	}
	.rr .rr-slider__btn--next {
		right: 12px;
	}
	.rr .rr-slider__btn--prev {
		right: 64px;
	}
	.rr-slider__count {
		left: 12px;
		bottom: 12px;
		height: 46px;
		padding: 0 14px;
	}
	.rr .rr-slider__zoom {
		top: 12px;
		right: 12px;
	}
	.rr-pslider__nav {
		right: 12px;
		bottom: 12px;
	}
	.rr-lightbox .rr-lightbox__prev,
	.rr-lightbox .rr-lightbox__next {
		margin-top: 0;
	}
}

/* Vergrößern-Button: Box bleibt, nur das Icon wächst – Verhalten wie die Pfeile */
.rr .rr-slider__zoom svg {
	transition: transform .5s ease;
}

.rr .rr-slider__zoom:hover svg,
.rr .rr-slider__zoom:focus-visible svg {
	transform: scale(1.2);
}

@media (max-width: 767px) {
	.rr .rr-slider__zoom,
	.rr .rr-slider__zoom:hover,
	.rr .rr-slider__zoom:focus {
		width: 46px;
		height: 46px;
		font-size: 22px;
	}
}

/* ==========================================================================
   Leistungskarte (wie auf den Leistungsseiten) + Besonderheiten als Text
   ========================================================================== */

.rr-scard {
	padding: 22px 30px 28px 22px;
	background: #fff;
	border: 1px solid #e3e8ec;
	border-radius: 0 50px 0 0;
}

.rr-scard__head {
	display: flex;
	align-items: center;
	gap: 24px;
	margin-bottom: 18px;
}

.rr .rr-scard__icon {
	width: 68px;
	height: auto;
	flex: none;
}

.rr .rr-scard__title {
	margin: 0;
	color: var(--rr-accent);
	font-size: clamp(1.5rem, 2.1vw, 2rem);
	font-weight: 600;
	line-height: 1.2;
}

.rr .rr-scard__list {
	list-style: none;
	margin: 0;
	padding: 0;
}

.rr-scard--icon .rr-scard__list,
.rr-scard--icon .rr-scard__meta {
	padding-left: 92px;
}

.rr .rr-scard__list li {
	display: flex;
	align-items: baseline;
	gap: 10px;
	margin: 0;
	color: var(--rr-ink);
	font-size: 19px;
	line-height: 1.9;
}

.rr .rr-scard__list .rr-mark {
	width: 14px;
	transform: translateY(1px);
}

.rr .rr-scard__meta {
	display: flex;
	flex-wrap: wrap;
	gap: 14px 40px;
	margin: 22px 0 0;
	padding-top: 18px;
	border-top: 1px solid #e3e8ec;
}

.rr .rr-scard__meta dt {
	margin: 0 0 4px;
	color: var(--rr-accent);
	font-size: 12px;
	font-weight: 700;
	letter-spacing: .14em;
	text-transform: uppercase;
}

.rr .rr-scard__meta dd {
	margin: 0;
	color: var(--rr-ink);
	font-size: 19px;
	font-weight: 600;
}

@media (max-width: 767px) {
	.rr-scard {
		padding: 18px 18px 22px;
		border-radius: 0 32px 0 0;
	}
	.rr-scard--icon .rr-scard__list,
	.rr-scard--icon .rr-scard__meta {
		padding-left: 0;
	}
	.rr .rr-scard__icon {
		width: 52px;
	}
	.rr .rr-scard__list li {
		font-size: 17px;
		line-height: 1.7;
		padding: 3px 0;
	}
}

.rr-specials {
	color: var(--rr-ink);
}

.rr .rr-specials p {
	margin: 0;
	font-size: inherit;
	line-height: inherit;
}

.rr .rr-specials__head {
	margin-bottom: 2px;
}

/* ==========================================================================
   Galerie – gemeinsame Buttons (Stil „Nach oben“-Button)
   ========================================================================== */

.rr .rr-gbtn,
.rr .rr-gbtn:hover,
.rr .rr-gbtn:focus {
	appearance: none;
	-webkit-appearance: none;
	display: grid;
	place-items: center;
	width: 54px;
	height: 54px;
	margin: 0;
	padding: 0;
	border: 1px solid #e3e8ec;
	border-radius: 0;
	background: transparent;
	box-shadow: none;
	color: var(--rr-accent);
	font-size: 20px;
	line-height: 1;
	cursor: pointer;
	transition: border-color .5s ease, color .5s ease;
}

.rr .rr-gbtn svg {
	transition: transform .5s ease;
}

.rr .rr-gbtn:hover,
.rr .rr-gbtn:focus-visible {
	border-color: var(--rr-accent);
	color: var(--rr-ink);
	outline: none;
}

.rr .rr-gbtn:disabled {
	opacity: .35;
	cursor: default;
}

.rr .rr-gbtn[class*="prev"]:hover svg { transform: translateX(-3px); }
.rr .rr-gbtn[class*="next"]:hover svg { transform: translateX(3px); }

/* ==========================================================================
   Variante A – Filmstreifen
   ========================================================================== */

.rr-strip {
	--rr-strip-h: clamp(240px, 34vw, 520px);
	--rr-strip-inset: max(16px, calc((100vw - var(--rr-wrap, 1140px)) / 2));
	position: relative;
}

.rr-strip__viewport {
	overflow-x: auto;
	overflow-y: hidden;
	scroll-snap-type: x mandatory;
	scroll-padding-left: var(--rr-strip-inset);
	scrollbar-width: none;
	cursor: grab;
	outline: none;
}

.rr-strip__viewport::-webkit-scrollbar {
	display: none;
}

.rr-strip__viewport.is-dragging {
	cursor: grabbing;
	scroll-snap-type: none;
}

.rr-strip__track {
	display: flex;
	gap: 14px;
	width: max-content;
	padding: 0 var(--rr-strip-inset);
}

.rr .rr-strip__item {
	position: relative;
	flex: none;
	margin: 0;
	scroll-snap-align: start;
}

.rr .rr-strip__open,
.rr .rr-strip__open:hover,
.rr .rr-strip__open:focus {
	position: relative;
	display: block;
	margin: 0;
	padding: 0;
	border: 0;
	border-radius: 0;
	background: #e3e8ec;
	box-shadow: none;
	cursor: inherit;
	overflow: hidden;
}

.rr .rr-strip__item:first-child .rr-strip__open {
	border-radius: var(--rr-g-radius, 0 40px 0 0);
}

.rr .rr-strip__img {
	display: block;
	height: var(--rr-strip-h);
	width: auto;
	max-width: none;
	pointer-events: none;
	user-select: none;
	transition: transform 1s var(--rr-ease);
}

.rr .rr-strip__open:hover .rr-strip__img {
	transform: scale(1.03);
}

.rr-strip__zoom,
.rr-mosaic__zoom {
	position: absolute;
	right: 14px;
	bottom: 14px;
	display: grid;
	place-items: center;
	width: 44px;
	height: 44px;
	border: 1px solid rgba(255, 255, 255, .85);
	background: rgba(20, 24, 60, .3);
	color: #fff;
	font-size: 20px;
	opacity: 0;
	transform: translateY(6px);
	transition: opacity .4s ease, transform .5s var(--rr-ease);
	backdrop-filter: blur(4px);
	-webkit-backdrop-filter: blur(4px);
}

.rr .rr-strip__open:hover .rr-strip__zoom,
.rr .rr-strip__open:focus-visible .rr-strip__zoom,
.rr .rr-mosaic__open:hover .rr-mosaic__zoom,
.rr .rr-mosaic__open:focus-visible .rr-mosaic__zoom {
	opacity: 1;
	transform: none;
}

.rr-strip__caption {
	margin-top: 10px;
	max-width: 60ch;
	color: #5f676d;
	font-size: 14px;
	line-height: 1.45;
}

.rr-strip__bar {
	display: flex;
	align-items: center;
	gap: 24px;
	margin-top: 26px;
	padding: 0 var(--rr-strip-inset);
}

.rr-strip__count {
	flex: none;
	color: var(--rr-ink);
	font-size: 14px;
	font-weight: 700;
	letter-spacing: .08em;
	font-variant-numeric: tabular-nums;
}

.rr-strip__line {
	position: relative;
	flex: 1;
	height: 1px;
	background: #d3dae0;
}

.rr-strip__line span {
	position: absolute;
	left: 0;
	top: -1px;
	height: 3px;
	width: 20%;
	background: var(--rr-accent);
	transition: left .3s ease-out, width .3s ease-out;
}

.rr-strip__nav {
	display: flex;
	gap: 8px;
	flex: none;
}

@media (max-width: 767px) {
	.rr-strip {
		--rr-strip-h: 62vw;
	}
	.rr .rr-gbtn {
		width: 46px;
		height: 46px;
	}
}

/* ==========================================================================
   Variante B – Mosaik
   ========================================================================== */

.rr-mosaic {
	display: grid;
	gap: 14px;
}

.rr-mosaic__lead {
	display: grid;
	grid-template-columns: 2fr 1fr;
	grid-template-rows: 1fr 1fr;
	gap: 14px;
	height: clamp(320px, 42vw, 640px);
}

.rr-mosaic__lead--1 {
	grid-template-columns: 1fr;
	grid-template-rows: 1fr;
}

.rr-mosaic__lead--2 {
	grid-template-rows: 1fr;
}

.rr-mosaic__lead .rr-mosaic__item--big {
	grid-row: 1 / -1;
}

.rr-mosaic__row {
	display: grid;
	grid-auto-flow: column;
	grid-auto-columns: 1fr;
	gap: 14px;
	height: clamp(180px, 20vw, 320px);
}

.rr .rr-mosaic__item {
	position: relative;
	min-width: 0;
	min-height: 0;
	margin: 0;
	overflow: hidden;
}

.rr .rr-mosaic__item--big {
	border-radius: 0 0 0 0;
}

.rr .rr-mosaic__lead .rr-mosaic__item:last-child {
	border-radius: var(--rr-g-radius, 0 40px 0 0);
}

.rr .rr-mosaic__lead--3 .rr-mosaic__item--side:nth-child(2) {
	border-radius: var(--rr-g-radius, 0 40px 0 0);
}

.rr .rr-mosaic__lead--3 .rr-mosaic__item--side:nth-child(3) {
	border-radius: 0;
}

.rr .rr-mosaic__open,
.rr .rr-mosaic__open:hover,
.rr .rr-mosaic__open:focus {
	position: absolute;
	inset: 0;
	display: block;
	width: 100%;
	height: 100%;
	margin: 0;
	padding: 0;
	border: 0;
	border-radius: 0;
	background: #e3e8ec;
	box-shadow: none;
	cursor: zoom-in;
}

.rr .rr-mosaic__img {
	width: 100%;
	height: 100%;
	max-width: none;
	object-fit: cover;
	transition: transform 1s var(--rr-ease), filter .6s ease;
}

.rr .rr-mosaic__open:hover .rr-mosaic__img {
	transform: scale(1.04);
}

@media (max-width: 767px) {
	.rr-mosaic,
	.rr-mosaic__lead,
	.rr-mosaic__row {
		gap: 8px;
	}
	.rr-mosaic__lead {
		height: 92vw;
		grid-template-columns: 1fr 1fr;
		grid-template-rows: 2fr 1fr;
	}
	.rr-mosaic__lead .rr-mosaic__item--big {
		grid-row: auto;
		grid-column: 1 / -1;
	}
	.rr-mosaic__lead--2 {
		grid-template-columns: 1fr;
		grid-template-rows: 2fr 1fr;
	}
	.rr-mosaic__row {
		height: 34vw;
	}
	.rr-mosaic__zoom {
		display: none;
	}
}

/* ==========================================================================
   Variante C – Bühne mit Nummern
   ========================================================================== */

.rr-numbers__stage {
	position: relative;
	aspect-ratio: var(--rr-ratio, 16/9);
	overflow: hidden;
	background: #e3e8ec;
	border-radius: var(--rr-g-radius, 0 50px 0 0);
}

.rr .rr-numbers__slide {
	position: absolute;
	inset: 0;
	margin: 0;
	opacity: 0;
	visibility: hidden;
	transition: opacity .8s var(--rr-ease), visibility 0s .8s;
}

.rr .rr-numbers__slide.is-active {
	opacity: 1;
	visibility: visible;
	transition: opacity .8s var(--rr-ease), visibility 0s;
}

.rr .rr-numbers__img {
	width: 100%;
	height: 100%;
	max-width: none;
	object-fit: cover;
	transform: scale(1.04);
	transition: transform 6s linear;
	cursor: zoom-in;
}

.rr .rr-numbers__slide.is-active .rr-numbers__img {
	transform: scale(1);
}

.rr .rr-numbers__zoom,
.rr .rr-numbers__zoom:hover,
.rr .rr-numbers__zoom:focus {
	position: absolute;
	top: 18px;
	right: 18px;
	z-index: 2;
	border-color: rgba(255, 255, 255, .85);
	background: rgba(20, 24, 60, .28);
	color: #fff;
	font-size: 24px;
	backdrop-filter: blur(6px);
	-webkit-backdrop-filter: blur(6px);
}

.rr .rr-numbers__zoom:hover svg {
	transform: scale(1.2);
}

.rr .rr-numbers__zoom:hover {
	color: var(--rr-accent);
}

.rr-numbers__bar {
	display: flex;
	align-items: center;
	gap: 28px;
	margin-top: 22px;
}

.rr .rr-numbers__list {
	display: flex;
	flex-wrap: wrap;
	gap: 4px 22px;
	list-style: none;
	margin: 0;
	padding: 0;
}

.rr .rr-numbers__list li {
	margin: 0;
}

.rr .rr-numbers__no,
.rr .rr-numbers__no:hover,
.rr .rr-numbers__no:focus {
	position: relative;
	margin: 0;
	padding: 10px 0;
	border: 0;
	border-radius: 0;
	background: transparent;
	box-shadow: none;
	color: #9aa3aa;
	font-size: 15px;
	font-weight: 700;
	letter-spacing: .08em;
	font-variant-numeric: tabular-nums;
	cursor: pointer;
	transition: color .3s ease;
}

.rr .rr-numbers__no::after {
	content: "";
	position: absolute;
	left: 0;
	right: 0;
	bottom: 2px;
	height: 2px;
	background: var(--rr-accent);
	transform: scaleX(0);
	transform-origin: left;
	transition: transform .5s var(--rr-ease);
}

.rr .rr-numbers__no:hover {
	color: var(--rr-ink);
}

.rr .rr-numbers__no.is-active {
	color: var(--rr-accent);
}

.rr .rr-numbers__no.is-active::after {
	transform: scaleX(1);
}

.rr .rr-numbers__caption {
	flex: 1;
	margin: 0;
	color: #5f676d;
	font-size: 14px;
	line-height: 1.45;
}

.rr-numbers__nav {
	display: flex;
	gap: 8px;
	margin-left: auto;
}

@media (max-width: 767px) {
	.rr-numbers__stage {
		border-radius: var(--rr-g-radius, 0 32px 0 0);
	}
	.rr-numbers__bar {
		flex-wrap: wrap;
		gap: 12px;
	}
	.rr .rr-numbers__caption {
		order: 3;
		flex-basis: 100%;
	}
}

/* Mosaik und Bühne bleiben im Inhaltsraster, auch in einem vollbreiten Abschnitt */
.rr-mosaic,
.rr-numbers {
	width: min(100% - 32px, var(--rr-gallery-w, 1240px));
	margin-inline: auto;
}

/* ==========================================================================
   Standard-Elementor-Bausteine der Vorlagen
   ========================================================================== */

/* Leistungskarte ohne eigenen Rahmen (Rahmen kommt vom Container) */
.rr-scard.rr-scard--plain {
	padding: 0;
	border: 0;
	border-radius: 0;
	background: none;
}

/* Bereich ausblenden, wenn das Projekt dazu nichts eingetragen hat
   (z. B. Überschrift „Besonderheiten“ ohne Besonderheiten). Im Editor sichtbar. */
body:not(.elementor-editor-active) .rr-hide-empty:not(:has(.rr, .rr-list-items)) {
	display: none;
}

/* Lange Projekttitel sauber trennen */
.rr-hyphens .elementor-heading-title {
	hyphens: auto;
	-webkit-hyphens: auto;
	overflow-wrap: break-word;
}

/* Bauherr/Ort/Jahr direkt unter der Icon-Liste in der Leistungskarte */
.rr-scard--plain .rr-scard__meta:first-child {
	margin-top: 22px;
}

/* Galerie: Eckenradius auf alle Bilder (Schalter im Widget „Projekt: Diashow“) */
.rr-g-radius-all-yes .rr .rr-strip__item .rr-strip__open,
.rr-g-radius-all-yes .rr.rr-mosaic .rr-mosaic__lead .rr-mosaic__item,
.rr-g-radius-all-yes .rr.rr-mosaic .rr-mosaic__item {
	border-radius: var(--rr-g-radius, 0 40px 0 0);
}

/* Klassische Bühne: Standardradius oben rechts */
.rr .rr-slider__stage {
	border-radius: var(--rr-g-radius, 0 40px 0 0);
}

/* ------------------------------------------------------------------
 * Fix 1.9.3: Lightbox-Pfeile springen beim Hover nicht mehr.
 * Die allgemeine Reset-Regel „.rr-lightbox button:hover“ (und globale
 * Elementor-Button-Hover-Stile) waren spezifischer als die Pfeil-Regeln und
 * setzten im Hover margin/border/padding zurück – der Button rutschte
 * 27 px nach unten, die Maus verlor ihn, er sprang zurück (Flackern).
 * Hier gelten Lage und Rahmen in allen Zuständen identisch.
 * ------------------------------------------------------------------ */
.rr-lightbox .rr-lightbox__prev:hover,
.rr-lightbox .rr-lightbox__next:hover,
.rr-lightbox .rr-lightbox__prev:focus,
.rr-lightbox .rr-lightbox__next:focus,
.rr-lightbox .rr-lightbox__prev:focus-visible,
.rr-lightbox .rr-lightbox__next:focus-visible,
.rr-lightbox .rr-lightbox__prev:active,
.rr-lightbox .rr-lightbox__next:active {
	margin-top: -27px;
	padding: 0;
	border-width: 1px;
	border-style: solid;
	border-radius: 0;
	box-shadow: none;
	transform: none;
}

.rr-lightbox .rr-lightbox__prev:hover,
.rr-lightbox .rr-lightbox__next:hover,
.rr-lightbox .rr-lightbox__prev:focus-visible,
.rr-lightbox .rr-lightbox__next:focus-visible {
	border-color: #e3e8ec;
	background: transparent;
	color: var(--rr-accent);
}

.rr-lightbox .rr-lightbox__prev:focus:not(:focus-visible),
.rr-lightbox .rr-lightbox__next:focus:not(:focus-visible),
.rr-lightbox .rr-lightbox__prev:active,
.rr-lightbox .rr-lightbox__next:active {
	background: transparent;
}

.rr-lightbox .rr-lightbox__close:hover,
.rr-lightbox .rr-lightbox__close:focus,
.rr-lightbox .rr-lightbox__close:active {
	padding: 0;
	border: 0;
	border-radius: 0;
	box-shadow: none;
	transform: none;
}

@media (max-width: 767px) {
	.rr-lightbox .rr-lightbox__prev:hover,
	.rr-lightbox .rr-lightbox__next:hover,
	.rr-lightbox .rr-lightbox__prev:focus,
	.rr-lightbox .rr-lightbox__next:focus,
	.rr-lightbox .rr-lightbox__prev:focus-visible,
	.rr-lightbox .rr-lightbox__next:focus-visible,
	.rr-lightbox .rr-lightbox__prev:active,
	.rr-lightbox .rr-lightbox__next:active {
		margin-top: 0;
	}
}

/* ---------- Volle Bildschirmbreite (Widget-Einstellung) ----------
 * Zieht Übersicht bzw. Slider bis an beide Bildschirmränder – auch wenn der Container
 * einen Innenabstand hat. Die genauen Werte setzt frontend.js (--rr-bleed-*) – nur in der
 * passenden Ansicht und bei jedem Wechsel neu; ohne Skript gilt die zentrierte Näherung.
 */
@media (max-width: 767px) {
	.rr-bleed-mobile .rr-overview,
	.rr-bleed-mobile .rr-pslider,
	.rr-bleed-tablet .rr-overview,
	.rr-bleed-tablet .rr-pslider {
		/* Nie breiter als der Bildschirm – so brechen Titel immer sauber um. */
		width: min(var(--rr-bleed-w, 100vw), 100vw) !important;
		max-width: 100vw !important;
		margin-left: var(--rr-bleed-l, calc(50% - 50vw)) !important;
		margin-right: var(--rr-bleed-r, calc(50% - 50vw)) !important;
	}
}

@media (min-width: 768px) and (max-width: 1024px) {
	.rr-bleed-tablet .rr-overview,
	.rr-bleed-tablet .rr-pslider {
		/* Nie breiter als der Bildschirm – so brechen Titel immer sauber um. */
		width: min(var(--rr-bleed-w, 100vw), 100vw) !important;
		max-width: 100vw !important;
		margin-left: var(--rr-bleed-l, calc(50% - 50vw)) !important;
		margin-right: var(--rr-bleed-r, calc(50% - 50vw)) !important;
	}
}
