/* =============================================================================
   Kleinfeldt GmbH – Website-Stylesheet (ohne Theme/Page-Builder)
   Bildet das bisherige Erscheinungsbild nach. Seiteninhalte (app/data/site) tragen ihre Gestaltungswerte als
   Variablen im style-Attribut (--k-…): Abstände, Breiten, Farben je Bereich/Spalte/Element. Hier steht, wie diese
   Werte angewendet werden. Breakpoints: groß ≥1202 px, mittel 641–1201 px, klein ≤640 px.
   ============================================================================= */

/* ---------- Schrift ---------- */
/* Inter: dieselben Google-Fonts-Dateien und Schnitte wie im Original (400–700; Stärke 800 gibt es dort nicht, der Browser nimmt 700) */
@font-face { font-family: 'Inter'; font-style: normal; font-weight: 400; font-display: swap; src: url(/assets/fonts/inter-latin-normal.woff2) format('woff2'); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: 'Inter'; font-style: normal; font-weight: 400; font-display: swap; src: url(/assets/fonts/inter-latin-ext-normal.woff2) format('woff2'); unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF; }
@font-face { font-family: 'Inter'; font-style: normal; font-weight: 500; font-display: swap; src: url(/assets/fonts/inter-latin-normal.woff2) format('woff2'); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: 'Inter'; font-style: normal; font-weight: 500; font-display: swap; src: url(/assets/fonts/inter-latin-ext-normal.woff2) format('woff2'); unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF; }
@font-face { font-family: 'Inter'; font-style: normal; font-weight: 600; font-display: swap; src: url(/assets/fonts/inter-latin-normal.woff2) format('woff2'); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: 'Inter'; font-style: normal; font-weight: 600; font-display: swap; src: url(/assets/fonts/inter-latin-ext-normal.woff2) format('woff2'); unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF; }
@font-face { font-family: 'Inter'; font-style: normal; font-weight: 700; font-display: swap; src: url(/assets/fonts/inter-latin-normal.woff2) format('woff2'); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: 'Inter'; font-style: normal; font-weight: 700; font-display: swap; src: url(/assets/fonts/inter-latin-ext-normal.woff2) format('woff2'); unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF; }
@font-face { font-family: 'Inter'; font-style: italic; font-weight: 400; font-display: swap; src: url(/assets/fonts/inter-latin-italic.woff2) format('woff2'); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: 'Inter'; font-style: italic; font-weight: 400; font-display: swap; src: url(/assets/fonts/inter-latin-ext-italic.woff2) format('woff2'); unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF; }
@font-face { font-family: 'Inter'; font-style: italic; font-weight: 500; font-display: swap; src: url(/assets/fonts/inter-latin-italic.woff2) format('woff2'); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: 'Inter'; font-style: italic; font-weight: 500; font-display: swap; src: url(/assets/fonts/inter-latin-ext-italic.woff2) format('woff2'); unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF; }
@font-face { font-family: 'Inter'; font-style: italic; font-weight: 600; font-display: swap; src: url(/assets/fonts/inter-latin-italic.woff2) format('woff2'); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: 'Inter'; font-style: italic; font-weight: 600; font-display: swap; src: url(/assets/fonts/inter-latin-ext-italic.woff2) format('woff2'); unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF; }
@font-face { font-family: 'Inter'; font-style: italic; font-weight: 700; font-display: swap; src: url(/assets/fonts/inter-latin-italic.woff2) format('woff2'); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: 'Inter'; font-style: italic; font-weight: 700; font-display: swap; src: url(/assets/fonts/inter-latin-ext-italic.woff2) format('woff2'); unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF; }

/* ---------- Farben und Typografie ---------- */
:root {
  --k-c1: #ffffff; --k-c2: #f9f9fb; --k-c3: #f2f3f5; --k-c4: #9aa09b;
  --k-c5: #01568f; --k-c6: #da2b26; --k-c7: #212326; --k-c8: #141617;
  --k-c5-dark: #033759;
  /* HSL-Anteile (für Farbangaben mit Transparenz aus den Inhalten, z. B. hsla(var(--k-c1-h), …)) */
  --k-c1-h: 0; --k-c1-s: 0%; --k-c1-l: 100%; --k-c1-a: 100%;   --k-c2-h: 240; --k-c2-s: 20%; --k-c2-l: 98%; --k-c2-a: 100%;
  --k-c3-h: 220; --k-c3-s: 13%; --k-c3-l: 95%; --k-c3-a: 100%; --k-c4-h: 130; --k-c4-s: 3%; --k-c4-l: 62%; --k-c4-a: 100%;
  --k-c5-h: 204; --k-c5-s: 99%; --k-c5-l: 28%; --k-c5-a: 100%; --k-c6-h: 2; --k-c6-s: 71%; --k-c6-l: 50%; --k-c6-a: 100%;
  --k-c7-h: 216; --k-c7-s: 7%; --k-c7-l: 14%; --k-c7-a: 100%;  --k-c8-h: 200; --k-c8-s: 7%; --k-c8-l: 8%; --k-c8-a: 100%;
  --k-font: Inter, Arial, Helvetica, sans-serif;
  --k-t1-font-family: var(--k-font); --k-t1-font-size: 46px; --k-t1-font-weight: 600; --k-t1-font-style: normal; --k-t1-line-height: 1.2; --k-t1-letter-spacing: -0.015em; --k-t1-text-transform: none;
  --k-t2-font-family: var(--k-font); --k-t2-font-size: 24px; --k-t2-font-weight: 600; --k-t2-font-style: normal; --k-t2-line-height: 1.1; --k-t2-letter-spacing: 0px; --k-t2-text-transform: none;
  --k-t3-font-family: var(--k-font); --k-t3-font-size: 16px; --k-t3-font-weight: 500; --k-t3-font-style: normal; --k-t3-line-height: 1.2; --k-t3-letter-spacing: 0.015em; --k-t3-text-transform: none;
  --k-t4-font-family: var(--k-font); --k-t4-font-size: 16px; --k-t4-font-weight: 400; --k-t4-font-style: normal; --k-t4-line-height: 1.72; --k-t4-letter-spacing: 0.015em; --k-t4-text-transform: none;
  --k-t5-font-family: var(--k-font); --k-t5-font-size: 13px; --k-t5-font-weight: 400; --k-t5-font-style: normal; --k-t5-line-height: 1.72; --k-t5-letter-spacing: 0.015em; --k-t5-text-transform: none;
  --k-h1-font-size: 44px; --k-h2-font-size: 38px; --k-h3-font-size: 28px; --k-h4-font-size: 24px; --k-h5-font-size: 20px; --k-h6-font-size: 16px;
  --k-h1-font-family: var(--k-font); --k-h2-font-family: var(--k-font); --k-h2-font-weight: 600; --k-h2-font-style: normal;
  --k-h2-text-transform: none; --k-h2-line-height: 1.2; --k-h2-letter-spacing: -0.015em;
  --k-body-font-size: 18px;
  --k-site-width: 1200px;
  --k-sec-px: 0px;           /* Standard-Seitenabstand der Bereiche (100-%-Seiten: 30px) */
}

