/* Rechtstexte: Impressum, Datenschutz, AGB als Glasfenster im WHOLE STACK Stil.
   Papier/Espresso über die Theme-Variablen, Gold als Akzent, Libre Baskerville. */
body.rp-lock { overflow: hidden; }
.rp, .rp * { box-sizing: border-box; }
.rp { --rp-gold: var(--accent-text, #665A38); --rp-glass: rgba(247,243,236,0.96); --rp-glassb: rgba(255,255,255,0.8); --rp-ink: var(--fg, #1A1714); --rp-mute: var(--fg-mute, #6B6255); --rp-line: var(--line, rgba(26,23,20,0.12)); --rp-card: rgba(255,255,255,0.5);
  position: fixed; inset: 0; z-index: 1000; display: flex; align-items: center; justify-content: center; padding: clamp(12px, 2.5vw, 32px);
  background: rgba(20,17,13,0.34); -webkit-backdrop-filter: blur(22px) saturate(1.2); backdrop-filter: blur(22px) saturate(1.2);
  opacity: 0; transition: opacity 420ms cubic-bezier(.16,1,.3,1); font-family: var(--font-display, 'Libre Baskerville', Georgia, serif); color: var(--rp-ink); }
html[data-theme='dark'] .rp { --rp-gold: var(--ws-gold, #BFAE86); --rp-glass: rgba(28,24,18,0.96); --rp-glassb: rgba(243,238,228,0.18); --rp-card: rgba(243,238,228,0.035); background: rgba(8,7,5,0.5); }
.rp[hidden] { display: none; }
.rp.is-on { opacity: 1; }
.rp a { color: var(--rp-ink); text-decoration: underline; text-underline-offset: 3px; text-decoration-color: color-mix(in srgb, var(--rp-gold) 55%, transparent); transition: color 300ms, text-decoration-color 300ms; }
.rp a:hover { color: var(--rp-gold); text-decoration-color: var(--rp-gold); }

.rp-dlg { position: relative; width: min(1080px, 100%); height: 100%; max-height: calc(100vh - 2 * clamp(12px, 2.5vw, 32px)); display: flex; flex-direction: column; overflow: hidden; outline: none;
  border-radius: 32px; background: var(--rp-glass); border: 1px solid var(--rp-glassb);
  box-shadow: inset 0 1.5px 0 rgba(255,255,255,0.28), 0 50px 140px -40px rgba(0,0,0,0.6);
  isolation: isolate; contain: paint; will-change: transform;
  transform: translateY(26px) scale(.985); transition: transform 700ms cubic-bezier(.16,1,.3,1); }
.rp.is-on .rp-dlg { transform: none; }
.rp-dlg::before { content: ''; position: absolute; inset: 0; z-index: 0; pointer-events: none; border-radius: inherit;
  background: radial-gradient(520px circle at var(--gx, 30%) var(--gy, 10%), rgba(222,204,160,0.12), transparent 65%); }

.rp-bar { position: relative; z-index: 2; flex: none; display: grid; grid-template-columns: 1fr auto 1fr; align-items: center; gap: 16px; padding: 16px 18px 16px 26px; border-bottom: 1px solid var(--rp-line); }
.rp-logo { display: block; height: 22px; aspect-ratio: 2062.97 / 357.07; background: var(--rp-gold); -webkit-mask: url(../../assets/ws-logo-full.svg) no-repeat left center / contain; mask: url(../../assets/ws-logo-full.svg) no-repeat left center / contain; }
.rp-tabs { position: relative; display: inline-flex; padding: 5px; border-radius: 999px; border: 0; background: transparent; box-shadow: none; }
.rp-pille { position: absolute; z-index: 1; left: 0; top: 5px; height: 38px; border-radius: 999px; opacity: 0; pointer-events: none;
  background: color-mix(in srgb, var(--rp-ink) 5%, transparent); box-shadow: inset 0 1px 2px rgba(0,0,0,0.22), inset 0 -1px 0 rgba(255,255,255,0.5);
  transition: transform 620ms cubic-bezier(.16,1,.3,1), width 620ms cubic-bezier(.16,1,.3,1), opacity 400ms; }
html[data-theme='dark'] .rp-pille { box-shadow: inset 0 1px 3px rgba(0,0,0,0.55), inset 0 -1px 0 rgba(255,255,255,0.08); }
.rp-tab { position: relative; z-index: 2; height: 38px; padding: 0 20px; border: 0; border-radius: 999px; background: transparent; cursor: pointer; white-space: nowrap;
  font-family: inherit; font-size: 13px; color: var(--rp-mute); transition: color 300ms; }
.rp-tab:hover { color: var(--rp-ink); }
.rp-tab[aria-selected="true"] { color: var(--rp-gold); }
.rp-x { justify-self: end; width: 44px; height: 44px; border-radius: 999px; cursor: pointer; display: flex; align-items: center; justify-content: center;
  border: 1px solid var(--rp-line); background: color-mix(in srgb, var(--rp-ink) 4%, transparent); color: var(--rp-ink); transition: transform 400ms cubic-bezier(.16,1,.3,1), border-color 300ms, color 300ms; }
.rp-x:hover { transform: rotate(90deg); border-color: var(--rp-gold); color: var(--rp-gold); }
.rp-x svg { width: 16px; height: 16px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; }

.rp-body { position: relative; z-index: 1; transform: translateZ(0); flex: 1 1 auto; min-height: 0; overflow: auto; overscroll-behavior: contain; scroll-behavior: smooth; scrollbar-width: thin; scrollbar-color: color-mix(in srgb, var(--rp-gold) 45%, transparent) transparent; }
.rp-page { display: none; max-width: 820px; margin: 0 auto; padding: clamp(40px, 6vh, 64px) clamp(20px, 4vw, 48px) 110px; }
.rp-page.is-cur { display: block; animation: rpIn 700ms cubic-bezier(.16,1,.3,1); }
@keyframes rpIn { from { opacity: 0; transform: translateY(12px); } to { opacity: 1; transform: none; } }

.rp-eye { display: inline-flex; align-items: center; gap: 12px; font-family: var(--font-mono, inherit); font-size: 10.5px; letter-spacing: 0.22em; text-transform: uppercase; color: var(--rp-gold); }
.rp-eye::before { content: ''; width: 28px; height: 1px; background: var(--rp-gold); }
.rp-h1 { margin: 14px 0 0; font-weight: 400; font-size: clamp(34px, 5vw, 62px); line-height: 1.02; letter-spacing: -0.015em; }
.rp-h1 em { font-style: italic; color: var(--rp-gold); }
.rp-sub { margin: 16px 0 0; font-size: 13.5px; line-height: 1.7; color: var(--rp-mute); max-width: 60ch; }

.rp-toc { margin: 34px 0 40px; padding-top: 22px; border-top: 1px solid var(--rp-line); }
.rp-toc-l { display: block; margin-bottom: 10px; font-size: 10.5px; letter-spacing: 0.2em; text-transform: uppercase; color: var(--rp-mute); }
.rp-toc ol { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: 40px; }
.rp-toc li { border-top: 1px solid var(--rp-line); }
.rp-toc a { display: grid; grid-template-columns: 30px minmax(0, 1fr); gap: 10px; padding: 10px 6px; border-radius: 10px; font-size: 13.5px; line-height: 1.45; color: var(--rp-ink); text-decoration: none;
  transition: background 400ms cubic-bezier(.16,1,.3,1), box-shadow 400ms, padding-left 500ms cubic-bezier(.16,1,.3,1), color 300ms; }
.rp-toc a:hover { color: var(--rp-gold); padding-left: 12px; background: color-mix(in srgb, var(--rp-ink) 4%, transparent); box-shadow: inset 0 1px 2px rgba(0,0,0,0.16); }
.rp-toc a span { font-size: 11px; letter-spacing: 0.08em; font-variant-numeric: tabular-nums; color: var(--rp-gold); padding-top: 0.15em; }

.rp-sec { scroll-margin-top: 16px; padding-top: 26px; margin-top: 26px; border-top: 1px solid var(--rp-line); }
.rp-sec:first-of-type { margin-top: 0; }
.rp-h2 { display: grid; grid-template-columns: 44px minmax(0, 1fr); align-items: baseline; margin: 0 0 14px; font-weight: 400; font-size: clamp(19px, 2.1vw, 25px); line-height: 1.15; }
.rp-h2 span { font-size: 11px; letter-spacing: 0.1em; font-variant-numeric: tabular-nums; color: var(--rp-gold); }
.rp-sec > :not(.rp-h2) { margin-left: 44px; }
.rp-p { margin: 0 0 12px; font-size: 14.5px; line-height: 1.8; color: var(--rp-mute); text-wrap: pretty; }
.rp-p strong { font-weight: 400; font-style: italic; color: var(--rp-ink); }
.rp-abs { display: grid; grid-template-columns: 34px minmax(0, 1fr); margin: 0 0 12px; font-size: 14.5px; line-height: 1.8; color: var(--rp-mute); }
.rp-abs > span:first-child { font-size: 12px; color: var(--rp-gold); padding-top: 0.2em; font-variant-numeric: tabular-nums; }
.rp-adr { font-style: normal; font-size: 15px; line-height: 1.8; color: var(--rp-ink); }
.rp-kv { margin: 0; display: grid; grid-template-columns: max-content minmax(0, 1fr); gap: 6px 26px; font-size: 14.5px; line-height: 1.7; }
.rp-kv dt { color: var(--rp-mute); }
.rp-kv dd { margin: 0; color: var(--rp-ink); }

.rp-dienst { margin: 14px 0 18px; padding: 20px 22px; border-radius: 18px; border: 1px solid var(--rp-line); background: var(--rp-card); }
.rp-dienst b { display: block; margin-bottom: 12px; padding-bottom: 10px; border-bottom: 1px solid var(--rp-line); font-weight: 400; font-size: 16px; color: var(--rp-ink); }
.rp-dl { margin: 0; display: grid; grid-template-columns: 170px minmax(0, 1fr); }
.rp-dl dt, .rp-dl dd { padding: 8px 0; border-top: 1px solid color-mix(in srgb, var(--rp-line) 70%, transparent); }
.rp-dl dt:first-of-type, .rp-dl dt:first-of-type + dd { border-top: 0; }
.rp-dl dt { font-size: 10.5px; letter-spacing: 0.12em; text-transform: uppercase; color: var(--rp-mute); padding-top: 11px; }
.rp-dl dd { margin: 0; font-size: 13.5px; line-height: 1.7; color: var(--rp-ink); }
.rp-hervor { border-color: color-mix(in srgb, var(--rp-gold) 45%, transparent); background: color-mix(in srgb, var(--rp-gold) 7%, transparent); }
.rp-rechte { list-style: none; margin: 0 0 14px; padding: 0; }
.rp-rechte li { display: grid; grid-template-columns: 220px minmax(0, 1fr); gap: 18px; padding: 12px 0; border-top: 1px solid var(--rp-line); font-size: 13.5px; line-height: 1.7; color: var(--rp-mute); }
.rp-rechte li:first-child { border-top: 0; }
.rp-rechte b { font-weight: 400; color: var(--rp-ink); }
.rp-rechte b i { display: block; font-style: normal; font-size: 10.5px; letter-spacing: 0.1em; text-transform: uppercase; color: var(--rp-gold); margin-top: 2px; }

/* Offene Angaben: gut sichtbar markiert, bis sie beantwortet sind */
.rp-ph { display: inline; padding: 1px 6px; border-radius: 6px; font-style: normal; color: var(--rp-gold); background: color-mix(in srgb, var(--rp-gold) 12%, transparent); box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--rp-gold) 45%, transparent); }

.rp-top { position: absolute; z-index: 3; right: 22px; bottom: 22px; display: inline-flex; align-items: center; gap: 8px; height: 42px; padding: 0 16px 0 14px; border-radius: 999px; cursor: pointer;
  border: 1px solid var(--rp-glassb); background: var(--rp-glass); color: var(--rp-ink); font-family: inherit; font-size: 12px;
  box-shadow: 0 14px 30px -14px rgba(0,0,0,0.5);
  opacity: 0; pointer-events: none; transform: translateY(8px); transition: opacity 400ms, transform 500ms cubic-bezier(.16,1,.3,1), border-color 300ms; }
.rp-top.is-on { opacity: 1; pointer-events: auto; transform: none; }
.rp-top:hover { border-color: var(--rp-gold); color: var(--rp-gold); }
.rp-top svg { width: 14px; height: 14px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }

@media (max-width: 760px) {
  .rp { padding: 0; }
  .rp-dlg { max-height: 100dvh; height: 100dvh; border-radius: 0; border: 0; }
  .rp-bar { grid-template-columns: auto 1fr; padding: 12px 14px 12px 18px; row-gap: 12px; }
  .rp-x { grid-column: 2; grid-row: 1; }
  .rp-tabs { grid-column: 1 / -1; grid-row: 2; display: grid; grid-template-columns: repeat(3, 1fr); }
  .rp-tab { padding: 0 6px; font-size: 12.5px; }
  .rp-toc ol { grid-template-columns: 1fr; }
  .rp-h2 { grid-template-columns: 1fr; gap: 6px; }
  .rp-sec > :not(.rp-h2) { margin-left: 0; }
  .rp-dl { grid-template-columns: 1fr; }
  .rp-dl dt { padding-bottom: 0; }
  .rp-dl dd { border-top: 0; padding-top: 2px; }
  .rp-rechte li { grid-template-columns: 1fr; gap: 4px; }
  .rp-kv { grid-template-columns: 1fr; gap: 0; }
  .rp-kv dd { margin-bottom: 10px; }
}
@media (prefers-reduced-motion: reduce) { .rp, .rp-dlg, .rp-pille, .rp-top { transition: none; } .rp-page.is-cur { animation: none; } .rp-body { scroll-behavior: auto; } }
