/*
Theme Name: ritter-paulus
Text Domain: ritter-paulus
Description: Eigenständiges Theme für MPU-Vorbereitung mit Gutenberg und zentralem CSS.
Version: 1.1.0
Requires at least: 6.6
Requires PHP: 8.0
License: GPL-2.0-or-later
WPVibe: yes
*/
/* ==========================================================================
   RITTER & PAULUS — globales Designsystem
   Zentrale Datei. Alle redaktionellen Inhalte bleiben ohne eingebettetes CSS.
   ========================================================================== */

/* 01 · DESIGN TOKENS ------------------------------------------------------ */
:root {
  --rp-navy: #17324D;
  --rp-blue: #2B6CB0;
  --rp-blue-hover: #245A94;
  --rp-bg: #F7F9FC;
  --rp-surface: #FFFFFF;
  --rp-text: #253442;
  --rp-muted: #647383;
  --rp-border: #DCE4EB;
  --rp-trust: #356859;
  --rp-radius-sm: 8px;
  --rp-radius-md: 14px;
  --rp-radius-lg: 20px;
  --rp-shadow-sm: 0 4px 18px rgba(23, 50, 77, .06);
  --rp-shadow-md: 0 12px 34px rgba(23, 50, 77, .09);
  --rp-container: 1180px;
  --rp-reading: 740px;
  --rp-gutter: clamp(20px, 3vw, 32px);
  --rp-section-space: clamp(64px, 7.5vw, 108px);
  --rp-header-height: 80px;
  --rp-font: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
}

