/* rdgb 1.0.16 */
@font-face {
  font-family: 'Tinos';
  src: url('https://www.pittellis.de/wp-content/plugins/rd-grid-builder/assets/fonts/tinos/tinos-v25-latin-regular.woff2') format('woff2');
  font-weight: 400;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: 'Tinos';
  src: url('https://www.pittellis.de/wp-content/plugins/rd-grid-builder/assets/fonts/tinos/tinos-v25-latin-700.woff2') format('woff2');
  font-weight: 700;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: 'Roboto';
  src: url('https://www.pittellis.de/wp-content/plugins/rd-grid-builder/assets/fonts/roboto/roboto-v51-latin-100.woff2') format('woff2');
  font-weight: 100;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: 'Roboto';
  src: url('https://www.pittellis.de/wp-content/plugins/rd-grid-builder/assets/fonts/roboto/roboto-v51-latin-200.woff2') format('woff2');
  font-weight: 200;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: 'Roboto';
  src: url('https://www.pittellis.de/wp-content/plugins/rd-grid-builder/assets/fonts/roboto/roboto-v51-latin-300.woff2') format('woff2');
  font-weight: 300;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: 'Roboto';
  src: url('https://www.pittellis.de/wp-content/plugins/rd-grid-builder/assets/fonts/roboto/roboto-v51-latin-regular.woff2') format('woff2');
  font-weight: 400;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: 'Roboto';
  src: url('https://www.pittellis.de/wp-content/plugins/rd-grid-builder/assets/fonts/roboto/roboto-v51-latin-500.woff2') format('woff2');
  font-weight: 500;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: 'Roboto';
  src: url('https://www.pittellis.de/wp-content/plugins/rd-grid-builder/assets/fonts/roboto/roboto-v51-latin-600.woff2') format('woff2');
  font-weight: 600;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: 'Roboto';
  src: url('https://www.pittellis.de/wp-content/plugins/rd-grid-builder/assets/fonts/roboto/roboto-v51-latin-700.woff2') format('woff2');
  font-weight: 700;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: 'Roboto';
  src: url('https://www.pittellis.de/wp-content/plugins/rd-grid-builder/assets/fonts/roboto/roboto-v51-latin-800.woff2') format('woff2');
  font-weight: 800;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: 'Roboto';
  src: url('https://www.pittellis.de/wp-content/plugins/rd-grid-builder/assets/fonts/roboto/roboto-v51-latin-900.woff2') format('woff2');
  font-weight: 900;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: 'Abhaya';
  src: url('https://www.pittellis.de/wp-content/plugins/rd-grid-builder/assets/fonts/abhaya/abhaya-libre-v18-latin-600.woff2') format('woff2');
  font-weight: 400;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: 'Abhaya';
  src: url('https://www.pittellis.de/wp-content/plugins/rd-grid-builder/assets/fonts/abhaya/abhaya-libre-v18-latin-700.woff2') format('woff2');
  font-weight: 400;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: 'Abhaya';
  src: url('https://www.pittellis.de/wp-content/plugins/rd-grid-builder/assets/fonts/abhaya/abhaya-libre-v18-latin-500.woff2') format('woff2');
  font-weight: 400;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: 'Abhaya';
  src: url('https://www.pittellis.de/wp-content/plugins/rd-grid-builder/assets/fonts/abhaya/abhaya-libre-v18-latin-regular.woff2') format('woff2');
  font-weight: 400;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: 'Abhaya';
  src: url('https://www.pittellis.de/wp-content/plugins/rd-grid-builder/assets/fonts/abhaya/abhaya-libre-v18-latin-800.woff2') format('woff2');
  font-weight: 400;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: 'Birthstone Bounce';
  src: url('https://www.pittellis.de/wp-content/plugins/rd-grid-builder/assets/fonts/birthstone-bounce/birthstone-bounce-v13-latin-regular.woff2') format('woff2');
  font-weight: 400;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: 'Birthstone Bounce';
  src: url('https://www.pittellis.de/wp-content/plugins/rd-grid-builder/assets/fonts/birthstone-bounce/birthstone-bounce-v13-latin-500.woff2') format('woff2');
  font-weight: 500;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: 'Fredericka The Great';
  src: url('https://www.pittellis.de/wp-content/plugins/rd-grid-builder/assets/fonts/fredericka-the-great/FrederickatheGreat-Regular.ttf') format('truetype');
  font-weight: 400;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: 'Instrument';
  src: url('https://www.pittellis.de/wp-content/plugins/rd-grid-builder/assets/fonts/instrument/instrument-serif-v5-latin-italic.woff2') format('woff2');
  font-weight: 400;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: 'Inter';
  src: url('https://www.pittellis.de/wp-content/plugins/rd-grid-builder/assets/fonts/inter/inter-v20-latin-300.woff2') format('woff2');
  font-weight: 300;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: 'Inter';
  src: url('https://www.pittellis.de/wp-content/plugins/rd-grid-builder/assets/fonts/inter/inter-v20-latin-regular.woff2') format('woff2');
  font-weight: 400;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: 'Inter';
  src: url('https://www.pittellis.de/wp-content/plugins/rd-grid-builder/assets/fonts/inter/inter-v20-latin-700.woff2') format('woff2');
  font-weight: 700;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: 'Inter';
  src: url('https://www.pittellis.de/wp-content/plugins/rd-grid-builder/assets/fonts/inter/inter-v20-latin-800.woff2') format('woff2');
  font-weight: 800;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: 'Inter';
  src: url('https://www.pittellis.de/wp-content/plugins/rd-grid-builder/assets/fonts/inter/inter-v20-latin-900.woff2') format('woff2');
  font-weight: 900;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: 'Josefin Sans';
  src: url('https://www.pittellis.de/wp-content/plugins/rd-grid-builder/assets/fonts/josefin-sans/josefin-sans-v34-latin-100.woff2') format('woff2');
  font-weight: 100;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: 'Josefin Sans';
  src: url('https://www.pittellis.de/wp-content/plugins/rd-grid-builder/assets/fonts/josefin-sans/josefin-sans-v34-latin-200.woff2') format('woff2');
  font-weight: 200;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: 'Josefin Sans';
  src: url('https://www.pittellis.de/wp-content/plugins/rd-grid-builder/assets/fonts/josefin-sans/josefin-sans-v34-latin-300.woff2') format('woff2');
  font-weight: 300;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: 'Josefin Sans';
  src: url('https://www.pittellis.de/wp-content/plugins/rd-grid-builder/assets/fonts/josefin-sans/josefin-sans-v34-latin-regular.woff2') format('woff2');
  font-weight: 400;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: 'Josefin Sans';
  src: url('https://www.pittellis.de/wp-content/plugins/rd-grid-builder/assets/fonts/josefin-sans/josefin-sans-v34-latin-500.woff2') format('woff2');
  font-weight: 500;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: 'Josefin Sans';
  src: url('https://www.pittellis.de/wp-content/plugins/rd-grid-builder/assets/fonts/josefin-sans/josefin-sans-v34-latin-600.woff2') format('woff2');
  font-weight: 600;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: 'Josefin Sans';
  src: url('https://www.pittellis.de/wp-content/plugins/rd-grid-builder/assets/fonts/josefin-sans/josefin-sans-v34-latin-700.woff2') format('woff2');
  font-weight: 700;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: 'Kantumruy';
  src: url('https://www.pittellis.de/wp-content/plugins/rd-grid-builder/assets/fonts/kantumruy/kantumruy-pro-v12-latin-300.woff2') format('woff2');
  font-weight: 400;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: 'Kantumruy';
  src: url('https://www.pittellis.de/wp-content/plugins/rd-grid-builder/assets/fonts/kantumruy/kantumruy-pro-v12-latin-200.woff2') format('woff2');
  font-weight: 400;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: 'Kantumruy';
  src: url('https://www.pittellis.de/wp-content/plugins/rd-grid-builder/assets/fonts/kantumruy/kantumruy-pro-v12-latin-500.woff2') format('woff2');
  font-weight: 400;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: 'Kantumruy';
  src: url('https://www.pittellis.de/wp-content/plugins/rd-grid-builder/assets/fonts/kantumruy/kantumruy-pro-v12-latin-regular.woff2') format('woff2');
  font-weight: 400;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: 'Kantumruy';
  src: url('https://www.pittellis.de/wp-content/plugins/rd-grid-builder/assets/fonts/kantumruy/kantumruy-pro-v12-latin-600.woff2') format('woff2');
  font-weight: 400;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: 'Kantumruy';
  src: url('https://www.pittellis.de/wp-content/plugins/rd-grid-builder/assets/fonts/kantumruy/kantumruy-pro-v12-latin-100.woff2') format('woff2');
  font-weight: 400;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: 'Kantumruy';
  src: url('https://www.pittellis.de/wp-content/plugins/rd-grid-builder/assets/fonts/kantumruy/kantumruy-pro-v12-latin-700.woff2') format('woff2');
  font-weight: 400;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: 'Marcellus';
  src: url('https://www.pittellis.de/wp-content/plugins/rd-grid-builder/assets/fonts/marcellus/marcellus-v14-latin-regular.woff2') format('woff2');
  font-weight: 400;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: 'Opensans';
  src: url('https://www.pittellis.de/wp-content/plugins/rd-grid-builder/assets/fonts/opensans/open-sans-v40-latin-800.woff2') format('woff2');
  font-weight: 400;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: 'Opensans';
  src: url('https://www.pittellis.de/wp-content/plugins/rd-grid-builder/assets/fonts/opensans/open-sans-v40-latin-600.woff2') format('woff2');
  font-weight: 400;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: 'Opensans';
  src: url('https://www.pittellis.de/wp-content/plugins/rd-grid-builder/assets/fonts/opensans/open-sans-v40-latin-700.woff2') format('woff2');
  font-weight: 400;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: 'Opensans';
  src: url('https://www.pittellis.de/wp-content/plugins/rd-grid-builder/assets/fonts/opensans/open-sans-v40-latin-regular.woff2') format('woff2');
  font-weight: 400;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: 'Opensans';
  src: url('https://www.pittellis.de/wp-content/plugins/rd-grid-builder/assets/fonts/opensans/open-sans-v40-latin-500.woff2') format('woff2');
  font-weight: 400;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: 'Opensans';
  src: url('https://www.pittellis.de/wp-content/plugins/rd-grid-builder/assets/fonts/opensans/open-sans-v40-latin-300.woff2') format('woff2');
  font-weight: 400;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: 'Phenomena';
  src: url('https://www.pittellis.de/wp-content/plugins/rd-grid-builder/assets/fonts/phenomena/Phenomena-Thin.woff') format('woff');
  font-weight: 100;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: 'Phenomena';
  src: url('https://www.pittellis.de/wp-content/plugins/rd-grid-builder/assets/fonts/phenomena/Phenomena-Thin.woff2') format('woff2');
  font-weight: 100;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: 'Phenomena';
  src: url('https://www.pittellis.de/wp-content/plugins/rd-grid-builder/assets/fonts/phenomena/Phenomena-ExtraLight.woff2') format('woff2');
  font-weight: 200;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: 'Phenomena';
  src: url('https://www.pittellis.de/wp-content/plugins/rd-grid-builder/assets/fonts/phenomena/Phenomena-ExtraLight.woff') format('woff');
  font-weight: 200;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: 'Phenomena';
  src: url('https://www.pittellis.de/wp-content/plugins/rd-grid-builder/assets/fonts/phenomena/Phenomena-Light.woff') format('woff');
  font-weight: 300;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: 'Phenomena';
  src: url('https://www.pittellis.de/wp-content/plugins/rd-grid-builder/assets/fonts/phenomena/Phenomena-Light.woff2') format('woff2');
  font-weight: 300;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: 'Phenomena';
  src: url('https://www.pittellis.de/wp-content/plugins/rd-grid-builder/assets/fonts/phenomena/Phenomena-Regular.woff') format('woff');
  font-weight: 400;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: 'Phenomena';
  src: url('https://www.pittellis.de/wp-content/plugins/rd-grid-builder/assets/fonts/phenomena/Phenomena-Regular.woff2') format('woff2');
  font-weight: 400;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: 'Phenomena';
  src: url('https://www.pittellis.de/wp-content/plugins/rd-grid-builder/assets/fonts/phenomena/Phenomena-Bold.woff') format('woff');
  font-weight: 700;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: 'Phenomena';
  src: url('https://www.pittellis.de/wp-content/plugins/rd-grid-builder/assets/fonts/phenomena/Phenomena-Bold.woff2') format('woff2');
  font-weight: 700;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: 'Phenomena';
  src: url('https://www.pittellis.de/wp-content/plugins/rd-grid-builder/assets/fonts/phenomena/Phenomena-ExtraBold.woff2') format('woff2');
  font-weight: 800;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: 'Phenomena';
  src: url('https://www.pittellis.de/wp-content/plugins/rd-grid-builder/assets/fonts/phenomena/Phenomena-ExtraBold.woff') format('woff');
  font-weight: 800;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: 'Phenomena';
  src: url('https://www.pittellis.de/wp-content/plugins/rd-grid-builder/assets/fonts/phenomena/Phenomena-Black.woff2') format('woff2');
  font-weight: 900;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: 'Phenomena';
  src: url('https://www.pittellis.de/wp-content/plugins/rd-grid-builder/assets/fonts/phenomena/Phenomena-Black.woff') format('woff');
  font-weight: 900;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: 'Quicksand';
  src: url('https://www.pittellis.de/wp-content/plugins/rd-grid-builder/assets/fonts/quicksand/quicksand-v31-latin-300.woff2') format('woff2');
  font-weight: 300;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: 'Quicksand';
  src: url('https://www.pittellis.de/wp-content/plugins/rd-grid-builder/assets/fonts/quicksand/quicksand-v31-latin-regular.woff2') format('woff2');
  font-weight: 400;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: 'Quicksand';
  src: url('https://www.pittellis.de/wp-content/plugins/rd-grid-builder/assets/fonts/quicksand/quicksand-v31-latin-500.woff2') format('woff2');
  font-weight: 500;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: 'Quicksand';
  src: url('https://www.pittellis.de/wp-content/plugins/rd-grid-builder/assets/fonts/quicksand/quicksand-v31-latin-600.woff2') format('woff2');
  font-weight: 600;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: 'Quicksand';
  src: url('https://www.pittellis.de/wp-content/plugins/rd-grid-builder/assets/fonts/quicksand/quicksand-v31-latin-700.woff2') format('woff2');
  font-weight: 700;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: 'Rethink';
  src: url('https://www.pittellis.de/wp-content/plugins/rd-grid-builder/assets/fonts/rethink/rethink-sans-v5-latin-regular.woff2') format('woff2');
  font-weight: 400;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: 'Rethink';
  src: url('https://www.pittellis.de/wp-content/plugins/rd-grid-builder/assets/fonts/rethink/rethink-sans-v5-latin-600.woff2') format('woff2');
  font-weight: 400;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: 'Rethink';
  src: url('https://www.pittellis.de/wp-content/plugins/rd-grid-builder/assets/fonts/rethink/rethink-sans-v5-latin-500.woff2') format('woff2');
  font-weight: 400;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: 'Rethink';
  src: url('https://www.pittellis.de/wp-content/plugins/rd-grid-builder/assets/fonts/rethink/rethink-sans-v5-latin-700.woff2') format('woff2');
  font-weight: 400;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: 'Rethink';
  src: url('https://www.pittellis.de/wp-content/plugins/rd-grid-builder/assets/fonts/rethink/rethink-sans-v5-latin-800.woff2') format('woff2');
  font-weight: 400;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: 'Whisper';
  src: url('https://www.pittellis.de/wp-content/plugins/rd-grid-builder/assets/fonts/whisper/whisper-v7-latin-regular.woff2') format('woff2');
  font-weight: 400;
  font-style: normal;
  font-display: swap;
}