/* === Variablen-Reset (automatisch erzeugt von scripts/convert.py, nicht von Hand ändern) === */
.k-sec,
.k-row,
.k-col,
.k-title,
.k-marquee,
.k-text,
.k-check,
.k-btn,
.k-image,
.k-sep,
.k-icon,
.k-menu,
.k-acc,
.k-price,
.k-boxes,
.k-cards,
.k-toc,
.k-share,
.k-crumbs,
.k-secsep,
.k-post-body,
.k-video,
.k-card__img,
.k-form {
  --k-active-bg: initial;
  --k-active-border-bottom: initial;
  --k-active-border-color: initial;
  --k-active-color: initial;
  --k-active-filter-border-size: initial;
  --k-align-content: initial;
  --k-align-items: initial;
  --k-alignment: initial;
  --k-alignment-small: initial;
  --k-amount: initial;
  --k-aspect-ratio: initial;
  --k-background-blend-mode: initial;
  --k-background-color: initial;
  --k-background-image: initial;
  --k-background-position: initial;
  --k-background-repeat: initial;
  --k-backgroundcolor: initial;
  --k-bg: initial;
  --k-bg-blend: initial;
  --k-bg-color: initial;
  --k-bg-color-hover: initial;
  --k-bg-hover: initial;
  --k-bg-image: initial;
  --k-bg-position: initial;
  --k-bg-size: initial;
  --k-body-color: initial;
  --k-border-bottom: initial;
  --k-border-color: initial;
  --k-border-radius: initial;
  --k-border-radius-bottom-left: initial;
  --k-border-radius-bottom-right: initial;
  --k-border-radius-top-left: initial;
  --k-border-radius-top-right: initial;
  --k-border-size: initial;
  --k-border-sizes-bottom: initial;
  --k-border-sizes-left: initial;
  --k-border-sizes-right: initial;
  --k-border-sizes-top: initial;
  --k-border-style: initial;
  --k-border-top: initial;
  --k-box-shadow: initial;
  --k-breadcrumb-sep: initial;
  --k-btn-accent-color: initial;
  --k-btn-accent-hover-color: initial;
  --k-btn-bevel-color: initial;
  --k-btn-bevel-color-hover: initial;
  --k-btn-border-color: initial;
  --k-btn-border-hover-color: initial;
  --k-btn-border-width-bottom: initial;
  --k-btn-border-width-left: initial;
  --k-btn-border-width-right: initial;
  --k-btn-border-width-top: initial;
  --k-btn-font-size: initial;
  --k-btn-gradient-bottom-color: initial;
  --k-btn-gradient-bottom-color-hover: initial;
  --k-btn-gradient-top-color: initial;
  --k-btn-gradient-top-color-hover: initial;
  --k-btn-line-height: initial;
  --k-btn-radius-bottom-left: initial;
  --k-btn-radius-bottom-right: initial;
  --k-btn-radius-top-left: initial;
  --k-btn-radius-top-right: initial;
  --k-btn-text-transform: initial;
  --k-btn-typography-font-family: initial;
  --k-btn-typography-font-style: initial;
  --k-btn-typography-font-weight: initial;
  --k-btn-typography-letter-spacing: initial;
  --k-caption-title-font-family: initial;
  --k-caption-title-font-style: initial;
  --k-caption-title-font-weight: initial;
  --k-caption-title-letter-spacing: initial;
  --k-caption-title-line-height: initial;
  --k-caption-title-size: initial;
  --k-caption-title-transform: initial;
  --k-circle-hover-accent-color: initial;
  --k-circle-yes-font-size: initial;
  --k-circlebordercolor: initial;
  --k-circlebordercolor-hover: initial;
  --k-circlebordersize: initial;
  --k-circlecolor: initial;
  --k-circlecolor-hover: initial;
  --k-close-button-color: initial;
  --k-close-button-color-hover: initial;
  --k-close-icon-size: initial;
  --k-color: initial;
  --k-columns: initial;
  --k-columns-medium: initial;
  --k-content-alignment: initial;
  --k-content-color: initial;
  --k-content-font-family: initial;
  --k-content-font-size: initial;
  --k-content-font-style: initial;
  --k-content-font-weight: initial;
  --k-content-layout: initial;
  --k-content-margin: initial;
  --k-content-wrap: initial;
  --k-divider-color: initial;
  --k-divider-hover-color: initial;
  --k-dots-align: initial;
  --k-filters-height: initial;
  --k-flex-grow: initial;
  --k-flex-grow-medium: initial;
  --k-flex-grow-small: initial;
  --k-flex-shrink: initial;
  --k-flex-shrink-medium: initial;
  --k-flex-shrink-small: initial;
  --k-flex-wrap: initial;
  --k-font-family-mobile-typography: initial;
  --k-font-family-submenu-typography: initial;
  --k-font-family-typography: initial;
  --k-font-size: initial;
  --k-font-style-mobile-typography: initial;
  --k-font-style-submenu-typography: initial;
  --k-font-style-typography: initial;
  --k-font-weight-mobile-typography: initial;
  --k-font-weight-submenu-typography: initial;
  --k-font-weight-typography: initial;
  --k-fs: initial;
  --k-gap: initial;
  --k-heading-color: initial;
  --k-height: initial;
  --k-height-small: initial;
  --k-horizontal-position: initial;
  --k-horizontal-position-medium: initial;
  --k-horizontal-position-small: initial;
  --k-hover-accent-color: initial;
  --k-hover-color: initial;
  --k-icon-alignment: initial;
  --k-icon-box-color: initial;
  --k-icon-color: initial;
  --k-icon-height: initial;
  --k-icon-margin: initial;
  --k-icon-size: initial;
  --k-icon-width: initial;
  --k-iconcolor: initial;
  --k-iconcolor-hover: initial;
  --k-icons-color: initial;
  --k-icons-hover-color: initial;
  --k-icons-size: initial;
  --k-inner-bg-color: initial;
  --k-inner-bg-color-hover: initial;
  --k-inner-bg-image: initial;
  --k-inner-bg-position: initial;
  --k-inner-bg-size: initial;
  --k-item-font-size: initial;
  --k-item-padding-bottom: initial;
  --k-items-padding-bottom: initial;
  --k-items-padding-top: initial;
  --k-justify-content: initial;
  --k-justify-title: initial;
  --k-layout: initial;
  --k-letter-spacing: initial;
  --k-line-height: initial;
  --k-link-color: initial;
  --k-link-hover-color: initial;
  --k-list-indent: initial;
  --k-main-justify-content: initial;
  --k-margin-bottom: initial;
  --k-margin-bottom-large: initial;
  --k-margin-bottom-medium: initial;
  --k-margin-bottom-small: initial;
  --k-margin-left: initial;
  --k-margin-left-small: initial;
  --k-margin-right: initial;
  --k-margin-right-small: initial;
  --k-margin-top: initial;
  --k-margin-top-large: initial;
  --k-margin-top-medium: initial;
  --k-margin-top-small: initial;
  --k-marquee-speed: initial;
  --k-marquee-translate-x: initial;
  --k-max-height: initial;
  --k-max-width: initial;
  --k-min-height: initial;
  --k-mobile-active-color: initial;
  --k-mobile-caret-left: initial;
  --k-mobile-caret-right: initial;
  --k-mobile-font-size: initial;
  --k-mobile-justify: initial;
  --k-mobile-letter-spacing: initial;
  --k-mobile-line-height: initial;
  --k-mobile-nav-button-align-hor: initial;
  --k-mobile-text-transform: initial;
  --k-mobile-trigger-background-color: initial;
  --k-mobile-trigger-color: initial;
  --k-object-position: initial;
  --k-order-medium: initial;
  --k-order-small: initial;
  --k-overflow: initial;
  --k-overlay-background-color: initial;
  --k-padding-bottom: initial;
  --k-padding-bottom-medium: initial;
  --k-padding-bottom-small: initial;
  --k-padding-left: initial;
  --k-padding-left-medium: initial;
  --k-padding-left-small: initial;
  --k-padding-right: initial;
  --k-padding-right-medium: initial;
  --k-padding-right-small: initial;
  --k-padding-top: initial;
  --k-padding-top-medium: initial;
  --k-padding-top-small: initial;
  --k-price-color: initial;
  --k-sep-color: initial;
  --k-separator-border-color: initial;
  --k-separator-border-sizes: initial;
  --k-size: initial;
  --k-spacer-height: initial;
  --k-spacing-left-large: initial;
  --k-spacing-left-medium: initial;
  --k-spacing-left-small: initial;
  --k-spacing-right-large: initial;
  --k-spacing-right-medium: initial;
  --k-spacing-right-small: initial;
  --k-stacked-align-small: initial;
  --k-standout-expansion: initial;
  --k-sticky-offset: initial;
  --k-submenu-active-bg: initial;
  --k-submenu-active-color: initial;
  --k-submenu-bg: initial;
  --k-submenu-border-radius-bottom-left: initial;
  --k-submenu-border-radius-bottom-right: initial;
  --k-submenu-border-radius-top-left: initial;
  --k-submenu-border-radius-top-right: initial;
  --k-submenu-color: initial;
  --k-submenu-font-size: initial;
  --k-submenu-items-padding-bottom: initial;
  --k-submenu-items-padding-left: initial;
  --k-submenu-items-padding-right: initial;
  --k-submenu-items-padding-top: initial;
  --k-submenu-letter-spacing: initial;
  --k-submenu-line-height: initial;
  --k-submenu-sep-color: initial;
  --k-submenu-space: initial;
  --k-submenu-text-transform: initial;
  --k-svg-margin-left: initial;
  --k-svg-margin-left-medium: initial;
  --k-svg-margin-left-small: initial;
  --k-svg-margin-right: initial;
  --k-svg-margin-right-medium: initial;
  --k-svg-margin-right-small: initial;
  --k-table-bg: initial;
  --k-text-color: initial;
  --k-text-font-family: initial;
  --k-text-font-style: initial;
  --k-text-font-weight: initial;
  --k-text-transform: initial;
  --k-textcolor: initial;
  --k-title-color: initial;
  --k-title-font-family: initial;
  --k-title-font-size: initial;
  --k-title-font-style: initial;
  --k-title-font-weight: initial;
  --k-title-letter-spacing: initial;
  --k-title-line-height: initial;
  --k-toggle-hover-accent-color: initial;
  --k-transform: initial;
  --k-transform-hover: initial;
  --k-transition: initial;
  --k-valign-content: initial;
  --k-vertical-position: initial;
  --k-vertical-position-medium: initial;
  --k-vertical-position-small: initial;
  --k-width: initial;
  --k-width-large: initial;
  --k-width-medium: initial;
  --k-width-small: initial;
  --k-z-index: initial;
}
/* === Ende Variablen-Reset === */

/* ---------- Grundlagen ---------- */
*, *::before, *::after { box-sizing: border-box; }
html { background-color: var(--k-c3); -webkit-text-size-adjust: 100%; scroll-behavior: smooth; }
body { margin: 0; min-width: 320px; overflow-x: hidden; color: var(--k-c8); font-family: var(--k-font);
  font-size: var(--k-body-font-size); font-weight: 400; line-height: 1.72; letter-spacing: 0.015em; }