/* 02 · BASIS -------------------------------------------------------------- */
body:is(.rp-site, .editor-styles-wrapper),
.editor-styles-wrapper {
  color: var(--rp-text);
  background: var(--rp-surface);
  font-family: var(--rp-font);
  font-size: 18px;
  font-weight: 400;
  line-height: 1.65;
  -webkit-font-smoothing: antialiased;
  overflow-wrap: break-word;
}
body:is(.rp-site, .editor-styles-wrapper) { margin: 0; }
:is(.rp-site, .editor-styles-wrapper) *, :is(.rp-site, .editor-styles-wrapper) *::before, :is(.rp-site, .editor-styles-wrapper) *::after { box-sizing: border-box; }
:is(.rp-site, .editor-styles-wrapper) .wp-site-blocks { padding: 0; }
:is(.rp-site, .editor-styles-wrapper) .wp-site-blocks > * { margin-block-start: 0; }
:is(.rp-site, .editor-styles-wrapper) main { min-width: 0; }
:is(.rp-site, .editor-styles-wrapper) img { max-width: 100%; height: auto; }
:is(.rp-site, .editor-styles-wrapper) figure { margin: 0; }
:is(.rp-site, .editor-styles-wrapper) [hidden] { display: none !important; }
:is(.rp-site, .editor-styles-wrapper) :where(section, article, h1, h2, h3, h4, [id]) {
  scroll-margin-top: calc(var(--rp-header-height) + 28px);
}
:is(.rp-site, .editor-styles-wrapper) :where(p, ul, ol) { margin-block: 0 1.2em; }
:is(.rp-site, .editor-styles-wrapper) :where(p, ul, ol):last-child { margin-block-end: 0; }
:is(.rp-site, .editor-styles-wrapper) :where(a) { color: var(--rp-blue); text-underline-offset: .2em; }
:is(.rp-site, .editor-styles-wrapper) :where(a):hover { color: var(--rp-blue-hover); }
:is(.rp-site, .editor-styles-wrapper) :where(a, button, input, textarea, select, summary):focus-visible {
  outline: 3px solid var(--rp-blue);
  outline-offset: 5px;
}
:is(.rp-site, .editor-styles-wrapper) .rp-section--dark :where(a, button, summary):focus-visible,
:is(.rp-site, .editor-styles-wrapper) .rp-footer :where(a, button):focus-visible { outline-color: #FFFFFF; }
.rp-skip-link,
:is(.rp-site, .editor-styles-wrapper) .skip-link {
  position: fixed;
  inset: 12px auto auto 12px;
  z-index: 100001;
  padding: 12px 20px;
  color: #FFFFFF;
  background: var(--rp-navy);
  border-radius: var(--rp-radius-sm);
  transform: translateY(-160%);
}
.rp-skip-link:focus,
:is(.rp-site, .editor-styles-wrapper) .skip-link:focus { transform: translateY(0); }
.rp-visually-hidden {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

/* 03 · TYPOGRAFIE --------------------------------------------------------- */
:is(.rp-site, .editor-styles-wrapper) :where(h1, h2, h3, h4),
.editor-styles-wrapper :where(h1, h2, h3, h4) {
  margin-block: 0 .6em;
  color: var(--rp-navy);
  font-family: var(--rp-font);
  font-weight: 650;
  line-height: 1.18;
  letter-spacing: -.033em;
  text-wrap: balance;
}
:is(.rp-site, .editor-styles-wrapper) h1, .editor-styles-wrapper h1 { font-size: clamp(38px, 4.65vw, 64px); }
:is(.rp-site, .editor-styles-wrapper) h2, .editor-styles-wrapper h2 { font-size: clamp(30px, 3.2vw, 44px); }
:is(.rp-site, .editor-styles-wrapper) h3, .editor-styles-wrapper h3 { font-size: clamp(23px, 2vw, 28px); }
:is(.rp-site, .editor-styles-wrapper) h4, .editor-styles-wrapper h4 { font-size: 20px; }
:is(.rp-site, .editor-styles-wrapper) strong { font-weight: 650; }
:is(.rp-site, .editor-styles-wrapper) .rp-eyebrow {
  display: flex;
  align-items: center;
  gap: 12px;
  margin: 0 0 24px;
  color: var(--rp-blue);
  font-size: 12px;
  font-weight: 700;
  letter-spacing: .14em;
  line-height: 1.5;
  text-transform: uppercase;
}
.rp-eyebrow::before { content: ""; width: 28px; height: 2px; background: currentColor; flex: 0 0 auto; }
:is(.rp-site, .editor-styles-wrapper) .rp-lead { max-width: var(--rp-reading); font-size: clamp(18px, 1.7vw, 21px); line-height: 1.65; }
:is(.rp-site, .editor-styles-wrapper) .rp-muted, :is(.rp-site, .editor-styles-wrapper) .rp-small { color: var(--rp-muted); }
:is(.rp-site, .editor-styles-wrapper) .rp-small { font-size: 15px; line-height: 1.6; }
:is(.rp-site, .editor-styles-wrapper) .rp-intro { max-width: var(--rp-reading); }
:is(.rp-site, .editor-styles-wrapper) .rp-section-heading { margin-bottom: 40px; max-width: 800px; }
:is(.rp-site, .editor-styles-wrapper) .rp-section-heading .rp-eyebrow { margin-bottom: 18px; }
:is(.rp-site, .editor-styles-wrapper) .rp-section-heading h2 { margin-bottom: 18px; }
:is(.rp-site, .editor-styles-wrapper) .rp-section-heading > p:last-child { max-width: 700px; }
:is(.rp-site, .editor-styles-wrapper) .rp-text-link { display: inline-flex; align-items: center; min-height: 44px; font-weight: 650; }
:is(.rp-site, .editor-styles-wrapper) .rp-text-link::after { content: "\2192"; margin-left: 9px; text-decoration: none; }

/* 04 · LAYOUT ------------------------------------------------------------- */
:is(.rp-site, .editor-styles-wrapper) .rp-container,
.editor-styles-wrapper .rp-container {
  width: min(calc(100% - var(--rp-gutter) * 2), var(--rp-container));
  max-width: var(--rp-container);
  margin-inline: auto;
}
:is(.rp-site, .editor-styles-wrapper) .rp-section { margin-block: 0; padding-block: var(--rp-section-space); }
:is(.rp-site, .editor-styles-wrapper) .rp-section--soft { background: var(--rp-bg); }
:is(.rp-site, .editor-styles-wrapper) .rp-section--compact { padding-block: clamp(40px, 5vw, 68px); }
:is(.rp-site, .editor-styles-wrapper) .rp-section--dark { background: var(--rp-navy); color: #FFFFFF; }
:is(.rp-site, .editor-styles-wrapper) .rp-section--dark :where(h1, h2, h3, h4) { color: #FFFFFF; }
:is(.rp-site, .editor-styles-wrapper) .rp-section--dark .rp-eyebrow { color: #B4D1EE; }
:is(.rp-site, .editor-styles-wrapper) .rp-section--dark :where(p, li) { color: #E3EAF1; }
:is(.rp-site, .editor-styles-wrapper) .rp-section--dark :where(a:not(.wp-block-button__link)) { color: #D2E6FB; }
:is(.rp-site, .editor-styles-wrapper) .rp-reading { max-width: var(--rp-reading); }
:is(.rp-site, .editor-styles-wrapper) .rp-split { display: grid; grid-template-columns: 1fr 1fr; gap: clamp(36px, 6vw, 84px); align-items: start; }
:is(.rp-site, .editor-styles-wrapper) .rp-split > *, :is(.rp-site, .editor-styles-wrapper) .rp-hero__grid > * { min-width: 0; }
:is(.rp-site, .editor-styles-wrapper) .rp-stack > * + * { margin-block-start: 24px; }
:is(.rp-site, .editor-styles-wrapper) .rp-rule { border: 0; border-top: 1px solid var(--rp-border); margin-block: 40px; }
:is(.rp-site, .editor-styles-wrapper) .rp-note { border-left: 3px solid var(--rp-blue); padding: 4px 0 4px 22px; max-width: var(--rp-reading); }
:is(.rp-site, .editor-styles-wrapper) .rp-section--dark .rp-note { border-color: #8BB9E7; }
:is(.rp-site, .editor-styles-wrapper) .rp-surface { padding: clamp(24px, 3vw, 40px); border: 1px solid var(--rp-border); border-radius: var(--rp-radius-md); background: var(--rp-surface); }
:is(.rp-site, .editor-styles-wrapper) .rp-prose > * + * { margin-block-start: 24px; }
:is(.rp-site, .editor-styles-wrapper) .rp-prose > :where(h2, h3) { margin-block-start: 48px; }
:is(.rp-site, .editor-styles-wrapper) .rp-prose ul, :is(.rp-site, .editor-styles-wrapper) .rp-prose ol { padding-left: 24px; }
:is(.rp-site, .editor-styles-wrapper) .rp-prose li + li { margin-top: 10px; }

/* 05 · GLOBALER HEADER / DESKTOP-NAVIGATION ------------------------------- */
:is(.rp-site, .editor-styles-wrapper) .rp-header {
  position: sticky;
  top: 0;
  z-index: 100;
  background: #FFFFFF;
  border-bottom: 1px solid var(--rp-border);
}
:is(.rp-site, .editor-styles-wrapper).admin-bar .rp-header { top: 32px; }
:is(.rp-site, .editor-styles-wrapper) .rp-header-inner {
  display: flex;
  align-items: center;
  gap: 24px;
  min-height: var(--rp-header-height);
  width: min(calc(100% - var(--rp-gutter) * 2), 1380px);
  max-width: 1380px;
  margin-inline: auto;
  padding-block: 12px;
}
:is(.rp-site, .editor-styles-wrapper) .rp-brand { display: flex; align-items: center; flex-shrink: 0; gap: 11px; color: var(--rp-navy); text-decoration: none; }
:is(.rp-site, .editor-styles-wrapper) .rp-brand img, :is(.rp-site, .editor-styles-wrapper) .rp-brand .custom-logo { width: 44px; height: 44px; object-fit: contain; border-radius: 4px; flex-shrink: 0; }
:is(.rp-site, .editor-styles-wrapper) .rp-brand :where(.wp-block-site-title, .rp-brand-name) { margin: 0; font-size: 20px; font-weight: 650; letter-spacing: -.035em; line-height: 1.2; white-space: nowrap; }
:is(.rp-site, .editor-styles-wrapper) .rp-brand :where(a) { color: inherit; text-decoration: none; }
:is(.rp-site, .editor-styles-wrapper) .rp-brand .rp-brand-tagline { display: block; margin-top: 4px; font-size: 10px; font-weight: 500; letter-spacing: .1em; line-height: 1.3; text-transform: uppercase; }
:is(.rp-site, .editor-styles-wrapper) .rp-navigation { margin-left: auto; font-size: 15px; font-weight: 550; }
:is(.rp-site, .editor-styles-wrapper) .rp-navigation :where(a, button) { font-family: var(--rp-font); }
:is(.rp-site, .editor-styles-wrapper) .rp-navigation :where(a) { color: var(--rp-navy); text-decoration: none; }
:is(.rp-site, .editor-styles-wrapper) .rp-navigation :where(a):hover { color: var(--rp-blue); }
:is(.rp-site, .editor-styles-wrapper) .rp-navigation :where(a[aria-current="page"]) { text-decoration: underline; text-underline-offset: 7px; text-decoration-thickness: 2px; }
:is(.rp-site, .editor-styles-wrapper) .rp-navigation .wp-block-navigation__container { gap: clamp(14px, 1.65vw, 24px); }
:is(.rp-site, .editor-styles-wrapper) .rp-navigation .wp-block-navigation-item__content { padding-block: 10px; }
:is(.rp-site, .editor-styles-wrapper) .rp-navigation .wp-block-navigation__submenu-icon { width: 20px; height: 36px; margin-left: 2px; }
:is(.rp-site, .editor-styles-wrapper) .rp-navigation .wp-block-navigation__submenu-container {
  min-width: 275px;
  padding: 12px;
  color: var(--rp-navy);
  background: #FFFFFF;
  border: 1px solid var(--rp-border);
  border-radius: var(--rp-radius-sm);
  box-shadow: var(--rp-shadow-md);
}
:is(.rp-site, .editor-styles-wrapper) .rp-navigation .wp-block-navigation__submenu-container .wp-block-navigation-item__content { padding: 10px 12px; width: 100%; border-radius: 4px; line-height: 1.4; }
:is(.rp-site, .editor-styles-wrapper) .rp-navigation .wp-block-navigation__submenu-container .wp-block-navigation-item__content:hover { background: var(--rp-bg); }
:is(.rp-site, .editor-styles-wrapper) .rp-header .wp-block-buttons { flex-shrink: 0; }
:is(.rp-site, .editor-styles-wrapper) .rp-header .wp-block-button__link { min-height: 46px; padding: 12px 18px; font-size: 14px; white-space: nowrap; }
:is(.rp-site, .editor-styles-wrapper) .rp-nav-cta > a,
:is(.rp-site, .editor-styles-wrapper) .rp-nav-cta > .wp-block-navigation-item__content { display: inline-flex; align-items: center; justify-content: center; min-height: 46px; padding: 12px 18px; background: var(--rp-blue); color: #FFFFFF; border-radius: 10px; font-weight: 650; text-decoration: none; white-space: nowrap; }
:is(.rp-site, .editor-styles-wrapper) .rp-nav-cta > a:hover { color: #FFFFFF; background: var(--rp-blue-hover); }
:is(.rp-site, .editor-styles-wrapper) .rp-menu { display: flex; align-items: center; gap: 22px; list-style: none; margin: 0; padding: 0; }
:is(.rp-site, .editor-styles-wrapper) .rp-menu li { position: relative; list-style: none; margin: 0; }
:is(.rp-site, .editor-styles-wrapper) .rp-menu > li > a { display: flex; align-items: center; min-height: 44px; }
:is(.rp-site, .editor-styles-wrapper) .rp-menu .sub-menu {
  display: none;
  position: absolute;
  top: 100%;
  left: -12px;
  z-index: 5;
  min-width: 275px;
  margin: 0;
  padding: 12px;
  background: #FFFFFF;
  border: 1px solid var(--rp-border);
  border-radius: var(--rp-radius-sm);
  box-shadow: var(--rp-shadow-md);
}
:is(.rp-site, .editor-styles-wrapper) .rp-menu .sub-menu a { display: block; padding: 10px 12px; line-height: 1.4; border-radius: 4px; }
:is(.rp-site, .editor-styles-wrapper) .rp-menu .sub-menu a:hover { background: var(--rp-bg); }
:is(.rp-site, .editor-styles-wrapper) .rp-menu li:focus-within > .sub-menu,
:is(.rp-site, .editor-styles-wrapper) .rp-menu li:hover > .sub-menu,
:is(.rp-site, .editor-styles-wrapper) .rp-menu li.rp-is-open > .sub-menu { display: block; }
:is(.rp-site, .editor-styles-wrapper) .rp-nav-toggle { display: none; }

/* 06 · BUTTONS ------------------------------------------------------------ */
:is(.rp-site, .editor-styles-wrapper) .rp-actions, :is(.rp-site, .editor-styles-wrapper) .wp-block-buttons.rp-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 14px; margin-top: 30px; }
:is(.rp-site, .editor-styles-wrapper) .rp-actions .wp-block-button { margin: 0; }
:is(.rp-site, .editor-styles-wrapper) .rp-cta-primary > .wp-block-button__link,
:is(.rp-site, .editor-styles-wrapper) a.rp-cta-primary,
:is(.rp-site, .editor-styles-wrapper) button.rp-cta-primary,
:is(.rp-site, .editor-styles-wrapper) .rp-button-primary {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 52px;
  padding: 14px 24px;
  border: 1px solid var(--rp-blue);
  border-radius: 10px;
  background: var(--rp-blue);
  color: #FFFFFF;
  font-family: var(--rp-font);
  font-size: 16px;
  font-weight: 650;
  line-height: 1.35;
  text-align: center;
  text-decoration: none;
  cursor: pointer;
  transition: background-color .16s ease, border-color .16s ease, box-shadow .16s ease;
}
:is(.rp-site, .editor-styles-wrapper) .rp-cta-primary > .wp-block-button__link:hover,
:is(.rp-site, .editor-styles-wrapper) a.rp-cta-primary:hover,
:is(.rp-site, .editor-styles-wrapper) button.rp-cta-primary:hover,
:is(.rp-site, .editor-styles-wrapper) .rp-button-primary:hover { color: #FFFFFF; background: var(--rp-blue-hover); border-color: var(--rp-blue-hover); }
:is(.rp-site, .editor-styles-wrapper) .rp-button-secondary > .wp-block-button__link,
:is(.rp-site, .editor-styles-wrapper) a.rp-button-secondary {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 52px;
  padding: 14px 22px;
  border: 1px solid var(--rp-border);
  border-radius: 10px;
  color: var(--rp-navy);
  background: transparent;
  font-family: var(--rp-font);
  font-size: 16px;
  font-weight: 650;
  line-height: 1.35;
  text-align: center;
  text-decoration: none;
  transition: background-color .16s ease, border-color .16s ease;
}
:is(.rp-site, .editor-styles-wrapper) .rp-button-secondary > .wp-block-button__link:hover,
:is(.rp-site, .editor-styles-wrapper) a.rp-button-secondary:hover { background: #FFFFFF; border-color: var(--rp-navy); }
:is(.rp-site, .editor-styles-wrapper) .rp-section--dark .rp-button-secondary > .wp-block-button__link,
:is(.rp-site, .editor-styles-wrapper) .rp-section--dark a.rp-button-secondary { color: #FFFFFF; border-color: #7890A7; }
:is(.rp-site, .editor-styles-wrapper) .rp-section--dark .rp-button-secondary > .wp-block-button__link:hover { background: #24506E; }
:is(.rp-site, .editor-styles-wrapper) button:disabled { opacity: .6; cursor: not-allowed; }

/* 07 · HERO --------------------------------------------------------------- */
:is(.rp-site, .editor-styles-wrapper) .rp-hero { margin-block: 0; padding-block: clamp(64px, 7.5vw, 104px) clamp(64px, 7vw, 92px); background: var(--rp-bg); }
:is(.rp-site, .editor-styles-wrapper) .rp-hero__grid { display: grid; grid-template-columns: minmax(0, 1fr); align-items: center; gap: 56px; }
:is(.rp-site, .editor-styles-wrapper) .rp-hero__copy { max-width: 1000px; }
:is(.rp-site, .editor-styles-wrapper) .rp-hero h1 { max-width: 19ch; margin-bottom: 26px; }
:is(.rp-site, .editor-styles-wrapper) .rp-hero h1 strong { font-weight: inherit; color: var(--rp-blue); }
:is(.rp-site, .editor-styles-wrapper) .rp-hero .rp-lead { max-width: 790px; }
:is(.rp-site, .editor-styles-wrapper) .rp-hero .rp-actions { margin-top: 32px; }
:is(.rp-site, .editor-styles-wrapper) .rp-hero .rp-hero-note { margin-top: 18px; color: var(--rp-muted); font-size: 14px; }
:is(.rp-site, .editor-styles-wrapper) .rp-hero--compact { padding-block: clamp(56px, 6vw, 84px); }
:is(.rp-site, .editor-styles-wrapper) .rp-hero--compact h1 { max-width: 22ch; }
:is(.rp-site, .editor-styles-wrapper) .rp-hero-trust { display: flex; flex-wrap: wrap; gap: 10px 28px; margin: 34px 0 0; padding: 0; list-style: none; font-size: 14px; }
:is(.rp-site, .editor-styles-wrapper) .rp-hero-trust li { display: flex; align-items: center; gap: 10px; }
:is(.rp-site, .editor-styles-wrapper) .rp-hero-trust li::before { content: ""; width: 5px; height: 5px; background: var(--rp-trust); border-radius: 50%; flex: 0 0 auto; }
:is(.rp-site, .editor-styles-wrapper) .rp-hero__grid:has(.rp-image--hero img[src]:not([src=""])) { grid-template-columns: 1.2fr .8fr; }

/* 08 · TRUST ELEMENTS ----------------------------------------------------- */
:is(.rp-site, .editor-styles-wrapper) .rp-trust-bar { padding-block: 26px; border-block: 1px solid var(--rp-border); background: #FFFFFF; }
:is(.rp-site, .editor-styles-wrapper) .rp-trust-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 24px; }
:is(.rp-site, .editor-styles-wrapper) .rp-trust-item { padding-left: 20px; border-left: 1px solid var(--rp-border); font-size: 14px; line-height: 1.55; }
:is(.rp-site, .editor-styles-wrapper) .rp-trust-item:first-child { padding-left: 0; border-left: 0; }
:is(.rp-site, .editor-styles-wrapper) .rp-trust-item strong { display: block; margin-bottom: 3px; color: var(--rp-navy); font-size: 15px; }
:is(.rp-site, .editor-styles-wrapper) .rp-trust-item p { margin: 0; color: var(--rp-muted); }

/* 09 · LEISTUNGEN --------------------------------------------------------- */
:is(.rp-site, .editor-styles-wrapper) .rp-service-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 18px; }
:is(.rp-site, .editor-styles-wrapper) .rp-service-card {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  min-width: 0;
  padding: clamp(24px, 2.5vw, 32px);
  border: 1px solid var(--rp-border);
  border-radius: var(--rp-radius-sm);
  background: var(--rp-surface);
  transition: border-color .16s ease, box-shadow .16s ease;
}
:is(.rp-site, .editor-styles-wrapper) .rp-service-card:hover { border-color: #A6BDCF; box-shadow: var(--rp-shadow-sm); }
:is(.rp-site, .editor-styles-wrapper) .rp-service-card h3 { font-size: 23px; margin-bottom: 14px; }
:is(.rp-site, .editor-styles-wrapper) .rp-service-card h3 a { color: var(--rp-navy); text-decoration: none; }
:is(.rp-site, .editor-styles-wrapper) .rp-service-card h3 a:hover { color: var(--rp-blue); text-decoration: underline; }
:is(.rp-site, .editor-styles-wrapper) .rp-service-card p { font-size: 16px; line-height: 1.65; }
:is(.rp-site, .editor-styles-wrapper) .rp-service-card .rp-text-link { margin-top: auto; padding-top: 12px; font-size: 15px; }
:is(.rp-site, .editor-styles-wrapper) .rp-service-number { display: inline-block; margin-bottom: 24px; color: var(--rp-blue); font-size: 12px; font-weight: 700; letter-spacing: .1em; }
:is(.rp-site, .editor-styles-wrapper) .rp-section-footnote { margin-top: 26px; font-size: 16px; }
:is(.rp-site, .editor-styles-wrapper) .rp-principles { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 36px 48px; }
:is(.rp-site, .editor-styles-wrapper) .rp-principle { padding-top: 20px; border-top: 1px solid var(--rp-border); }
:is(.rp-site, .editor-styles-wrapper) .rp-principle h3 { font-size: 23px; margin-bottom: 12px; }
:is(.rp-site, .editor-styles-wrapper) .rp-principle p { font-size: 17px; }
:is(.rp-site, .editor-styles-wrapper) .rp-section--dark .rp-principle { border-color: #4C657D; }
:is(.rp-site, .editor-styles-wrapper) .rp-question-list { padding: 0; margin: 0; list-style: none; }
:is(.rp-site, .editor-styles-wrapper) .rp-question-list li { padding: 17px 0; border-top: 1px solid var(--rp-border); font-size: 20px; font-weight: 500; }
:is(.rp-site, .editor-styles-wrapper) .rp-question-list li:last-child { border-bottom: 1px solid var(--rp-border); }
:is(.rp-site, .editor-styles-wrapper) .rp-section--dark .rp-question-list li { border-color: #4C657D; }

/* 10 · PROZESS ------------------------------------------------------------ */
:is(.rp-site, .editor-styles-wrapper) .rp-process { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 24px; counter-reset: rp-process; }
:is(.rp-site, .editor-styles-wrapper) .rp-process-step { min-width: 0; padding-top: 22px; border-top: 1px solid var(--rp-border); }
:is(.rp-site, .editor-styles-wrapper) .rp-step-number { display: block; margin-bottom: 24px; color: var(--rp-blue); font-size: 14px; font-weight: 650; letter-spacing: .05em; }
:is(.rp-site, .editor-styles-wrapper) .rp-process-step h3 { margin-bottom: 12px; font-size: 21px; letter-spacing: -.02em; }
:is(.rp-site, .editor-styles-wrapper) .rp-process-step p { font-size: 15px; line-height: 1.65; }
:is(.rp-site, .editor-styles-wrapper) .rp-process--detailed { display: block; max-width: 900px; }
:is(.rp-site, .editor-styles-wrapper) .rp-process--detailed .rp-process-step { display: grid; grid-template-columns: 56px 1fr; gap: 12px 24px; padding-block: 28px; }
:is(.rp-site, .editor-styles-wrapper) .rp-process--detailed .rp-step-number { margin: 4px 0 0; grid-row: span 2; }
:is(.rp-site, .editor-styles-wrapper) .rp-process--detailed .rp-process-step h3 { margin: 0; font-size: 25px; }
:is(.rp-site, .editor-styles-wrapper) .rp-process--detailed .rp-process-step p { grid-column: 2; margin: 0; font-size: 17px; }
:is(.rp-site, .editor-styles-wrapper) .rp-process--detailed .rp-process-step > .wp-block-group { grid-column: 2; }

/* 11 · TEAM --------------------------------------------------------------- */
:is(.rp-site, .editor-styles-wrapper) .rp-team-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 32px; }
:is(.rp-site, .editor-styles-wrapper) .rp-team-card { display: flex; flex-direction: column; min-width: 0; padding: 32px 0 0; border-top: 2px solid var(--rp-navy); }
:is(.rp-site, .editor-styles-wrapper) .rp-team-card .rp-team-name { margin: 0 0 8px; font-size: clamp(26px, 2.4vw, 32px); }
:is(.rp-site, .editor-styles-wrapper) .rp-team-role { color: var(--rp-blue); font-size: 16px; font-weight: 650; line-height: 1.55; }
:is(.rp-site, .editor-styles-wrapper) .rp-team-bio { max-width: 500px; font-size: 17px; }
:is(.rp-site, .editor-styles-wrapper) .rp-team-card ul { padding-left: 21px; font-size: 16px; }
:is(.rp-site, .editor-styles-wrapper) .rp-team-card li + li { margin-top: 8px; }
:is(.rp-site, .editor-styles-wrapper) .rp-team-card .rp-image { margin-bottom: 28px; }
:is(.rp-site, .editor-styles-wrapper) .rp-team-card--profile { max-width: 850px; }
:is(.rp-site, .editor-styles-wrapper) .rp-team-card--profile:has(.rp-image img[src]:not([src=""])) { display: grid; grid-template-columns: .7fr 1.3fr; align-items: start; gap: 32px; }

/* 12 · BILDPLÄTZE / MEDIATHEK -------------------------------------------- */
/* Leere Bildblöcke bleiben redaktionell vorbereitet, im Frontend unsichtbar. */
:is(.rp-site, .editor-styles-wrapper) .rp-image { display: none; width: 100%; overflow: hidden; border-radius: var(--rp-radius-sm); }
:is(.rp-site, .editor-styles-wrapper) .rp-image:has(img[src]:not([src=""])) { display: block; }
:is(.rp-site, .editor-styles-wrapper) .rp-image img { display: block; width: 100%; height: 100%; object-fit: cover; }
:is(.rp-site, .editor-styles-wrapper) .rp-image--hero { max-width: 470px; aspect-ratio: 4 / 5; justify-self: end; }
:is(.rp-site, .editor-styles-wrapper) .rp-image--portrait { max-width: 420px; aspect-ratio: 4 / 5; }
:is(.rp-site, .editor-styles-wrapper) .rp-image--wide { max-width: var(--rp-container); aspect-ratio: 16 / 9; }
:is(.rp-site, .editor-styles-wrapper) .rp-image--work { max-width: var(--rp-container); aspect-ratio: 3 / 2; }
:is(.rp-site, .editor-styles-wrapper) .rp-image figcaption { font-size: 14px; color: var(--rp-muted); }
.editor-styles-wrapper .rp-image { display: block; min-height: 80px; border: 1px dashed #A6BDCF; }

/* 13 · PREISE ------------------------------------------------------------- */
:is(.rp-site, .editor-styles-wrapper) .rp-price-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 20px; }
:is(.rp-site, .editor-styles-wrapper) .rp-price-card { display: flex; flex-direction: column; align-items: flex-start; min-width: 0; padding: 32px; border: 1px solid var(--rp-border); border-radius: var(--rp-radius-sm); background: #FFFFFF; }
:is(.rp-site, .editor-styles-wrapper) .rp-price-card h3 { font-size: 25px; }
:is(.rp-site, .editor-styles-wrapper) .rp-price-card p { font-size: 16px; }
:is(.rp-site, .editor-styles-wrapper) .rp-price-card ul { margin-bottom: 28px; padding-left: 20px; font-size: 16px; }
:is(.rp-site, .editor-styles-wrapper) .rp-price-card li + li { margin-top: 10px; }
:is(.rp-site, .editor-styles-wrapper) .rp-price-card .rp-actions { margin-top: auto; }
:is(.rp-site, .editor-styles-wrapper) .rp-price-value { margin-block: 20px; color: var(--rp-navy); font-size: 42px; font-weight: 650; letter-spacing: -.04em; line-height: 1.2; }
:is(.rp-site, .editor-styles-wrapper) .rp-price-value small { display: block; margin-top: 8px; color: var(--rp-muted); font-size: 14px; font-weight: 400; letter-spacing: 0; }
:is(.rp-site, .editor-styles-wrapper) .rp-price-principles { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 32px; }
:is(.rp-site, .editor-styles-wrapper) .rp-price-principles > * { border-top: 1px solid var(--rp-border); padding-top: 22px; }

/* 14 · FAQ ---------------------------------------------------------------- */
:is(.rp-site, .editor-styles-wrapper) .rp-faq { max-width: 860px; }
:is(.rp-site, .editor-styles-wrapper) .rp-faq details,
:is(.rp-site, .editor-styles-wrapper) details.rp-faq-item { margin: 0; border-bottom: 1px solid var(--rp-border); }
:is(.rp-site, .editor-styles-wrapper) .rp-faq details:first-child,
:is(.rp-site, .editor-styles-wrapper) details.rp-faq-item:first-child { border-top: 1px solid var(--rp-border); }
:is(.rp-site, .editor-styles-wrapper) .rp-faq summary,
:is(.rp-site, .editor-styles-wrapper) details.rp-faq-item summary {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
  padding: 22px 0;
  color: var(--rp-navy);
  font-size: 18px;
  font-weight: 650;
  line-height: 1.5;
  cursor: pointer;
  list-style: none;
}
:is(.rp-site, .editor-styles-wrapper) .rp-faq summary::-webkit-details-marker,
:is(.rp-site, .editor-styles-wrapper) details.rp-faq-item summary::-webkit-details-marker { display: none; }
:is(.rp-site, .editor-styles-wrapper) .rp-faq summary::marker,
:is(.rp-site, .editor-styles-wrapper) details.rp-faq-item summary::marker { content: ""; }
:is(.rp-site, .editor-styles-wrapper) .rp-faq summary::after,
:is(.rp-site, .editor-styles-wrapper) details.rp-faq-item summary::after { content: "+"; flex: 0 0 24px; color: var(--rp-blue); font-size: 26px; font-weight: 400; line-height: 1; text-align: center; }
:is(.rp-site, .editor-styles-wrapper) .rp-faq details[open] summary::after,
:is(.rp-site, .editor-styles-wrapper) details.rp-faq-item[open] summary::after { content: "\2212"; }
:is(.rp-site, .editor-styles-wrapper) .rp-faq details > :not(summary),
:is(.rp-site, .editor-styles-wrapper) details.rp-faq-item > :not(summary) { max-width: 760px; padding-right: 40px; font-size: 17px; }
:is(.rp-site, .editor-styles-wrapper) .rp-faq details > :last-child,
:is(.rp-site, .editor-styles-wrapper) details.rp-faq-item > :last-child { margin-bottom: 24px; }
:is(.rp-site, .editor-styles-wrapper) .rp-faq summary:hover { color: var(--rp-blue); }
:is(.rp-site, .editor-styles-wrapper) .rp-faq--full { max-width: 960px; }

/* 15 · ABSCHLUSS / CTA ---------------------------------------------------- */
:is(.rp-site, .editor-styles-wrapper) .rp-final-cta { margin: 0; padding-block: clamp(64px, 7vw, 96px); background: var(--rp-navy); color: #FFFFFF; }
:is(.rp-site, .editor-styles-wrapper) .rp-final-cta h2 { max-width: 780px; color: #FFFFFF; }
:is(.rp-site, .editor-styles-wrapper) .rp-final-cta p { max-width: 740px; color: #E3EAF1; }
:is(.rp-site, .editor-styles-wrapper) .rp-final-cta .rp-eyebrow { color: #B4D1EE; }
:is(.rp-site, .editor-styles-wrapper) .rp-final-cta .rp-actions { margin-top: 28px; }
:is(.rp-site, .editor-styles-wrapper) .rp-final-cta .rp-cta-primary > .wp-block-button__link,
:is(.rp-site, .editor-styles-wrapper) .rp-final-cta a.rp-cta-primary { background: #FFFFFF; border-color: #FFFFFF; color: var(--rp-navy); }
:is(.rp-site, .editor-styles-wrapper) .rp-final-cta .rp-cta-primary > .wp-block-button__link:hover,
:is(.rp-site, .editor-styles-wrapper) .rp-final-cta a.rp-cta-primary:hover { background: #E8F0F7; border-color: #E8F0F7; }
:is(.rp-site, .editor-styles-wrapper) .rp-final-cta :where(a, button):focus-visible { outline-color: #FFFFFF; }

/* 16 · FORMULARE ---------------------------------------------------------- */
:is(.rp-site, .editor-styles-wrapper) .rp-form { max-width: 760px; }
:is(.rp-site, .editor-styles-wrapper) .rp-form-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px; }
:is(.rp-site, .editor-styles-wrapper) .rp-form-field { margin-bottom: 24px; }
:is(.rp-site, .editor-styles-wrapper) .rp-form label { display: block; margin-bottom: 9px; color: var(--rp-navy); font-size: 16px; font-weight: 600; }
:is(.rp-site, .editor-styles-wrapper) .rp-form :where(input:not([type="checkbox"]):not([type="radio"]):not([type="submit"]), textarea, select) {
  display: block;
  width: 100%;
  min-height: 50px;
  padding: 12px 14px;
  color: var(--rp-text);
  background: #FFFFFF;
  border: 1px solid #A9B7C5;
  border-radius: var(--rp-radius-sm);
  font-family: var(--rp-font);
  font-size: 16px;
  line-height: 1.5;
}
:is(.rp-site, .editor-styles-wrapper) .rp-form textarea { min-height: 140px; resize: vertical; }
:is(.rp-site, .editor-styles-wrapper) .rp-form input[type="checkbox"] { width: 20px; height: 20px; accent-color: var(--rp-blue); }
:is(.rp-site, .editor-styles-wrapper) .rp-form .rp-field-help { margin-top: 7px; color: var(--rp-muted); font-size: 14px; }
:is(.rp-site, .editor-styles-wrapper) .rp-form-notice { padding: 20px 24px; border-left: 3px solid var(--rp-blue); background: var(--rp-bg); }
:is(.rp-site, .editor-styles-wrapper) .rp-form-success { border-left-color: var(--rp-trust); }
:is(.rp-site, .editor-styles-wrapper) .rp-form-error { color: #7D2626; border-left-color: #7D2626; }

/* 17 · FOOTER ------------------------------------------------------------- */
:is(.rp-site, .editor-styles-wrapper) .rp-footer { margin-block: 0; padding: 64px 0 24px; background: var(--rp-navy); color: #DAE4ED; border-top: 1px solid #3F5A74; }
:is(.rp-site, .editor-styles-wrapper) .rp-footer-grid { display: grid; grid-template-columns: 1.5fr 1fr 1fr .8fr; gap: 40px; }
:is(.rp-site, .editor-styles-wrapper) .rp-footer h2,
:is(.rp-site, .editor-styles-wrapper) .rp-footer h3,
:is(.rp-site, .editor-styles-wrapper) .rp-footer h4 { color: #FFFFFF; font-size: 16px; font-weight: 650; letter-spacing: 0; margin-bottom: 22px; }
:is(.rp-site, .editor-styles-wrapper) .rp-footer p { max-width: 290px; font-size: 14px; line-height: 1.75; }
:is(.rp-site, .editor-styles-wrapper) .rp-footer .rp-brand { margin-bottom: 20px; color: #FFFFFF; }
:is(.rp-site, .editor-styles-wrapper) .rp-footer .rp-brand img { width: 40px; height: 40px; }
:is(.rp-site, .editor-styles-wrapper) .rp-footer .rp-brand-name { font-size: 20px; }
:is(.rp-site, .editor-styles-wrapper) .rp-footer ul { margin: 0; padding: 0; list-style: none; }
:is(.rp-site, .editor-styles-wrapper) .rp-footer li { margin: 0 0 8px; line-height: 1.55; }
:is(.rp-site, .editor-styles-wrapper) .rp-footer a { display: inline-block; padding-block: 4px; color: #DAE4ED; font-size: 14px; text-decoration: none; }
:is(.rp-site, .editor-styles-wrapper) .rp-footer a:hover { color: #FFFFFF; text-decoration: underline; text-underline-offset: 4px; }
:is(.rp-site, .editor-styles-wrapper) .rp-footer-bottom { display: flex; justify-content: space-between; align-items: flex-start; flex-wrap: wrap; gap: 12px 24px; margin-top: 46px; padding-top: 24px; border-top: 1px solid #3F5A74; }
:is(.rp-site, .editor-styles-wrapper) .rp-footer-bottom p { max-width: none; margin: 0; font-size: 12px; }
:is(.rp-site, .editor-styles-wrapper) .rp-footer-bottom a { font-size: 12px; }
:is(.rp-site, .editor-styles-wrapper) .rp-footer .wp-block-navigation__container { display: block; }

/* 18 · MOBILE NAVIGATION -------------------------------------------------- */
@media (min-width: 1101px) {
  :is(.rp-site, .editor-styles-wrapper) .rp-navigation .wp-block-navigation__responsive-container-open { display: none; }
  :is(.rp-site, .editor-styles-wrapper) .rp-navigation .wp-block-navigation__responsive-container:not(.is-menu-open) { display: block; position: relative; }
}
@media (max-width: 1100px) {
  :is(.rp-site, .editor-styles-wrapper) .rp-header-inner { gap: 20px; }
  :is(.rp-site, .editor-styles-wrapper) .rp-header-inner > .wp-block-buttons { display: none; }
  :is(.rp-site, .editor-styles-wrapper) .rp-navigation .wp-block-navigation__responsive-container:not(.is-menu-open) { display: none; }
  :is(.rp-site, .editor-styles-wrapper) .rp-navigation .wp-block-navigation__responsive-container-open { display: flex; align-items: center; justify-content: center; width: 44px; height: 44px; color: var(--rp-navy); }
  :is(.rp-site, .editor-styles-wrapper) .rp-navigation .wp-block-navigation__responsive-container.is-menu-open {
    position: fixed;
    inset: 0;
    z-index: 100000;
    display: flex;
    padding: 80px 24px 36px;
    color: var(--rp-navy);
    background: #FFFFFF;
    overflow-y: auto;
  }
  :is(.rp-site, .editor-styles-wrapper) .rp-navigation .wp-block-navigation__responsive-close,
  :is(.rp-site, .editor-styles-wrapper) .rp-navigation .wp-block-navigation__responsive-dialog { width: 100%; max-width: 680px; margin-inline: auto; }
  :is(.rp-site, .editor-styles-wrapper) .rp-navigation .wp-block-navigation__responsive-container-close { top: -58px; right: 0; display: flex; align-items: center; justify-content: center; width: 44px; height: 44px; }
  :is(.rp-site, .editor-styles-wrapper) .rp-navigation .wp-block-navigation__responsive-container-content { padding-top: 0; align-items: stretch; }
  :is(.rp-site, .editor-styles-wrapper) .rp-navigation .wp-block-navigation__container { width: 100%; align-items: stretch; gap: 0; }
  :is(.rp-site, .editor-styles-wrapper) .rp-navigation .is-menu-open .wp-block-navigation__container { flex-direction: column; }
  :is(.rp-site, .editor-styles-wrapper) .rp-navigation .is-menu-open .wp-block-navigation-item { align-items: stretch; width: 100%; }
  :is(.rp-site, .editor-styles-wrapper) .rp-navigation .is-menu-open .wp-block-navigation-item__content { padding: 14px 0; font-size: 18px; }
  :is(.rp-site, .editor-styles-wrapper) .rp-navigation .is-menu-open .wp-block-navigation__submenu-container {
    min-width: 0;
    width: 100%;
    margin-bottom: 12px;
    padding: 4px 0 6px 20px;
    border: 0;
    border-left: 1px solid var(--rp-border);
    border-radius: 0;
    box-shadow: none;
  }
  :is(.rp-site, .editor-styles-wrapper) .rp-navigation .is-menu-open .wp-block-navigation__submenu-container .wp-block-navigation-item__content { padding: 10px 8px; font-size: 16px; }
  :is(.rp-site, .editor-styles-wrapper) .rp-navigation .is-menu-open .rp-nav-cta { margin-top: 24px; }
  :is(.rp-site, .editor-styles-wrapper) .rp-navigation .is-menu-open .rp-nav-cta > .wp-block-navigation-item__content { min-height: 52px; padding: 15px 20px; color: #FFFFFF; }
  :is(.rp-site, .editor-styles-wrapper) .rp-nav-toggle { display: inline-flex; align-items: center; justify-content: center; width: 44px; height: 44px; padding: 8px; color: var(--rp-navy); background: #FFFFFF; border: 1px solid var(--rp-border); border-radius: var(--rp-radius-sm); cursor: pointer; }
  :is(.rp-site, .editor-styles-wrapper) .rp-navigation > .rp-menu { display: none; }
  :is(.rp-site, .editor-styles-wrapper) .rp-navigation.rp-is-open > .rp-menu { position: absolute; inset: 100% 0 auto; display: flex; flex-direction: column; align-items: stretch; gap: 0; padding: 24px var(--rp-gutter) 32px; background: #FFFFFF; border-bottom: 1px solid var(--rp-border); max-height: calc(100dvh - var(--rp-header-height)); overflow-y: auto; }
  :is(.rp-site, .editor-styles-wrapper) .rp-navigation.rp-is-open .rp-menu .sub-menu { position: static; width: 100%; min-width: 0; padding: 4px 0 4px 20px; border: 0; border-left: 1px solid var(--rp-border); border-radius: 0; box-shadow: none; }
  :is(.rp-site, .editor-styles-wrapper) .rp-navigation.rp-is-open .rp-menu > li > a { min-height: 52px; }
  :is(.rp-site, .editor-styles-wrapper) .rp-process { grid-template-columns: repeat(3, minmax(0, 1fr)); row-gap: 36px; }
}

/* 19 · RESPONSIVE BREAKPOINTS -------------------------------------------- */
@media (max-width: 900px) {
  :is(.rp-site, .editor-styles-wrapper) .rp-service-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  :is(.rp-site, .editor-styles-wrapper) .rp-split { grid-template-columns: 1fr; gap: 40px; }
  :is(.rp-site, .editor-styles-wrapper) .rp-hero__grid:has(.rp-image--hero img[src]:not([src=""])) { grid-template-columns: 1fr 1fr; gap: 32px; }
  :is(.rp-site, .editor-styles-wrapper) .rp-hero__grid:has(.rp-image--hero img[src]:not([src=""])) h1 { font-size: 42px; }
  :is(.rp-site, .editor-styles-wrapper) .rp-footer-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 36px 48px; }
  :is(.rp-site, .editor-styles-wrapper) .rp-price-grid { grid-template-columns: 1fr; max-width: 760px; }
  :is(.rp-site, .editor-styles-wrapper) .rp-price-principles { gap: 22px; }
  :is(.rp-site, .editor-styles-wrapper) .rp-trust-grid { gap: 16px; }
  :is(.rp-site, .editor-styles-wrapper) .rp-trust-item { padding-left: 14px; }
  :is(.rp-site, .editor-styles-wrapper) .rp-trust-item strong { font-size: 14px; }
  :is(.rp-site, .editor-styles-wrapper) .rp-team-grid { gap: 24px; }
}
@media (max-width: 782px) {
  :is(.rp-site, .editor-styles-wrapper).admin-bar .rp-header { top: 46px; }
}
@media (max-width: 640px) {
  :root { --rp-header-height: 72px; --rp-gutter: 20px; }
  :is(.rp-site, .editor-styles-wrapper) { font-size: 17px; }
  :is(.rp-site, .editor-styles-wrapper) .rp-header-inner { padding-block: 10px; }
  :is(.rp-site, .editor-styles-wrapper) .rp-brand img { width: 40px; height: 40px; }
  :is(.rp-site, .editor-styles-wrapper) .rp-brand :where(.wp-block-site-title, .rp-brand-name) { font-size: 19px; }
  :is(.rp-site, .editor-styles-wrapper) .rp-brand .rp-brand-tagline { font-size: 9px; }
  :is(.rp-site, .editor-styles-wrapper) .rp-hero { padding-block: 56px 60px; }
  :is(.rp-site, .editor-styles-wrapper) .rp-hero h1 { max-width: 18ch; font-size: clamp(37px, 8.4vw, 48px); }
  :is(.rp-site, .editor-styles-wrapper) .rp-hero .rp-eyebrow { margin-bottom: 22px; font-size: 11px; }
  :is(.rp-site, .editor-styles-wrapper) .rp-hero .rp-lead { font-size: 18px; }
  :is(.rp-site, .editor-styles-wrapper) .rp-hero .rp-actions { align-items: stretch; flex-direction: column; gap: 12px; }
  :is(.rp-site, .editor-styles-wrapper) .rp-hero .rp-actions > .wp-block-button,
  :is(.rp-site, .editor-styles-wrapper) .rp-hero .rp-actions > a { width: 100%; }
  :is(.rp-site, .editor-styles-wrapper) .rp-hero .rp-actions .wp-block-button__link { width: 100%; }
  :is(.rp-site, .editor-styles-wrapper) .rp-hero__grid:has(.rp-image--hero img[src]:not([src=""])) { grid-template-columns: 1fr; gap: 32px; }
  :is(.rp-site, .editor-styles-wrapper) .rp-hero__grid:has(.rp-image--hero img[src]:not([src=""])) h1 { font-size: clamp(37px, 8.4vw, 48px); }
  :is(.rp-site, .editor-styles-wrapper) .rp-hero-trust { display: block; margin-top: 26px; }
  :is(.rp-site, .editor-styles-wrapper) .rp-hero-trust li + li { margin-top: 10px; }
  :is(.rp-site, .editor-styles-wrapper) .rp-image--hero { width: 100%; max-width: 420px; justify-self: start; }
  :is(.rp-site, .editor-styles-wrapper) .rp-trust-bar { padding-block: 24px; }
  :is(.rp-site, .editor-styles-wrapper) .rp-trust-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 22px 18px; }
  :is(.rp-site, .editor-styles-wrapper) .rp-trust-item { border: 0; padding-left: 0; }
  :is(.rp-site, .editor-styles-wrapper) .rp-trust-item strong { font-size: 14px; }
  :is(.rp-site, .editor-styles-wrapper) .rp-trust-item p { font-size: 13px; }
  :is(.rp-site, .editor-styles-wrapper) .rp-section-heading { margin-bottom: 30px; }
  :is(.rp-site, .editor-styles-wrapper) .rp-section-heading h2 { font-size: 32px; }
  :is(.rp-site, .editor-styles-wrapper) .rp-service-grid { grid-template-columns: 1fr; gap: 14px; }
  :is(.rp-site, .editor-styles-wrapper) .rp-service-card { padding: 25px; }
  :is(.rp-site, .editor-styles-wrapper) .rp-service-card h3 { font-size: 24px; }
  :is(.rp-site, .editor-styles-wrapper) .rp-service-number { margin-bottom: 18px; }
  :is(.rp-site, .editor-styles-wrapper) .rp-principles { grid-template-columns: 1fr; gap: 28px; }
  :is(.rp-site, .editor-styles-wrapper) .rp-process { display: block; }
  :is(.rp-site, .editor-styles-wrapper) .rp-process-step { display: grid; grid-template-columns: 36px 1fr; column-gap: 16px; padding-block: 22px; }
  :is(.rp-site, .editor-styles-wrapper) .rp-process-step .rp-step-number { grid-row: span 3; margin: 1px 0 0; }
  :is(.rp-site, .editor-styles-wrapper) .rp-process-step h3 { font-size: 23px; margin-bottom: 10px; }
  :is(.rp-site, .editor-styles-wrapper) .rp-process-step p { grid-column: 2; margin-bottom: 0; font-size: 16px; }
  :is(.rp-site, .editor-styles-wrapper) .rp-process-step > .wp-block-group { grid-column: 2; }
  :is(.rp-site, .editor-styles-wrapper) .rp-process--detailed .rp-process-step { grid-template-columns: 36px 1fr; gap: 12px 16px; }
  :is(.rp-site, .editor-styles-wrapper) .rp-process--detailed .rp-process-step h3 { font-size: 24px; }
  :is(.rp-site, .editor-styles-wrapper) .rp-team-grid { grid-template-columns: 1fr; gap: 36px; }
  :is(.rp-site, .editor-styles-wrapper) .rp-team-card { padding-top: 24px; }
  :is(.rp-site, .editor-styles-wrapper) .rp-team-card--profile:has(.rp-image img[src]:not([src=""])) { display: flex; }
  :is(.rp-site, .editor-styles-wrapper) .rp-price-principles { grid-template-columns: 1fr; gap: 24px; }
  :is(.rp-site, .editor-styles-wrapper) .rp-price-card { padding: 26px; }
  :is(.rp-site, .editor-styles-wrapper) .rp-faq summary,
  :is(.rp-site, .editor-styles-wrapper) details.rp-faq-item summary { gap: 16px; padding-block: 20px; font-size: 17px; }
  :is(.rp-site, .editor-styles-wrapper) .rp-faq details > :not(summary),
  :is(.rp-site, .editor-styles-wrapper) details.rp-faq-item > :not(summary) { padding-right: 12px; font-size: 16px; }
  :is(.rp-site, .editor-styles-wrapper) .rp-final-cta h2 { font-size: 33px; }
  :is(.rp-site, .editor-styles-wrapper) .rp-final-cta .wp-block-button,
  :is(.rp-site, .editor-styles-wrapper) .rp-final-cta .wp-block-button__link { width: 100%; }
  :is(.rp-site, .editor-styles-wrapper) .rp-form-grid { grid-template-columns: 1fr; gap: 0; }
  :is(.rp-site, .editor-styles-wrapper) .rp-footer { padding-top: 48px; }
  :is(.rp-site, .editor-styles-wrapper) .rp-footer-grid { gap: 30px 20px; }
  :is(.rp-site, .editor-styles-wrapper) .rp-footer-grid > :first-child { grid-column: 1 / -1; }
  :is(.rp-site, .editor-styles-wrapper) .rp-footer h3 { margin-bottom: 16px; }
  :is(.rp-site, .editor-styles-wrapper) .rp-footer a { padding-block: 7px; }
  :is(.rp-site, .editor-styles-wrapper) .rp-footer-bottom { margin-top: 30px; }
}
@media (max-width: 600px) {
  :is(.rp-site, .editor-styles-wrapper).admin-bar .rp-header { top: 0; }
}
@media (prefers-reduced-motion: reduce) {
  :is(.rp-site, .editor-styles-wrapper) *, :is(.rp-site, .editor-styles-wrapper) *::before, :is(.rp-site, .editor-styles-wrapper) *::after { animation: none !important; transition: none !important; scroll-behavior: auto !important; }
}
@media print {
  :is(.rp-site, .editor-styles-wrapper) .rp-header, :is(.rp-site, .editor-styles-wrapper) .rp-footer, :is(.rp-site, .editor-styles-wrapper) .rp-actions { display: none; }
  :is(.rp-site, .editor-styles-wrapper) .rp-section, :is(.rp-site, .editor-styles-wrapper) .rp-hero { padding-block: 24px; }
  :is(.rp-site, .editor-styles-wrapper) .rp-section--dark, :is(.rp-site, .editor-styles-wrapper) .rp-final-cta { color: #000000; background: #FFFFFF; }
  :is(.rp-site, .editor-styles-wrapper) .rp-section--dark *, :is(.rp-site, .editor-styles-wrapper) .rp-final-cta * { color: #000000; }
  :is(.rp-site, .editor-styles-wrapper) .rp-container { width: 100%; }
}

:is(.rp-site, .editor-styles-wrapper) .rp-preview-notice{border-left:3px solid var(--rp-blue);padding:20px 24px;background:var(--rp-bg);font-size:16px;max-width:740px}:is(.rp-site, .editor-styles-wrapper) .rp-hero-accent{color:var(--rp-blue)}

/* Native Gutenberg-Untermenüs: derselbe redaktionell pflegbare Navigationsblock.
 * WordPress blendet Untermenüs im mobilen Overlay grundsätzlich auf. Diese
 * Regeln verwenden stattdessen das vorhandene native aria-expanded-Signal.
 * Keine Kopie des Menüs und kein zusätzliches mobiles Navigationssystem.
 */
@media (max-width: 1100px) {
  :is(.rp-site, .editor-styles-wrapper) .rp-navigation .is-menu-open .wp-block-navigation-item.has-child {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 44px;
    grid-template-rows: auto auto;
    align-items: center;
    column-gap: 12px;
    width: 100%;
  }
  :is(.rp-site, .editor-styles-wrapper) .rp-navigation .is-menu-open .has-child > a.wp-block-navigation-item__content {
    grid-column: 1;
    grid-row: 1;
    min-width: 0;
  }
  :is(.rp-site, .editor-styles-wrapper) .rp-navigation .is-menu-open .has-child > button.wp-block-navigation-submenu__toggle {
    display: inline-flex !important;
    grid-column: 2;
    grid-row: 1;
    align-items: center;
    justify-content: center;
    width: 44px;
    min-width: 44px;
    height: 44px;
    margin: 0;
    padding: 10px;
    color: var(--rp-navy);
    background: transparent;
    border: 1px solid var(--rp-border);
    border-radius: var(--rp-radius-sm);
    cursor: pointer;
  }
  :is(.rp-site, .editor-styles-wrapper) .rp-navigation .is-menu-open .has-child > button.wp-block-navigation-submenu__toggle svg {
    width: 18px;
    height: 18px;
    stroke: currentColor;
  }
  :is(.rp-site, .editor-styles-wrapper) .rp-navigation .is-menu-open .has-child > .wp-block-navigation__submenu-container {
    grid-column: 1 / -1;
    grid-row: 2;
    position: static;
    min-width: 0;
    width: 100%;
  }
  :is(.rp-site, .editor-styles-wrapper) .rp-navigation .is-menu-open .has-child > button.wp-block-navigation-submenu__toggle[aria-expanded="false"] ~ .wp-block-navigation__submenu-container {
    display: none !important;
  }
  :is(.rp-site, .editor-styles-wrapper) .rp-navigation .is-menu-open .has-child > button.wp-block-navigation-submenu__toggle[aria-expanded="true"] ~ .wp-block-navigation__submenu-container {
    display: flex;
    flex-direction: column;
    opacity: 1;
    visibility: visible;
    height: auto;
    overflow: visible;
  }
}

/* navigation.js synchronisiert dieses Offen/Geschlossen-Signal mit ARIA.
 * Dadurch kann Core ein bewusst geschlossenes Untermenü nicht durch seinen
 * automatischen Overlay- oder Hover-Zustand erneut sichtbar machen.
 */
:is(.rp-site, .editor-styles-wrapper) .rp-navigation .wp-block-navigation-item[data-rp-submenu-open="false"] > .wp-block-navigation__submenu-container {
  display: none !important;
}
:is(.rp-site, .editor-styles-wrapper) .rp-navigation .wp-block-navigation-item[data-rp-submenu-open="true"] > .wp-block-navigation__submenu-container {
  display: flex !important;
  visibility: visible !important;
  opacity: 1 !important;
  width: auto;
  height: auto;
  overflow: visible;
}

/* The native overlay adds padding at a higher specificity; retain our rhythm. */
:is(.rp-site, .editor-styles-wrapper) nav.rp-navigation .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content { padding: 0; color: var(--rp-navy); }
:is(.rp-site, .editor-styles-wrapper) nav.rp-navigation .wp-block-navigation__responsive-container.is-menu-open a { color: var(--rp-navy); }
:is(.rp-site, .editor-styles-wrapper) nav.rp-navigation .wp-block-navigation__responsive-container.is-menu-open .rp-nav-cta a { color: #fff; }
