/* RSFA widgets (Galerie + Preise). Self-contained: only design TOKENS (Elementor variables) are used, never global-class CSS,
   because Elementor does not output global classes that the page data does not reference. */

/* ---------- shared: chip / tab button ----------
   Elementor's kit styles every <button> (pink accent, hover/focus fills). Higher specificity + explicit states keep our look in all states. */
.rsfa-gallery .rsfa-chip, .rsfa-pricing .rsfa-chip {
	-webkit-appearance: none; appearance: none; box-shadow: none; text-transform: none; letter-spacing: normal;
	display: inline-flex; align-items: center; justify-content: center; min-height: 3rem; padding: 0 var(--space-4, 2.125rem);
	background: transparent; border: 1px solid var(--color-line, #2f2f2f); border-radius: var(--radius, 0.625rem);
	color: var(--color-text, #fff); font: 300 var(--fs-small, 1rem)/1 var(--font-sans, 'DM Sans'), 'Helvetica Neue', Arial, sans-serif;
	text-decoration: none; cursor: pointer; -webkit-tap-highlight-color: transparent;
	transition: color 0.3s ease, border-color 0.3s ease, background-color 0.3s ease;
}
.rsfa-gallery .rsfa-chip:hover, .rsfa-pricing .rsfa-chip:hover { background: transparent; color: var(--color-gold, #c8a97e); border-color: var(--color-gold, #c8a97e); }
.rsfa-gallery .rsfa-chip:focus, .rsfa-pricing .rsfa-chip:focus { background: transparent; color: var(--color-text, #fff); outline: none; }
.rsfa-gallery .rsfa-chip:focus-visible, .rsfa-pricing .rsfa-chip:focus-visible { outline: 2px solid var(--color-gold, #c8a97e); outline-offset: 3px; }
.rsfa-gallery .rsfa-chip.is-on, .rsfa-gallery .rsfa-chip[aria-pressed="true"], .rsfa-pricing .rsfa-chip[aria-selected="true"],
.rsfa-gallery .rsfa-chip.is-on:hover, .rsfa-gallery .rsfa-chip.is-on:focus, .rsfa-pricing .rsfa-chip[aria-selected="true"]:hover, .rsfa-pricing .rsfa-chip[aria-selected="true"]:focus {
	color: var(--color-gold, #c8a97e); border-color: var(--color-gold, #c8a97e); background: rgba(200, 169, 126, 0.1);
}

/* visually hidden, still read by screen readers */
.rsfa-sr { position: absolute; width: 1px; height: 1px; margin: -1px; padding: 0; overflow: hidden; clip: rect(0 0 0 0); clip-path: inset(50%); white-space: nowrap; border: 0; }

/* ---------- Galerie: justified rows (each row fills the full width, photos keep their aspect ratio) ---------- */
.rsfa-gallery { display: block; width: 100%; }
.rsfa-gallery__filter {
	display: flex; flex-wrap: wrap; justify-content: center; gap: var(--space-2, 0.8125rem);
	padding-inline: var(--space-gutter, 5.5rem); margin-bottom: var(--space-4, 2.125rem);
}
.rsfa-gallery__grid { --rsfa-row-h: 20rem; display: flex; flex-wrap: wrap; gap: var(--space-1, 0.5rem); width: 100%; }
.rsfa-gallery__grid::after { content: ""; flex-grow: 1000; } /* keeps the last row from stretching */
.rsfa-gallery--bleed .rsfa-gallery__grid { width: 100vw; max-width: 100vw; margin-inline: calc(50% - 50vw); }
.rsfa-tile {
	flex: calc(var(--r, 1.5) * 100) 1 calc(var(--r, 1.5) * var(--rsfa-row-h)); min-width: 0; position: relative; overflow: hidden; display: block;
	aspect-ratio: var(--r, 1.5); background: var(--color-surface, #161616); text-decoration: none; isolation: isolate; border-radius: var(--radius, 0.625rem);
}
.rsfa-tile[hidden] { display: none !important; }
.rsfa-tile__img { display: block; position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; cursor: zoom-in; transition: transform 0.9s cubic-bezier(0.22, 0.61, 0.36, 1), filter 0.6s ease; will-change: transform; }
.rsfa-tile::after {
	content: ""; position: absolute; inset: 0; pointer-events: none; opacity: 0; transition: opacity 0.5s ease;
	background: linear-gradient(0deg, rgba(17, 17, 17, 0.45) 0%, rgba(17, 17, 17, 0) 40%);
}
@media (hover: hover) {
	.rsfa-tile:hover .rsfa-tile__img { transform: scale(1.035); }
	.rsfa-tile:hover::after { opacity: 1; }
	/* focus effect: everything except the hovered photo fades back */
	.rsfa-gallery__grid:has(.rsfa-tile:hover) .rsfa-tile:not(:hover) .rsfa-tile__img { filter: brightness(0.45) saturate(0.7); }
}
/* Entrance: fade + rise, staggered (class set by the widget script; without JS everything is simply visible) */
.rsfa-anim .rsfa-tile { opacity: 0; transform: translateY(1.5rem); }
.rsfa-anim .rsfa-tile.is-in { opacity: 1; transform: none; transition: opacity 0.9s ease, transform 0.9s cubic-bezier(0.22, 0.61, 0.36, 1); }
@media (prefers-reduced-motion: reduce) { .rsfa-tile:hover .rsfa-tile__img { transform: none; } }

/* ---------- Preise ---------- */
.rsfa-pricing { display: flex; flex-direction: column; gap: var(--space-4, 2.125rem); width: 100%; }
.rsfa-pricing__tabs { display: none; gap: var(--space-1, 0.5rem); }
.rsfa-pricing__tabs .rsfa-chip { flex: 1 1 0; min-width: 0; padding: 0 var(--space-2, 0.8125rem); border-color: var(--color-line, #2f2f2f); }
.rsfa-pricing__cards { display: grid; grid-template-columns: repeat(var(--rsfa-cols, 3), minmax(0, 1fr)); gap: var(--space-4, 2.125rem); }

.rsfa-card {
	display: flex; flex-direction: column; gap: var(--space-3, 1.3125rem); min-width: 0; padding: var(--space-4, 2.125rem);
	background: var(--color-surface, #161616); border: 1px solid var(--color-line, #2f2f2f); border-radius: var(--radius, 0.625rem); color: var(--color-text, #fff);
}
.rsfa-card.is-featured { border-color: var(--color-gold, #c8a97e); }
.rsfa-card__price { margin: 0; font: italic 300 var(--fs-h2, 2.625rem)/1 var(--font-sans, 'DM Sans'), 'Helvetica Neue', Arial, sans-serif; color: var(--color-gold, #c8a97e); }
.rsfa-card__title { margin: 0; font: 400 var(--fs-lead, 1.625rem)/1.25 var(--font-sans, 'DM Sans'), 'Helvetica Neue', Arial, sans-serif; color: var(--color-text, #fff); }
.rsfa-card__title em { color: var(--color-gold, #c8a97e); font-style: italic; font-weight: 300; }
.rsfa-card__title strong { font-weight: 700; }
.rsfa-card__meta { margin: calc(-1 * var(--space-2, 0.8125rem)) 0 0; font: 300 var(--fs-small, 1rem)/1.4 var(--font-sans, 'DM Sans'), 'Helvetica Neue', Arial, sans-serif; letter-spacing: 0.04em; color: var(--color-gold, #c8a97e); }
.rsfa-pricing__note { margin: 0; font: 200 var(--fs-small, 1rem)/1.6 var(--font-sans, 'DM Sans'), 'Helvetica Neue', Arial, sans-serif; color: var(--color-text-muted, #a8a39c); text-align: center; }
.rsfa-card__text { margin: 0; font: 200 var(--fs-small, 1rem)/1.65 var(--font-sans, 'DM Sans'), 'Helvetica Neue', Arial, sans-serif; color: var(--color-text-muted, #a8a39c); }

.rsfa-group { display: flex; flex-direction: column; }
.rsfa-group__label {
	margin: var(--space-3, 1.3125rem) 0 0; padding-bottom: var(--space-2, 0.8125rem); border-bottom: 1px solid var(--color-line, #2f2f2f);
	font: 400 0.8125rem/1.4 var(--font-sans, 'DM Sans'), 'Helvetica Neue', Arial, sans-serif; letter-spacing: 0.1em; text-transform: uppercase; color: var(--color-text-muted, #a8a39c);
}
.rsfa-row { display: block; }
.rsfa-row__title {
	display: flex; align-items: center; gap: var(--space-2, 0.8125rem); width: 100%; padding-block: var(--space-2, 0.8125rem); list-style: none;
	font: 400 var(--fs-small, 1rem)/1.4 var(--font-sans, 'DM Sans'), 'Helvetica Neue', Arial, sans-serif; color: var(--color-text, #fff); cursor: pointer; transition: color 0.2s ease;
}
.rsfa-row__title::-webkit-details-marker { display: none; }
.rsfa-row__title:hover { color: var(--color-gold, #c8a97e); }
.rsfa-row__title:focus-visible { outline: 2px solid var(--color-gold, #c8a97e); outline-offset: 3px; }
.rsfa-row__title::before, .rsfa-row__title::after {
	content: ""; flex: 0 0 1.25rem; width: 1.25rem; height: 1.25rem; background: currentColor;
	-webkit-mask: var(--rsfa-icon) center / contain no-repeat; mask: var(--rsfa-icon) center / contain no-repeat;
}
.rsfa-row__title::before {
	--rsfa-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='9.5'/%3E%3Cpath d='M7.5 12.5l3 3 6-6.5'/%3E%3C/svg%3E");
}
.rsfa-row__title::after {
	--rsfa-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 9l7 7 7-7'/%3E%3C/svg%3E");
	flex-basis: 0.9rem; width: 0.9rem; height: 0.9rem; margin-left: auto; background: var(--color-gold, #c8a97e); transition: transform 0.3s ease;
}
.rsfa-row[open] > .rsfa-row__title::after { transform: rotate(180deg); }
.rsfa-row--static > .rsfa-row__title { cursor: default; }
.rsfa-row--static > .rsfa-row__title:hover { color: var(--color-text, #fff); }
.rsfa-row--static > .rsfa-row__title::after { visibility: hidden; }
.rsfa-row.is-off > .rsfa-row__title { color: rgba(255, 255, 255, 0.5); text-decoration: none; }
.rsfa-row.is-off > .rsfa-row__title::before { opacity: 0; }
.rsfa-row__detail { margin: 0; padding: 0 0 var(--space-2, 0.8125rem) calc(1.25rem + var(--space-2, 0.8125rem)); font: 200 var(--fs-small, 1rem)/1.65 var(--font-sans, 'DM Sans'), 'Helvetica Neue', Arial, sans-serif; color: var(--color-text-muted, #a8a39c); }

/* Tablet / mobile: tab bar + only the selected package */
@media (max-width: 1024px) {
	.rsfa-pricing__tabs { display: flex; position: sticky; top: var(--rsfa-header-h, 4.5rem); z-index: 20; padding-block: var(--space-2, 0.8125rem); background: rgba(17, 17, 17, 0.88); -webkit-backdrop-filter: blur(10px); backdrop-filter: blur(10px); box-shadow: 0 1px 0 var(--color-line, #2f2f2f); }
	.rsfa-pricing__cards { display: block; }
	.rsfa-card:not(.is-active) { display: none; }
	.rsfa-pricing--notabs .rsfa-pricing__tabs { display: none; }
	.rsfa-pricing--notabs .rsfa-pricing__cards { display: grid; gap: var(--space-4, 2.125rem); }
	.rsfa-pricing--notabs .rsfa-card:not(.is-active) { display: block; }
}
@media (max-width: 767px) {
	.rsfa-gallery__filter { flex-wrap: nowrap; justify-content: flex-start; overflow-x: auto; scrollbar-width: none; gap: var(--space-1, 0.5rem); margin-inline: calc(-1 * var(--space-gutter, 1.3rem)); padding-inline: var(--space-gutter, 1.3rem); margin-bottom: var(--space-3, 1.3125rem); }
	.rsfa-gallery__filter::-webkit-scrollbar { display: none; }
	.rsfa-gallery__filter .rsfa-chip { flex: none; }
	.rsfa-gallery .rsfa-chip, .rsfa-pricing .rsfa-chip { min-height: 2.75rem; padding: 0 var(--space-3, 1.3125rem); }
}

/* ---------- Anfrage (step-by-step form) ---------- */
.rsfa-ask { text-align: left; width: 100%; max-width: var(--reading-max, 51rem); margin-inline: auto; color: var(--color-text, #fff); font-family: var(--font-sans, 'DM Sans'), 'Helvetica Neue', Arial, sans-serif; }
.rsfa-ask__form { display: flex; flex-direction: column; gap: var(--space-3, 1.3125rem); }
.rsfa-ask__form[hidden], .rsfa-ask__done[hidden] { display: none !important; }
.rsfa-ask__bar { display: flex; align-items: center; gap: var(--space-3, 1.3125rem); }
.rsfa-ask__count { display: none; flex: none; font-size: var(--fs-small, 1rem); color: var(--color-text-muted, #a8a39c); font-variant-numeric: tabular-nums; }
.rsfa-ask__count b { color: var(--color-gold, #c8a97e); font-weight: 400; }
.rsfa-ask__progress { flex: 1; height: 2px; background: var(--color-line, #2f2f2f); border-radius: 2px; overflow: hidden; }
.rsfa-ask__progress i { display: block; height: 100%; width: 0; background: var(--color-gold, #c8a97e); transition: width 0.5s cubic-bezier(0.22, 0.61, 0.36, 1); }
.rsfa-step { border: 0; margin: 0; padding: 0; min-width: 0; }
.rsfa-step[hidden] { display: none; }
.rsfa-step.is-in { animation: rsfa-step-in 0.5s cubic-bezier(0.22, 0.61, 0.36, 1) both; }
@keyframes rsfa-step-in { from { opacity: 0; transform: translateY(1.25rem); } to { opacity: 1; transform: none; } }
.rsfa-ask__q { display: block; width: 100%; padding: 0; margin: 0 0 var(--space-2, 0.8125rem); font: 300 var(--fs-h3, 2rem)/1.25 var(--font-sans, 'DM Sans'), 'Helvetica Neue', Arial, sans-serif; letter-spacing: -0.01em; text-align: left; color: var(--color-text, #fff); }
.rsfa-ask__q em { color: var(--color-gold, #c8a97e); font-style: italic; font-weight: 300; }
.rsfa-ask__hint { text-align: left; margin: 0 0 var(--space-3, 1.3125rem); font: 200 var(--fs-small, 1rem)/1.5 var(--font-sans, 'DM Sans'), 'Helvetica Neue', Arial, sans-serif; color: var(--color-text-muted, #a8a39c); }

.rsfa-ask .rsfa-input {
	-webkit-appearance: none; appearance: none; width: 100%; box-sizing: border-box; padding: var(--space-2, 0.8125rem) 0; border: 0; border-bottom: 1px solid var(--color-line, #2f2f2f); border-radius: 0;
	background: transparent; box-shadow: none; color: var(--color-text, #fff); font: 300 var(--fs-lead, 1.625rem)/1.3 var(--font-sans, 'DM Sans'), 'Helvetica Neue', Arial, sans-serif; color-scheme: dark; transition: border-color 0.3s ease;
}
.rsfa-ask .rsfa-input::placeholder { color: var(--color-text-muted, #a8a39c); opacity: 0.6; }
.rsfa-ask .rsfa-input:focus { outline: none; border-bottom-color: var(--color-gold, #c8a97e); background: transparent; }
.rsfa-ask .rsfa-input[aria-invalid="true"] { border-bottom-color: #e07a6b; }
.rsfa-ask .rsfa-input--area { min-height: 9rem; resize: vertical; border: 1px solid var(--color-line, #2f2f2f); border-radius: var(--radius, 0.625rem); padding: var(--space-3, 1.3125rem); font-size: var(--fs-body, 1.25rem); }
.rsfa-ask .rsfa-input--area:focus { border-color: var(--color-gold, #c8a97e); }
.rsfa-fields { display: grid; gap: var(--space-3, 1.3125rem); }
.rsfa-field { display: block; }
.rsfa-field > span { display: block; text-align: left; font-size: var(--fs-small, 1rem); color: var(--color-text-muted, #a8a39c); }
.rsfa-field small { opacity: 0.7; }

.rsfa-choices { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--space-2, 0.8125rem); }
.rsfa-choice { position: relative; display: flex; align-items: center; min-height: 3.75rem; padding: var(--space-2, 0.8125rem) var(--space-3, 1.3125rem); border: 1px solid var(--color-line, #2f2f2f); border-radius: var(--radius, 0.625rem); background: var(--color-surface, #161616); cursor: pointer; transition: border-color 0.25s ease, background-color 0.25s ease, color 0.25s ease; font: 300 var(--fs-body, 1.25rem)/1.3 var(--font-sans, 'DM Sans'), 'Helvetica Neue', Arial, sans-serif; }
.rsfa-choice input { position: absolute; opacity: 0; inset: 0; width: 100%; height: 100%; margin: 0; cursor: pointer; }
.rsfa-choice:hover { border-color: var(--color-gold, #c8a97e); }
.rsfa-choice:has(input:checked) { border-color: var(--color-gold, #c8a97e); background: rgba(200, 169, 126, 0.1); color: var(--color-gold, #c8a97e); }
.rsfa-choice:has(input:focus-visible) { outline: 2px solid var(--color-gold, #c8a97e); outline-offset: 3px; }
.rsfa-check { display: flex; align-items: flex-start; gap: var(--space-2, 0.8125rem); margin-top: var(--space-3, 1.3125rem); font: 200 var(--fs-small, 1rem)/1.5 var(--font-sans, 'DM Sans'), 'Helvetica Neue', Arial, sans-serif; color: var(--color-text-muted, #a8a39c); cursor: pointer; }
.rsfa-check input { flex: none; width: 1.25rem; height: 1.25rem; margin: 0.15rem 0 0; accent-color: var(--color-gold, #c8a97e); }
.rsfa-check a { color: var(--color-gold, #c8a97e); }

.rsfa-ask__error { margin: 0; font-size: var(--fs-small, 1rem); color: #e8998d; }
.rsfa-ask__nav { display: flex; flex-wrap: wrap; align-items: center; gap: var(--space-2, 0.8125rem); }
.rsfa-ask__nav button { -webkit-appearance: none; appearance: none; box-shadow: none; cursor: pointer; min-height: 3.4375rem; padding: 0 var(--space-4, 2.125rem); border-radius: var(--radius, 0.625rem); font: 300 var(--fs-body, 1.25rem)/1 var(--font-sans, 'DM Sans'), 'Helvetica Neue', Arial, sans-serif; text-transform: none; letter-spacing: normal; transition: background-color 0.3s ease, color 0.3s ease, border-color 0.3s ease; }
.rsfa-ask__nav button[hidden] { display: none; }
.rsfa-ask .rsfa-ask__next, .rsfa-ask .rsfa-ask__send { background: var(--color-gold, #c8a97e); border: 1px solid var(--color-gold, #c8a97e); color: var(--color-gold-ink, #111); }
.rsfa-ask .rsfa-ask__next:hover, .rsfa-ask .rsfa-ask__send:hover, .rsfa-ask .rsfa-ask__next:focus, .rsfa-ask .rsfa-ask__send:focus { background: var(--color-gold-hover, #d9bd95); border-color: var(--color-gold-hover, #d9bd95); color: var(--color-gold-ink, #111); }
.rsfa-ask .rsfa-ask__send.is-busy { opacity: 0.6; cursor: progress; }
.rsfa-ask .rsfa-ask__back, .rsfa-ask .rsfa-ask__wa { background: transparent; border: 1px solid var(--color-line, #2f2f2f); color: var(--color-text, #fff); }
.rsfa-ask .rsfa-ask__back:hover, .rsfa-ask .rsfa-ask__wa:hover, .rsfa-ask .rsfa-ask__back:focus, .rsfa-ask .rsfa-ask__wa:focus { background: transparent; border-color: var(--color-gold, #c8a97e); color: var(--color-gold, #c8a97e); }
.rsfa-ask__nav strong { font-weight: 600; }
.rsfa-ask__keys { margin-left: auto; font-size: 0.875rem; color: var(--color-text-muted, #a8a39c); opacity: 0.7; }
.rsfa-hp { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.rsfa-ask__done { padding: var(--space-5, 3.4375rem) 0; }
.rsfa-ask .rsfa-ask__back { flex: 0 0 auto; align-self: center; padding: 0.5rem 0.75rem; min-height: 2.75rem; border: 0; border-radius: 0; font: inherit; font-size: var(--fs-small, 1rem); cursor: pointer; opacity: 0.7; transition: opacity 0.25s ease, color 0.25s ease; }
.rsfa-ask .rsfa-ask__back:hover, .rsfa-ask .rsfa-ask__back:focus-visible { opacity: 1; }
.rsfa-ask .rsfa-ask__back[hidden] { display: none; }
.rsfa-ask__nav.is-final { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); }
.rsfa-ask__nav.is-final > .rsfa-ask__back { grid-column: 1 / -1; justify-self: start; padding: 0.5rem 0.75rem; }
.rsfa-ask__nav.is-final button { padding: 0.9rem 1rem; line-height: 1.4; }
.rsfa-ask__nav.is-final:not(:has(.rsfa-ask__wa)) { grid-template-columns: 1fr; }
.rsfa-ask__receipt { max-width: 38rem; font-size: var(--fs-body, 1.25rem); line-height: 1.6; color: var(--color-text-muted, #a8a39c); }
.rsfa-ask .rsfa-ask__finish { margin-top: var(--space-3, 1.3125rem); min-height: 3.4375rem; padding: 0.9rem var(--space-3, 1.3125rem); border: 1px solid var(--color-gold, #c8a97e); border-radius: var(--radius, 0.625rem); background: var(--color-gold, #c8a97e); color: var(--color-gold-ink, #111); font: inherit; cursor: pointer; }
.rsfa-ask .rsfa-ask__finish:hover, .rsfa-ask .rsfa-ask__finish:focus { background: var(--color-gold-hover, #d9bd95); color: var(--color-gold-ink, #111); border-color: var(--color-gold-hover, #d9bd95); }
@media (max-width: 600px) { .rsfa-ask__nav.is-final { grid-template-columns: 1fr; } }
@media (max-width: 767px) {
	.rsfa-ask__q { font-size: var(--fs-lead, 1.625rem); margin-bottom: var(--space-3, 1.3125rem); }
	/* hint stays for screen readers only on phones (less clutter) */
	.rsfa-ask__hint { position: absolute; width: 1px; height: 1px; margin: -1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
	.rsfa-ask .rsfa-input { font-size: var(--fs-body, 1.25rem); }
	.rsfa-choices { grid-template-columns: 1fr; gap: var(--space-1, 0.5rem); }
	.rsfa-choice { min-height: 3.25rem; padding: var(--space-2, 0.8125rem) var(--space-3, 1.3125rem); font-size: var(--fs-small, 1rem); }
	.rsfa-step[data-key="q_start"] .rsfa-ask__q { margin-bottom: var(--space-4, 2.125rem); }
	.rsfa-step[data-key="q_start"] .rsfa-choices { gap: var(--space-3, 1.3125rem); }
	.rsfa-step[data-key="q_start"] .rsfa-choice { padding-block: var(--space-3, 1.3125rem); }
	.rsfa-ask__nav button { flex: 1 1 auto; min-height: 3.25rem; padding: 0 var(--space-3, 1.3125rem); font-size: var(--fs-small, 1rem); }
	.rsfa-ask__keys { display: none; }
	.rsfa-ask__bar { margin-bottom: var(--space-1, 0.5rem); }
	/* gallery: light side padding on phones, like the page text */
	.rsfa-gallery--bleed .rsfa-gallery__grid { width: 100%; max-width: 100%; margin-inline: 0; }
}
@media (prefers-reduced-motion: reduce) { .rsfa-step.is-in { animation: none; } }

/* ---------- Kontaktzeile ---------- */
.rsfa-contact { width: 100%; color: var(--color-text, #fff); font-family: var(--font-sans, 'DM Sans'), 'Helvetica Neue', Arial, sans-serif; text-align: left; }
.rsfa-contact__lead { margin: 0 0 var(--space-3, 1.3125rem); font: 300 var(--fs-lead, 1.625rem)/1.25 var(--font-sans, 'DM Sans'), 'Helvetica Neue', Arial, sans-serif; }
.rsfa-contact__list { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 14rem), 1fr)); gap: var(--space-2, 0.8125rem); margin: 0; padding: 0; list-style: none; }
.rsfa-contact__item { box-sizing: border-box; height: 100%; display: flex; align-items: center; gap: var(--space-2, 0.8125rem); min-height: 3.75rem; padding: var(--space-2, 0.8125rem) var(--space-3, 1.3125rem); border: 1px solid var(--color-line, #2f2f2f); border-radius: var(--radius, 0.625rem); background: var(--color-surface, #161616); color: var(--color-text, #fff); text-decoration: none; transition: border-color 0.25s ease, color 0.25s ease; }
.rsfa-contact__item:hover, .rsfa-contact__item:focus-visible { border-color: var(--color-gold, #c8a97e); color: var(--color-gold, #c8a97e); }
.rsfa-contact__txt { display: flex; flex-direction: column; min-width: 0; line-height: 1.3; }
.rsfa-contact__txt b { font-weight: 500; font-size: var(--fs-small, 1rem); }
.rsfa-contact__txt small { color: var(--color-text-muted, #a8a39c); font-size: 0.9375rem; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.rsfa-contact__avail { margin: var(--space-3, 1.3125rem) 0 0; font: 200 var(--fs-small, 1rem)/1.6 var(--font-sans, 'DM Sans'), 'Helvetica Neue', Arial, sans-serif; color: var(--color-text-muted, #a8a39c); }
.rsfa-contact__avail span + span { margin-left: 0.25em; }
.rsfa-ic { flex: none; width: 1.5rem; height: 1.5rem; background: var(--color-gold, #c8a97e); -webkit-mask: var(--i) center / contain no-repeat; mask: var(--i) center / contain no-repeat; }
.rsfa-ic--mail { --i: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='5' width='18' height='14' rx='2'/%3E%3Cpath d='M3 7l9 6 9-6'/%3E%3C/svg%3E"); }
.rsfa-ic--phone { --i: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 4h4l2 5-2.5 1.5a11 11 0 005 5L15 13l5 2v4a2 2 0 01-2 2A16 16 0 013 6a2 2 0 012-2z'/%3E%3C/svg%3E"); }
.rsfa-ic--wa { --i: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 20l1.3-4.2A8 8 0 1112 20a8 8 0 01-3.8-1z'/%3E%3Cpath d='M9 8.5c0 3 2.5 5.5 5.5 5.5l1-1.5-2-1-1 .8a3.5 3.5 0 01-1.8-1.8l.8-1-1-2z'/%3E%3C/svg%3E"); }
/* below the form: clearly secondary (no gold fill, thin divider, smaller) */
.rsfa-contact--below-form { margin-top: var(--space-5, 3.4375rem); padding-top: var(--space-4, 2.125rem); border-top: 1px solid var(--color-line, #2f2f2f); }
.rsfa-contact--below-form .rsfa-contact__lead { font-size: var(--fs-body, 1.25rem); color: var(--color-text-muted, #a8a39c); }
.rsfa-contact--below-form .rsfa-contact__item { background: transparent; min-height: 3.25rem; }
@media (max-width: 767px) {
	.rsfa-contact__item { min-height: 3.5rem; }
}

/* ---------- Standorte: editorial index (city big, places small, hairlines) ---------- */
.rsfa-loc { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 2fr); gap: var(--space-5, 3.4375rem); align-items: start; width: 100%; text-align: left; color: var(--color-text, #fff); font-family: var(--font-sans, 'DM Sans'), 'Helvetica Neue', Arial, sans-serif; }
.rsfa-loc__side { position: sticky; top: calc(var(--rsfa-header-h, 4.5rem) + var(--space-3, 1.3125rem)); padding-top: 2.1rem; display: flex; flex-direction: column; gap: var(--space-4, 2.125rem); }
.rsfa-loc__lead { margin: 0; font: 300 var(--fs-lead, 1.625rem)/1.4 var(--font-sans, 'DM Sans'), 'Helvetica Neue', Arial, sans-serif; color: var(--color-text, #fff); }
.rsfa-loc__row:last-child .rsfa-loc__city { color: var(--color-gold, #c8a97e); font-style: italic; }
.rsfa-loc__notice { grid-column: 2; margin: 0; font: 200 0.875rem/1.6 var(--font-sans, 'DM Sans'), 'Helvetica Neue', Arial, sans-serif; color: var(--color-text-muted, #a8a39c); }
.rsfa-loc__main { display: flex; flex-direction: column; gap: var(--space-2, 0.8125rem); min-width: 0; }
.rsfa-loc__label { margin: 0; font: 600 var(--fs-eyebrow, 1.0625rem)/1.3 var(--font-sans, 'DM Sans'), 'Helvetica Neue', Arial, sans-serif; letter-spacing: 0.12em; text-transform: uppercase; color: var(--color-gold, #c8a97e); }
.rsfa-loc__list { margin: 0; padding: 0; list-style: none; border-top: 1px solid var(--color-line, #2f2f2f); }
.rsfa-loc__row { display: grid; grid-template-columns: minmax(0, 0.9fr) minmax(0, 1.1fr); gap: var(--space-3, 1.3125rem); align-items: baseline; padding: var(--space-3, 1.3125rem) 0; border-bottom: 1px solid var(--color-line, #2f2f2f); transition: padding-left 0.35s cubic-bezier(0.22, 0.61, 0.36, 1); }
.rsfa-loc__city { font: 300 var(--fs-h3, 2rem)/1.15 var(--font-sans, 'DM Sans'), 'Helvetica Neue', Arial, sans-serif; letter-spacing: -0.01em; transition: color 0.3s ease; }
.rsfa-loc__city a { color: inherit; text-decoration: none; }
.rsfa-loc__places { font: 200 var(--fs-small, 1rem)/1.6 var(--font-sans, 'DM Sans'), 'Helvetica Neue', Arial, sans-serif; color: var(--color-text-muted, #a8a39c); }
.rsfa-loc__sep { color: var(--color-gold, #c8a97e); }
@media (hover: hover) {
	.rsfa-loc__row:hover { padding-left: var(--space-2, 0.8125rem); }
	.rsfa-loc__row:hover .rsfa-loc__city { color: var(--color-gold, #c8a97e); }
}
@media (max-width: 1024px) {
	.rsfa-loc { grid-template-columns: 1fr; gap: var(--space-4, 2.125rem); }
	.rsfa-loc__notice { grid-column: 1; }
	.rsfa-loc__side { position: static; }
}
@media (max-width: 767px) {
	.rsfa-loc__lead { font-size: var(--fs-body, 1.25rem); }
	.rsfa-loc__row { grid-template-columns: 1fr; gap: 0.125rem; padding: var(--space-2, 0.8125rem) 0; }
	.rsfa-loc__city { font-size: var(--fs-lead, 1.625rem); }
}
@media (prefers-reduced-motion: reduce) { .rsfa-loc__row { transition: none; } }

/* ---------- Videohintergrund ---------- */
.elementor-widget-rsfa-videobg { position: absolute !important; inset: 0; z-index: auto; width: 100% !important; margin: 0 !important; }
.elementor-widget-rsfa-videobg ~ * { z-index: 1; }
.elementor-widget-rsfa-videobg > .elementor-widget-container { height: 100%; }
.rsfa-videobg { position: absolute; inset: 0; overflow: hidden; background: var(--color-bg, #111); }
.rsfa-videobg__video { z-index: 0; position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.rsfa-videobg__video.is-b { opacity: 0; }
.rsfa-videobg__video { transition: opacity 1.4s ease; }
.rsfa-videobg__video.is-a:not(.is-on) { opacity: 0; }
.rsfa-videobg__video.is-b.is-on { opacity: 1; }
/* light even veil so text stays readable on bright footage; the section's own gradient overlay sits above it */
.rsfa-videobg::after { content: ""; position: absolute; inset: 0; z-index: 1; background: rgba(17, 17, 17, 0.3); pointer-events: none; }
.elementor-widget-rsfa-videobg ~ [class*="rs-overlay"] { z-index: 1 !important; }
.elementor-widget-rsfa-videobg ~ .rs-container { z-index: 2; }
@media (prefers-reduced-motion: reduce) { .rsfa-videobg__video { transition: none; } }
.rsfa-videobg__toggle { -webkit-appearance: none; appearance: none; position: absolute; right: var(--space-gutter, 1.3125rem); bottom: var(--space-3, 1.3125rem); z-index: 3; width: 2.75rem; height: 2.75rem; padding: 0; border: 1px solid rgba(255, 255, 255, 0.4); border-radius: 50%; background: rgba(17, 17, 17, 0.55); -webkit-backdrop-filter: blur(6px); backdrop-filter: blur(6px); color: #fff; cursor: pointer; box-shadow: none; }
.rsfa-videobg__toggle::before { content: ""; display: block; width: 0.875rem; height: 0.875rem; margin: auto; background: currentColor; -webkit-mask: var(--vi) center / contain no-repeat; mask: var(--vi) center / contain no-repeat; --vi: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M5 3h5v18H5zM14 3h5v18h-5z'/%3E%3C/svg%3E"); }
.rsfa-videobg__toggle.is-paused::before { --vi: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M6 3.5l15 8.5-15 8.5z'/%3E%3C/svg%3E"); }
.rsfa-videobg__toggle:hover { border-color: var(--color-gold, #c8a97e); color: var(--color-gold, #c8a97e); background: rgba(17, 17, 17, 0.55); }

/* Drone/video section on phones: footage on top, unobstructed; text below on a fade to the page background. */
@media (max-width: 767px) {
	:has(> .elementor-widget-rsfa-videobg) { --rsfa-vid-h: max(19rem, 72vw); padding-top: 0 !important; display: flex !important; flex-direction: column; height: auto !important; min-height: 0 !important; }
	.elementor-widget-rsfa-videobg { position: relative !important; inset: auto; flex: none; height: var(--rsfa-vid-h); margin: 0 calc(-1 * var(--space-gutter, 1.3125rem)) 0 !important; width: calc(100% + 2 * var(--space-gutter, 1.3125rem)) !important; max-width: none !important; }
	.elementor-widget-rsfa-videobg ~ [class*="rs-overlay"] { top: 0 !important; bottom: auto !important; left: 0 !important; right: 0 !important; width: 100% !important; height: var(--rsfa-vid-h) !important; background: linear-gradient(180deg, rgba(17, 17, 17, 0.35) 0%, rgba(17, 17, 17, 0) 28%, rgba(17, 17, 17, 0) 45%, var(--color-bg, #111) 94%, var(--color-bg, #111) 100%) !important; }
	.rsfa-videobg::after { background: rgba(17, 17, 17, 0.06); }
	.elementor-widget-rsfa-videobg ~ .rs-container { margin-top: 0; padding-top: var(--space-3, 1.3125rem); }
}

/* ---------- Footer: statement on a photo (like the other big boxes), then quiet link columns ---------- */
.rsfa-footer { width: 100%; background: var(--color-footer, #0b0b0b); color: var(--color-text, #fff); font-family: var(--font-sans, 'DM Sans'), 'Helvetica Neue', Arial, sans-serif; text-align: left; position: relative; }
.rsfa-footer__hero { position: relative; z-index: 1; display: flex; align-items: center; min-height: clamp(24rem, 42vw, 40rem); padding: var(--space-6, 5.5625rem) var(--space-gutter, 1.3125rem); overflow: hidden; }
.rsfa-footer__bg { position: absolute; inset: 0; overflow: hidden; }
.rsfa-footer__img { position: absolute; inset: 0; width: 100% !important; max-width: none !important; height: 100% !important; object-fit: cover !important; object-position: 70% 20%; }
.rsfa-footer__veil { position: absolute; inset: 0; background: linear-gradient(90deg, rgba(11, 11, 11, 0.94) 0%, rgba(11, 11, 11, 0.72) 38%, rgba(11, 11, 11, 0.2) 75%, rgba(11, 11, 11, 0.08) 100%), linear-gradient(0deg, var(--color-footer, #0b0b0b) 0%, var(--color-footer, #0b0b0b) 34%, rgba(11, 11, 11, 0) 74%); }
.rsfa-footer__lead { position: relative; z-index: 1; display: flex; flex-direction: column; align-items: flex-start; gap: var(--space-3, 1.3125rem); max-width: 44rem; }
.rsfa-footer__headline { margin: 0; font: 300 var(--fs-h1, 4.25rem)/1.1 var(--font-sans, 'DM Sans'), 'Helvetica Neue', Arial, sans-serif; letter-spacing: -0.02em; }
.rsfa-footer__headline em { color: var(--color-gold, #c8a97e); font-style: italic; font-weight: 300; }
.rsfa-footer__tag { margin: 0 0 var(--space-2, 0.8125rem); max-width: 32rem; font: 300 var(--fs-body, 1.25rem)/1.6 var(--font-sans, 'DM Sans'), 'Helvetica Neue', Arial, sans-serif; color: rgba(255, 255, 255, 0.78); }
.rsfa-footer__cta { display: inline-flex; align-items: center; gap: 0.6em; min-height: 3.4375rem; padding: 0 var(--space-4, 2.125rem); border: 1px solid var(--color-gold, #c8a97e); border-radius: var(--radius, 0.625rem); background: var(--color-gold, #c8a97e); color: var(--color-gold-ink, #111); text-decoration: none; font: 400 var(--fs-body, 1.25rem)/1 var(--font-sans, 'DM Sans'), 'Helvetica Neue', Arial, sans-serif; transition: background-color 0.3s ease, border-color 0.3s ease; }
.rsfa-footer__cta:hover, .rsfa-footer__cta:focus-visible { background: var(--color-gold-hover, #d9bd95); border-color: var(--color-gold-hover, #d9bd95); color: var(--color-gold-ink, #111); }
.rsfa-footer__direct { display: flex; flex-direction: column; gap: var(--space-2, 0.8125rem); margin-top: var(--space-2, 0.8125rem); }
.rsfa-footer__directlead { margin: 0; font-size: var(--fs-small, 1rem); color: rgba(255, 255, 255, 0.7); }
.rsfa-footer__direct ul { display: flex; flex-wrap: wrap; gap: var(--space-2, 0.8125rem); margin: 0; padding: 0; list-style: none; }
.rsfa-footer__pill { display: inline-flex; align-items: center; gap: 0.6rem; min-height: 3rem; padding: 0 var(--space-3, 1.3125rem); border: 1px solid rgba(255, 255, 255, 0.28); border-radius: var(--radius, 0.625rem); background: rgba(11, 11, 11, 0.35); -webkit-backdrop-filter: blur(6px); backdrop-filter: blur(6px); color: var(--color-text, #fff); text-decoration: none; font: 300 var(--fs-small, 1rem)/1 var(--font-sans, 'DM Sans'), 'Helvetica Neue', Arial, sans-serif; transition: border-color 0.25s ease, color 0.25s ease; }
.rsfa-footer__pill:hover, .rsfa-footer__pill:focus-visible { border-color: var(--color-gold, #c8a97e); color: var(--color-gold, #c8a97e); }
.rsfa-footer__pill .rsfa-ic { width: 1.25rem; height: 1.25rem; }
.rsfa-footer__inner { position: relative; z-index: 1; padding: var(--space-5, 3.4375rem) var(--space-gutter, 1.3125rem) var(--space-4, 2.125rem); }
.rsfa-footer__grid { display: grid; grid-template-columns: minmax(0, 1.4fr) repeat(2, minmax(0, 1fr)); gap: var(--space-5, 3.4375rem); }
.rsfa-footer__logo { margin: 0; font: 300 var(--fs-lead, 1.625rem)/1.15 var(--font-sans, 'DM Sans'), 'Helvetica Neue', Arial, sans-serif; letter-spacing: 0.04em; }
.rsfa-footer__logo b { font-weight: 700; }
.rsfa-footer__since { margin: var(--space-1, 0.5rem) 0 0; font: italic 300 var(--fs-body, 1.25rem)/1.4 var(--font-sans, 'DM Sans'), 'Helvetica Neue', Arial, sans-serif; color: var(--color-gold, #c8a97e); }
.rsfa-footer__h { margin: 0 0 var(--space-3, 1.3125rem); font: 600 var(--fs-eyebrow, 1.0625rem)/1.3 var(--font-sans, 'DM Sans'), 'Helvetica Neue', Arial, sans-serif; letter-spacing: 0.12em; text-transform: uppercase; color: var(--color-gold, #c8a97e); }
.rsfa-footer__col ul { margin: 0; padding: 0; list-style: none; display: flex; flex-direction: column; gap: 0.125rem; }
.rsfa-footer__col a, .rsfa-footer__bar a { display: inline-block; padding-block: 0.25rem; color: var(--color-text, #fff); text-decoration: none; font: 300 var(--fs-body, 1.25rem)/1.4 var(--font-sans, 'DM Sans'), 'Helvetica Neue', Arial, sans-serif; transition: color 0.25s ease; }
.rsfa-footer__col a:hover, .rsfa-footer__bar a:hover, .rsfa-footer__col a:focus-visible, .rsfa-footer__bar a:focus-visible { color: var(--color-gold, #c8a97e); }
.rsfa-footer__area { margin: 0; font: 200 var(--fs-small, 1rem)/1.8 var(--font-sans, 'DM Sans'), 'Helvetica Neue', Arial, sans-serif; color: var(--color-text-muted, #a8a39c); }
.rsfa-footer__bar { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: var(--space-2, 0.8125rem) var(--space-4, 2.125rem); margin-top: var(--space-5, 3.4375rem); padding-top: var(--space-3, 1.3125rem); border-top: 1px solid var(--color-line, #2f2f2f); }
.rsfa-footer__bar p { margin: 0; font-size: 0.9375rem; color: var(--color-text-muted, #a8a39c); }
.rsfa-footer__bar ul { margin: 0; padding: 0; list-style: none; display: flex; flex-wrap: wrap; gap: 0 var(--space-4, 2.125rem); }
.rsfa-footer__bar a { font-size: 0.9375rem; color: var(--color-text-muted, #a8a39c); }
@media (max-width: 1024px) { .rsfa-footer__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--space-4, 2.125rem) var(--space-5, 3.4375rem); } .rsfa-footer__brand { grid-column: 1 / -1; } }
@media (max-width: 767px) {
	/* photo as a top block (not the whole footer), fading into the solid footer colour at its bottom edge */
	.rsfa-footer__bg { bottom: auto; height: calc(100vw * 1.45); }
	.rsfa-footer__img { object-position: 62% 8%; }
	.rsfa-footer__veil { background: linear-gradient(0deg, var(--color-footer, #0b0b0b) 0%, var(--color-footer, #0b0b0b) 2%, rgba(11, 11, 11, 0.82) 34%, rgba(11, 11, 11, 0.15) 70%, rgba(11, 11, 11, 0) 100%); }
	.rsfa-footer__hero { min-height: 0; align-items: flex-end; padding-top: calc(100vw * 0.78); padding-bottom: var(--space-4, 2.125rem); }
	.rsfa-footer__headline { font-size: var(--fs-h2, 2.625rem); }
	.rsfa-footer__tag { font-size: var(--fs-small, 1rem); }
	.rsfa-footer__cta { width: 100%; justify-content: center; }
	.rsfa-footer__direct { width: 100%; }
	.rsfa-footer__direct ul { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--space-1, 0.5rem); }
	.rsfa-footer__pill { width: 100%; box-sizing: border-box; justify-content: center; padding: 0 0.25rem; gap: 0.4rem; min-height: 3rem; font-size: 0.9375rem; }
	.rsfa-footer__inner { padding-top: var(--space-4, 2.125rem); }
	.rsfa-footer__grid { grid-template-columns: 1fr 1fr; gap: var(--space-4, 2.125rem) var(--space-3, 1.3125rem); }
	.rsfa-footer__brand { grid-column: 1 / -1; }
	.rsfa-footer__col a, .rsfa-footer__bar a { min-height: 2.75rem; display: inline-flex; align-items: center; font-size: var(--fs-small, 1rem); }
	.rsfa-footer__bar { margin-top: var(--space-4, 2.125rem); flex-direction: column; align-items: flex-start; }
}

/* ---------- Fakten ---------- */
.rsfa-facts { display: grid; column-gap: 0; grid-template-columns: repeat(var(--rsfa-fc, 3), minmax(0, 1fr)); margin: 0; padding: 0; list-style: none; width: 100%; text-align: left; color: var(--color-text, #fff); font-family: var(--font-sans, 'DM Sans'), 'Helvetica Neue', Arial, sans-serif; }
.rsfa-facts__item { position: relative; display: flex; flex-direction: column; gap: var(--space-1, 0.5rem); padding: calc(var(--space-4, 2.125rem) + 0.75rem) var(--space-4, 2.125rem) var(--space-4, 2.125rem) 0; }
.rsfa-facts__item::before { content: ""; position: absolute; top: 0; left: 0; width: 1.75rem; height: 1px; background: var(--color-gold, #c8a97e); }
.rsfa-facts__value { margin: 0; font: italic 300 var(--fs-h2, 2.625rem)/1.1 var(--font-sans, 'DM Sans'), 'Helvetica Neue', Arial, sans-serif; color: var(--color-gold, #c8a97e); letter-spacing: -0.01em; }
.rsfa-facts__title { margin: 0; font: 500 var(--fs-eyebrow, 1.0625rem)/1.3 var(--font-sans, 'DM Sans'), 'Helvetica Neue', Arial, sans-serif; letter-spacing: 0.12em; text-transform: uppercase; color: var(--color-text, #fff); }
.rsfa-facts__text { margin: var(--space-1, 0.5rem) 0 0; max-width: 28rem; font: 200 var(--fs-small, 1rem)/1.65 var(--font-sans, 'DM Sans'), 'Helvetica Neue', Arial, sans-serif; color: var(--color-text-muted, #a8a39c); }
@media (max-width: 1024px) { .rsfa-facts { grid-template-columns: repeat(2, minmax(0, 1fr)); } .rsfa-facts__item { padding-right: var(--space-3, 1.3125rem); } }
@media (max-width: 767px) {
	.rsfa-facts { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.rsfa-facts__item { padding: var(--space-3, 1.3125rem) var(--space-3, 1.3125rem) var(--space-3, 1.3125rem) 0; }
	.rsfa-facts__value { font-size: var(--fs-lead, 1.625rem); }
	.rsfa-facts__text { font-size: 0.9375rem; line-height: 1.55; }
}

/* ---------- Stimmen ---------- */
.rsfa-voices { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 22rem), 1fr)); gap: var(--space-4, 2.125rem); margin: 0; padding: 0; list-style: none; width: 100%; text-align: left; }
.rsfa-voices__item figure { margin: 0; height: 100%; display: flex; flex-direction: column; gap: var(--space-3, 1.3125rem); padding-top: var(--space-3, 1.3125rem); border-top: 1px solid var(--color-gold, #c8a97e); }
.rsfa-voices__quote { margin: 0; font: italic 300 var(--fs-lead, 1.625rem)/1.4 var(--font-sans, 'DM Sans'), 'Helvetica Neue', Arial, sans-serif; color: var(--color-text, #fff); }
.rsfa-voices__quote::before { content: "\201E"; } .rsfa-voices__quote::after { content: "\201C"; }
.rsfa-voices__by { display: flex; flex-direction: column; gap: 0.125rem; font-size: var(--fs-small, 1rem); color: var(--color-text-muted, #a8a39c); }
.rsfa-voices__by b { font-weight: 500; color: var(--color-text, #fff); }
.rsfa-voices__by a { color: var(--color-gold, #c8a97e); }
.rsfa-sr-note { margin: 0; padding: 0.5rem 0.75rem; border: 1px dashed var(--color-line, #2f2f2f); font-size: 0.875rem; color: var(--color-text-muted, #a8a39c); }

/* arrows on the form buttons (consistent with .rs-btn) */
.rsfa-ask__send::after, .rsfa-ask__wa::after { content: "\2192"; margin-left: 0.6em; display: inline-block; transition: transform 0.3s cubic-bezier(0.22, 0.61, 0.36, 1); }
.rsfa-ask__send:hover::after, .rsfa-ask__wa:hover::after { transform: translateX(0.25em); }

/* video section on phones: overlay slightly longer than the clip so no strip of footage shows under the fade */
@media (max-width: 767px) {
	.elementor-widget-rsfa-videobg ~ [class*="rs-overlay"] { height: calc(var(--rsfa-vid-h) + 4px) !important; }
}

/* Standorte on phones: compact two-column index, first 8 shown, rest behind a button */
.rsfa-loc__more { display: none; }
@media (max-width: 767px) {
	.rsfa-loc__list { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: var(--space-3, 1.3125rem); border-top: 0; }
	.rsfa-loc__row { border-top: 1px solid var(--color-line, #2f2f2f); border-bottom: 0; padding: var(--space-2, 0.8125rem) 0; }
	.rsfa-loc__city { font-size: var(--fs-body, 1.25rem); line-height: 1.2; }
	.rsfa-loc__places { font-size: 0.875rem; line-height: 1.45; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
	.rsfa-loc:not(.is-open) .rsfa-loc__row:nth-child(n+9):not(:last-child) { display: none; }
	.rsfa-loc__row:last-child { grid-column: 1 / -1; }
	.rsfa-loc__more { display: inline-flex; align-items: center; gap: 0.5em; align-self: flex-start; min-height: 2.75rem; padding: 0 var(--space-3, 1.3125rem); border: 1px solid var(--color-line, #2f2f2f); border-radius: var(--radius, 0.625rem); background: transparent; color: var(--color-text, #fff); font: 300 var(--fs-small, 1rem)/1 var(--font-sans, 'DM Sans'), 'Helvetica Neue', Arial, sans-serif; cursor: pointer; -webkit-appearance: none; appearance: none; box-shadow: none; }
	.rsfa-loc__more:hover, .rsfa-loc__more:focus-visible { border-color: var(--color-gold, #c8a97e); color: var(--color-gold, #c8a97e); background: transparent; }
	.rsfa-loc__more::after { content: "\2193"; }
	.rsfa-loc.is-open .rsfa-loc__more::after { content: "\2191"; }
}

/* Phones, two-column grids: a quiet vertical rule on the left of each cell instead of dashes/hairlines (reads as columns, never as broken lines). */
@media (max-width: 767px) {
	/* Standorte */
	.rsfa-loc__row { border-top: 0; border-bottom: 0; border-left: 1px solid var(--color-line, #2f2f2f); padding: var(--space-1, 0.5rem) 0 var(--space-1, 0.5rem) var(--space-2, 0.8125rem); position: relative; }
	.rsfa-loc__row::before { content: none; }
	.rsfa-loc__more { width: 100%; justify-content: center; align-self: stretch; min-height: 3.25rem; }
	/* Fakten */
	.rsfa-facts__item { padding: var(--space-2, 0.8125rem) var(--space-2, 0.8125rem) var(--space-3, 1.3125rem) var(--space-2, 0.8125rem); border-left: 1px solid var(--color-line, #2f2f2f); }
	.rsfa-facts__item::before { content: none; }
}

/* Phones: labels keep the desktop eyebrow style; only the facts title is calmer. */
@media (max-width: 767px) {
		.rsfa-facts__title { font: 500 var(--fs-body, 1.25rem)/1.3 var(--font-sans, 'DM Sans'), 'Helvetica Neue', Arial, sans-serif; letter-spacing: 0; text-transform: none; color: var(--color-text, #fff); }
	.rsfa-loc__label { margin-bottom: var(--space-1, 0.5rem); }
}

/* ==== RSFA Header (widget "RSFA Header", Theme Builder header) ==== */
.rsfa-header { position: fixed; top: 0; left: 0; right: 0; z-index: 100; box-sizing: border-box; font-family: var(--font-sans, 'DM Sans'), 'Helvetica Neue', Arial, sans-serif; color: var(--color-text, #fff);
	background-image: linear-gradient(180deg, rgba(17, 17, 17, 0.7) 0%, rgba(17, 17, 17, 0) 100%); transition: background-color 0.35s ease, transform 0.4s cubic-bezier(0.22, 0.61, 0.36, 1), box-shadow 0.35s ease; }
.admin-bar .rsfa-header { top: 32px; }
@media (max-width: 782px) { .admin-bar .rsfa-header { top: 46px; } }
.rsfa-header.is-stuck { background-color: rgba(17, 17, 17, 0.82); background-image: none; -webkit-backdrop-filter: blur(14px); backdrop-filter: blur(14px); box-shadow: 0 1px 0 var(--color-line, #2f2f2f); }
.rsfa-header.is-hidden:not(:focus-within):not(.is-open) { transform: translateY(-110%); }
.rsfa-header.is-open { background-color: var(--color-bg, #111); background-image: none; box-shadow: none; -webkit-backdrop-filter: none; backdrop-filter: none; } /* backdrop-filter would make the header the containing block of the fixed menu panel */
.rsfa-header__bar { display: flex; align-items: center; justify-content: space-between; gap: var(--space-4, 2.125rem); padding: var(--space-3, 1.3125rem) var(--space-gutter, 1.3125rem); transition: padding 0.35s ease; }
.rsfa-header.is-stuck .rsfa-header__bar { padding-block: var(--space-2, 0.8125rem); }
.rsfa-header__brand { display: flex; flex-direction: column; justify-content: center; gap: 0.2rem; min-width: 0; min-height: 2.75rem; color: inherit; text-decoration: none; }
.rsfa-header__logo { font-size: var(--fs-body, 1.25rem); font-weight: 300; letter-spacing: 0.04em; line-height: 1.15; white-space: nowrap; }
.rsfa-header__logo b { font-weight: 700; }
.rsfa-header__tag { font-size: 0.75rem; letter-spacing: 0.1em; text-transform: uppercase; color: rgba(255, 255, 255, 0.72); line-height: 1.3; }
.rsfa-header__nav { display: flex; align-items: center; gap: var(--space-5, 3.4375rem); }
.rsfa-header__nav ul { display: flex; align-items: center; gap: var(--space-4, 2.125rem); margin: 0; padding: 0; list-style: none; }
.rsfa-header__nav li a, .rsfa-header__panel nav li a { color: var(--color-text, #fff); text-decoration: none; font-size: var(--fs-small, 1rem); font-weight: 300; padding-block: 0.4rem; border-bottom: 1px solid transparent; transition: color 0.25s ease, border-color 0.25s ease; }
.rsfa-header__nav li a:hover, .rsfa-header__nav li a:focus-visible, .rsfa-header__nav li a[aria-current="page"] { color: var(--color-gold, #c8a97e); border-bottom-color: var(--color-gold, #c8a97e); }
.rsfa-header__cta { display: inline-flex; align-items: center; justify-content: center; gap: 0.4em; min-height: 2.75rem; padding: 0 var(--space-3, 1.3125rem); border: 1px solid var(--color-gold, #c8a97e); border-radius: var(--radius, 0.625rem); background: var(--color-gold, #c8a97e); color: var(--color-gold-ink, #111); text-decoration: none; font-size: var(--fs-small, 1rem); font-weight: 400; line-height: 1; white-space: nowrap; transition: background-color 0.25s ease, border-color 0.25s ease; }
.rsfa-header__cta:hover, .rsfa-header__cta:focus-visible { background: var(--color-gold-hover, #d9bd95); border-color: var(--color-gold-hover, #d9bd95); color: var(--color-gold-ink, #111); }
.rsfa-header__burger { display: none; position: relative; flex: none; width: 2.75rem; height: 2.75rem; padding: 0; border: 1px solid rgba(255, 255, 255, 0.35); border-radius: var(--radius, 0.625rem); background: transparent; color: var(--color-text, #fff); cursor: pointer; }
.rsfa-header__burger:hover, .rsfa-header__burger:focus-visible { border-color: var(--color-gold, #c8a97e); }
.rsfa-header__bars, .rsfa-header__bars::before { content: ""; position: absolute; left: 50%; top: 50%; width: 1.25rem; height: 1.5px; background: currentColor; transform: translate(-50%, -4px); transition: transform 0.3s ease; }
.rsfa-header__bars::before { transform: translate(-50%, 8px); left: 50%; }
.rsfa-header.is-open .rsfa-header__bars { transform: translate(-50%, 0) rotate(45deg); }
.rsfa-header.is-open .rsfa-header__bars::before { transform: translate(-50%, 0) rotate(-90deg); }
.rsfa-header__panel { display: none; }
@media (max-width: 1099px) {
	.rsfa-header__nav { display: none; }
	.rsfa-header__burger { display: block; }
	.rsfa-header__tag { display: none; }
	.rsfa-header__panel:not([hidden]) { display: flex; flex-direction: column; gap: var(--space-4, 2.125rem); position: fixed; inset: 0; z-index: -1; box-sizing: border-box; padding: 6.5rem var(--space-gutter, 1.3125rem) var(--space-5, 3.4375rem); overflow-y: auto; background: var(--color-bg, #111); }
	.admin-bar .rsfa-header__panel:not([hidden]) { padding-top: 8.5rem; }
	.rsfa-header__panel nav ul { display: flex; flex-direction: column; margin: 0; padding: 0; list-style: none; }
	.rsfa-header__panel nav li { border-bottom: 1px solid var(--color-line, #2f2f2f); }
	.rsfa-header__panel nav li a { display: block; padding-block: var(--space-3, 1.3125rem); font-size: var(--fs-h3, 1.75rem); border-bottom: 0; }
	.rsfa-header__panel .rsfa-footer__direct ul { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--space-1, 0.5rem); margin: 0; padding: 0; list-style: none; }
	.rsfa-header__panel .rsfa-footer__pill { width: 100%; box-sizing: border-box; justify-content: center; padding: 0 0.125rem; gap: 0.3rem; min-height: 3rem; font-size: 0.8125rem; white-space: nowrap; }
	.rsfa-header__panel .rsfa-footer__pill .rsfa-ic { width: 1rem; height: 1rem; }
	.rsfa-header__legal { display: flex; flex-wrap: wrap; gap: var(--space-3, 1.3125rem); margin-top: auto; padding-top: var(--space-3, 1.3125rem); border-top: 1px solid var(--color-line, #2f2f2f); }
	.rsfa-header__legal a { display: inline-flex; align-items: center; min-height: 2.75rem; color: var(--color-text-muted, #a8a39c); font-size: var(--fs-small, 1rem); font-weight: 300; text-decoration: none; transition: color 0.25s ease; }
	.rsfa-header__legal a:hover, .rsfa-header__legal a:focus-visible { color: var(--color-gold, #c8a97e); text-decoration: underline; text-underline-offset: 0.2em; }
	.rsfa-header__cta--panel { width: 100%; min-height: 3.4375rem; font-size: var(--fs-body, 1.25rem); }
}
@media (min-width: 1100px) and (max-width: 1399px) { .rsfa-header__tag { display: none; } .rsfa-header__nav, .rsfa-header__nav ul { gap: var(--space-3, 1.3125rem); } }
.rsfa-header__nav li a { white-space: nowrap; }
@media (prefers-reduced-motion: reduce) { .rsfa-header, .rsfa-header__bar, .rsfa-header__bars, .rsfa-header__bars::before { transition: none; } }
html.rsfa-menu-open, html.rsfa-menu-open body { overflow: hidden; }

/* Footer lower part: quieter type (the big statement above carries the weight). */
.rsfa-footer__logo { font-size: var(--fs-body, 1.25rem); }
.rsfa-footer__since { font-size: var(--fs-small, 1rem); }
.rsfa-footer__h { font-size: 0.875rem; }
.rsfa-footer__col a { font-size: var(--fs-small, 1rem); padding-block: 0.1875rem; }
.rsfa-footer__area { font-size: 0.9375rem; line-height: 1.7; }

/* Inquiry as overlay: opener button + modal dialog with the questions. */
.rsfa-ask-open { display: inline-flex; align-items: center; justify-content: center; gap: 0.4em; min-height: 3.4375rem; padding: 0 var(--space-4, 2.125rem); border: 1px solid var(--color-gold, #c8a97e); border-radius: var(--radius, 0.625rem); background: var(--color-gold, #c8a97e); color: var(--color-gold-ink, #111); font: 400 var(--fs-body, 1.25rem)/1 var(--font-sans, 'DM Sans'), 'Helvetica Neue', Arial, sans-serif; cursor: pointer; transition: background-color 0.25s ease, border-color 0.25s ease; }
.rsfa-ask-open:hover, .rsfa-ask-open:focus-visible { background: var(--color-gold-hover, #d9bd95); border-color: var(--color-gold-hover, #d9bd95); }
.rsfa-ask-dialog { box-sizing: border-box; width: min(56rem, calc(100vw - 2 * var(--space-3, 1.3125rem))); max-height: calc(100dvh - 2 * var(--space-3, 1.3125rem)); padding: 0; border: 1px solid var(--color-line, #2f2f2f); border-radius: var(--radius, 0.625rem); background: var(--color-bg, #111); color: var(--color-text, #fff); overflow: auto; }
.rsfa-ask-dialog::backdrop { background: rgba(0, 0, 0, 0.72); -webkit-backdrop-filter: blur(4px); backdrop-filter: blur(4px); }
.rsfa-ask-dialog__body { padding: var(--space-6, 5.5rem) var(--space-5, 3.4375rem) var(--space-5, 3.4375rem); }
.rsfa-ask-close { position: absolute; top: var(--space-2, 0.8125rem); right: var(--space-2, 0.8125rem); width: 2.75rem; height: 2.75rem; border: 1px solid rgba(255, 255, 255, 0.35); border-radius: var(--radius, 0.625rem); background: transparent; color: var(--color-text, #fff); font-size: 1.75rem; line-height: 1; cursor: pointer; }
.rsfa-ask-close:hover, .rsfa-ask-close:focus-visible { border-color: var(--color-gold, #c8a97e); color: var(--color-gold, #c8a97e); }
html.rsfa-dlg-open { overflow: hidden; }
@media (max-width: 767px) {
	.rsfa-ask-open { width: 100%; }
	.rsfa-ask-dialog { width: 100vw; max-width: 100vw; height: 100dvh; max-height: 100dvh; border: 0; border-radius: 0; }
	.rsfa-ask-dialog__body { padding: 5rem var(--space-gutter, 1.3125rem) var(--space-4, 2.125rem); }
}
@media (prefers-reduced-motion: no-preference) { .rsfa-ask-dialog[open] { animation: rsfa-dlg-in 0.3s cubic-bezier(0.22, 0.61, 0.36, 1); } @keyframes rsfa-dlg-in { from { opacity: 0; transform: translateY(1rem); } } }

/* Footer headline is a question now: one step smaller than H1, strong part stays white, em gold. */
.rsfa-footer__headline { font-size: var(--fs-h2, 2.625rem); line-height: 1.2; max-width: 40rem; }
.rsfa-footer__headline strong { font-weight: 300; }

/* ==== RSFA Checkliste (Planer) ==== */
.rsfa-todo { width: 100%; color: var(--color-text, #fff); font-family: var(--font-sans, 'DM Sans'), 'Helvetica Neue', Arial, sans-serif; }
.rsfa-todo [hidden] { display: none !important; }
.rsfa-todo__field label, .rsfa-todo__opts legend { display: block; margin: 0 0 var(--space-2, 0.8125rem); padding: 0; font-size: 0.875rem; font-weight: 600; letter-spacing: 0.12em; text-transform: uppercase; color: var(--color-gold, #c8a97e); }
.rsfa-todo__field small { text-transform: none; letter-spacing: 0; font-weight: 300; color: var(--color-text-muted, #a8a39c); }
.rsfa-todo__field input[type=date], .rsfa-todo__field input[type=number] { box-sizing: border-box; width: 100%; max-width: 20rem; min-height: 3rem; padding: 0 var(--space-3, 1.3125rem); border: 1px solid rgba(255, 255, 255, 0.28); border-radius: var(--radius, 0.625rem); background: transparent; color: var(--color-text, #fff); font: 300 var(--fs-body, 1.25rem)/1 var(--font-sans, 'DM Sans'), 'Helvetica Neue', Arial, sans-serif; color-scheme: dark; }
.rsfa-todo__field input[type=date]:focus-visible, .rsfa-todo__field input[type=number]:focus-visible { outline: 2px solid var(--color-gold, #c8a97e); outline-offset: 2px; }
.rsfa-todo__countdown { margin: var(--space-2, 0.8125rem) 0 0; font-size: var(--fs-small, 1rem); color: var(--color-gold, #c8a97e); font-style: italic; min-height: 1.5em; }
.rsfa-todo__count { margin: 0; font-size: var(--fs-small, 1rem); color: var(--color-text-muted, #a8a39c); }
.rsfa-todo__count b { color: var(--color-gold, #c8a97e); font-weight: 400; }
.rsfa-todo__progress { height: 3px; background: var(--color-line, #2f2f2f); border-radius: 2px; overflow: hidden; }
.rsfa-todo__progress i { display: block; height: 100%; width: 0; background: var(--color-gold, #c8a97e); transition: width 0.4s cubic-bezier(0.22, 0.61, 0.36, 1); }
.rsfa-todo__group { padding-top: var(--space-5, 3.4375rem); }
.rsfa-todo__title { margin: 0 0 var(--space-3, 1.3125rem); font: 300 var(--fs-h3, 2rem)/1.2 var(--font-sans, 'DM Sans'), 'Helvetica Neue', Arial, sans-serif; letter-spacing: -0.01em; display: flex; align-items: baseline; gap: var(--space-2, 0.8125rem); }
.rsfa-todo__gc { font-size: var(--fs-small, 1rem); color: var(--color-text-muted, #a8a39c); letter-spacing: 0; }
.rsfa-todo__list { margin: 0; padding: 0; list-style: none; }
.rsfa-todo__task { border-top: 1px solid var(--color-line, #2f2f2f); }
.rsfa-todo__task:last-child { border-bottom: 1px solid var(--color-line, #2f2f2f); }
.rsfa-todo__row { display: grid; grid-template-columns: minmax(0, 1fr) auto auto; align-items: start; gap: var(--space-2, 0.8125rem) var(--space-3, 1.3125rem); padding-block: var(--space-3, 1.3125rem); }
.rsfa-todo__item { display: flex; align-items: flex-start; gap: var(--space-3, 1.3125rem); cursor: pointer; font-size: var(--fs-body, 1.25rem); font-weight: 300; line-height: 1.45; }
.rsfa-todo__item input { appearance: none; -webkit-appearance: none; flex: none; width: 1.5rem; height: 1.5rem; margin: 0.1rem 0 0; border: 1px solid rgba(255, 255, 255, 0.45); border-radius: 6px; background: transparent; cursor: pointer; display: grid; place-content: center; transition: border-color 0.2s ease, background-color 0.2s ease; }
.rsfa-todo__item input::after { content: ""; width: 0.7rem; height: 0.38rem; border-left: 2px solid var(--color-gold-ink, #111); border-bottom: 2px solid var(--color-gold-ink, #111); transform: translateY(-1px) rotate(-45deg) scale(0); transition: transform 0.2s ease; }
.rsfa-todo__item input:checked { background: var(--color-gold, #c8a97e); border-color: var(--color-gold, #c8a97e); }
.rsfa-todo__item input:checked::after { transform: translateY(-1px) rotate(-45deg) scale(1); }
.rsfa-todo__item input:focus-visible { outline: 2px solid var(--color-gold, #c8a97e); outline-offset: 3px; }
.rsfa-todo__item input:checked + .rsfa-todo__txt { color: rgba(255, 255, 255, 0.5); }
.rsfa-todo__when { padding-top: 0.2rem; font-size: 0.875rem; white-space: nowrap; color: var(--color-text-muted, #a8a39c); }
.rsfa-todo__task.is-now:not(.is-done) .rsfa-todo__when { color: var(--color-gold, #c8a97e); }
.rsfa-todo__task.is-now:not(.is-done) .rsfa-todo__when::before { content: ""; display: inline-block; width: 0.5rem; height: 0.5rem; margin-right: 0.45rem; border-radius: 50%; background: var(--color-gold, #c8a97e); }
.rsfa-todo__more { position: relative; width: 2.5rem; height: 2.5rem; margin: -0.35rem -0.5rem 0 0; padding: 0; border: 0; border-radius: 50%; background: transparent; color: var(--color-text, #fff); cursor: pointer; }
.rsfa-todo__more span { position: absolute; left: 50%; top: 50%; width: 0.55rem; height: 0.55rem; border-right: 1.5px solid currentColor; border-bottom: 1.5px solid currentColor; transform: translate(-50%, -70%) rotate(45deg); transition: transform 0.25s ease; }
.rsfa-todo__more[aria-expanded="true"] span { transform: translate(-50%, -30%) rotate(-135deg); }
.rsfa-todo__more:hover, .rsfa-todo__more:focus-visible { color: var(--color-gold, #c8a97e); }
.rsfa-todo__tip { margin: -0.5rem 0 var(--space-3, 1.3125rem) calc(1.5rem + var(--space-3, 1.3125rem)); padding: 0; max-width: 40rem; }
.rsfa-todo__tip p { margin: 0; font-size: var(--fs-small, 1rem); line-height: 1.6; font-weight: 300; color: var(--color-text-muted, #a8a39c); }
.rsfa-todo__tip a { color: var(--color-gold, #c8a97e); text-decoration: none; font-size: var(--fs-small, 1rem); }
.rsfa-todo__tip a:hover, .rsfa-todo__tip a:focus-visible { text-decoration: underline; text-underline-offset: 0.2em; }
.rsfa-todo__empty { margin: var(--space-5, 3.4375rem) 0 0; color: var(--color-text-muted, #a8a39c); }
.rsfa-todo__actions { display: flex; flex-wrap: wrap; gap: var(--space-2, 0.8125rem); margin-top: var(--space-5, 3.4375rem); }
.rsfa-todo__btn { min-height: 2.75rem; padding: 0 var(--space-3, 1.3125rem); border: 1px solid rgba(255, 255, 255, 0.35); border-radius: var(--radius, 0.625rem); background: transparent; color: var(--color-text, #fff); font: 300 var(--fs-small, 1rem)/1 var(--font-sans, 'DM Sans'), 'Helvetica Neue', Arial, sans-serif; cursor: pointer; transition: border-color 0.25s ease, color 0.25s ease; }
.rsfa-todo__btn:hover, .rsfa-todo__btn:focus-visible { border-color: var(--color-gold, #c8a97e); color: var(--color-gold, #c8a97e); }
.rsfa-todo__btn--quiet { border-color: transparent; color: var(--color-text-muted, #a8a39c); }
.rsfa-todo__feedback { min-height: 1.5em; margin: var(--space-2, 0.8125rem) 0 0; font-size: var(--fs-small, 1rem); color: var(--color-gold, #c8a97e); }
.rsfa-todo__note { margin: var(--space-3, 1.3125rem) 0 0; font-size: 0.9375rem; color: var(--color-text-muted, #a8a39c); }
@media (max-width: 767px) {
	.rsfa-todo__panel { padding: var(--space-3, 1.3125rem); gap: var(--space-3, 1.3125rem); }
	.rsfa-todo__setup { grid-template-columns: minmax(0, 1fr); gap: var(--space-3, 1.3125rem); }
	.rsfa-todo__filters { flex-wrap: nowrap; overflow-x: auto; margin-inline: calc(var(--space-gutter, 1.3125rem) * -1); padding-inline: var(--space-gutter, 1.3125rem); scrollbar-width: none; width: calc(100% + 2 * var(--space-gutter, 1.3125rem)); }
	.rsfa-todo__filters::-webkit-scrollbar { display: none; }
	.rsfa-todo__chip { flex: none; }
	.rsfa-todo__row { grid-template-columns: minmax(0, 1fr) auto; }
	.rsfa-todo__when { grid-column: 1; grid-row: 2; padding: 0 0 0 calc(1.5rem + var(--space-3, 1.3125rem)); }
	.rsfa-todo__more { grid-column: 2; grid-row: 1; }
	.rsfa-todo__item { font-size: var(--fs-small, 1rem); }
	.rsfa-todo__tip { margin-left: 0; }
	.rsfa-todo__btn { flex: 1 1 100%; }
	.rsfa-todo__next a { font-size: var(--fs-small, 1rem); }
}
@media print {
	@page { margin: 16mm 14mm; }
	html, body { background: #fff !important; color: #000 !important; }
	.rsfa-header, .skip-link, [data-elementor-type="header"], [data-elementor-type="footer"], .rsfa-ask-dialog { display: none !important; }
	.rs-reveal { opacity: 1 !important; animation: none !important; transform: none !important; }
	/* nur die Checkliste drucken: Hero, Teaser, Footer ausblenden */
	main .elementor > .e-con:not(#planer), main .elementor > .e-con:not(#planer) * { display: none !important; }
	#planer, #planer > div, #planer .e-con { display: block !important; padding: 0 !important; margin: 0 !important; width: 100% !important; max-width: none !important; min-height: 0 !important; background: #fff !important; }
	.rsfa-todo { color: #000 !important; font-size: 10.5pt; padding-right: 2mm; box-sizing: border-box; }
	.rsfa-todo * { color: #000 !important; background: transparent !important; border-color: #bbb !important; box-shadow: none !important; text-shadow: none !important; animation: none !important; transition: none !important; opacity: 1 !important; transform: none !important; }
	.rsfa-todo::before { content: "Checkliste für Hochzeitsfotos · Rainer Schmidtke Photoart"; display: block; margin-bottom: 6mm; padding-bottom: 3mm; border-bottom: 1.5pt solid #000; font-size: 13pt; font-weight: 600; }
	.rsfa-todo__actions, .rsfa-todo__more, .rsfa-todo__feedback, .rsfa-todo__progress, .rsfa-todo__countdown { display: none !important; }
	.rsfa-todo__head { display: flex !important; justify-content: space-between; gap: 10mm; margin: 0 0 6mm !important; padding: 0 0 4mm !important; border-bottom: 0.5pt solid #bbb !important; }
	.rsfa-todo__field input[type=date] { border: 0 !important; padding: 0 !important; min-height: 0 !important; font-size: 10.5pt; width: auto !important; }
	.rsfa-todo__field label { font-size: 8pt; letter-spacing: 0.08em; }
	.rsfa-todo__main { max-width: none !important; margin: 0 !important; }
	.rsfa-todo__group { padding: 0 !important; margin: 0 0 6mm !important; }
	.rsfa-todo__title { margin: 0 0 2mm !important; font-size: 12pt !important; font-weight: 600 !important; line-height: 1.2 !important; letter-spacing: 0; break-after: avoid; }
	.rsfa-todo__gc { display: none !important; }
	.rsfa-todo__task { border-top: 0.5pt solid #ddd !important; break-inside: avoid; }
	.rsfa-todo__task:last-child { border-bottom: 0.5pt solid #ddd !important; }
	.rsfa-todo__row { display: grid !important; grid-template-columns: 1fr auto !important; gap: 4mm !important; padding-block: 2.2mm !important; align-items: start !important; }
	.rsfa-todo__item { font-size: 10.5pt !important; line-height: 1.35 !important; gap: 3.5mm !important; }
	.rsfa-todo__item input { width: 4mm !important; height: 4mm !important; margin: 0.6mm 0 0 !important; border: 0.8pt solid #000 !important; border-radius: 0.8mm !important; background: #fff !important; -webkit-appearance: none; appearance: none; }
	.rsfa-todo .rsfa-todo__item input:checked { background: #000 !important; border-color: #000 !important; -webkit-print-color-adjust: exact; print-color-adjust: exact; }
	.rsfa-todo .rsfa-todo__item input:checked::after { content: "" !important; display: block !important; width: 2.2mm !important; height: 1.1mm !important; border: 0 solid #fff !important; border-left-width: 0.9pt !important; border-bottom-width: 0.9pt !important; border-color: #fff !important; transform: translateY(-0.25mm) rotate(-45deg) !important; opacity: 1 !important; -webkit-print-color-adjust: exact; print-color-adjust: exact; }
	.rsfa-todo__item input:checked + .rsfa-todo__txt { text-decoration: line-through; }
	.rsfa-todo__when { grid-column: 2 !important; grid-row: 1 !important; font-size: 9pt !important; white-space: nowrap; padding: 0.4mm 0 0 !important; color: #444 !important; }
	.rsfa-todo__tip { display: block !important; margin: -1mm 0 2.2mm 7.5mm !important; padding: 0 !important; border: 0 !important; max-width: none !important; }
	.rsfa-todo__tip[hidden] { display: block !important; }
	.rsfa-todo__tip p { font-size: 9pt !important; line-height: 1.4 !important; color: #444 !important; }
	.rsfa-todo__tip a { display: none !important; }
}

/* Sticky bars sit below the fixed header (stuck height about 4.5 rem; plus the admin bar when logged in). */
:root { --rsfa-header-h: 4.5rem; }
body.admin-bar { --rsfa-header-h: calc(4.5rem + 32px); }
@media (max-width: 782px) { body.admin-bar { --rsfa-header-h: calc(4.5rem + 46px); } }

/* ==== RSFA Ablauf (Timeline: long list, the current step in focus) ==== */
.rsfa-tl { --fill: 0px; --y0: 0.9rem; --rsfa-tl-num: 8rem; --rsfa-tl-gap: 2rem; position: relative; margin: var(--space-6, 5.5rem) auto 0; padding: 0; list-style: none; width: 100%; max-width: 58rem; font-family: var(--font-sans, 'DM Sans'), 'Helvetica Neue', Arial, sans-serif; color: var(--color-text, #fff); }
.rsfa-tl::before, .rsfa-tl::after { content: ""; position: absolute; left: calc(var(--rsfa-tl-num) + var(--rsfa-tl-gap) + 0.5rem - 0.5px); width: 1px; }
.rsfa-tl::before { top: 0.9rem; bottom: 0.9rem; background: var(--color-line, #2f2f2f); }
.rsfa-tl::after { top: var(--y0); height: var(--fill); background: var(--color-gold, #c8a97e); transition: height 0.35s ease-out; }
.rsfa-tl__step { position: relative; display: grid; grid-template-columns: var(--rsfa-tl-num) 1rem minmax(0, 1fr); column-gap: var(--rsfa-tl-gap); padding-bottom: var(--space-7, 9rem); }
.rsfa-tl__step:last-child { padding-bottom: 0; }
.rsfa-tl__num { font-size: clamp(3rem, 2.2rem + 3vw, 5rem); line-height: 0.9; font-weight: 200; letter-spacing: -0.02em; color: rgba(200, 169, 126, 0.55); text-align: right; transition: color 0.4s ease; }
.rsfa-tl__node { position: relative; z-index: 1; width: 1rem; height: 1rem; margin-top: 0.4rem; border: 1px solid var(--color-line, #2f2f2f); border-radius: 50%; background: var(--color-bg, #111); transition: border-color 0.4s ease, background-color 0.4s ease, box-shadow 0.4s ease; }
.rsfa-tl__body { max-width: 40rem; padding-top: 0.1rem; }
.rsfa-tl__title { margin: 0 0 var(--space-2, 0.8125rem); font: 300 var(--fs-h3, 2rem)/1.2 var(--font-sans, 'DM Sans'), 'Helvetica Neue', Arial, sans-serif; letter-spacing: -0.01em; color: var(--color-text, #fff); }
.rsfa-tl__title em { color: var(--color-gold, #c8a97e); font-style: italic; font-weight: 300; }
.rsfa-tl__text { margin: 0; font-size: var(--fs-body, 1.25rem); line-height: 1.65; font-weight: 300; color: #e9e6e1; }
.rsfa-tl__link { display: inline-block; margin-top: var(--space-3, 1.3125rem); color: var(--color-gold, #c8a97e); text-decoration: none; font-size: var(--fs-small, 1rem); }
.rsfa-tl__link:hover, .rsfa-tl__link:focus-visible { text-decoration: underline; text-underline-offset: 0.2em; }
/* focus mode (JS): everything dims except the step in the middle of the screen */
.rsfa-tl.is-js .rsfa-tl__step .rsfa-tl__body { opacity: 0.55; transition: opacity 0.45s ease; }
.rsfa-tl.is-js .rsfa-tl__step.is-past .rsfa-tl__body { opacity: 0.7; }
.rsfa-tl.is-js .rsfa-tl__step.is-focus .rsfa-tl__body { opacity: 1; }
.rsfa-tl__step.is-focus .rsfa-tl__num { opacity: 1; }
.rsfa-tl__step.is-focus .rsfa-tl__num { color: var(--color-gold, #c8a97e); }
.rsfa-tl__step.is-past .rsfa-tl__node, .rsfa-tl__step.is-focus .rsfa-tl__node { border-color: var(--color-gold, #c8a97e); background: var(--color-gold, #c8a97e); }
.rsfa-tl__step.is-focus .rsfa-tl__node { box-shadow: 0 0 0 5px rgba(200, 169, 126, 0.16); }
@media (max-width: 767px) {
	.rsfa-tl { --rsfa-tl-num: 0rem; --rsfa-tl-gap: 0rem; }
	.rsfa-tl::before, .rsfa-tl::after { left: calc(0.5rem - 0.5px); }
	.rsfa-tl__step { display: block; padding: 0 0 var(--space-6, 5.5rem) 2.5rem; }
	.rsfa-tl__node { position: absolute; left: 0; top: 0.5rem; margin: 0; }
	.rsfa-tl__num { display: block; margin: 0 0 0.35rem; font-size: 1rem; font-weight: 600; letter-spacing: 0.14em; text-align: left; color: var(--color-gold, #c8a97e); }
	.rsfa-tl__title { font-size: var(--fs-h3, 1.75rem); }
	.rsfa-tl__text { font-size: var(--fs-small, 1rem); }
}
@media (min-width: 768px) and (max-width: 1023px) { .rsfa-tl { --rsfa-tl-num: 5rem; --rsfa-tl-gap: 1.5rem; } }
@media (prefers-reduced-motion: reduce) { .rsfa-tl::after { transition: none; } }

/* ==== Checkliste: Planer-Layout (Seitenleiste mit Angaben, rechts die Liste) ==== */
.rsfa-todo__when { padding-top: 0.2rem; font-size: 0.875rem; white-space: nowrap; color: var(--color-text-muted, #a8a39c); }
.rsfa-todo__task.is-done .rsfa-todo__when { opacity: 0.6; }
#planer > div:first-child { max-width: 60rem !important; width: 100% !important; margin-inline: auto !important; }
.rsfa-todo__field input[type=number] { -moz-appearance: textfield; appearance: textfield; }

/* Checkliste, ruhige Variante: eine Spalte, Kopf mit Datum und Fortschritt */
.rsfa-todo__head { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: var(--space-4, 2.125rem); align-items: end; padding-bottom: var(--space-4, 2.125rem); border-bottom: 1px solid var(--color-line, #2f2f2f); }
.rsfa-todo__status { display: grid; gap: var(--space-2, 0.8125rem); }
.rsfa-todo__main { max-width: 52rem; margin-inline: auto; }
.rsfa-todo__head { max-width: 52rem; margin-inline: auto; }
.rsfa-todo__actions { max-width: 52rem; margin-inline: auto; }
.rsfa-todo__feedback { max-width: 52rem; margin-inline: auto; }
@media (max-width: 767px) { .rsfa-todo__head { grid-template-columns: minmax(0, 1fr); } }

/* Schließen-Button der Anfrage: Kreuz aus zwei Linien, exakt zentriert (das ×-Zeichen saß je nach Schrift außermittig) */
.rsfa-ask-close { padding: 0; display: block; }
.rsfa-ask-close > span { display: block; position: absolute; inset: 0; font-size: 0; line-height: 0; overflow: hidden; }
.rsfa-ask-close > span::before, .rsfa-ask-close > span::after { content: ""; position: absolute; left: 50%; top: 50%; width: 1.1rem; height: 1.5px; margin: -0.75px 0 0 -0.55rem; background: currentColor; border-radius: 1px; transform: rotate(45deg); }
.rsfa-ask-close > span::after { transform: rotate(-45deg); }

/* Owner feedback, 18 October: package information and header-only direct contact. */
.rsfa-card__tax { display: block; margin-top: var(--space-1); color: var(--color-text-muted); font-size: var(--fs-small); font-weight: 300; line-height: 1.618; }
.rsfa-ask__header-contact { margin: var(--space-5) 0 0; padding: 0; color: var(--color-text-muted); font-size: var(--fs-small); }
.rsfa-ask__header-contact[hidden] { display: none; }
.rsfa-ask__header-contact p { margin: 0; color: var(--color-text-muted); font-size: var(--fs-small); }
.rsfa-ask__header-contact ul { display: flex; flex-wrap: wrap; column-gap: var(--space-3); row-gap: 0; padding: 0; margin: var(--space-1) 0 0; list-style: none; }
.rsfa-ask__header-contact a { display: inline-flex; align-items: center; min-height: 44px; padding: 0; border: 0; border-radius: 0; background: none; color: var(--color-text-muted); font-size: var(--fs-small); text-decoration: underline; text-underline-offset: .2em; }
.rsfa-ask__header-contact a:hover, .rsfa-ask__header-contact a:focus-visible { color: var(--color-gold); }
.rsfa-motionphoto { position: absolute; inset: 0; overflow: hidden; background: var(--color-bg); }
.elementor .rsfa-motionphoto img { position: absolute; top: 0; bottom: 0; right: 0; left: auto; display: block; width: auto; height: 100%; max-width: 100%; object-fit: contain; object-position: right center; -webkit-mask-image: linear-gradient(90deg, transparent, #000 26%, #000 95%, transparent); mask-image: linear-gradient(90deg, transparent, #000 26%, #000 95%, transparent); animation: rsfa-church-pan 18s linear infinite alternate; will-change: transform; }
.rsfa-motionphoto.is-paused img { animation-play-state: paused; }
@keyframes rsfa-church-pan { from { transform: translateX(1.5%); } to { transform: translateX(-1.5%); } }
@media (prefers-reduced-motion: reduce) { .elementor .rsfa-motionphoto img { animation: none; } .rsfa-motionphoto [data-rsfa-photo-toggle] { display: none; } }

/* Clear package headers: name and duration, then price with a separate tax note. */
.rsfa-card__head { display: flex; flex-direction: column; gap: var(--space-3); min-height: 11rem; padding-bottom: var(--space-3); border-bottom: 1px solid var(--color-line); }
.rsfa-card__head .rsfa-card__title { font-size: var(--fs-lead); line-height: 1.25; }
.rsfa-card__head .rsfa-card__title em { color: var(--color-text); font-style: normal; font-weight: 400; }
.rsfa-card__duration { margin: var(--space-1) 0 0; color: var(--color-text-muted); font-size: var(--fs-small); line-height: 1.5; }
.rsfa-card__cost { margin-top: auto; }
.rsfa-card__cost .rsfa-card__price { line-height: 1.15; }
.rsfa-card__cost .rsfa-card__tax { margin: var(--space-1) 0 0; font-style: normal; font-size: var(--fs-small); font-weight: 300; line-height: 1.5; color: var(--color-text-muted); }
.rsfa-choice__description { display: block; margin-top: var(--space-1); font-size: var(--fs-small); line-height: 1.5; font-weight: 300; color: var(--color-text-muted); }
@media (max-width: 767px) { .elementor .rsfa-motionphoto img { width: 100%; object-position: center; -webkit-mask-image: none; mask-image: none; } }

/* Design-system alignment: preserve component sizes and use the same heading wrap behaviour. */
@media screen {
	.rsfa-ask .rsfa-ask__next, .rsfa-ask .rsfa-ask__send, .rsfa-ask .rsfa-ask__finish { font-weight: 400; }
	:is(.rsfa-card__title, .rsfa-footer__headline, .rsfa-tl__title, .rsfa-todo__title, .rsfa-ask__q) { text-wrap: balance; }
	.rsfa-footer__cta, .rsfa-ask-open, .rsfa-ask .rsfa-ask__finish,
	.rsfa-ask__nav :is(.rsfa-ask__next, .rsfa-ask__send, .rsfa-ask__wa) {
		box-sizing: border-box; min-height: 3.4375rem; line-height: 1.3;
		padding-block: calc((3.4375rem - 2px - 1.3em) / 2);
	}
	:is(.rsfa-footer__cta, .rsfa-header__cta, .rsfa-ask-open) > span[aria-hidden="true"] {
		transition: transform 0.3s cubic-bezier(0.22, 0.61, 0.36, 1);
	}
	:is(.rsfa-footer__cta, .rsfa-header__cta, .rsfa-ask-open):is(:hover, :focus-visible) > span[aria-hidden="true"] { transform: translateX(0.25em); }
}
@media screen and (max-width: 767px) {
	.rsfa-footer__cta, .rsfa-header__cta--panel, .rsfa-ask-open, .rsfa-ask .rsfa-ask__finish,
	.rsfa-ask__nav :is(.rsfa-ask__next, .rsfa-ask__send, .rsfa-ask__wa) { font-size: var(--fs-small, 1rem); }
}
@media (prefers-reduced-motion: reduce) {
	:is(.rsfa-footer__cta, .rsfa-header__cta, .rsfa-ask-open) > span[aria-hidden="true"] { transition: none; transform: none !important; }
}

/* Reusable photo-card prebuild; independent of page-only Elementor global classes. */
.rsfa-photo-card { position: relative; isolation: isolate; display: flex; flex-direction: column; justify-content: flex-end; min-height: 32rem; padding: var(--space-5, 3.4375rem) var(--space-4, 2.125rem); box-sizing: border-box; overflow: hidden; background: var(--color-bg, #111); color: var(--color-text, #fff); font-family: var(--font-sans, 'DM Sans'), sans-serif; }
.rsfa-photo-card > img.rsfa-photo-card__image { position: absolute; inset: 0; z-index: -2; width: 100%; height: 100%; max-width: none; object-fit: cover; object-position: center var(--rsfa-photo-position, center) !important; transition: transform 0.9s cubic-bezier(0.22, 0.61, 0.36, 1); }
.rsfa-photo-card::before { content: ''; position: absolute; inset: 0; z-index: -1; pointer-events: none; background: linear-gradient(0deg, rgba(17,17,17,.97), rgba(17,17,17,.65) 40%, rgba(17,17,17,.05) 100%); }
.rsfa-photo-card__body { display: flex; flex-direction: column; gap: var(--space-2, .8125rem); max-width: 40rem; min-width: 0; }
.rsfa-photo-card .rsfa-photo-card__eyebrow { margin: 0; font-size: var(--fs-eyebrow, 1.0625rem); font-weight: 600; line-height: 1.3; letter-spacing: .12em; text-transform: uppercase; color: var(--color-gold, #c8a97e); }
.rsfa-photo-card .rsfa-photo-card__title { margin: 0; font-size: var(--fs-lead, 1.625rem); font-weight: 400; line-height: 1.25; text-wrap: balance; color: var(--color-text, #fff); }
.rsfa-photo-card__title em { font-weight: 300; font-style: italic; color: var(--color-gold, #c8a97e); }
.rsfa-photo-card__title strong { font-weight: inherit; }
.rsfa-photo-card .rsfa-photo-card__text { margin: 0; font-size: var(--fs-small, 1rem); font-weight: 300; line-height: 1.618; color: var(--color-text, #fff); }
.rsfa-photo-card__actions { display: flex; flex-wrap: wrap; align-items: center; gap: var(--space-3, 1.3125rem); margin-top: var(--space-2, .8125rem); }
.rsfa-photo-card__action { display: inline-block; box-sizing: border-box; max-width: 100%; min-height: 3.4375rem; padding: calc((3.4375rem - 2px - 1.3em) / 2) var(--space-4, 2.125rem); border: 1px solid var(--color-gold, #c8a97e); border-radius: var(--radius, .625rem); background: transparent; color: var(--color-gold, #c8a97e); text-align: center; text-decoration: none; font-size: var(--fs-body, 1.25rem); font-weight: 300; line-height: 1.3; transition: background-color .25s ease, color .25s ease, border-color .25s ease; }
.rsfa-photo-card__action.is-filled { background: var(--color-gold, #c8a97e); color: var(--color-gold-ink, #111); font-weight: 400; }
.rsfa-photo-card__action:hover, .rsfa-photo-card__action:focus-visible { background: var(--color-gold, #c8a97e); color: var(--color-gold-ink, #111); }
.rsfa-photo-card__action.is-filled:hover, .rsfa-photo-card__action.is-filled:focus-visible { background: var(--color-gold-hover, #d9bd95); border-color: var(--color-gold-hover, #d9bd95); }
.rsfa-photo-card__action.is-link { display: inline-flex; align-items: center; min-height: 2.75rem; padding: 0; border: 0; border-radius: 0; background: transparent; font-size: var(--fs-small, 1rem); font-weight: 500; text-align: left; }
.rsfa-photo-card__action.is-secondary { color: var(--color-text, #fff); font-weight: 300; }
.rsfa-photo-card__action.is-link:hover, .rsfa-photo-card__action.is-link:focus-visible { color: var(--color-gold-hover, #d9bd95); background: transparent; }
.rsfa-photo-card__action:focus-visible { outline: 2px solid var(--color-gold, #c8a97e); outline-offset: 3px; }
.rsfa-photo-card__action span { display: inline-block; margin-inline-start: .4em; transition: transform .3s cubic-bezier(.22,.61,.36,1); }
.rsfa-photo-card__action:hover span, .rsfa-photo-card__action:focus-visible span { transform: translateX(.25em); }
@media (hover: hover) { .rsfa-photo-card:hover > img.rsfa-photo-card__image { transform: scale(1.035); } }
@media (max-width: 767px) {
	.rsfa-photo-card { padding: var(--space-4, 2.125rem) var(--space-3, 1.3125rem); }
	.rsfa-photo-card .rsfa-photo-card__eyebrow { font-size: .8125rem; letter-spacing: .16em; line-height: 1.4; }
	.rsfa-photo-card__actions { flex-direction: column; align-items: stretch; gap: var(--space-2, .8125rem); }
	.rsfa-photo-card__action { width: 100%; padding-inline: 1rem; font-size: var(--fs-small, 1rem); }
	.rsfa-photo-card__action.is-secondary { display: block; border: 1px solid rgba(255,255,255,.55); border-radius: var(--radius, .625rem); padding: calc((3.4375rem - 2px - 1.3em) / 2) 1rem; min-height: 3.4375rem; text-align: center; }
}
@media (prefers-reduced-motion: reduce) { .rsfa-photo-card > img.rsfa-photo-card__image, .rsfa-photo-card__action span { transition: none; transform: none !important; } }