img { max-width: 100%; height: auto; border-style: none; vertical-align: top; }
svg:not(:root) { overflow: hidden; }
a { color: var(--k-glink-color, var(--k-c5)); text-decoration: none; transition: color .2s linear, background-color .2s linear, border-color .2s linear; }
a:hover { color: var(--k-glink-hover-color, var(--k-c8)); }
p { margin: 1em 0; }
.k-prose p, .k-post-large__body p { margin: 0 0 20px; }
ul, ol { margin-top: 0; }
strong, b { font-weight: 700; }
table { border-collapse: collapse; }
input, textarea, select, button { font: inherit; }
.k-i { display: inline-block; height: 1em; fill: currentColor; vertical-align: -0.125em; flex-shrink: 0; }
.sr-only, .k-hp { position: absolute !important; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0; }
.k-skip { position: absolute; left: 12px; top: -60px; z-index: 100000; padding: 10px 16px; background: var(--k-c5); color: #fff; border-radius: 4px; }
.k-skip:focus { top: 12px; color: #fff; }
:focus-visible { outline: 2px solid var(--k-c5); outline-offset: 2px; }

h1, h2, h3, h4, h5, h6 { font-family: var(--k-t1-font-family); font-weight: var(--k-t1-font-weight); line-height: var(--k-t1-line-height);
  letter-spacing: var(--k-t1-letter-spacing); color: var(--k-c8); font-style: normal; text-transform: none; }
h1 { font-size: var(--k-h1-font-size); margin: 0.67em 0; }
h2 { font-size: var(--k-h2-font-size); margin: 0 0 1.1em; }
h3 { font-size: var(--k-h3-font-size); margin: 1em 0; }
h4 { font-size: var(--k-h4-font-size); margin: 1.33em 0; }
h5 { font-size: var(--k-h5-font-size); margin: 1.67em 0; }
h6 { font-size: var(--k-h6-font-size); margin: 2.33em 0; }

/* ---------- Seitenrahmen ---------- */
.k-main { display: block; background-color: var(--k-c1); padding: 0 30px; }
.k-content { max-width: var(--k-site-width); margin: 0 auto; }
.k-content--w100 { max-width: none; --k-sec-px: 30px; }
.k-content--w100 .k-sec { margin-left: -30px; margin-right: -30px; }
.k-content--w100 .k-sec .k-sec { margin-left: 0; margin-right: 0; }
.k-header .k-sec, .k-footer .k-sec { --k-sec-px: 30px; }
.k-prose::after { content: ""; display: table; clear: both; }

/* ---------- Bereich (Container) ---------- */
.k-sec {
  --pt: var(--k-padding-top, 0px); --pr: var(--k-padding-right, var(--k-sec-px)); --pb: var(--k-padding-bottom, 0px); --pl: var(--k-padding-left, var(--k-sec-px));
  --mt: var(--k-margin-top, 0px); --mb: var(--k-margin-bottom, 0px);
  --bgc: var(--k-background-color, transparent); --bgi: var(--k-background-image, none); --bgp: var(--k-background-position, center center);
  --bgs: var(--k-background-size, auto); --bgr: var(--k-background-repeat, no-repeat); --mh: var(--k-min-height, 0px);
  position: relative; display: flex; justify-content: center; flex-wrap: wrap;
  padding: var(--pt) var(--pr) var(--pb) var(--pl);
  margin-top: var(--mt); margin-bottom: var(--mb);
  min-height: var(--mh);
  background-color: var(--bgc); background-image: var(--bgi); background-position: var(--bgp); background-size: var(--bgs);
  background-repeat: var(--bgr); background-blend-mode: var(--k-background-blend-mode, normal);
  border-style: solid; border-color: var(--k-border-color, transparent);
  border-width: var(--k-border-sizes-top, 0) var(--k-border-sizes-right, 0) var(--k-border-sizes-bottom, 0) var(--k-border-sizes-left, 0);
  border-radius: var(--k-border-radius-top-left, 0) var(--k-border-radius-top-right, 0) var(--k-border-radius-bottom-right, 0) var(--k-border-radius-bottom-left, 0);
  box-shadow: var(--k-box-shadow, none);
  z-index: var(--k-z-index, auto);
}
@media (max-width: 1201px) {
  .k-sec {
    --pt: var(--k-padding-top-medium, var(--k-padding-top, 0px)); --pr: var(--k-padding-right-medium, var(--k-padding-right, var(--k-sec-px)));
    --pb: var(--k-padding-bottom-medium, var(--k-padding-bottom, 0px)); --pl: var(--k-padding-left-medium, var(--k-padding-left, var(--k-sec-px)));
    --mt: var(--k-margin-top-medium, var(--k-margin-top, 0px)); --mb: var(--k-margin-bottom-medium, var(--k-margin-bottom, 0px));
    --bgc: var(--k-background-color-medium, var(--k-background-color, transparent)); --bgi: var(--k-background-image-medium, var(--k-background-image, none));
    --bgp: var(--k-background-position-medium, var(--k-background-position, center center)); --bgs: var(--k-background-size-medium, var(--k-background-size, auto));
    --mh: var(--k-min-height-medium, var(--k-min-height, 0px));
  }
}
@media (max-width: 640px) {
  .k-sec {
    --pt: var(--k-padding-top-small, var(--k-padding-top-medium, var(--k-padding-top, 0px)));
    --pr: var(--k-padding-right-small, var(--k-padding-right-medium, var(--k-padding-right, var(--k-sec-px))));
    --pb: var(--k-padding-bottom-small, var(--k-padding-bottom-medium, var(--k-padding-bottom, 0px)));
    --pl: var(--k-padding-left-small, var(--k-padding-left-medium, var(--k-padding-left, var(--k-sec-px))));
    --mt: var(--k-margin-top-small, var(--k-margin-top-medium, var(--k-margin-top, 0px)));
    --mb: var(--k-margin-bottom-small, var(--k-margin-bottom-medium, var(--k-margin-bottom, 0px)));
    --bgc: var(--k-background-color-small, var(--k-background-color-medium, var(--k-background-color, transparent)));
    --bgi: var(--k-background-image-small, var(--k-background-image-medium, var(--k-background-image, none)));
    --bgp: var(--k-background-position-small, var(--k-background-position-medium, var(--k-background-position, center center)));
    --bgs: var(--k-background-size-small, var(--k-background-size-medium, var(--k-background-size, auto)));
    --mh: var(--k-min-height-small, var(--k-min-height-medium, var(--k-min-height, 0px)));
  }
}
.k-sec--fixed { background-attachment: fixed; }
@media (max-width: 800px), (hover: none) { .k-sec--fixed { background-attachment: scroll; } }
.k-sec__pattern, .k-sec__mask { position: absolute; top: 0; left: 0; min-width: 100%; min-height: 100%; pointer-events: none; }
.k-sec__mask { z-index: 6; background-size: cover; background-position: center center; }
.k-sec__pattern { z-index: 5; }

/* ---------- Zeile ---------- */
.k-row { position: relative; z-index: 10; display: flex; flex-wrap: var(--k-flex-wrap, wrap); flex: 1; width: 100%;
  max-width: var(--k-site-width); margin: 0 auto; }
.k-row--inner { max-width: 100% !important; flex: 0 0 auto; z-index: auto; }
.k-ai-start { align-items: flex-start; } .k-ai-center { align-items: center; } .k-ai-end { align-items: flex-end; } .k-ai-stretch { align-items: stretch; }
.k-ac-start { align-content: flex-start; } .k-ac-center { align-content: center; }
.k-as-stretch { align-self: stretch; } .k-as-center { align-self: center; } .k-as-start { align-self: flex-start; } .k-as-end { align-self: flex-end; }
.k-jc-start { justify-content: flex-start; } .k-jc-center { justify-content: center; } .k-jc-end { justify-content: flex-end; }
.k-jc-between { justify-content: space-between; } .k-jc-around { justify-content: space-around; } .k-jc-evenly { justify-content: space-evenly; }

/* ---------- Spalte ---------- */
.k-col {
  --cw: var(--k-width-large, 33.3333%); --co: var(--k-order-large, 0);
  --cmt: var(--k-margin-top-large, 0px); --cmb: var(--k-margin-bottom-large, 20px);
  --csl: var(--k-spacing-left-large, 4%); --csr: var(--k-spacing-right-large, 4%);
  --cpt: var(--k-padding-top, 0px); --cpr: var(--k-padding-right, 0px); --cpb: var(--k-padding-bottom, 0px); --cpl: var(--k-padding-left, 0px);
  --cbgc: var(--k-bg-color, transparent); --cbgi: var(--k-bg-image, none); --cbgp: var(--k-bg-position, left top); --cbgs: var(--k-bg-size, auto auto);
  position: relative; display: flex; width: var(--cw); order: var(--co);
  flex-grow: var(--k-flex-grow, 0); flex-shrink: var(--k-flex-shrink, 0);
  margin-top: var(--cmt); margin-bottom: var(--cmb); z-index: var(--k-z-index, auto);
}
@media (max-width: 1201px) {
  .k-col {
    --cw: var(--k-width-medium, var(--k-width-large, 33.3333%)); --co: var(--k-order-medium, var(--k-order-large, 0));
    --cmt: var(--k-margin-top-medium, var(--k-margin-top-large, 0px)); --cmb: var(--k-margin-bottom-medium, var(--k-margin-bottom-large, 20px));
    --csl: var(--k-spacing-left-medium, var(--k-spacing-left-large, 4%)); --csr: var(--k-spacing-right-medium, var(--k-spacing-right-large, 4%));
    --cpt: var(--k-padding-top-medium, var(--k-padding-top, 0px)); --cpr: var(--k-padding-right-medium, var(--k-padding-right, 0px));
    --cpb: var(--k-padding-bottom-medium, var(--k-padding-bottom, 0px)); --cpl: var(--k-padding-left-medium, var(--k-padding-left, 0px));
    --cbgc: var(--k-bg-color-medium, var(--k-bg-color, transparent)); --cbgi: var(--k-bg-image-medium, var(--k-bg-image, none));
    --cbgp: var(--k-bg-position-medium, var(--k-bg-position, left top)); --cbgs: var(--k-bg-size-medium, var(--k-bg-size, auto auto));
    flex-grow: var(--k-flex-grow-medium, var(--k-flex-grow, 0)); flex-shrink: var(--k-flex-shrink-medium, var(--k-flex-shrink, 0));
  }
}
@media (max-width: 640px) {
  .k-col {
    --cw: var(--k-width-small, 100%); --co: var(--k-order-small, var(--k-order-medium, var(--k-order-large, 0)));
    --cmt: var(--k-margin-top-small, var(--k-margin-top-medium, var(--k-margin-top-large, 0px)));
    --cmb: var(--k-margin-bottom-small, var(--k-margin-bottom-medium, var(--k-margin-bottom-large, 20px)));
    --csl: var(--k-spacing-left-small, var(--k-spacing-left-large, 4%)); --csr: var(--k-spacing-right-small, var(--k-spacing-right-large, 4%));
    --cpt: var(--k-padding-top-small, var(--k-padding-top-medium, var(--k-padding-top, 0px)));
    --cpr: var(--k-padding-right-small, var(--k-padding-right-medium, var(--k-padding-right, 0px)));
    --cpb: var(--k-padding-bottom-small, var(--k-padding-bottom-medium, var(--k-padding-bottom, 0px)));
    --cpl: var(--k-padding-left-small, var(--k-padding-left-medium, var(--k-padding-left, 0px)));
    --cbgc: var(--k-bg-color-small, var(--k-bg-color-medium, var(--k-bg-color, transparent)));
    --cbgi: var(--k-bg-image-small, var(--k-bg-image-medium, var(--k-bg-image, none)));
    --cbgp: var(--k-bg-position-small, var(--k-bg-position-medium, var(--k-bg-position, left top)));
    --cbgs: var(--k-bg-size-small, var(--k-bg-size-medium, var(--k-bg-size, auto auto)));
    flex-grow: var(--k-flex-grow-small, var(--k-flex-grow, 0));
  }
}
.k-col__in {
  position: relative; display: flex; flex-direction: column; width: 100%; min-height: 1px; min-width: 0;
  margin-left: var(--csl); margin-right: var(--csr);
  padding: var(--cpt) var(--cpr) var(--cpb) var(--cpl);
  background-color: var(--cbgc); background-image: var(--cbgi); background-position: var(--cbgp); background-size: var(--cbgs);
  background-repeat: var(--k-bg-repeat, no-repeat); background-blend-mode: var(--k-bg-blend, normal);
  border-style: var(--k-border-style, solid); border-color: var(--k-border-color, transparent);
  border-width: var(--k-border-top, 0) var(--k-border-right, 0) var(--k-border-bottom, 0) var(--k-border-left, 0);
  border-radius: var(--k-border-radius, 0); box-shadow: var(--k-box-shadow, none); overflow: var(--k-overflow, visible);
  transform: var(--k-transform, none); transition: transform .3s ease, background-color .3s ease, border-color .3s ease;
}
.k-col__in:hover { background-color: var(--k-bg-color-hover, var(--cbgc)); transform: var(--k-transform-hover, var(--k-transform, none)); }
.k-col__in--row { flex-direction: row; flex-wrap: wrap; align-items: center; }
.k-col__in--block { display: block; }
.k-col__bg { position: absolute; top: 0; bottom: 0; left: var(--csl); right: var(--csr); overflow: var(--k-inner-bg-overflow, hidden);
  border-radius: var(--k-inner-bg-border-radius, 0); }
.k-col__bgimg { position: absolute; inset: 0; background-color: var(--k-inner-bg-color, transparent); background-image: var(--k-inner-bg-image, none);
  background-position: var(--k-inner-bg-position, left top); background-size: var(--k-inner-bg-size, auto auto); background-repeat: no-repeat;
  transition: transform .3s ease; }
.k-col__bg:hover .k-col__bgimg { transform: var(--k-inner-bg-transform-hover, none); }
.k-col__link { position: absolute; inset: 0; z-index: 1; }
.k-col__ph { display: block; width: 100%; height: auto; opacity: 0; pointer-events: none; }
.k-sticky { position: sticky; top: var(--k-sticky-offset, 0); align-self: flex-start; z-index: 11; }

/* Sichtbarkeit je Bildschirmgröße */
@media (max-width: 640px) { .k-hide-s { display: none !important; } }
@media (min-width: 641px) and (max-width: 1201px) { .k-hide-m { display: none !important; } }
@media (min-width: 1202px) { .k-hide-l { display: none !important; } }

/* ---------- Überschrift ---------- */
.k-title {
  --tmt: var(--k-margin-top, 10px); --tmr: var(--k-margin-right, 0px); --tmb: var(--k-margin-bottom, 15px); --tml: var(--k-margin-left, 0px);
  display: block; margin: var(--tmt) var(--tmr) var(--tmb) var(--tml); font-size: var(--k-font-size, var(--k-body-font-size));
  color: var(--k-text-color, var(--k-c8));
}
.k-title--1 { --k-font-size-default: var(--k-h1-font-size); } .k-title--2 { --k-font-size-default: var(--k-h2-font-size); }
.k-title--3 { --k-font-size-default: var(--k-h3-font-size); } .k-title--4 { --k-font-size-default: var(--k-h4-font-size); }
.k-title--5 { --k-font-size-default: var(--k-h5-font-size); } .k-title--6 { --k-font-size-default: var(--k-h6-font-size); }
.k-title[class*="k-title--"] { font-size: var(--k-font-size, var(--k-font-size-default, var(--k-body-font-size))); }
@media (max-width: 1201px) {
  .k-title { --tmt: var(--k-margin-top-medium, var(--k-margin-top, 10px)); --tmr: var(--k-margin-right-medium, var(--k-margin-right, 0px));
    --tmb: var(--k-margin-bottom-medium, var(--k-margin-bottom, 15px)); --tml: var(--k-margin-left-medium, var(--k-margin-left, 0px)); }
}
@media (max-width: 640px) {
  .k-title { --tmt: var(--k-margin-top-small, 10px); --tmr: var(--k-margin-right-small, 0px); --tmb: var(--k-margin-bottom-small, 10px); --tml: var(--k-margin-left-small, 0px); }
}
.k-title__h { margin: 0; padding: 0; font-size: 1em; color: var(--k-text-color, var(--k-c8)); }
.k-title__h p { margin: 0; }
.k-title--center, .k-al-center { text-align: center; } .k-al-left { text-align: left; } .k-al-right { text-align: right; }
.k-title a { color: var(--k-link-color, var(--k-glink-color, var(--k-c5))); }
.k-title a:hover { color: var(--k-link-hover-color, var(--k-glink-hover-color, var(--k-c8))); }

/* Laufschrift (Öffnungszeiten) */
.k-marquee { overflow: hidden; color: var(--k-text-color, #fff); font-size: 18px; line-height: 1;
  margin: var(--k-margin-top, 10px) 0 var(--k-margin-bottom, 15px); }
@media (max-width: 640px) { .k-marquee { margin: var(--k-margin-top-small, 10px) 0 var(--k-margin-bottom-small, 10px); } }
.k-marquee__track { display: flex; white-space: nowrap; }
.k-marquee__track span { flex-shrink: 0; padding: 0 0.2em; animation: k-marquee var(--k-marquee-speed, 15000ms) linear infinite; }
@keyframes k-marquee { from { transform: translateX(0); } to { transform: translateX(-100%); } }
@media (prefers-reduced-motion: reduce) { .k-marquee__track span { animation: none; } }

/* ---------- Text ---------- */
.k-text {
  --xmt: var(--k-margin-top, 0); --xmr: var(--k-margin-right, 0); --xmb: var(--k-margin-bottom, 0); --xml: var(--k-margin-left, 0);
  color: var(--k-text-color, inherit); font-size: var(--k-font-size, inherit); line-height: var(--k-line-height, inherit);
  letter-spacing: var(--k-letter-spacing, inherit); text-transform: var(--k-text-transform, inherit);
  font-family: var(--k-text-font-family, inherit); font-style: var(--k-text-font-style, inherit); font-weight: var(--k-text-font-weight, inherit);
  text-align: var(--k-content-alignment, initial); margin: var(--xmt) var(--xmr) var(--xmb) var(--xml);
  width: var(--k-width, auto); max-width: var(--k-max-width, none);
}
@media (max-width: 1201px) { .k-text { --xmt: var(--k-margin-top-medium, var(--k-margin-top, 0)); --xmb: var(--k-margin-bottom-medium, var(--k-margin-bottom, 0)); } }
@media (max-width: 640px) { .k-text { --xmt: var(--k-margin-top-small, var(--k-margin-top-medium, var(--k-margin-top, 0)));
  --xmb: var(--k-margin-bottom-small, var(--k-margin-bottom-medium, var(--k-margin-bottom, 0))); } }
.k-text--nm > p { margin-top: 0; }
.k-text--nm > p:last-child { margin-bottom: 0; }
.k-text ul, .k-text ol, .k-prose ul, .k-prose ol { margin-bottom: 20px; }
@media (max-width: 1201px) { .k-ta-m-center { text-align: center; } .k-ta-m-left { text-align: left; } .k-ta-m-right { text-align: right; } }
@media (max-width: 640px) { .k-ta-s-center { text-align: center; } .k-ta-s-left { text-align: left; } .k-ta-s-right { text-align: right; } }
.k-ta-center { text-align: center; }

/* ---------- Checkliste ---------- */
ul.k-check {
  list-style: none; padding: 0; margin: var(--k-margin-top, 10px) var(--k-margin-right, 0) var(--k-margin-bottom, 0) var(--k-margin-left, 0);
  font-size: var(--k-size, 16px); line-height: var(--k-line-height, inherit);
}
.k-check__item { display: flex; align-items: flex-start; padding: var(--k-item-padding-top, .5em) 0 var(--k-item-padding-bottom, .5em) 0; margin: 0; }
.k-check__item:first-child { padding-top: 0; }
.k-check--divider .k-check__item { border-bottom: 1px solid var(--k-divider-color, var(--k-c5)); }
.k-check__icon { display: flex; align-items: center; justify-content: center; flex-shrink: 0;
  width: var(--k-icon-width, 1.5em); height: var(--k-icon-height, 1.5em); margin-inline-end: var(--k-icon-margin, .6em);
  color: var(--k-iconcolor, #fff); }
.k-check__icon.k-circle { border-radius: 50%; background-color: var(--k-circlecolor, var(--k-c5)); font-size: var(--k-circle-yes-font-size, .88em); }
.k-check__txt { flex: 1; min-width: 0; color: var(--k-textcolor, var(--k-c8)); }
.k-check__txt p:first-of-type { margin-top: 0; }
.k-check__txt p:last-of-type { margin-bottom: 0; }

/* ---------- Button ---------- */
.k-btn {
  --bmt: var(--k-margin-top, 0px); --bmr: var(--k-margin-right, 0px); --bmb: var(--k-margin-bottom, 0px); --bml: var(--k-margin-left, 0px);
  --bpt: var(--k-padding-top, 13px); --bpr: var(--k-padding-right, 29px); --bpb: var(--k-padding-bottom, 13px); --bpl: var(--k-padding-left, 29px);
  display: inline-flex; justify-content: center; align-items: center; gap: 0; position: relative; box-sizing: border-box; cursor: pointer;
  margin: var(--bmt) var(--bmr) var(--bmb) var(--bml); padding: var(--bpt) var(--bpr) var(--bpb) var(--bpl);
  font-family: var(--k-t3-font-family); font-weight: var(--k-t3-font-weight); font-style: normal;
  letter-spacing: var(--k-btn-typography-letter-spacing, var(--k-t3-letter-spacing)); font-size: var(--k-btn-font-size, var(--k-t3-font-size));
  line-height: var(--k-btn-line-height, var(--k-t3-line-height)); text-transform: var(--k-btn-text-transform, none); text-decoration: none;
  background: var(--k-btn-gradient-top-color, var(--k-c5)); color: var(--k-btn-accent-color, var(--k-c1));
  border-style: solid; border-width: var(--k-btn-border-width-top, 0px) var(--k-btn-border-width-right, 0px) var(--k-btn-border-width-bottom, 0px) var(--k-btn-border-width-left, 0px);
  border-color: var(--k-btn-border-color, var(--k-c1));
  border-radius: var(--k-btn-radius-top-left, 4px) var(--k-btn-radius-top-right, 4px) var(--k-btn-radius-bottom-right, 4px) var(--k-btn-radius-bottom-left, 4px);
  transition: color .2s linear, background-color .2s linear, border-color .2s linear;
}
.k-btn:hover, .k-btn:focus { background: var(--k-btn-gradient-top-color-hover, var(--k-c5-dark)); color: var(--k-btn-accent-hover-color, var(--k-btn-accent-color, var(--k-c1)));
  border-color: var(--k-btn-border-hover-color, var(--k-c1)); }
@media (max-width: 1201px) { .k-btn { --bmt: var(--k-margin-top-medium, var(--k-margin-top, 0px)); --bmb: var(--k-margin-bottom-medium, var(--k-margin-bottom, 0px)); } }
@media (max-width: 640px) { .k-btn { --bmt: var(--k-margin-top-small, var(--k-margin-top-medium, var(--k-margin-top, 0px)));
  --bmb: var(--k-margin-bottom-small, var(--k-margin-bottom-medium, var(--k-margin-bottom, 0px))); } }
.k-btn--3d { box-shadow: inset 0 1px 0 #fff, 0 .15em 0 var(--k-btn-bevel-color, var(--k-c5-dark)), .1em .2em .2em .15em rgba(0, 0, 0, .3); }
.k-btn--3d:hover { box-shadow: inset 0 1px 0 #fff, 0 .15em 0 var(--k-btn-bevel-color-hover, var(--k-c5-dark)), .1em .2em .2em .15em rgba(0, 0, 0, .3); }
.k-btn--3d:active { transform: translateY(calc(.15em - 1px)); }
.k-btn--block { width: calc(100% - var(--bml) - var(--bmr)); }
.k-btn--large { font-size: var(--k-btn-font-size, 14px); line-height: var(--k-btn-line-height, 17px); }
.k-btn--medium { --bpt: var(--k-padding-top, 11px); --bpr: var(--k-padding-right, 23px); --bpb: var(--k-padding-bottom, 11px); --bpl: var(--k-padding-left, 23px);
  font-size: var(--k-btn-font-size, 13px); line-height: var(--k-btn-line-height, 16px); } /* Avada "button-medium" */
.k-btn__icon { height: 1em; }
.k-btn__icon--left { margin-right: .7em; }
.k-btn__icon--right { margin-left: .7em; }
.k-btn-wrap--block { display: block; }
button.k-btn { border-style: solid; }


/* ---------- Bild ---------- */
.k-image { --imt: var(--k-margin-top, 0); --imb: var(--k-margin-bottom, 0);
  margin: var(--imt) var(--k-margin-right, 0) var(--imb) var(--k-margin-left, 0); line-height: 1; max-width: 100%; }
@media (max-width: 1201px) { .k-image { --imt: var(--k-margin-top-medium, var(--k-margin-top, 0)); --imb: var(--k-margin-bottom-medium, var(--k-margin-bottom, 0)); } }
@media (max-width: 640px) { .k-image { --imt: var(--k-margin-top-small, var(--k-margin-top-medium, var(--k-margin-top, 0)));
  --imb: var(--k-margin-bottom-small, var(--k-margin-bottom-medium, var(--k-margin-bottom, 0))); } }
.k-img { display: inline-block; position: relative; z-index: 1; overflow: hidden; vertical-align: middle; max-width: var(--k-max-width, 100%); line-height: 1;
  border-radius: var(--k-border-radius, 0); }
.k-img img { vertical-align: top; display: block; border-radius: inherit; }
.k-img--ratio { width: 100%; }
.k-img--ratio img { aspect-ratio: var(--k-aspect-ratio, 1/1); object-fit: cover; object-position: var(--k-object-position, 50% 50%); width: 100%; }
.k-img--zoom img { transition: transform .3s ease; } .k-img--zoom:hover img { transform: scale(1.1); }
.k-img--lift { transition: transform .3s ease, box-shadow .3s ease; } .k-img--lift:hover { transform: scale(1.03); box-shadow: 0 0 6px rgba(0,0,0,.18); }

/* ---------- Trennlinie ---------- */
.k-sep { clear: both; position: relative; z-index: 11; display: flex; align-items: center; }
.k-sep__line { flex-grow: 2; border: 0 solid var(--k-sep-color, var(--k-c3)); border-top-width: 1px; height: auto; }
.k-sep--dotted { border-top-style: dotted; border-bottom-style: dotted; }
.k-sep--dashed { border-top-style: dashed; border-bottom-style: dashed; }
.k-sep--solid { border-top-style: solid; }
.k-sep--double { border-top-style: double; border-top-width: 3px; }

/* ---------- Icon-Element ---------- */
.k-icon { display: inline-flex; align-items: center; justify-content: center; float: left; flex-shrink: 0;
  font-size: var(--k-font-size, inherit); width: var(--k-width, auto); height: var(--k-height, auto); line-height: var(--k-line-height, inherit);
  color: var(--k-iconcolor, var(--k-c5)); margin: var(--k-margin-top, 0) var(--k-margin-right, 10px) var(--k-margin-bottom, 0) var(--k-margin-left, 0);
  transition: color .2s linear, background-color .2s linear, border-color .2s linear; }
.k-icon.k-circle { --k-margin-top: 2px; border-radius: 50%; border: var(--k-circlebordersize, 1px) solid var(--k-circlebordercolor, transparent);
  background-color: var(--k-circlecolor, transparent); }
.k-icon:hover { color: var(--k-iconcolor-hover, var(--k-iconcolor)); background-color: var(--k-circlecolor-hover, var(--k-circlecolor, transparent)); }
.k-icon--flow { float: none; }

/* ---------- Breadcrumb ---------- */
.k-crumbs { color: var(--k-text-color, inherit); font-size: var(--k-font-size, 14px); margin: var(--k-margin-top, 0) 0 var(--k-margin-bottom, 0); }
.k-crumbs__list { list-style: none; margin: 0; padding: 0; display: inline; }
.k-crumbs__item { display: inline; }
.k-crumbs__item--sep::after { content: var(--k-breadcrumb-sep, '/'); padding: 0 .4em; }
.k-crumbs a { color: var(--k-text-color, var(--k-c1)); } /* wie Avada: Links in Textfarbe */
.k-crumbs a:hover { color: var(--k-text-hover-color, var(--k-c3)) !important; }

/* ---------- Abschnittstrenner (Dreieck) ---------- */
.k-secsep { position: relative; margin-bottom: var(--k-margin-bottom, 0); }
.k-secsep__svg { position: relative; margin-left: var(--k-svg-margin-left, 0); margin-right: var(--k-svg-margin-right, 0); border-bottom: var(--k-border-bottom, 0); }
.k-secsep__arrow { position: absolute; left: 50%; width: 0; height: 0; margin-left: -20px; border-left: 20px solid transparent; border-right: 20px solid transparent; border-top: 20px solid; z-index: 2; }
.k-secsep__candy { position: absolute; left: 50%; width: 28px; height: 28px; margin-left: -14px; background: var(--k-icon-color, #fff); transform: rotate(-45deg); z-index: 1; }
.k-secsep__spacer { height: var(--k-spacer-height, 0); }

/* ---------- Inhaltsboxen ---------- */
.k-boxes { display: flex; flex-wrap: wrap; margin: 0 -15px 60px; }
.k-boxes__col { width: 100%; padding: 0 15px; margin-bottom: 20px; }
.k-boxes--cols-2 > .k-boxes__col { width: 50%; } .k-boxes--cols-3 > .k-boxes__col { width: 33.3333%; }
.k-boxes--cols-4 > .k-boxes__col { width: 25%; } .k-boxes--cols-5 > .k-boxes__col { width: 20%; } .k-boxes--cols-6 > .k-boxes__col { width: 16.6666%; }
@media (max-width: 800px) { .k-boxes > .k-boxes__col { width: 100%; margin-bottom: 55px; } }
.k-boxes__box { padding: 35px; background-color: var(--k-backgroundcolor, transparent); }
.k-boxes--icon-top .k-boxes__box { text-align: center; }
.k-boxes--left .k-boxes__box { text-align: left; }
.k-boxes__head { margin-bottom: 15px; }
.k-boxes__head--left { display: flex; align-items: center; gap: 20px; }
@media (max-width: 800px) { .k-boxes__head--left { display: block; } .k-boxes__head--left .k-boxes__icon { margin-bottom: 15px; } }
.k-boxes__icon { margin-bottom: 15px; line-height: 0; }
.k-boxes__head--left .k-boxes__icon { margin-bottom: 0; }
.k-boxes__icon > span { display: inline-flex; align-items: center; justify-content: center; }
.k-boxes__glyph { display: inline-flex !important; align-items: center; justify-content: center; color: var(--k-iconcolor, #fff); }
.k-boxes__glyph .k-i { height: 1em; }
.k-boxes__title { margin: 0; font-size: var(--k-h2-font-size, 24px); line-height: 1.2; color: var(--k-title-color, var(--k-c8)); }
.k-boxes__txt { margin-bottom: 20px; }
.k-boxes__txt p:last-child { margin-bottom: 0; }

/* ---------- Preistabelle ---------- */
.k-price { display: grid; grid-template-columns: repeat(var(--k-columns, 3), minmax(0, 1fr)); align-items: start; margin: 0 0 20px; padding: 0 9px; }
.k-price__col { position: relative; }
/* Spalte = grauer Rahmen (9 px) um das weiße Panel; erste/letzte Spalte schließen bündig, hervorgehobene Spalte ragt 20 px heraus */
.k-price__box { padding: 9px 0; background: var(--k-table-bg, transparent); }
.k-price__col:first-child .k-price__box { margin-left: -9px; padding-left: 9px; }
.k-price__col:last-child .k-price__box { margin-right: -9px; padding-right: 9px; }
.k-price__col--standout .k-price__box { position: relative; z-index: 1000; margin: -20px -9px; padding: 9px; box-shadow: 0 0 6px 6px rgba(0, 0, 0, .08); }
.k-price__box > div { background: var(--k-bg, #fff); border: 1px solid var(--k-divider-color, var(--k-c3)); border-right: 0; }
.k-price__col:last-child .k-price__box > div, .k-price__col--standout .k-price__box > div { border-right: 1px solid var(--k-divider-color, var(--k-c3)); }
.k-price__head { padding: 15px; border-bottom: 1px solid var(--k-divider-color, var(--k-c3)); background: var(--k-bg, #fff); text-align: center; }
.k-price__title { margin: 0; font-size: var(--k-title-font-size, 20px); line-height: 1.2; color: var(--k-heading-color, var(--k-c8)); }
.k-price__price { padding: 15px; background: var(--k-table-bg, transparent); text-align: center; }
.k-price .k-price__list { list-style: none; margin: 0; padding: 0; }
.k-price__item { padding: 15px; border-top: 1px solid var(--k-divider-color, var(--k-c3)); background: var(--k-bg, transparent); text-align: center;
  color: var(--k-body-color, inherit); transition: background-color .2s; }
.k-price__item:nth-child(2n) { background: var(--k-features-stripe-color, var(--k-bg, transparent)); }
.k-price__col:hover .k-price__item { background: var(--k-features-bg, var(--k-bg-hover, transparent)); }
.k-price__col:hover .k-price__item:nth-child(2n) { background: var(--k-features-stripe-color, var(--k-features-bg, var(--k-bg-hover, transparent))); }
.k-price__foot { padding: 15px; background: var(--k-table-bg, transparent); text-align: center; }
.k-price__col--standout .k-price__head, .k-price__col--standout .k-price__foot { padding: 25px 15px; }
@media (max-width: 640px) {
  .k-price { grid-template-columns: 1fr; padding: 0; }
  .k-price__col .k-price__box, .k-price__col--standout .k-price__box { margin: 0; padding: 9px; }
}

/* ---------- Akkordeon / FAQ ---------- */
.k-acc { margin: 0; }
.k-filters { list-style: none; margin: 18px 0 55px; padding: 0; display: flex; flex-wrap: wrap; gap: 0 30px; line-height: 34px;
  border-top: 1px solid var(--k-c3); border-bottom: 1px solid var(--k-c3); }
.k-filters a { display: block; line-height: 34px; color: var(--k-c8); }
.k-filters .is-active a { color: var(--k-c5); border-top: 3px solid var(--k-c5); line-height: 31px; }
.k-hidden { display: none !important; }
.k-acc__item { border-bottom: 1px solid var(--k-divider-color, var(--k-c3)); }
.k-acc__q { display: flex; align-items: flex-start; gap: 18px; padding: 10px 0; cursor: pointer; list-style: none;
  font-family: var(--k-title-font-family, var(--k-t1-font-family)); font-weight: var(--k-title-font-weight, 600); font-size: var(--k-title-font-size, 24px);
  line-height: var(--k-title-line-height, 1.2); letter-spacing: var(--k-title-letter-spacing, -0.015em); color: var(--k-title-color, var(--k-c8)); }
.k-acc__q::-webkit-details-marker { display: none; }
.k-acc__q .k-acc__title { margin: 0; font: inherit; letter-spacing: inherit; color: inherit; text-transform: inherit; } /* h4 sieht aus wie der Akkordeon-Titel */
.k-acc__q:hover { color: var(--k-toggle-hover-accent-color, var(--k-c5)); }
.k-acc__icon { display: inline-flex; align-items: center; justify-content: center; flex-shrink: 0; width: 22px; height: 22px; margin-left: 3px;
  margin-top: calc((var(--k-title-line-height, 1.2) * var(--k-title-font-size, 24px) - 22px) / 2); /* Icon mittig zur ersten Zeile wie im Original */
  font-size: 11px; border-radius: 0; background: var(--k-icon-box-color, var(--k-c7)); color: var(--k-icon-color, #fff); }
.k-acc__item[open] .k-acc__icon { background: var(--k-toggle-hover-accent-color, var(--k-c5)); }
.k-acc__q:hover .k-acc__icon { background: var(--k-toggle-hover-accent-color, var(--k-c5)); }
.k-acc__minus { display: none; } .k-acc__item[open] .k-acc__minus { display: inline-block; } .k-acc__item[open] .k-acc__plus { display: none; }
.k-acc__a { padding: 0 0 20px 43px; color: var(--k-content-color, var(--k-c8)); font-size: var(--k-content-font-size, inherit); }
.k-acc--boxed .k-acc__item { border: var(--k-border-size, 1px) solid var(--k-border-color, var(--k-c3)); background: var(--k-background-color, #fff); margin-bottom: 10px; }
.k-acc--boxed .k-acc__q { padding: 15px 20px; } .k-acc--boxed .k-acc__q:hover { background: var(--k-hover-color, var(--k-c2)); }
.k-acc--boxed .k-acc__a { padding: 0 20px 20px 57px; }

/* ---------- Inhaltsverzeichnis ---------- */
/* Inhaltsverzeichnis wie Avada (.awb-toc-el): Einrückung nur für Unterlisten, Einträge 0 10px, Zähler/Aufzählungszeichen per ::before */
.k-toc { margin: 0; padding: var(--k-padding-top, 0) var(--k-padding-right, 0) var(--k-padding-bottom, 0) var(--k-padding-left, 0); overflow: hidden; }
.k-toc .k-toc__list { display: block; list-style: none; counter-reset: awb-toc; margin: 0; padding: 0; }
.k-toc .k-toc__list .k-toc__list { padding-inline-start: var(--k-list-indent, 20px); }
.k-toc__list li { margin: 0; }
.k-toc__list a { display: block; margin: 2px 0; padding: 0 10px; font-size: var(--k-item-font-size, inherit); line-height: var(--k-item-line-height, inherit);
  color: var(--k-item-color, var(--k-glink-color, var(--k-c5))); }
.k-toc__list a:hover, .k-toc__list a:focus { color: var(--k-item-color-hover, var(--k-glink-hover-color, var(--k-c8))); }
.k-toc__list a::before { content: var(--k-counter-type, ""); counter-increment: awb-toc; color: var(--k-counter-color, inherit); }
.k-toc--bullets .k-toc__list a::before { content: "\2022"; margin-inline-end: .4em; }
.k-toc--bullets .k-toc__list li li a::before { content: "\25CB"; }
.k-toc--bullets .k-toc__list li li li a::before { content: "\25AA"; }

/* ---------- Beiträge, Archive, Karten ---------- */
.k-cards { margin-bottom: 20px; }
.k-cards__grid { list-style: none; margin: -20px -20px 0; padding: 0; display: flex; flex-wrap: wrap; }
.k-cards .k-card { --k-spacing-left-large: 0px; --k-spacing-right-large: 0px; --k-margin-bottom-large: 0px; --k-spacing-left-medium: 0px;
  --k-spacing-right-medium: 0px; --k-margin-bottom-medium: 0px; --k-spacing-left-small: 0px; --k-spacing-right-small: 0px; --k-margin-bottom-small: 0px;
  padding: 20px; width: calc(100% / var(--k-columns, 3)); }
@media (max-width: 1201px) { .k-cards .k-card { width: 50%; } }
@media (max-width: 640px) { .k-cards .k-card { width: 100%; } }
.k-card__img { margin: var(--k-margin-top, 0) var(--k-margin-right, 0) var(--k-margin-bottom, 0) var(--k-margin-left, 0); overflow: hidden;
  border-radius: var(--k-border-radius-top-left, 0) var(--k-border-radius-top-right, 0) var(--k-border-radius-bottom-right, 0) var(--k-border-radius-bottom-left, 0); }
.k-card__img img { display: block; width: 100%; aspect-ratio: var(--k-aspect-ratio, auto); object-fit: cover; }
.k-postimg { margin: 0 0 30px; }
.k-postimg__list { list-style: none; margin: 0; padding: 0; }
.k-postimg img { display: block; width: 100%; height: auto; }
.k-imgwrap { position: relative; overflow: hidden; }
.k-imgwrap img { display: block; }
.k-post-title { --k-fs: 48; font-size: 48px; line-height: 1.2; letter-spacing: -0.015em; margin: 0 0 25px; }
.k-post-title a { color: var(--k-glink-color, var(--k-c5)); } .k-post-title a:hover { color: var(--k-glink-hover-color, var(--k-c8)); }
.k-authorbox__avatar { float: left; margin: 0 20px 0 0; }
.k-authorbox__avatar img { display: block; border-radius: 0; }
.k-authorbox__title { --k-fs: 28; font-size: 28px; line-height: 1.2; margin: 0 0 28px; }
.k-authorbox__social { margin: 20px 0 80px; padding: 5px 0; min-height: 12px; border-top: 1px solid var(--k-c3); border-bottom: 1px solid var(--k-c3); }
.k-meta { font-size: 13px; line-height: 1.72; color: var(--k-c8); display: flex; justify-content: space-between; flex-wrap: wrap; border-top: 1px solid var(--k-c3);
  border-bottom: 1px solid var(--k-c3); padding: 5px 0; margin-top: 20px; }
.k-meta__l { margin-right: 15px; } .k-meta__r { margin-left: 15px; }
.k-meta__sep { padding: 0 5px; }
.k-meta a { color: var(--k-c5); } .k-meta a:hover { color: var(--k-c8); }
.k-post-large { margin-bottom: 65px; }
.k-post-large__txt { margin: 0; }
.k-post-large__txt > p:last-child { margin-bottom: 0; }
.k-pager { display: flex; justify-content: flex-end; margin: 40px 13px 0; font-size: 13px; }
.k-pager > a, .k-pager > span { display: flex; align-items: center; justify-content: center; margin: 0 3px; }
.k-pager__cur, .k-pager__link { width: 30px; height: 30px; border: 1px solid var(--k-c3); }
.k-pager__cur { background: var(--k-c5); border-color: var(--k-c5); color: #fff; }
.k-pager__prev, .k-pager__next { line-height: 30px; }
.k-pager__prev::before { content: "‹"; margin-right: 6px; } .k-pager__next::after { content: "›"; margin-left: 6px; }
.k-postnav { text-align: right; margin: 0 0 60px; line-height: 34px; }
.k-postnav a { display: inline-block; position: relative; }
.k-postnav a:first-child::before { content: "‹"; position: absolute; right: 100%; margin-right: 6px; }
.k-postnav a + a { margin: 0 18px 0 15px; }
.k-postnav a:last-child::after { content: "›"; position: absolute; left: 100%; margin-left: 6px; }
h1.k-post-title { margin-bottom: .67em; }
article.post, .k-content article { margin-bottom: 65px; }
.k-post-body { color: var(--k-text-color, inherit); margin: var(--k-margin-top, 0) var(--k-margin-right, 0) var(--k-margin-bottom, 0) var(--k-margin-left, 0); }
.k-share { display: flex; flex-direction: var(--k-layout, row); align-items: center; justify-content: space-between; flex-wrap: wrap;
  padding: 23.94px 20px; margin: 60px 0 0; border: var(--k-separator-border-sizes, 0) solid var(--k-separator-border-color, transparent); }
.k-share__tag { margin: 0; font-size: 24px; line-height: 1.2; --k-fs: 24; }
.k-share__icons { display: flex; flex-wrap: wrap; }
.k-share__icons > span { display: contents; }
.k-share__link { display: block; padding: 0 10px; color: var(--k-c8); font-size: 16px; line-height: 27.52px; }
.k-share__link:hover { color: var(--k-c5); }
@media (max-width: 640px) { .k-share { flex-direction: column; text-align: center; } }
.k-share--theme { background: var(--k-c2); padding: 23.94px 20px; margin: 60px 0 0; justify-content: space-between; flex-wrap: nowrap; }
.k-share--theme h4 { margin: 0; font-size: 24px; line-height: 1.2; }
.k-share--theme .k-share__icons { gap: 0; }
.k-share--theme .k-share__link { display: block; margin: 5px 10px; padding: 0; font-size: 16px; line-height: 16px; color: var(--k-c8); }
.k-author { margin: 55px 0 0; }
.k-author .k-title { margin: 10px 0 15px; }
.k-author .k-title h2, .k-author .k-title h3 { font-size: 20px; line-height: 24px; margin: 0; --k-fs: 20; }
.k-author__box::after { content: ""; display: table; clear: both; }
.k-author__avatar { float: left; margin: 0 20px 5px 0; border-radius: 50%; overflow: hidden; }
.k-author__avatar img { border-radius: 50%; display: block; }
.k-related { margin: 55px 0 0; }
.k-related__h { font-size: 20px; line-height: 1.2; margin: 10px 0 15px; --k-fs: 20; }
.k-related__grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 48px; padding: 8px 0; } /* wie Avada-Karussell (8px oben/unten) */
@media (max-width: 640px) { .k-related__h { margin-bottom: 10px; } }

.k-related__item { display: block; color: var(--k-c8); }
.k-related__item img { display: block; width: 100%; height: auto; }
.k-related__title { font-weight: 600; line-height: 1.3; }

/* ---------- Video ---------- */
.k-video { max-width: var(--k-max-width, 100%); max-height: var(--k-max-height, none); }
.k-video__ratio { position: relative; height: 0; overflow: hidden; }
.k-video__ratio > iframe, .k-video__ratio > .kf-blocked { position: absolute; top: 0; left: 0; width: 100%; height: 100%; border: 0; }

/* ---------- Formular ---------- */
.k-form .k-sec { --k-sec-px: 0px; margin-left: 0 !important; margin-right: 0 !important; }
.k-field { margin: 1em 0; position: relative; }
.k-field fieldset { border: 0; margin: 0; padding: 0; }
.k-field__wrap { position: relative; }
.k-field__icon { position: absolute; left: 16px; top: 0; height: 50px; width: 18px; color: var(--k-c8); font-size: 16px; pointer-events: none; z-index: 1; }
.k-input { width: 100%; height: 50px; padding: 0 16px 0 40px; font-size: 16px; line-height: normal; color: var(--k-form-text-color, var(--k-c8));
  background: var(--k-form-bg-color, var(--k-c1)); border: 1px solid var(--k-form-border-color, #f2f2f2); border-radius: 6px; outline: none; transition: border-color .2s; letter-spacing: normal; }
.k-input::placeholder { color: var(--k-form-placeholder-color, rgba(20, 22, 23, .7)); }
.k-input:focus { border-color: var(--k-form-focus-border-color, var(--k-c5)); }
.k-form label, .k-field__legend { color: var(--k-form-label-color, inherit); }
textarea.k-input { display: block; height: auto; padding: 16px 16px 16px 40px; resize: vertical; }
select.k-input { appearance: none; -webkit-appearance: none; position: relative; cursor: pointer;
  background-image: linear-gradient(45deg, transparent 50%, currentColor 50%), linear-gradient(135deg, currentColor 50%, transparent 50%);
  background-position: calc(100% - 22px) 22px, calc(100% - 16px) 22px; background-size: 6px 6px; background-repeat: no-repeat; }
/* Auswahlfelder wie Avada: echtes Feld unsichtbar, Kreis/Kästchen per label::before, Punkt per ::after */
.k-choice { position: relative; display: flex; margin: 0 0 .5em; }
.k-choice--inline { display: inline-flex; margin: 0 1.5em 0 0; }
.k-choice .k-input { position: absolute; left: 0; top: calc(50% - 7px); width: 14px; height: 14px; padding: 0; margin: 0; opacity: 0; }
.k-choice label { display: block; position: relative; margin: 0; padding: 0 0 0 1.34em; cursor: pointer; }
.k-choice label::before { content: ""; position: absolute; left: 0; top: 50%; min-width: 13px; height: 13px; transform: translateY(-50%);
  border: 1px solid var(--k-form-border-color, #f2f2f2); border-radius: 100%; transition: all .2s ease; }
.k-choice input[type=checkbox] + label::before { border-radius: 4px; }
.k-choice input:hover:not(:checked) + label::before { border-color: var(--k-form-focus-border-hover-color, var(--k-c5)); }
.k-choice input:focus + label::before, .k-choice input:checked + label::before { border-color: var(--k-form-focus-border-color, var(--k-c5)); }
.k-choice input:focus-visible + label::before { outline: 2px solid var(--k-form-focus-border-color, var(--k-c5)); outline-offset: 2px; }
.k-choice input:checked + label::after { content: ""; position: absolute; left: 4px; top: 50%; width: 7px; height: 7px; transform: translateY(-50%);
  border-radius: 100%; background-color: var(--k-form-focus-border-color, var(--k-c5)); }
.k-choice input[type=checkbox]:checked + label::after { border-radius: 2px; }
.k-field__legend { display: block; padding: 0 2px; font-weight: 400; }
.k-field__legend > span { display: inline-block; margin-bottom: .65em; }
.k-req { color: inherit; }
.k-field__tip { position: relative; display: inline-block; margin-left: .4em; color: var(--k-form-label-color, inherit); cursor: pointer; }
.k-field__tiptxt { position: absolute; left: -1.35em; bottom: 2.2em; z-index: 9999; width: auto; white-space: nowrap; padding: .54em .65em;
  background: var(--k-tooltip-background-color, #333); color: var(--k-tooltip-text-color, #fff); font-size: 14px; font-weight: 400; line-height: 1.4;
  border-radius: 2px; opacity: 0; pointer-events: none; transform: translateY(10px); transition: opacity .2s, transform .2s; }
.k-field__tiptxt::before { content: " "; position: absolute; top: 100%; left: calc(1.4em - 5px); margin-left: .2em; width: 0;
  border-top: .6em solid var(--k-tooltip-background-color, #333); border-right: .5em solid transparent; border-left: .5em solid transparent; }
.k-field__tip:hover .k-field__tiptxt, .k-field__tip:focus-within .k-field__tiptxt { opacity: 1; transform: none; }
.k-form__notice[hidden] { display: none; }
.k-form__notice { margin-top: 10px; padding: 15px 20px; border-radius: 6px; font-size: 16px; text-align: center; }
.k-form__notice.is-success { background: #e8f5e9; color: #1b5e20; border: 1px solid #a5d6a7; }
.k-form__notice.is-error { background: #fdecea; color: #8a1f17; border: 1px solid #f5b5ae; }
.k-form.is-sending .k-btn--submit { opacity: .6; pointer-events: none; }

/* ---------- Inhalte aus dem Editor (Beiträge, Rechtstexte) ---------- */
blockquote { margin: 2em 40px; padding: 15px; border-left: 4px solid var(--k-c5); background: var(--k-c2); color: var(--k-c8); font-style: italic;
  font-size: 18px; line-height: 1.72; font-weight: 400; } /* Avada: Zitate immer in Fließtextgröße */
blockquote p { margin: 0 !important; }
.k-prose table { width: 100%; margin-bottom: 20px; }
.k-prose th, .k-prose td { padding: 8px 10px; border: 1px solid var(--k-c3); text-align: left; }
.alignleft { float: left; margin: 0 20px 15px 0; } .alignright { float: right; margin: 0 0 15px 20px; }
.aligncenter { display: block; margin-left: auto; margin-right: auto; }
.wp-caption { max-width: 100%; } .wp-caption-text { font-size: 14px; color: var(--k-c4); margin-top: 6px; }
.k-blocked { min-height: 200px; }

/* ---------- Kopfbereich: Menü ---------- */
.k-header { position: relative; z-index: 1000; background: var(--k-c1); }
.k-menu { position: relative; font-size: var(--k-font-size, 17px); font-weight: var(--k-font-weight-typography, 400); line-height: 1.72; letter-spacing: .015em; }
.k-menu__list { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; align-items: var(--k-align-items, center); min-height: var(--k-min-height, 4em);
  justify-content: var(--k-justify-content, center); }
.k-menu__item { position: relative; display: flex; align-items: center; margin: 0 calc(var(--k-gap, 0px) / 2); background: var(--k-bg, transparent); }
.k-menu__link { display: flex; align-items: center; padding: var(--k-items-padding-top, 0) 0 var(--k-items-padding-bottom, 0); color: var(--k-color, var(--k-c8));
  font-size: inherit; cursor: pointer; }
.k-menu__link > .k-i { box-sizing: content-box; padding: 6.5px 9px; width: calc(var(--k-icons-size, 16) * 1px); height: calc(var(--k-icons-size, 16) * 1px);
  color: var(--k-icons-color, currentColor); }
.k-menu__link:hover, .k-menu__link.is-active, .k-menu__item:focus-within > .k-menu__link { color: var(--k-active-color, var(--k-c5)); }
.k-menu__item:hover, .k-menu__item:focus-within { background: var(--k-active-bg, var(--k-bg, transparent)); }
.k-menu__txt--mobile { display: none; }
.k-menu__item--parent > .k-menu__link::after { content: ""; box-sizing: content-box; width: 6px; height: 6px; margin: 0 2px 4px 10px; border: solid currentColor;
  border-width: 0 1.5px 1.5px 0; transform: rotate(45deg); }
.k-menu__sub-toggle { display: none; }
.k-menu__sub { list-style: none; margin: 0; padding: 0; position: absolute; top: 100%; left: 0; min-width: 195px; background: var(--k-submenu-bg, var(--k-c1));
  opacity: 0; visibility: hidden; transition: opacity .3s, visibility 0s linear .3s; z-index: 20; box-shadow: 0 8px 20px rgba(0, 0, 0, .06); }
.k-menu__item:hover > .k-menu__sub, .k-menu__item:focus-within > .k-menu__sub { opacity: 1; visibility: visible; transition: opacity .3s; }
.k-menu__sublink { display: flex; padding: 12px 20px; color: var(--k-submenu-color, var(--k-c8)); font-size: 14px; line-height: 1.72; white-space: nowrap; }
.k-menu__sublink:hover, .k-menu__sublink.is-active { background: var(--k-c1); color: var(--k-active-color, var(--k-c5)); }
.k-menu__toggle { display: none; align-items: center; gap: 10px; margin: 0 auto; padding: 10px 0; background: var(--k-mobile-trigger-background-color, none);
  border: 0; cursor: pointer; color: var(--k-mobile-trigger-color, var(--k-c5)); font-size: 18px; }
.k-menu__close { display: none; }
@media (max-width: 1201px) {
  .k-menu__toggle { display: flex; }
  .k-menu > .k-menu__list { display: none; position: absolute; left: 0; right: 0; top: 100%; flex-direction: column; align-items: stretch;
    background: var(--k-c1); box-shadow: 0 12px 30px rgba(0, 0, 0, .12); z-index: 30; }
  .k-menu.is-open > .k-menu__list { display: flex; }
  .k-menu.is-open .k-menu__open { display: none; } .k-menu.is-open .k-menu__close { display: inline-block; }
  .k-menu__item { flex-wrap: wrap; margin: 0; border-bottom: 1px solid var(--k-c3); background: var(--k-c1); }
  .k-menu__link { flex: 1 1 0; min-width: 0; padding: 12px 20px; }
  .k-menu__txt--mobile { display: inline; }
  .k-menu__item--parent > .k-menu__link::after { display: none; }
  .k-menu__sub-toggle { display: flex; align-items: center; justify-content: center; width: 54px; align-self: stretch; background: none; border: 0;
    border-left: 1px solid var(--k-c3); color: var(--k-c5); cursor: pointer; }
  .k-menu__sub-toggle .k-i { transition: transform .2s; }
  .k-menu__sub-toggle[aria-expanded="true"] .k-i { transform: rotate(90deg); }
  .k-menu__sub { position: static; width: 100%; min-width: 0; box-shadow: none; border-top: 1px solid var(--k-c3); display: none;
    opacity: 1; visibility: visible; transition: none; background: var(--k-c2); }
  .k-menu__item.is-open > .k-menu__sub { display: block; }
  .k-menu__sublink { padding-left: 40px; }
}
/* Menü als Spalte (Footer) und Menü ohne Ausklappen (Fußzeile) */
.k-menu--col .k-menu__list, .k-menu--static .k-menu__list { display: flex !important; position: static; box-shadow: none; background: none; }
.k-menu--static .k-menu__list { min-height: var(--k-min-height, 0); }
.k-menu--col .k-menu__list { min-height: 0; }
.k-menu--col .k-menu__list { flex-direction: column; align-items: var(--k-justify-content, flex-start); }
.k-menu--col .k-menu__item, .k-menu--static .k-menu__item { margin: 0; border: 0; background: none; }
.k-menu--col .k-menu__item { margin-bottom: var(--k-gap, 0px); width: 100%; justify-content: var(--k-main-justify-content, flex-start); }
.k-menu--col .k-menu__item:last-child { margin-bottom: 0; }
.k-menu--static .k-menu__item { margin: 0 calc(var(--k-gap, 0px) / 2); }
.k-menu--col .k-menu__link, .k-menu--static .k-menu__link { flex: 0 1 auto; padding: 0; color: var(--k-color, inherit); line-height: var(--k-line-height, 1.72);
  text-transform: var(--k-text-transform, none); letter-spacing: var(--k-letter-spacing, .015em);
  border-bottom: var(--k-border-bottom, 0) solid transparent; }
.k-menu--col .k-menu__link:hover, .k-menu--static .k-menu__link:hover { color: var(--k-active-color, inherit); border-bottom-color: var(--k-active-border-color, transparent); }
.k-menu--col .k-menu__toggle, .k-menu--col .k-menu__sub-toggle, .k-menu--static .k-menu__toggle { display: none; }
.k-menu--col .k-menu__link.is-active { color: var(--k-active-color, inherit); }
.k-menu--static .k-menu__link.is-active { color: var(--k-active-color, inherit); border-bottom-color: var(--k-active-border-color, transparent); }
@media (max-width: 1201px) {
  /* Spaltenmenü (z. B. Städte im Footer) klappt wie im Original hinter einen Schalter */
  .k-menu--col .k-menu__toggle { display: flex; margin: 0; padding: 8px 20px; background: var(--k-c1); color: var(--k-c8); font-size: 20px; }
  .k-menu--col > .k-menu__list { display: none !important; margin-top: 10px; }
  .k-menu--col.is-open > .k-menu__list { display: flex !important; }
  .k-menu--col .k-menu__item { justify-content: flex-start; margin: 0; padding: 0; }
  .k-menu--col .k-menu__link { padding: 17px 0; }
}
@media (max-width: 640px) {
  .k-menu--static .k-menu__list { flex-direction: column; align-items: center; }
}

/* ---------- Footer ---------- */
.k-footer { position: relative; }
.k-footer a:hover { color: #fff; }

/* ---------- Seitliche Anruf-Leiste ---------- */
.k-stick { position: fixed; right: 0; top: 50%; transform: translateY(-50%); z-index: 9990; display: flex; flex-direction: column; align-items: flex-end;
  font-family: var(--k-font); }
.k-stick__min { width: 46px; height: 32px; border: 0; background: #000; color: #fff; font-size: 18px; cursor: pointer; line-height: 1; }
.k-stick__btn { position: relative; display: flex; flex-direction: column; align-items: center; justify-content: center; width: 46px; height: 54px;
  background: #dd3333; color: #fff; font-size: 10px; line-height: 1.2; }
.k-stick__btn:hover { color: #fff; }
.k-stick__btn .k-i { font-size: 18px; margin-bottom: 3px; }
.k-stick__fly { position: absolute; right: 100%; top: 0; height: 100%; display: flex; align-items: center; padding: 0 16px; white-space: nowrap; background: #dd3333;
  color: #fff; font-size: 15px; opacity: 0; visibility: hidden; transform: translateX(10px); transition: all .25s; }
.k-stick__btn:hover .k-stick__fly, .k-stick__btn:focus .k-stick__fly { opacity: 1; visibility: visible; transform: none; }
.k-stick.is-min .k-stick__btn { display: none; }
.k-stick.is-min .k-stick__min { transform: scaleX(-1); }
@media (max-width: 1024px) {
  .k-stick { right: auto; left: 0; align-items: flex-start; }
  .k-stick__fly { display: none; }
  .k-stick__min { transform: scaleX(-1); } .k-stick.is-min .k-stick__min { transform: none; }
}

/* ---------- Popup (z. B. Direktanfrage) ---------- */
.k-popup { width: min(var(--k-width, 1100px), calc(100% - 40px)); max-height: calc(100vh - 40px); padding: 0; border: 0; overflow: auto;
  background: var(--k-background-color, #fff); color: inherit; }
.k-popup::backdrop { background: var(--k-overlay-background-color, rgba(0, 0, 0, .8)); }
.k-popup__close { position: absolute; top: 10px; right: 10px; z-index: 2; display: flex; padding: 6px; background: none; border: 0; cursor: pointer;
  color: var(--k-close-button-color, #fff); font-size: var(--k-close-icon-size, 16px); }
.k-popup__close:hover { color: var(--k-close-button-color-hover, var(--k-c5)); }
.k-popup .k-sec { margin-left: 0 !important; margin-right: 0 !important; }
@media (max-width: 640px) { .k-popup { width: var(--k-width-small, 80%); max-height: var(--k-height-small, 80%); } }

/* ---------- Nach oben ---------- */
.k-totop { position: fixed; right: 75px; bottom: 0; z-index: 9980; display: flex; align-items: center; justify-content: center; width: 48px; height: 35px;
  background: #333; color: #fff; font-size: 22px; border-radius: 6px 6px 0 0; opacity: 0; visibility: hidden; transition: opacity .4s ease-in-out, background .2s ease-in-out; }
.k-totop.is-visible { opacity: .9; visibility: visible; }
.k-totop:hover { color: #fff; background: var(--k-c5); }

/* ---------- Überschriften unter 800 px stufenlos kleiner (wie bisher) ----------
   Größe = 18,36px + (Sollgröße − 18,36) × (Viewport − 300px) / 500, höchstens die Sollgröße (--k-fs, ohne Einheit) */
@media (max-width: 800px) {
  h1 { --k-fs: 44; } h2 { --k-fs: 38; } h3 { --k-fs: 28; } h4 { --k-fs: 24; } h5 { --k-fs: 20; } .k-acc:not([style*="--k-title-font-size"]) .k-acc__q { --k-fs: 24; }
  .k-related__h { --k-fs: 28; } /* Avada rechnet hier mit der h3-Größe, obwohl der Titel am Desktop 20px hat */
  .k-price__title { --k-fs: 20; }
  h1, h2, h3, h4, h5, .k-title__h[style*="--k-fs:"], .k-boxes__title[style*="--k-fs:"], .k-post-title, .k-authorbox__title,
  .k-share__tag, .k-share--theme h4, .k-related__h, .k-price__title, .k-author .k-title h2, .k-author .k-title h3, .k-acc:not([style*="--k-title-font-size"]) .k-acc__q {
    font-size: min(calc(var(--k-fs) * 1px), max(calc(var(--k-fs-min, 18.36) * 1px), calc(18.36px + (var(--k-fs) - 18.36) * (100vw - 300px) / 500)));
  }
  .k-title__h:not([style*="--k-fs:"]) { font-size: 1em; }
}

/* ---------- Bild-Rollover (Blog-Übersichten, "Related Posts") wie Avada: von links einfahrend ---------- */
.k-imgwrap { position: relative; overflow: hidden; }
.k-roll { position: absolute; inset: 0; z-index: 1; display: flex; align-items: center; justify-content: space-around; text-align: center;
  background-image: linear-gradient(to top, rgb(154, 160, 155) 0, rgba(155, 161, 156, .8) 100%); transform: translateX(-100%); transition: .3s ease-in-out; }
.k-imgwrap:hover .k-roll, .k-imgwrap:focus-within .k-roll { transform: translateX(0); }
.k-roll__in { width: 90%; padding: 10px; color: var(--k-c8); }
.k-roll__icon { position: relative; z-index: 99; display: inline-flex; align-items: center; justify-content: center; vertical-align: top;
  width: 36.14px; height: 36.14px; border-radius: 50%; background: var(--k-c8); opacity: .9; color: #fff; font-size: 15px; }
.k-roll__icon:hover { color: #fff; }
.k-roll__sep { display: inline-block; width: 5px; height: 36px; }
.k-roll__title { margin: 10px 0 3px; font-size: 24px; line-height: 28.8px; font-weight: 600; letter-spacing: -.36px; color: var(--k-c8); --k-fs: 24; }
.k-roll__title a, .k-roll__cats a { color: var(--k-c8); }
.k-roll__cats { position: relative; z-index: 99; font-size: 13px; line-height: 22.36px; letter-spacing: .195px; }
.k-roll__wrap { position: absolute; inset: 0; z-index: 1; }

/* Lightbox für die Lupe im Rollover */
.k-lightbox { padding: 0; border: 0; background: transparent; max-width: 92vw; max-height: 92vh; overflow: visible; }
.k-lightbox::backdrop { background: rgba(0, 0, 0, .9); }
.k-lightbox img { display: block; max-width: 92vw; max-height: 86vh; width: auto; height: auto; }
.k-lightbox__cap { margin: 8px 0 0; color: #fff; font-size: 14px; line-height: 1.4; text-align: center; }
.k-lightbox__close { position: fixed; top: 16px; right: 20px; border: 0; background: none; color: #fff; font-size: 30px; line-height: 1; cursor: pointer; }

/* Inhaltsboxen "Icon oben": Avada ignoriert hier die Kopf-Ausrichtung "icon-left" und zentriert (z. B. /rotationswaermetauscher/) */
.k-boxes--icon-top .k-boxes__head--left { display: block; }
.k-boxes--icon-top .k-boxes__head--left .k-boxes__icon { margin-bottom: 15px; }
.k-boxes--icon-top.k-boxes--left .k-boxes__box { text-align: center; }
.k-boxes--flex .k-boxes__box { height: 100%; } /* gleich hohe Boxen nur bei Avada "has-flex-alignment" */
/* Avada (mobil, max-device-width 640px): #content bekommt 50px Abstand nach unten, außer bei voller Breite */
@media (max-width: 640px) { .k-content:not(.k-content--full) { margin-bottom: 50px; } }
/* FAQ-Filterleiste: Abstand wie Avada (.fusion-filters), auch innerhalb von Fließtext-Bereichen */
.k-content ul.k-filters { margin: 18px 0 55px; padding: 0; }
/* Einfache Listen im Inhalt: wie im Original oben und unten 1em Abstand (Browser-Standard, von Avada unverändert) */
.k-content :is(ul, ol):not([class]) { margin: 1em 0; }
/* Teilen-Leiste mobil (gestapelt): Abstand unter der Überschrift wie Avada */
@media (max-width: 640px) { .k-share .k-share__tag, .k-share--theme h4 { margin: 0 .5em 1.33em 0; } }