:root {
	--rdgb-color-primary:#C4A581;
	--rdgb-color-secondary:#364153;
	--rdgb-color-accent:#C4A581;
	--rdgb-color-text:#1E2939;
	--rdgb-color-muted:#6b7280;
	--rdgb-color-bg-alt:#fcf8f4;
	--rdgb-color-selection-text:#ff0000;
	--rdgb-fs-display:clamp(2.5rem, 7vw, 5rem);
	--rdgb-fs-h1:clamp(1.875rem, 5vw, 4rem);
	--rdgb-fs-h2:clamp(1.5rem, 4vw, 3rem);
	--rdgb-fs-h3:clamp(1.25rem, 3vw, 1.75rem);
	--rdgb-fs-h4:clamp(1.125rem, 2.5vw, 1.375rem);
	--rdgb-fs-h5:1.125rem;
	--rdgb-fs-h6:0.875rem;
	--rdgb-fs-lead:clamp(1.125rem, 2vw, 1.375rem);
	--rdgb-fs-subheadline:1.3rem;
	--rdgb-fs-large:1.375rem;
	--rdgb-fs-medium:1.0625rem;
	--rdgb-fs-small:0.875rem;
	--rdgb-fs-body:1rem;
	--rdgb-heading-mb:0.5em;
	--rdgb-heading-lh:1.2;
	--rdgb-fw-h1:400;
	--rdgb-ff-h1:'Tinos';
	--rdgb-fst-h1:italic;
	--rdgb-fw-h2:500;
	--rdgb-ff-h2:'Tinos';
	--rdgb-fst-h2:italic;
	--rdgb-fw-h3:700;
	--rdgb-fw-h4:700;
	--rdgb-fw-h5:700;
	--rdgb-fw-h6:700;
	--rdgb-fw-display:700;
	--rdgb-ff-heading:inherit;
	--rdgb-fw-subheadline:300;
	--rdgb-ff-subheadline:'Tinos';
	--rdgb-fst-subheadline:italic;
	--rdgb-tt-subheadline:none;
	--rdgb-ff-lead:inherit;
	--rdgb-fw-lead:inherit;
	--rdgb-fw-body:300;
	--rdgb-ff-body:'Roboto';
	--rdgb-ff-button:inherit;
	--rdgb-btn-radius:24px;
	--rdgb-btn-px:24px;
	--rdgb-btn-py:12px;
	--rdgb-btn-fs:1rem;
	--rdgb-btn-fw:600;
	--revilodesign_maxWidth:1448px;
	--rdgb-section-px:clamp(1rem, 4vw, 3rem);
	--rdgb-grid-pt-default:80px;
	--rdgb-grid-pb-default:80px;
}
body:not(.wp-admin):not(.block-editor-iframe__body) ::selection {
	color:#ff0000 !important;
}
/* ============================================================
   RD GRID – Frontend + Editor Basis-Styles
   Variablen: --rdgb-* (eigene Defaults, Theme kann überschreiben)
   ============================================================ */

/* ── Outer Wrapper ──────────────────────────────────────────── */
.rd-grid {
	position        : relative;
	isolation       : isolate;
	width           : 100%;
	box-sizing      : border-box;

	/* Flex-Column ermöglicht echte vertikale Ausrichtung des Inhalts
	   (justify-content auf Flex-Container = vertikal, weil direction:column) */
	display         : flex;
	flex-direction  : column;
	justify-content : var(--rdgb-grid-valign, flex-start);

	padding-top    : var(--rdgb-grid-pt, var(--rdgb-grid-pt-default, 0));
	padding-bottom : var(--rdgb-grid-pb, var(--rdgb-grid-pb-default, 0));
	margin-top     : var(--rdgb-grid-mt, 0);
	margin-bottom  : var(--rdgb-grid-mb, 0);
	margin-left    : var(--rdgb-grid-ml, 0);
	margin-right   : var(--rdgb-grid-mr, 0);
}

/* ── Content Wrapper (max-width + zentriert) ────────────────── */
.rd-grid__content {
	max-width     : var(--rdgb-grid-maxw, var(--revilodesign_maxWidth, 1448px));
	margin-left   : var(--rdgb-grid-content-ml, auto);
	margin-right  : var(--rdgb-grid-content-mr, auto);
	/* pl/pr-Variablen haben Vorrang vor globalem section-px (Bug: fullWidth+noSidePad überschrieb User-Padding) */
	padding-left  : var(--rdgb-grid-pl, var(--rdgb-grid-section-px, 0));
	padding-right : var(--rdgb-grid-pr, var(--rdgb-grid-section-px, 0));
	box-sizing    : border-box;
	width         : 100%;
}

/* ── Inner Grid ─────────────────────────────────────────────── */
/* align-items / justify-items / grid-auto-flow kommen direkt als Inline-Styles
   aus render.php – nur gap bleibt als CSS-Var wegen responsiver Breakpoints */
.rd-grid__inner {
	display : grid;
	gap     : var(--rdgb-grid-gap, 0);
}

/* Wenn rd-grid__content flex:1 hat (rd-valign-stretch), muss rd-grid__inner
   height:100% erben damit Grid-Tracks die volle Höhe bekommen und
   align-self / justify-content auf Spalten-Ebene funktionieren */
.rd-grid.rd-valign-stretch > .rd-grid__content > .rd-grid__inner {
	height : 100%;
}

/* ── Layout-Varianten ───────────────────────────────────────── */
/* Neue Layouts: CSS hier ergänzen + Eintrag in LAYOUTS (editor.js) */
/* WICHTIG: > .rd-grid__content > .rd-grid__inner statt Descendant-Selektor!
   Sonst würden verschachtelte Kind-Grids das Layout des Eltern-Grids erben. */
.rd-layout-100         > .rd-grid__content > .rd-grid__inner { grid-template-columns: 1fr; }
.rd-layout-50-50       > .rd-grid__content > .rd-grid__inner { grid-template-columns: 1fr 1fr; }
.rd-layout-33-66       > .rd-grid__content > .rd-grid__inner { grid-template-columns: 1fr 2fr; }
.rd-layout-66-33       > .rd-grid__content > .rd-grid__inner { grid-template-columns: 2fr 1fr; }
.rd-layout-33-33-33    > .rd-grid__content > .rd-grid__inner { grid-template-columns: 1fr 1fr 1fr; }
.rd-layout-25-50-25    > .rd-grid__content > .rd-grid__inner { grid-template-columns: 1fr 2fr 1fr; }
.rd-layout-50-25-25    > .rd-grid__content > .rd-grid__inner { grid-template-columns: 2fr 1fr 1fr; }
.rd-layout-25-25-25-25 > .rd-grid__content > .rd-grid__inner { grid-template-columns: 1fr 1fr 1fr 1fr; }

/* ── Eckenrundung ───────────────────────────────────────────── */
.rd-grid.rd-radius-sm { border-radius: 6px;  overflow: hidden; }
.rd-grid.rd-radius-md { border-radius: 12px; overflow: hidden; }
.rd-grid.rd-radius-lg { border-radius: 24px; overflow: hidden; }
.rd-grid.rd-radius-xl { border-radius: 48px; overflow: hidden; }

/* ── Vertikale Ausrichtung: Stretch ─────────────────────────── */
/* justify-content: stretch ist kein gültiger flex-Wert →
   .rd-grid__content bekommt flex: 1 damit es die volle Höhe füllt */
.rd-grid.rd-valign-stretch > .rd-grid__content {
	flex : 1;
}

/* ── Mindesthöhe ────────────────────────────────────────────── */
.rd-grid.rd-minh-50vh  { min-height: 50vh; }
.rd-grid.rd-minh-60vh  { min-height: 60vh; }
.rd-grid.rd-minh-70vh  { min-height: 70vh; }
.rd-grid.rd-minh-80vh  { min-height: 80vh; }
.rd-grid.rd-minh-100vh { min-height: 100vh; }

/* ── Helles Farbschema (dunkle Hintergründe) ────────────────── */
.rd-grid.is-light-scheme,
.rd-grid.is-light-scheme h1,
.rd-grid.is-light-scheme h2,
.rd-grid.is-light-scheme h3,
.rd-grid.is-light-scheme h4,
.rd-grid.is-light-scheme h5,
.rd-grid.is-light-scheme h6 { color: #ffffff; }
.rd-grid.is-light-scheme p,
.rd-grid.is-light-scheme li  { color: rgba(255,255,255,0.9); }

/* ── Hintergrund-Elemente ───────────────────────────────────── */
.rd-grid__bg-image,
.rd-grid__bg-video {
	position       : absolute;
	inset          : 0;
	z-index        : -1;
	pointer-events : none;
	overflow       : hidden;
}

.rd-grid__bg-image { margin: 0; padding: 0; }

.rd-grid__bg-image .rdgb-bg-img,
.rd-grid__bg-image img,
.rd-grid__bg-image picture img {
	width           : 100%;
	height          : 100%;
	object-fit      : var(--rdgb-grid-bg-size, cover);
	object-position : center;
	display         : block;
}

/* picture-Support: <picture> muss full-size block sein wenn <img> ersetzt wird */
.rd-grid__bg-image picture {
	display : block;
	width   : 100%;
	height  : 100%;
}

.rd-grid__bg-video video {
	width      : 100%;
	height     : 100%;
	object-fit : var(--rdgb-grid-bg-size, cover);
}

/* ── Responsive: Tablet ≤768px ──────────────────────────────── */
@media (max-width: 768px) {
	.rd-layout-50-50       > .rd-grid__content > .rd-grid__inner,
	.rd-layout-33-66       > .rd-grid__content > .rd-grid__inner,
	.rd-layout-66-33       > .rd-grid__content > .rd-grid__inner,
	.rd-layout-33-33-33    > .rd-grid__content > .rd-grid__inner,
	.rd-layout-25-50-25    > .rd-grid__content > .rd-grid__inner,
	.rd-layout-50-25-25    > .rd-grid__content > .rd-grid__inner,
	.rd-layout-25-25-25-25 > .rd-grid__content > .rd-grid__inner {
		grid-template-columns: 1fr;
	}

	.rd-grid {
		padding-top    : var(--rdgb-grid-pt-768, var(--rdgb-grid-pt, 0));
		padding-bottom : var(--rdgb-grid-pb-768, var(--rdgb-grid-pb, 0));
		margin-top     : var(--rdgb-grid-mt-768, var(--rdgb-grid-mt, 0));
		margin-bottom  : var(--rdgb-grid-mb-768, var(--rdgb-grid-mb, 0));
		margin-left    : var(--rdgb-grid-ml-768, var(--rdgb-grid-ml, 0));
		margin-right   : var(--rdgb-grid-mr-768, var(--rdgb-grid-mr, 0));
	}
	.rd-grid__content {
		padding-left  : var(--rdgb-grid-pl-768, var(--rdgb-grid-pl, var(--rdgb-grid-section-px, 0)));
		padding-right : var(--rdgb-grid-pr-768, var(--rdgb-grid-pr, var(--rdgb-grid-section-px, 0)));
	}
	.rd-grid__inner {
		gap : var(--rdgb-grid-gap-768, var(--rdgb-grid-gap, 0));
	}
}

/* ── Responsive: Mobil ≤589px ───────────────────────────────── */
@media (max-width: 589px) {
	.rd-grid {
		padding-top    : var(--rdgb-grid-pt-589, var(--rdgb-grid-pt-768, var(--rdgb-grid-pt, 0)));
		padding-bottom : var(--rdgb-grid-pb-589, var(--rdgb-grid-pb-768, var(--rdgb-grid-pb, 0)));
		margin-top     : var(--rdgb-grid-mt-589, var(--rdgb-grid-mt-768, var(--rdgb-grid-mt, 0)));
		margin-bottom  : var(--rdgb-grid-mb-589, var(--rdgb-grid-mb-768, var(--rdgb-grid-mb, 0)));
		margin-left    : var(--rdgb-grid-ml-589, var(--rdgb-grid-ml-768, var(--rdgb-grid-ml, 0)));
		margin-right   : var(--rdgb-grid-mr-589, var(--rdgb-grid-mr-768, var(--rdgb-grid-mr, 0)));
	}
	.rd-grid__content {
		padding-left  : var(--rdgb-grid-pl-589, var(--rdgb-grid-pl-768, var(--rdgb-grid-pl, var(--rdgb-grid-section-px, 0))));
		padding-right : var(--rdgb-grid-pr-589, var(--rdgb-grid-pr-768, var(--rdgb-grid-pr, var(--rdgb-grid-section-px, 0))));
	}
	.rd-grid__inner {
		gap : var(--rdgb-grid-gap-589, var(--rdgb-grid-gap-768, var(--rdgb-grid-gap, 0)));
	}
}

/* ============================================================
   RD GRID COL – Frontend + Editor Basis-Styles
   ============================================================ */

.rd-grid-col {
	position       : relative;
	isolation      : isolate;
	box-sizing     : border-box;
	width          : 100%;
	min-width      : 0;
	display        : flex;
	flex-direction : column;

	padding-top    : var(--rdgb-col-pt, 0);
	padding-bottom : var(--rdgb-col-pb, 0);
	padding-left   : var(--rdgb-col-pl, 0);
	padding-right  : var(--rdgb-col-pr, 0);
}

/* Innerer Wrapper: füllt die volle Spalten-Höhe */
.rd-grid-col__inner {
	display        : flex;
	flex-direction : column;
	flex           : 1;
	width          : 100%;
	box-sizing     : border-box;
}

/* ── Vertikale Ausrichtung ──────────────────────────────────── */
/* Spalte streckt sich immer auf volle Grid-Track-Höhe (align-self:stretch = Default).
   justify-content auf __inner bestimmt wo der Inhalt innerhalb der Spalte sitzt. */
.rd-grid-col--valign-start  .rd-grid-col__inner { justify-content: flex-start; }
.rd-grid-col--valign-center .rd-grid-col__inner { justify-content: center; }
.rd-grid-col--valign-end    .rd-grid-col__inner { justify-content: flex-end; }

/* ── Text-Ausrichtung ───────────────────────────────────────── */
.rd-grid-col--align-center { text-align: center; }
.rd-grid-col--align-right  { text-align: right;  }

/* Explizit an Kind-Elemente weitergeben (überschreibt Theme-Resets) */
.rd-grid-col--align-center .rd-heading,
.rd-grid-col--align-center .rd-text    { text-align: center; }
.rd-grid-col--align-right  .rd-heading,
.rd-grid-col--align-right  .rd-text    { text-align: right;  }

/* ── Eckenrundung ───────────────────────────────────────────── */
.rd-grid-col--radius-sm { border-radius: 6px; }
.rd-grid-col--radius-md { border-radius: 12px; }
.rd-grid-col--radius-lg { border-radius: 24px; }
.rd-grid-col--radius-xl { border-radius: 48px; }

/* ── Overflow ───────────────────────────────────────────────── */
.rd-grid-col--overflow-hidden { overflow: hidden; }

/* ── Hintergrundbild ────────────────────────────────────────── */
.rd-grid-col__bg-image {
	position       : absolute;
	inset          : 0;
	z-index        : -1;
	pointer-events : none;
	overflow       : hidden;
	margin         : 0;
	padding        : 0;
}

.rd-grid-col__bg-image img,
.rd-grid-col__bg-image picture img {
	width           : 100%;
	height          : 100%;
	object-fit      : cover;
	object-position : center;
	display         : block;
}

.rd-grid-col__bg-image picture {
	display : block;
	width   : 100%;
	height  : 100%;
}

/* ── Spalten-Ausrichtung: Kinder-Elemente horizontal positionieren ── */
/*
   text-align auf .rd-grid-col betrifft nur Inline-Inhalte, nicht
   Block-Elemente wie Bilder, Überschriften oder Texte mit maxWidth.
   Deshalb werden Margins der Kind-Elemente explizit gesetzt.
*/

/* Heading: volle Breite erzwingen (verhindert Schrumpfen durch margin:auto im Flex-Column-Context) */
.rd-grid-col .rd-heading {
	width        : 100%;
	box-sizing   : border-box;
	margin-left  : var(--rdgb-heading-ml, 0)    !important;
	margin-right : var(--rdgb-heading-mr, auto) !important;
}
.rd-grid-col--align-center .rd-heading {
	margin-left  : var(--rdgb-heading-ml, auto) !important;
	margin-right : var(--rdgb-heading-mr, auto) !important;
}
.rd-grid-col--align-right .rd-heading {
	margin-left  : var(--rdgb-heading-ml, auto) !important;
	margin-right : var(--rdgb-heading-mr, 0)    !important;
}

/* Text: volle Breite erzwingen (gleicher Grund wie rd-heading) */
.rd-grid-col .rd-text {
	width        : 100%;
	box-sizing   : border-box;
	margin-left  : var(--rdgb-text-ml, 0)    !important;
	margin-right : var(--rdgb-text-mr, auto) !important;
}
.rd-grid-col--align-center .rd-text {
	margin-left  : var(--rdgb-text-ml, auto) !important;
	margin-right : var(--rdgb-text-mr, auto) !important;
}
.rd-grid-col--align-right .rd-text {
	margin-left  : var(--rdgb-text-ml, auto) !important;
	margin-right : var(--rdgb-text-mr, 0)    !important;
}

/* Bild: Standard in jeder Spalte → Links (kein Override wenn explizites Align gesetzt) */
.rd-grid-col .rd-image:not(.rd-image--align-center):not(.rd-image--align-right) {
	margin-left  : 0    !important;
	margin-right : auto !important;
}
/* Mitte – nur wenn kein explizites links/rechts */
.rd-grid-col--align-center .rd-image:not(.rd-image--align-left):not(.rd-image--align-right) {
	margin-left  : auto !important;
	margin-right : auto !important;
}
/* Rechts – nur wenn kein explizites links/mitte */
.rd-grid-col--align-right .rd-image:not(.rd-image--align-left):not(.rd-image--align-center) {
	margin-left  : auto !important;
	margin-right : 0    !important;
}

/* ── Responsive: Tablet ≤768px ──────────────────────────────── */
@media (max-width: 768px) {
	.rd-grid-col {
		padding-top    : var(--rdgb-col-pt-768, var(--rdgb-col-pt, 0));
		padding-bottom : var(--rdgb-col-pb-768, var(--rdgb-col-pb, 0));
		padding-left   : var(--rdgb-col-pl-768, var(--rdgb-col-pl, 0));
		padding-right  : var(--rdgb-col-pr-768, var(--rdgb-col-pr, 0));
		margin-top     : var(--rdgb-col-mt-768, var(--rdgb-col-mt, 0));
		margin-bottom  : var(--rdgb-col-mb-768, var(--rdgb-col-mb, 0));
		margin-left    : var(--rdgb-col-ml-768, var(--rdgb-col-ml, 0));
		margin-right   : var(--rdgb-col-mr-768, var(--rdgb-col-mr, 0));
	}
}

/* ── Responsive: Mobil ≤589px ───────────────────────────────── */
@media (max-width: 589px) {
	.rd-grid-col {
		padding-top    : var(--rdgb-col-pt-589, var(--rdgb-col-pt-768, var(--rdgb-col-pt, 0)));
		padding-bottom : var(--rdgb-col-pb-589, var(--rdgb-col-pb-768, var(--rdgb-col-pb, 0)));
		padding-left   : var(--rdgb-col-pl-589, var(--rdgb-col-pl-768, var(--rdgb-col-pl, 0)));
		padding-right  : var(--rdgb-col-pr-589, var(--rdgb-col-pr-768, var(--rdgb-col-pr, 0)));
		margin-top     : var(--rdgb-col-mt-589, var(--rdgb-col-mt-768, var(--rdgb-col-mt, 0)));
		margin-bottom  : var(--rdgb-col-mb-589, var(--rdgb-col-mb-768, var(--rdgb-col-mb, 0)));
		margin-left    : var(--rdgb-col-ml-589, var(--rdgb-col-ml-768, var(--rdgb-col-ml, 0)));
		margin-right   : var(--rdgb-col-mr-589, var(--rdgb-col-mr-768, var(--rdgb-col-mr, 0)));
	}
}

/* ── Verschachteltes rd-grid füllt die Spalten-Höhe ─────────── */
/* Ohne flex:1 bekommt ein nested rd-grid nur Content-Höhe →
   valign-center / justify-content hätten keinen Effekt.        */
.rd-grid-col__inner > .rd-grid {
	flex : 1;
}

/* Content-Wrapper + Inner-Grid erben die Höhe */
.rd-grid-col__inner > .rd-grid > .rd-grid__content {
	flex : 1;
}

.rd-grid-col__inner > .rd-grid > .rd-grid__content > .rd-grid__inner {
	height : 100%;
}

/* ============================================================
   RD Heading – Basis
   ============================================================ */
.rd-heading {
	padding-top    : var(--rdgb-heading-pt, 0);
	padding-bottom : var(--rdgb-heading-pb, 0);
	padding-left   : var(--rdgb-heading-pl, 0);
	padding-right  : var(--rdgb-heading-pr, 0);
	margin-top     : var(--rdgb-heading-mt, 0);
	margin-bottom  : var(--rdgb-heading-mb, 0.5em);
	margin-left    : var(--rdgb-heading-ml, 0);
	margin-right   : var(--rdgb-heading-mr, 0);
	line-height    : var(--rdgb-heading-lh, 1.2);
	/* Globale Schriftart aus Design-System (leer = erbt vom Theme) */
	font-family    : var(--rdgb-ff-heading, inherit);
}

/* ── Text-Ausrichtung (stabil, unabhängig vom Block-Style-Cache) ── */
.rd-heading--align-left   { text-align: left   !important; }
.rd-heading--align-center { text-align: center !important; }
.rd-heading--align-right  { text-align: right  !important; }

/* Subheadline + Lead erben ggf. andere Schriftart + Gewicht */
.rd-heading.subheadline {
	font-family   : var(--rdgb-ff-subheadline, var(--rdgb-ff-heading, inherit));
	font-weight   : var(--rdgb-fw-subheadline, 600);
	color         : var(--rdgb-color-subheadline);
}
.rd-heading.lead,
.rd-heading.large,
.rd-heading.medium,
.rd-heading.small {
	font-family   : var(--rdgb-ff-body, inherit);
}

/* ============================================================
   Typografische Layout-Klassen
   Verwendung:  <div class="h1">  sieht aus wie <h1>
                <p class="lead">  großer Einleitungstext
   Variablen:   --rdgb-fs-* überschreibbar per Globale Einstellungen
                oder Theme-CSS
   ============================================================ */

/* ── Display (Hero/Banner-Text) ─────────────────────────────── */
.display {
	font-size      : var(--rdgb-fs-display, clamp(2.5rem, 7vw, 5rem));
	font-weight    : var(--rdgb-fw-display, 800);
	font-family    : var(--rdgb-ff-heading, inherit);
	line-height    : 1.05;
	letter-spacing : -0.025em;
	margin-top     : 0;
	margin-bottom  : var(--rdgb-heading-mb, 0.4em);
}

/* ── H1 ─────────────────────────────────────────────────────── */
.h1 {
	font-size      : var(--rdgb-fs-h1, clamp(1.875rem, 5vw, 3rem));
	font-weight    : var(--rdgb-fw-h1, 700);
	font-family    : var(--rdgb-ff-h1, var(--rdgb-ff-heading, inherit));
	line-height    : 1.1;
	letter-spacing : -0.015em;
	margin-top     : 0;
	margin-bottom  : var(--rdgb-heading-mb, 0.5em);
}

/* ── H2 ─────────────────────────────────────────────────────── */
.h2 {
	font-size      : var(--rdgb-fs-h2, clamp(1.5rem, 4vw, 2.25rem));
	font-weight    : var(--rdgb-fw-h2, 700);
	font-family    : var(--rdgb-ff-h2, var(--rdgb-ff-heading, inherit));
	line-height    : 1.15;
	letter-spacing : -0.01em;
	margin-top     : 0;
	margin-bottom  : var(--rdgb-heading-mb, 0.5em);
}

/* ── H3 ─────────────────────────────────────────────────────── */
.h3 {
	font-size      : var(--rdgb-fs-h3, clamp(1.25rem, 3vw, 1.75rem));
	font-weight    : var(--rdgb-fw-h3, 600);
	font-family    : var(--rdgb-ff-h3, var(--rdgb-ff-heading, inherit));
	line-height    : 1.2;
	margin-top     : 0;
	margin-bottom  : var(--rdgb-heading-mb, 0.5em);
}

/* ── H4 ─────────────────────────────────────────────────────── */
.h4 {
	font-size      : var(--rdgb-fs-h4, clamp(1.125rem, 2.5vw, 1.375rem));
	font-weight    : var(--rdgb-fw-h4, 600);
	font-family    : var(--rdgb-ff-h4, var(--rdgb-ff-heading, inherit));
	line-height    : 1.3;
	margin-top     : 0;
	margin-bottom  : var(--rdgb-heading-mb, 0.5em);
}

/* ── H5 ─────────────────────────────────────────────────────── */
.h5 {
	font-size      : var(--rdgb-fs-h5, 1.125rem);
	font-weight    : var(--rdgb-fw-h5, 600);
	font-family    : var(--rdgb-ff-h5, var(--rdgb-ff-heading, inherit));
	line-height    : 1.4;
	margin-top     : 0;
	margin-bottom  : var(--rdgb-heading-mb, 0.5em);
}

/* ── H6 ─────────────────────────────────────────────────────── */
.h6 {
	font-size      : var(--rdgb-fs-h6, 0.875rem);
	font-weight    : var(--rdgb-fw-h6, 700);
	font-family    : var(--rdgb-ff-h6, var(--rdgb-ff-heading, inherit));
	line-height    : 1.4;
	text-transform : uppercase;
	letter-spacing : 0.08em;
	margin-top     : 0;
	margin-bottom  : var(--rdgb-heading-mb, 0.5em);
}

/* ── Subheadline (Label oberhalb einer Überschrift) ─────────── */
.subheadline {
	font-size      : var(--rdgb-fs-subheadline, 0.8125rem);
	font-weight    : 600;
	text-transform : uppercase;
	letter-spacing : 0.14em;
	margin-top     : 0;
	margin-bottom  : var(--rdgb-heading-mb, 0.5em);
	color          : var(--rdgb-color-subheadline);
}

/* ── Lead / Intro-Text ──────────────────────────────────────── */
.lead {
	font-size      : var(--rdgb-fs-lead, clamp(1.125rem, 2vw, 1.375rem));
	font-weight    : 400;
	line-height    : 1.65;
	margin-top     : 0;
	margin-bottom  : var(--rdgb-heading-mb, 0.75em);
}

/* ── Large ──────────────────────────────────────────────────── */
.large {
	font-size      : var(--rdgb-fs-large, 1.375rem);
	font-weight    : 400;
	line-height    : 1.55;
}

/* ── Medium ─────────────────────────────────────────────────── */
.medium {
	font-size      : var(--rdgb-fs-medium, 1.0625rem);
	font-weight    : 400;
	line-height    : 1.6;
}

/* ── Small ──────────────────────────────────────────────────── */
.small {
	font-size      : var(--rdgb-fs-small, 0.875rem);
	line-height    : 1.5;
}

.rd-text {
	margin-top    : var(--rdgb-text-mt, 0);
	margin-bottom : var(--rdgb-text-mb, 1em);
	margin-left   : var(--rdgb-text-ml, 0);
	margin-right  : var(--rdgb-text-mr, 0);
	padding-top   : var(--rdgb-text-pt, 0);
	padding-bottom: var(--rdgb-text-pb, 0);
	padding-left  : var(--rdgb-text-pl, 0);
	padding-right : var(--rdgb-text-pr, 0);
	line-height   : var(--rdgb-text-lh, 1.6);
	font-family   : var(--rdgb-ff-body, inherit);
	font-size     : var(--rdgb-fs-body, inherit);
	font-weight   : var(--rdgb-fw-body, inherit);
}

/* Kinder-<p> bei multiline-Ausgabe: Abstände + Vererbung */
.rd-text > p {
	margin-top    : 0;
	margin-bottom : 1em;
	font-size     : inherit;
	font-family   : inherit;
	font-weight   : inherit;
	line-height   : inherit;
	color         : inherit;
	text-align    : inherit;
}
.rd-text > p:last-child {
	margin-bottom : 0;
}

/* ── Responsive: Tablet ≤768px ──────────────────────────────── */
@media (max-width: 768px) {
	.rd-text {
		padding-top    : var(--rdgb-text-pt-768, var(--rdgb-text-pt, 0));
		padding-bottom : var(--rdgb-text-pb-768, var(--rdgb-text-pb, 0));
		padding-left   : var(--rdgb-text-pl-768, var(--rdgb-text-pl, 0));
		padding-right  : var(--rdgb-text-pr-768, var(--rdgb-text-pr, 0));
		margin-top     : var(--rdgb-text-mt-768, var(--rdgb-text-mt, 0));
		margin-bottom  : var(--rdgb-text-mb-768, var(--rdgb-text-mb, 1em));
		margin-left    : var(--rdgb-text-ml-768, var(--rdgb-text-ml, 0));
		margin-right   : var(--rdgb-text-mr-768, var(--rdgb-text-mr, 0));
	}
}
/* ── Responsive: Mobil ≤589px ───────────────────────────────── */
@media (max-width: 589px) {
	.rd-text {
		padding-top    : var(--rdgb-text-pt-589, var(--rdgb-text-pt-768, var(--rdgb-text-pt, 0)));
		padding-bottom : var(--rdgb-text-pb-589, var(--rdgb-text-pb-768, var(--rdgb-text-pb, 0)));
		padding-left   : var(--rdgb-text-pl-589, var(--rdgb-text-pl-768, var(--rdgb-text-pl, 0)));
		padding-right  : var(--rdgb-text-pr-589, var(--rdgb-text-pr-768, var(--rdgb-text-pr, 0)));
		margin-top     : var(--rdgb-text-mt-589, var(--rdgb-text-mt-768, var(--rdgb-text-mt, 0)));
		margin-bottom  : var(--rdgb-text-mb-589, var(--rdgb-text-mb-768, var(--rdgb-text-mb, 1em)));
		margin-left    : var(--rdgb-text-ml-589, var(--rdgb-text-ml-768, var(--rdgb-text-ml, 0)));
		margin-right   : var(--rdgb-text-mr-589, var(--rdgb-text-mr-768, var(--rdgb-text-mr, 0)));
	}
}

/* ============================================================
   RD Buttons – Wrapper-Styles
   ============================================================ */
.rd-buttons {
	display   : flex;
	flex-wrap : wrap;
	gap       : 12px;

	padding-top    : var(--rdgb-buttons-pt, 0);
	padding-bottom : var(--rdgb-buttons-pb, 0);
	padding-left   : var(--rdgb-buttons-pl, 0);
	padding-right  : var(--rdgb-buttons-pr, 0);
	margin-top     : var(--rdgb-buttons-mt, 0);
	margin-bottom  : var(--rdgb-buttons-mb, 0);
	margin-left    : var(--rdgb-buttons-ml, 0);
	margin-right   : var(--rdgb-buttons-mr, 0);
}

/* Ausrichtungs-Modifier (werden von render.php auf dem Element gesetzt) */
.rd-buttons--start         { justify-content : flex-start; }
.rd-buttons--center        { justify-content : center; }
.rd-buttons--end           { justify-content : flex-end; }
.rd-buttons--space-between { justify-content : space-between; }

/* ============================================================
   RD Button – Styles
   Farben via CSS Custom Properties überschreibbar:
   --rdgb-btn-bg        → Hintergrundfarbe
   --rdgb-btn-color     → Textfarbe
   --rdgb-color-primary → Theme-Primärfarbe (Fallback)
   ============================================================ */

.rd-btn {
	display         : inline-flex;
	align-items     : center;
	justify-content : center;
	padding         : var(--rdgb-btn-py, 12px) var(--rdgb-btn-px, 24px);
	font-size       : var(--rdgb-btn-fs, 1rem);
	font-weight     : var(--rdgb-btn-fw, 600);
	line-height     : 1.2;
	border-radius   : var(--rdgb-btn-radius, 4px);
	cursor          : pointer;
	text-decoration : none;
	transition      : filter 0.2s ease, transform 0.15s ease, box-shadow 0.2s ease;
	border          : 2px solid transparent;
	box-sizing      : border-box;
	white-space     : nowrap;
}

.rd-btn:hover {
	filter    : brightness(0.9);
	transform : translateY(-1px);
}

.rd-btn:active {
	transform : translateY(0);
}

/* ── Primary (standard: blau) ───────────────────────────────── */
.rd-btn--primary {
	background-color : var(--rdgb-btn-bg, var(--rdgb-color-primary, #0078ff));
	color            : var(--rdgb-btn-color, #ffffff);
	border-color     : var(--rdgb-btn-bg, var(--rdgb-color-primary, #0078ff));
}

/* ── Secondary ──────────────────────────────────────────────── */
.rd-btn--secondary {
	background-color : var(--rdgb-btn-bg, #6c757d);
	color            : var(--rdgb-btn-color, #ffffff);
	border-color     : var(--rdgb-btn-bg, #6c757d);
}

/* ── Outline (transparenter Hintergrund, Rahmen) ────────────── */
.rd-btn--outline {
	background-color : transparent;
	color            : var(--rdgb-btn-bg, var(--rdgb-color-primary, #0078ff));
	border-color     : var(--rdgb-btn-bg, var(--rdgb-color-primary, #0078ff));
}

/* ── Ghost (nur Text, kein Rahmen) ──────────────────────────── */
.rd-btn--ghost {
	background-color : transparent;
	color            : var(--rdgb-btn-color, currentColor);
	border-color     : transparent;
	padding-left     : 0;
	padding-right    : 0;
}

/* ── Link (wie Ghost, aber unterstrichen) ───────────────────── */
.rd-btn--link {
	background-color : transparent;
	color            : var(--rdgb-btn-bg, var(--rdgb-color-primary, #0078ff));
	border-color     : transparent;
	text-decoration  : underline;
	padding-left     : 0;
	padding-right    : 0;
}

/* ── Größen ─────────────────────────────────────────────────── */
.rd-btn--sm {
	padding     : 8px 16px;
	font-size   : 0.875rem;
}

.rd-btn--lg {
	padding     : 16px 32px;
	font-size   : 1.125rem;
}

/* ============================================================
   RD IMAGE – Styles
   ============================================================ */

.rd-image {
	display    : block;
	width      : var(--rdimg-width, 100%);
	max-width  : var(--rdimg-maxw, 100%);
	box-sizing : border-box;

	margin-top    : var(--rdgb-image-mt, 0);
	margin-bottom : var(--rdgb-image-mb, 0);
	padding-top   : var(--rdgb-image-pt, 0);
	padding-bottom: var(--rdgb-image-pb, 0);
	padding-left  : var(--rdgb-image-pl, 0);
	padding-right : var(--rdgb-image-pr, 0);
}

/* Margin links/rechts nur wenn kein Align-Modifier gesetzt — sonst überschreibt Align die Werte */
.rd-image:not(.rd-image--align-center):not(.rd-image--align-right):not(.rd-image--align-left) {
	margin-left  : var(--rdgb-image-ml, 0);
	margin-right : var(--rdgb-image-mr, 0);
}

/* ── Bild-Wrapper (position:relative für Overlays) ──────────── */
.rd-image__wrap {
	position     : relative;
	overflow     : hidden;
	border-radius: var(--rdimg-radius, 0);
	display      : block;
	line-height  : 0; /* kein Phantom-Abstand unter dem Bild */
	max-height   : var(--rdimg-maxh, none);
}

/* ── Das Bild selbst ────────────────────────────────────────── */
/* picture-Support: wenn ein Plugin <img> in <picture> umwandelt,
   muss <picture> selbst block + full-width sein */
.rd-image__wrap picture {
	display  : block;
	width    : 100%;
	height   : var(--rdimg-maxh, auto);
	line-height: 0;
}

.rd-image__wrap img,
.rd-image__wrap picture img {
	width          : 100%;
	height         : var(--rdimg-maxh, auto);
	display        : block;
	border-radius  : var(--rdimg-radius, 0);
	object-fit     : cover;
	object-position: center;
}

/* ── Ausrichtung ────────────────────────────────────────────── */
.rd-image--align-center { margin-left: auto; margin-right: auto; }
.rd-image--align-right  { margin-left: auto; margin-right: 0; }
.rd-image--align-left   { margin-left: 0;    margin-right: auto; }

/* ── Caption – unterhalb des Bildes ────────────────────────── */
.rd-image__caption {
	font-size  : 0.875rem;
	line-height: 1.5;
}

.rd-image__caption--below {
	padding    : var(--rdimg-cap-padding, 12px 16px);
	background : var(--rdimg-cap-bg, transparent);
	color      : var(--rdimg-cap-color, inherit);
	text-align : var(--rdimg-cap-align, left);
}

/* ── Caption – Overlay (über dem Bild) ─────────────────────── */
.rd-image__caption--overlay-bottom,
.rd-image__caption--overlay-top,
.rd-image__caption--overlay-center {
	position   : absolute;
	left       : 0;
	right      : 0;
	padding    : var(--rdimg-cap-padding, 12px 16px);
	background : var(--rdimg-cap-bg, rgba(0,0,0,0.45));
	color      : var(--rdimg-cap-color, #fff);
	text-align : var(--rdimg-cap-align, left);
	z-index    : 2;
}

.rd-image__caption--overlay-bottom { bottom: 0; }
.rd-image__caption--overlay-top    { top: 0; }
.rd-image__caption--overlay-center {
	top        : 50%;
	transform  : translateY(-50%);
}

/* ── Eckenradius-Presets ────────────────────────────────────── */
.rd-image--radius-sm .rd-image__wrap,
.rd-image--radius-sm img,
.rd-image--radius-sm picture img  { border-radius: 6px; }
.rd-image--radius-md .rd-image__wrap,
.rd-image--radius-md img,
.rd-image--radius-md picture img  { border-radius: 12px; }
.rd-image--radius-lg .rd-image__wrap,
.rd-image--radius-lg img,
.rd-image--radius-lg picture img  { border-radius: 24px; }
.rd-image--radius-xl .rd-image__wrap,
.rd-image--radius-xl img,
.rd-image--radius-xl picture img  { border-radius: 48px; }
.rd-image--radius-full .rd-image__wrap,
.rd-image--radius-full img,
.rd-image--radius-full picture img { border-radius: 9999px; }

/* ── Responsive: Tablet ≤768px ──────────────────────────────── */
@media (max-width: 768px) {
	.rd-image {
		width          : var(--rdimg-width-768, var(--rdimg-width, 100%));
		max-width      : var(--rdimg-maxw-768, var(--rdimg-maxw, 100%));
		padding-top    : var(--rdgb-image-pt-768, var(--rdgb-image-pt, 0));
		padding-bottom : var(--rdgb-image-pb-768, var(--rdgb-image-pb, 0));
		padding-left   : var(--rdgb-image-pl-768, var(--rdgb-image-pl, 0));
		padding-right  : var(--rdgb-image-pr-768, var(--rdgb-image-pr, 0));
		margin-top     : var(--rdgb-image-mt-768, var(--rdgb-image-mt, 0));
		margin-bottom  : var(--rdgb-image-mb-768, var(--rdgb-image-mb, 0));
	}
	.rd-image:not(.rd-image--align-center):not(.rd-image--align-right):not(.rd-image--align-left) {
		margin-left    : var(--rdgb-image-ml-768, var(--rdgb-image-ml, 0));
		margin-right   : var(--rdgb-image-mr-768, var(--rdgb-image-mr, 0));
	}
	.rd-image__wrap {
		max-height: var(--rdimg-maxh-768, var(--rdimg-maxh, none));
	}
	.rd-image__wrap picture,
	.rd-image__wrap img,
	.rd-image__wrap picture img {
		height: var(--rdimg-maxh-768, var(--rdimg-maxh, auto));
	}
}
/* ── Responsive: Mobil ≤589px ───────────────────────────────── */
@media (max-width: 589px) {
	.rd-image {
		width          : var(--rdimg-width-589, var(--rdimg-width-768, var(--rdimg-width, 100%)));
		max-width      : var(--rdimg-maxw-589, var(--rdimg-maxw-768, var(--rdimg-maxw, 100%)));
		padding-top    : var(--rdgb-image-pt-589, var(--rdgb-image-pt-768, var(--rdgb-image-pt, 0)));
		padding-bottom : var(--rdgb-image-pb-589, var(--rdgb-image-pb-768, var(--rdgb-image-pb, 0)));
		padding-left   : var(--rdgb-image-pl-589, var(--rdgb-image-pl-768, var(--rdgb-image-pl, 0)));
		padding-right  : var(--rdgb-image-pr-589, var(--rdgb-image-pr-768, var(--rdgb-image-pr, 0)));
		margin-top     : var(--rdgb-image-mt-589, var(--rdgb-image-mt-768, var(--rdgb-image-mt, 0)));
		margin-bottom  : var(--rdgb-image-mb-589, var(--rdgb-image-mb-768, var(--rdgb-image-mb, 0)));
	}
	.rd-image:not(.rd-image--align-center):not(.rd-image--align-right):not(.rd-image--align-left) {
		margin-left    : var(--rdgb-image-ml-589, var(--rdgb-image-ml-768, var(--rdgb-image-ml, 0)));
		margin-right   : var(--rdgb-image-mr-589, var(--rdgb-image-mr-768, var(--rdgb-image-mr, 0)));
	}
	.rd-image__wrap {
		max-height: var(--rdimg-maxh-589, var(--rdimg-maxh-768, var(--rdimg-maxh, none)));
	}
	.rd-image__wrap picture,
	.rd-image__wrap img,
	.rd-image__wrap picture img {
		height: var(--rdimg-maxh-589, var(--rdimg-maxh-768, var(--rdimg-maxh, auto)));
	}
}

/* ============================================================
   RD SLIDER – Frontend Styles
   Swiper CSS wird separat über WordPress-Handle rdgb-swiper-css geladen.
   ============================================================ */

.rd-slider {
	position  : relative;
	isolation : isolate;
	overflow  : hidden;
	width     : 100%;
	box-sizing: border-box;
}

/* ── Hintergrundbild ─────────────────────────────────────────── */
.rd-slider__bg-image {
	position       : absolute;
	inset          : 0;
	z-index        : -1;
	pointer-events : none;
	overflow       : hidden;
	margin         : 0;
	padding        : 0;
}

.rd-slider__bg-image img {
	width           : 100%;
	height          : 100%;
	object-fit      : var(--rdsl-bg-size, cover);
	object-position : center;
	display         : block;
}

/* ── Swiper-Container ───────────────────────────────────────── */
.rd-slider .swiper {
	width    : 100%;
	overflow : hidden;
}

/* ── Slide-Höhe via CSS-Variable (gesetzt per render.php) ────── */
.rd-slider .swiper-slide {
	height     : var(--rd-slider-height, auto);
	box-sizing : border-box;
}

/* ── Pagination ──────────────────────────────────────────────── */
.rd-slider .swiper-pagination {
	position   : static;
	margin-top : 16px;
	text-align : center;
}

.rd-slider .swiper-pagination-bullet {
	background   : var(--rdgb-color-primary, currentColor);
	opacity      : 0.35;
	width        : 10px;
	height       : 10px;
	transition   : opacity 0.2s ease, transform 0.2s ease;
}

.rd-slider .swiper-pagination-bullet-active {
	opacity   : 1;
	transform : scale(1.25);
}

/* ── Navigation Buttons ──────────────────────────────────────── */
.rd-slider .swiper-button-prev,
.rd-slider .swiper-button-next {
	color            : var(--rdgb-color-primary, #fff);
	background-color : rgba(0, 0, 0, 0.35);
	border-radius    : 50%;
	width            : 44px;
	height           : 44px;
	transition       : background-color 0.2s ease;
}

.rd-slider .swiper-button-prev:hover,
.rd-slider .swiper-button-next:hover {
	background-color : rgba(0, 0, 0, 0.6);
}

.rd-slider .swiper-button-prev::after,
.rd-slider .swiper-button-next::after {
	font-size : 18px;
}

/* Navigation außerhalb des sichtbaren Bereichs ausblenden wenn Slides zu Ende */
.rd-slider .swiper-button-disabled {
	opacity        : 0.3;
	pointer-events : none;
}

/* ============================================================
   RD SLIDE – Frontend Styles
   ============================================================ */

.rd-slide {
	position   : relative;
	isolation  : isolate;
	box-sizing : border-box;
	overflow   : hidden;

	padding-top    : var(--rdgb-slide-pt, 0);
	padding-bottom : var(--rdgb-slide-pb, 0);
	padding-left   : var(--rdgb-slide-pl, 0);
	padding-right  : var(--rdgb-slide-pr, 0);
}

/* ── Inhalt-Container ────────────────────────────────────────── */
/*
   Muss ein flex-column-Container sein, damit justify-content
   die Kinder-Blöcke vertikal ausrichten kann.
*/
.rd-slide__content {
	position       : relative;
	z-index        : 1;
	width          : 100%;
	height         : 100%;
	box-sizing     : border-box;
	display        : flex;
	flex-direction : column;
}

/* ── Vertikale Ausrichtung ───────────────────────────────────── */
/*
   .rd-slide ist flex-direction: column.
   justify-content steuert die HAUPT-Achse (vertikal).
   → Klassen auf .rd-slide__content, damit die Kinder-Blöcke
     innerhalb des Slide-Bereichs ausgerichtet werden.
*/
.rd-slide {
	display        : flex;
	flex-direction : column;
}

.rd-slide--valign-top    .rd-slide__content { justify-content: flex-start; }
.rd-slide--valign-center .rd-slide__content { justify-content: center;     }
.rd-slide--valign-bottom .rd-slide__content { justify-content: flex-end;   }

/* ── Text-Ausrichtung ────────────────────────────────────────── */
.rd-slide--align-left   { text-align: left; }
.rd-slide--align-center { text-align: center; }
.rd-slide--align-right  { text-align: right; }

/* ── Hintergrundbild ─────────────────────────────────────────── */
.rd-slide__bg-image {
	position       : absolute;
	inset          : 0;
	z-index        : -1;
	pointer-events : none;
	overflow       : hidden;
	margin         : 0;
	padding        : 0;
}

.rd-slide__bg-image img,
.rd-slide__bg-image picture img {
	width           : 100%;
	height          : 100%;
	object-fit      : cover;
	object-position : center;
	display         : block;
}

.rd-slide__bg-image picture {
	display : block;
	width   : 100%;
	height  : 100%;
}

/*---------------------------*/
/* !RD PHOTO GALLERY – Styles */
/*---------------------------*/

.rd-gallery-editor-wrap {
	display : block;
	width   : 100%;
}

.rd-photo-gallery {
	--rdgal-cols  : 3;
	--rdgal-gap   : 12px;
	--rdgal-ratio : 4/3;
	--rdgal-radius: 0px;
	width          : 100%;
	box-sizing     : border-box;
	padding-top    : var(--rdgb-gallery-pt, 0);
	padding-bottom : var(--rdgb-gallery-pb, 0);
	padding-left   : var(--rdgb-gallery-pl, 0);
	padding-right  : var(--rdgb-gallery-pr, 0);
	margin-top     : var(--rdgb-gallery-mt, 0);
	margin-bottom  : var(--rdgb-gallery-mb, 0);
	margin-left    : var(--rdgb-gallery-ml, 0);
	margin-right   : var(--rdgb-gallery-mr, 0);
}

/*--------------*/
/* !Ausrichtung */
/*--------------*/

.rd-gallery--align-center { margin-left: auto; margin-right: auto; }
.rd-gallery--align-right  { margin-left: auto; margin-right: 0;    }
.rd-gallery--align-left   { margin-left: 0;    margin-right: auto; }

/*----------*/
/* !Radius  */
/*----------*/

.rd-gallery--radius-sm { --rdgal-radius: 6px;    }
.rd-gallery--radius-md { --rdgal-radius: 12px;   }
.rd-gallery--radius-lg { --rdgal-radius: 20px;   }
.rd-gallery--radius-xl { --rdgal-radius: 32px;   }

/*----------------------------------------------*/
/* !Grid-Item universal (img + picture-Wrapper)  */
/*----------------------------------------------*/

/* Flex-Container: Kind streckt sich und füllt die Zelle */
.rd-photo-gallery .rdgal-item {
	margin       : 0;
	padding      : 0;
	overflow     : hidden;
	border-radius: var(--rdgal-radius);
	display      : flex;
	align-items  : stretch;
}

/* Direktes Kind (<img> oder <picture>) füllt den Container */
.rd-photo-gallery .rdgal-item > img,
.rd-photo-gallery .rdgal-item > picture {
	flex           : 1 1 0%;
	min-width      : 0;
	min-height     : 0;
	display        : block;
	width          : 100%;
	object-fit     : cover;
	object-position: center;
}

/* Bild innerhalb <picture> (Theme-spezifischer Wrapper) */
.rd-photo-gallery .rdgal-item > picture > img {
	width          : 100%;
	height         : 100%;
	object-fit     : cover;
	object-position: center;
	display        : block;
}

/* Klasse rdgal-img direkt auf img oder picture */
.rd-photo-gallery .rdgal-img {
	display        : block;
	width          : 100%;
	object-fit     : cover;
	object-position: center;
}

/*----------*/
/* !GRID    */
/*----------*/

.rd-gallery--grid {
	display              : grid;
	grid-template-columns: repeat(var(--rdgal-cols), 1fr);
	gap                  : var(--rdgal-gap);
}

.rd-gallery--grid .rdgal-item {
	aspect-ratio: var(--rdgal-ratio, auto);
}

/*-----------*/
/* !MASONRY  */
/*-----------*/

.rd-gallery--masonry {
	display              : grid;
	grid-template-columns: repeat(4, 1fr);
	gap                  : var(--rdgal-gap);
}

.rd-gallery--masonry .rdgal-item:nth-child(1) { grid-column: 1;          grid-row: 1 / span 2; }
.rd-gallery--masonry .rdgal-item:nth-child(2) { grid-column: 2;          grid-row: 1;          aspect-ratio: 1/1; }
.rd-gallery--masonry .rdgal-item:nth-child(3) { grid-column: 3;          grid-row: 1;          aspect-ratio: 1/1; }
.rd-gallery--masonry .rdgal-item:nth-child(4) { grid-column: 2 / span 2; grid-row: 2;          aspect-ratio: 2/1; }
.rd-gallery--masonry .rdgal-item:nth-child(5) { grid-column: 4;          grid-row: 1 / span 2; }
.rd-gallery--masonry .rdgal-item:nth-child(6) { grid-column: 1 / span 2; grid-row: 3;          aspect-ratio: 2/1; }
.rd-gallery--masonry .rdgal-item:nth-child(7) { grid-column: 3;          grid-row: 3;          aspect-ratio: 1/1; }
.rd-gallery--masonry .rdgal-item:nth-child(8) { grid-column: 4;          grid-row: 3;          aspect-ratio: 1/1; }
.rd-gallery--masonry .rdgal-item:nth-child(n+9) { display: none; }

/*-----------*/
/* !GALLERY  */
/*-----------*/

/*
 * Variante B: 4 Spalten, editoriales Layout, feste Zeilenhöhe 220px
 */
.rd-gallery--gallery.rd-gallery--variant-B {
	display              : grid;
	grid-template-columns: repeat(4, 1fr);
	grid-auto-rows       : 220px;
	gap                  : var(--rdgal-gap);
}

.rd-gallery--gallery.rd-gallery--variant-B .rdgal-item--pos-1 { grid-column: 1;          grid-row: 1; }
.rd-gallery--gallery.rd-gallery--variant-B .rdgal-item--pos-2 { grid-column: 2;          grid-row: 1; }
.rd-gallery--gallery.rd-gallery--variant-B .rdgal-item--pos-3 { grid-column: 3;          grid-row: 1; }
.rd-gallery--gallery.rd-gallery--variant-B .rdgal-item--pos-4 { grid-column: 4;          grid-row: 1 / span 2; }
.rd-gallery--gallery.rd-gallery--variant-B .rdgal-item--pos-5 { grid-column: 1;          grid-row: 2 / span 2; }
.rd-gallery--gallery.rd-gallery--variant-B .rdgal-item--pos-6 { grid-column: 2 / span 2; grid-row: 2; }
.rd-gallery--gallery.rd-gallery--variant-B .rdgal-item--pos-7 { grid-column: 1 / span 2; grid-row: 3; }
.rd-gallery--gallery.rd-gallery--variant-B .rdgal-item--pos-8 { grid-column: 3;          grid-row: 3; }
.rd-gallery--gallery.rd-gallery--variant-B .rdgal-item--pos-9 { grid-column: 4;          grid-row: 3; }

.rd-gallery--gallery.rd-gallery--variant-B .rdgal-item:nth-child(n+10) {
	grid-column: auto;
	grid-row   : auto;
}

/*
 * Variante C: erstes Bild full-width, Rest 3-spaltig
 */
.rd-gallery--gallery.rd-gallery--variant-C {
	display              : grid;
	grid-template-columns: repeat(3, 1fr);
	gap                  : var(--rdgal-gap);
}

.rd-gallery--gallery.rd-gallery--variant-C .rdgal-item--pos-1 {
	grid-column : 1 / -1;
	aspect-ratio: 16/6;
}

.rd-gallery--gallery.rd-gallery--variant-C .rdgal-item:not(.rdgal-item--pos-1) {
	aspect-ratio: 4/3;
}

/*-----------*/
/* !SLIDER   */
/*-----------*/

.rd-gallery-slider {
	width          : 100%;
	box-sizing     : border-box;
	position       : relative;
	padding-top    : var(--rdgb-gallery-pt, 0);
	padding-bottom : var(--rdgb-gallery-pb, 0);
	padding-left   : var(--rdgb-gallery-pl, 0);
	padding-right  : var(--rdgb-gallery-pr, 0);
	margin-top     : var(--rdgb-gallery-mt, 0);
	margin-bottom  : var(--rdgb-gallery-mb, 0);
	margin-left    : var(--rdgb-gallery-ml, 0);
	margin-right   : var(--rdgb-gallery-mr, 0);
}

.rd-gallery-slider .swiper {
	width   : 100%;
	overflow: hidden;
}

.rd-gallery-slider .swiper-slide {
	box-sizing  : border-box;
	overflow    : hidden;
	height      : var(--rdgal-slide-h, auto);
	aspect-ratio: 16/9;
}

/* Wenn Höhe explizit gesetzt: aspect-ratio deaktivieren */
.rd-gallery-slider[style*="--rdgal-slide-h"] .swiper-slide {
	aspect-ratio: unset;
}

.rd-gallery-slider .swiper-slide img,
.rd-gallery-slider .swiper-slide picture {
	width          : 100%;
	height         : 100%;
	display        : block;
	object-fit     : cover;
	object-position: center;
}

.rd-gallery-slider .swiper-slide picture > img {
	width          : 100%;
	height         : 100%;
	object-fit     : cover;
	object-position: center;
	display        : block;
}

/* Pagination */
.rd-gallery-slider .swiper-pagination {
	position   : static;
	margin-top : 12px;
	text-align : center;
}

.rd-gallery-slider .swiper-pagination-bullet {
	background : var(--rdgb-color-primary, currentColor);
	opacity    : 0.35;
	width      : 10px;
	height     : 10px;
	transition : opacity 0.2s ease, transform 0.2s ease;
}

.rd-gallery-slider .swiper-pagination-bullet-active {
	opacity   : 1;
	transform : scale(1.25);
}

/* Navigation */
.rd-gallery-slider .swiper-button-prev,
.rd-gallery-slider .swiper-button-next {
	color            : var(--rdgb-color-primary, #fff);
	background-color : rgba(0, 0, 0, 0.35);
	border-radius    : 50%;
	width            : 44px;
	height           : 44px;
	transition       : background-color 0.2s ease;
}

.rd-gallery-slider .swiper-button-prev:hover,
.rd-gallery-slider .swiper-button-next:hover {
	background-color: rgba(0, 0, 0, 0.6);
}

.rd-gallery-slider .swiper-button-prev::after,
.rd-gallery-slider .swiper-button-next::after {
	font-size: 18px;
}

.rd-gallery-slider .swiper-button-disabled {
	opacity       : 0.3;
	pointer-events: none;
}

/*-----------*/
/* !LIGHTBOX */
/*-----------*/

.rdgal-lb {
	position  : fixed;
	inset     : 0;
	z-index   : 99999;
	display   : flex;
	align-items: center;
	justify-content: center;
}

.rdgal-lb[hidden] { display: none; }

.rdgal-lb__backdrop {
	position  : absolute;
	inset     : 0;
	background: rgba(0, 0, 0, 0.88);
	cursor    : pointer;
}

.rdgal-lb__inner {
	position    : relative;
	z-index     : 1;
	max-width   : 90vw;
	max-height  : 90vh;
	display     : flex;
	align-items : center;
	gap         : 12px;
}

.rdgal-lb__img {
	display   : block;
	max-width : 80vw;
	max-height: 88vh;
	object-fit: contain;
	border-radius: 4px;
}

.rdgal-lb__btn {
	background   : rgba(255, 255, 255, 0.15);
	border       : none;
	border-radius: 50%;
	width        : 48px;
	height       : 48px;
	color        : #fff;
	font-size    : 24px;
	cursor       : pointer;
	display      : flex;
	align-items  : center;
	justify-content: center;
	flex-shrink  : 0;
	transition   : background 0.2s ease;
	line-height  : 1;
}

.rdgal-lb__btn:hover { background: rgba(255, 255, 255, 0.3); }

.rdgal-lb__close {
	position  : absolute;
	top       : -20px;
	right     : -20px;
	width     : 36px;
	height    : 36px;
	font-size : 18px;
	background: rgba(255, 255, 255, 0.2);
	border    : none;
	border-radius: 50%;
	color     : #fff;
	cursor    : pointer;
	display   : flex;
	align-items: center;
	justify-content: center;
	transition: background 0.2s ease;
}

.rdgal-lb__close:hover { background: rgba(255, 255, 255, 0.4); }

/* Lightbox-Cursor + Lupe-Overlay auf Items */
.rdgal-lightbox-on .rdgal-item {
	cursor  : zoom-in;
	position: relative;
}

.rdgal-lightbox-on .rdgal-item::after {
	content         : '';
	position        : absolute;
	inset           : 0;
	background-color: transparent;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='40' height='40' viewBox='0 0 24 24'%3E%3Ccircle cx='10.5' cy='10.5' r='6.5' fill='none' stroke='%23fff' stroke-width='2'/%3E%3Cline x1='15.5' y1='15.5' x2='21' y2='21' stroke='%23fff' stroke-width='2' stroke-linecap='round'/%3E%3C/svg%3E");
	background-repeat  : no-repeat;
	background-position: center;
	background-size    : 40px;
	opacity        : 0;
	transition     : opacity 0.2s ease, background-color 0.2s ease;
	pointer-events : none;
}

.rdgal-lightbox-on .rdgal-item:hover::after {
	opacity         : 1;
	background-color: rgba(0, 0, 0, 0.32);
}

/* Lightbox-Bild: klickbar (weiterblättern) */
.rdgal-lb__img { cursor: pointer; }

/*----------------*/
/* !Responsive    */
/*----------------*/

@media ( max-width: 768px ) {
	.rd-gallery--grid { --rdgal-cols: 2; }

	.rd-gallery--masonry {
		grid-template-columns: repeat(2, 1fr);
	}

	.rd-gallery--masonry .rdgal-item:nth-child(-n+8) {
		grid-column  : auto;
		grid-row     : auto;
		aspect-ratio : 4/3;
	}

	.rd-gallery--gallery.rd-gallery--variant-B {
		grid-template-columns: repeat(2, 1fr);
		grid-auto-rows        : 160px;
	}

	.rd-gallery--gallery.rd-gallery--variant-B .rdgal-item {
		grid-column: auto !important;
		grid-row   : auto !important;
	}

	.rd-gallery--gallery.rd-gallery--variant-C {
		grid-template-columns: repeat(2, 1fr);
	}

	.rd-gallery--gallery.rd-gallery--variant-C .rdgal-item--pos-1 {
		aspect-ratio: 16/8;
	}

	.rdgal-lb__btn { width: 36px; height: 36px; font-size: 18px; }
}

@media ( max-width: 480px ) {
	.rd-gallery--grid { --rdgal-cols: 1; }


	.rd-gallery--gallery.rd-gallery--variant-B,
	.rd-gallery--gallery.rd-gallery--variant-C {
		grid-template-columns: 1fr;
	}

	.rd-gallery--gallery .rdgal-item,
	.rd-gallery--gallery .rdgal-item--pos-1 {
		grid-column  : auto !important;
		grid-row     : auto !important;
		aspect-ratio : 4/3 !important;
	}

	.rdgal-lb__img { max-width: 90vw; }
	.rdgal-lb__btn { display: none; }
}
/* ── Responsive: Tablet ≤768px ──────────────────────────────── */
@media (max-width: 768px) {
	.rd-photo-gallery,
	.rd-gallery-slider {
		padding-top    : var(--rdgb-gallery-pt-768, var(--rdgb-gallery-pt, 0));
		padding-bottom : var(--rdgb-gallery-pb-768, var(--rdgb-gallery-pb, 0));
		padding-left   : var(--rdgb-gallery-pl-768, var(--rdgb-gallery-pl, 0));
		padding-right  : var(--rdgb-gallery-pr-768, var(--rdgb-gallery-pr, 0));
		margin-top     : var(--rdgb-gallery-mt-768, var(--rdgb-gallery-mt, 0));
		margin-bottom  : var(--rdgb-gallery-mb-768, var(--rdgb-gallery-mb, 0));
		margin-left    : var(--rdgb-gallery-ml-768, var(--rdgb-gallery-ml, 0));
		margin-right   : var(--rdgb-gallery-mr-768, var(--rdgb-gallery-mr, 0));
	}
}
/* ── Responsive: Mobil ≤589px ───────────────────────────────── */
@media (max-width: 589px) {
	.rd-photo-gallery,
	.rd-gallery-slider {
		padding-top    : var(--rdgb-gallery-pt-589, var(--rdgb-gallery-pt-768, var(--rdgb-gallery-pt, 0)));
		padding-bottom : var(--rdgb-gallery-pb-589, var(--rdgb-gallery-pb-768, var(--rdgb-gallery-pb, 0)));
		padding-left   : var(--rdgb-gallery-pl-589, var(--rdgb-gallery-pl-768, var(--rdgb-gallery-pl, 0)));
		padding-right  : var(--rdgb-gallery-pr-589, var(--rdgb-gallery-pr-768, var(--rdgb-gallery-pr, 0)));
		margin-top     : var(--rdgb-gallery-mt-589, var(--rdgb-gallery-mt-768, var(--rdgb-gallery-mt, 0)));
		margin-bottom  : var(--rdgb-gallery-mb-589, var(--rdgb-gallery-mb-768, var(--rdgb-gallery-mb, 0)));
		margin-left    : var(--rdgb-gallery-ml-589, var(--rdgb-gallery-ml-768, var(--rdgb-gallery-ml, 0)));
		margin-right   : var(--rdgb-gallery-mr-589, var(--rdgb-gallery-mr-768, var(--rdgb-gallery-mr, 0)));
	}
}

/*-------------------*/
/* !RD MAP BLOCK     */
/*-------------------*/

/* Outer wrapper: Background / Spacing / Border-Radius */
.rd-map {
	position: relative;
	width: 100%;
	max-width: var(--rdmap-maxw, 100%);
	overflow: hidden;
	padding-top:    var(--rdgb-map-pt);
	padding-bottom: var(--rdgb-map-pb);
	padding-left:   var(--rdgb-map-pl);
	padding-right:  var(--rdgb-map-pr);
	margin-top:     var(--rdgb-map-mt);
	margin-bottom:  var(--rdgb-map-mb);
	margin-left:    var(--rdgb-map-ml);
	margin-right:   var(--rdgb-map-mr);
}

@media (max-width: 768px) {
	.rd-map {
		padding-top    : var(--rdgb-map-pt-768, var(--rdgb-map-pt));
		padding-bottom : var(--rdgb-map-pb-768, var(--rdgb-map-pb));
		padding-left   : var(--rdgb-map-pl-768, var(--rdgb-map-pl));
		padding-right  : var(--rdgb-map-pr-768, var(--rdgb-map-pr));
		margin-top     : var(--rdgb-map-mt-768, var(--rdgb-map-mt));
		margin-bottom  : var(--rdgb-map-mb-768, var(--rdgb-map-mb));
		margin-left    : var(--rdgb-map-ml-768, var(--rdgb-map-ml));
		margin-right   : var(--rdgb-map-mr-768, var(--rdgb-map-mr));
	}
}

@media (max-width: 589px) {
	.rd-map {
		padding-top    : var(--rdgb-map-pt-589, var(--rdgb-map-pt-768, var(--rdgb-map-pt)));
		padding-bottom : var(--rdgb-map-pb-589, var(--rdgb-map-pb-768, var(--rdgb-map-pb)));
		padding-left   : var(--rdgb-map-pl-589, var(--rdgb-map-pl-768, var(--rdgb-map-pl)));
		padding-right  : var(--rdgb-map-pr-589, var(--rdgb-map-pr-768, var(--rdgb-map-pr)));
		margin-top     : var(--rdgb-map-mt-589, var(--rdgb-map-mt-768, var(--rdgb-map-mt)));
		margin-bottom  : var(--rdgb-map-mb-589, var(--rdgb-map-mb-768, var(--rdgb-map-mb)));
		margin-left    : var(--rdgb-map-ml-589, var(--rdgb-map-ml-768, var(--rdgb-map-ml)));
		margin-right   : var(--rdgb-map-mr-589, var(--rdgb-map-mr-768, var(--rdgb-map-mr)));
	}
}

/*----------*/
/* !RADIUS  */
/*----------*/

.rd-map.rd-radius-sm { border-radius: 6px; }
.rd-map.rd-radius-md { border-radius: 12px; }
.rd-map.rd-radius-lg { border-radius: 24px; }
.rd-map.rd-radius-xl { border-radius: 48px; }

/*----------*/
/* !ALIGN   */
/*----------*/

.rd-map--align-center { margin-left: auto; margin-right: auto; }
.rd-map--align-right  { margin-left: auto; margin-right: 0; }
.rd-map--align-left   { margin-left: 0;    margin-right: auto; }

/*--------------------*/
/* !BACKGROUND IMAGE  */
/*--------------------*/

.rd-map .rdgb-bg-img {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: var(--rdmap-bg-size, cover);
	pointer-events: none;
	z-index: 0;
}

.rd-map .rdgb-bg-overlay {
	position: absolute;
	inset: 0;
	z-index: 1;
	pointer-events: none;
}

/*-------------------*/
/* !INNER MAP AREA   */
/*-------------------*/

/* Inner: feste Kartenhöhe, clippt Leaflet-Tiles */
.rd-map__inner {
	position: relative;
	width: 100%;
	height: var(--rdmap-h, 400px);
	overflow: hidden;
}

/*-------------------*/
/* !CONSENT LAYER    */
/*-------------------*/

.rd-map__consent {
	position: absolute;
	inset: 0;
	z-index: 10;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: 16px;
	padding: 24px;
	background: #f4f5f6;
	text-align: center;
}

.rd-map__consent-icon {
	color: var(--rdgb-color-muted, #6b7280);
	opacity: .6;
}

.rd-map__consent-icon svg {
	width: 48px;
	height: 48px;
	display: block;
}

.rd-map__consent-text {
	margin: 0;
	font-size: .875rem;
	color: var(--rdgb-color-muted, #6b7280);
	max-width: 380px;
	line-height: 1.5;
}

.rd-map__consent-btn {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	padding: var(--rdgb-btn-py, 10px) var(--rdgb-btn-px, 20px);
	background: var(--rdgb-color-primary, #0078ff);
	color: #fff;
	border: none;
	border-radius: var(--rdgb-btn-radius, 4px);
	font-size: var(--rdgb-btn-fs, 1rem);
	font-weight: var(--rdgb-btn-fw, 600);
	cursor: pointer;
	transition: opacity .15s;
}

.rd-map__consent-btn:hover { opacity: .85; }

/*----------*/
/* !CANVAS  */
/*----------*/

.rd-map__canvas {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
}

/* Karte aktiv: Consent-Layer ausblenden */
.rd-map--active .rd-map__consent { display: none; }

/*-------------------*/
/* !RD FORM BLOCK    */
/*-------------------*/

.rd-form {
	width: 100%;
	max-width: var(--rdform-maxw, 100%);
	background-color: var(--rdform-bg);
	border-radius: var(--rdform-radius);
	box-shadow: var(--rdform-shadow);
	padding-top:    var(--rdgb-form-pt, var(--rdform-pad));
	padding-bottom: var(--rdgb-form-pb, var(--rdform-pad));
	padding-left:   var(--rdgb-form-pl, var(--rdform-pad));
	padding-right:  var(--rdgb-form-pr, var(--rdform-pad));
	margin-top:     var(--rdgb-form-mt);
	margin-bottom:  var(--rdgb-form-mb);
	margin-left:    var(--rdgb-form-ml);
	margin-right:   var(--rdgb-form-mr);
}

.rd-form--align-center { margin-left: auto; margin-right: auto; }
.rd-form--align-right  { margin-left: auto; margin-right: 0; }
.rd-form--align-left   { margin-left: 0;    margin-right: auto; }

@media (max-width: 768px) {
	.rd-form {
		padding-top    : var(--rdgb-form-pt-768, var(--rdgb-form-pt, var(--rdform-pad)));
		padding-bottom : var(--rdgb-form-pb-768, var(--rdgb-form-pb, var(--rdform-pad)));
		padding-left   : var(--rdgb-form-pl-768, var(--rdgb-form-pl, var(--rdform-pad)));
		padding-right  : var(--rdgb-form-pr-768, var(--rdgb-form-pr, var(--rdform-pad)));
		margin-top     : var(--rdgb-form-mt-768, var(--rdgb-form-mt, 0));
		margin-bottom  : var(--rdgb-form-mb-768, var(--rdgb-form-mb, 0));
		margin-left    : var(--rdgb-form-ml-768, var(--rdgb-form-ml, 0));
		margin-right   : var(--rdgb-form-mr-768, var(--rdgb-form-mr, 0));
	}
}

@media (max-width: 589px) {
	.rd-form {
		padding-top    : var(--rdgb-form-pt-589, var(--rdgb-form-pt-768, var(--rdgb-form-pt, var(--rdform-pad))));
		padding-bottom : var(--rdgb-form-pb-589, var(--rdgb-form-pb-768, var(--rdgb-form-pb, var(--rdform-pad))));
		padding-left   : var(--rdgb-form-pl-589, var(--rdgb-form-pl-768, var(--rdgb-form-pl, var(--rdform-pad))));
		padding-right  : var(--rdgb-form-pr-589, var(--rdgb-form-pr-768, var(--rdgb-form-pr, var(--rdform-pad))));
		margin-top     : var(--rdgb-form-mt-589, var(--rdgb-form-mt-768, var(--rdgb-form-mt, 0)));
		margin-bottom  : var(--rdgb-form-mb-589, var(--rdgb-form-mb-768, var(--rdgb-form-mb, 0)));
		margin-left    : var(--rdgb-form-ml-589, var(--rdgb-form-ml-768, var(--rdgb-form-ml, 0)));
		margin-right   : var(--rdgb-form-mr-589, var(--rdgb-form-mr-768, var(--rdgb-form-mr, 0)));
	}
}

/*-------------------*/
/* !FELDER           */
/*-------------------*/

.rd-form__fields {
	display: flex;
	flex-wrap: wrap;
	gap: 16px;
}

.rd-form__field {
	display: flex;
	flex-direction: column;
	gap: 6px;
}

.rd-form__field--w100 { width: 100%; }
.rd-form__field--w50  { width: calc(50% - 8px); }
.rd-form__field--w33  { width: calc(33.333% - 11px); }

@media (max-width: 600px) {
	.rd-form__field--w50,
	.rd-form__field--w33 { width: 100%; }
}

.rd-form__label {
	font-size: .875rem;
	font-weight: 600;
	color: var(--rdform-label-color, var(--rdgb-color-text, #1a1a1a));
}

.rd-form__req { color: var(--rdgb-color-primary, #0078ff); margin-left: 2px; }

/*-------------------*/
/* !INPUTS           */
/*-------------------*/

.rd-form__input {
	width: 100%;
	padding: var(--rdform-input-padding, var(--rdform-pad, 10px 14px));
	font-size: 1rem;
	line-height: 1.5;
	color: var(--rdform-input-color, var(--rdgb-color-text));
	background: var(--rdform-input-bg);
	border: 1px solid var(--rdform-input-border, #d1d5db);
	border-radius: var(--rdform-input-radius, 0);
	transition: border-color .15s, box-shadow .15s;
	appearance: none;
	box-sizing: border-box;
}

.rd-form__input:focus {
	outline: none;
	border-color: var(--rdgb-color-primary, #0078ff);
	box-shadow: 0 0 0 3px color-mix(in srgb, var(--rdgb-color-primary, #0078ff) 20%, transparent);
}

.rd-form__input.is-invalid {
	border-color: #dc2626;
}

.rd-form__input--textarea {
	resize: vertical;
	min-height: 120px;
}

.rd-form__input--select { cursor: pointer; }

.rd-form__input--captcha { max-width: 220px; }

/*-------------------*/
/* !RADIO / CHECK    */
/*-------------------*/

.rd-form__radio-group { display: flex; flex-direction: column; gap: 8px; }

.rd-form__radio-label,
.rd-form__checkbox-label {
	display: flex;
	align-items: flex-start;
	gap: 10px;
	cursor: pointer;
	font-size: .9375rem;
	color: var(--rdform-label-color, var(--rdgb-color-text, #1a1a1a));
	line-height: 1.5;
}

.rd-form__radio-label input,
.rd-form__checkbox-label input {
	flex-shrink: 0;
	margin-top: 3px;
	accent-color: var(--rdgb-color-primary, #0078ff);
}

/*-------------------*/
/* !DATENSCHUTZ      */
/*-------------------*/

.rd-form__privacy { margin-top: 16px; }

.rd-form__privacy a {
	color: var(--rdgb-color-primary, #0078ff);
	text-decoration: underline;
}

/*-------------------*/
/* !CAPTCHA          */
/*-------------------*/

.rd-form__captcha { margin-top: 20px; display: flex; flex-direction: column; gap: 8px; }

.rd-form__captcha-wrap { display: flex; align-items: center; gap: 10px; flex-wrap: nowrap; }
.rd-form__captcha-wrap .rd-form__input--captcha { flex: 1; min-width: 0; max-width: none; }

.rd-form__captcha-img {
	display: block;
	border: 1px solid var(--rdform-input-border, #d1d5db);
	border-radius: var(--rdform-input-radius, 0);
}

.rd-form__captcha-reload {
	background: none;
	border: 1px solid var(--rdform-input-border, #d1d5db);
	border-radius: var(--rdform-input-radius, 0);
	padding: 8px;
	cursor: pointer;
	color: var(--rdgb-color-muted, #6b7280);
	transition: color .15s, border-color .15s;
	line-height: 0;
}

.rd-form__captcha-reload:hover { color: var(--rdgb-color-primary, #0078ff); border-color: var(--rdgb-color-primary, #0078ff); }

@media (max-width: 589px) {
	.rd-form__captcha-wrap { flex-wrap: wrap; }
	.rd-form__captcha-wrap .rd-form__input--captcha { flex: 1 1 100%; }
}

/*-------------------*/
/* !SUBMIT           */
/*-------------------*/

.rd-form__submit { margin-top: 24px; display: flex; align-items: center; gap: 12px; }

.rd-form__spinner[hidden] { display: none !important; }

.rd-form__spinner {
	display: inline-block;
	width: 20px;
	height: 20px;
	border: 2px solid #d1d5db;
	border-top-color: var(--rdgb-color-primary, #0078ff);
	border-radius: 50%;
	animation: rdform-spin .7s linear infinite;
}

@keyframes rdform-spin { to { transform: rotate(360deg); } }

/*-------------------*/
/* !STATUS           */
/*-------------------*/

.rd-form__field-error {
	font-size: .8125rem;
	color: #dc2626;
}

.rd-form__status {
	margin-top: 16px;
	padding: 14px 18px;
	border-radius: var(--rdgb-btn-radius, 4px);
	font-size: .9375rem;
	line-height: 1.5;
}

.rd-form__status--success {
	background: #f0fdf4;
	color: #166534;
	border: 1px solid #bbf7d0;
}

.rd-form__status--error {
	background: #fef2f2;
	color: #991b1b;
	border: 1px solid #fecaca;
}

