.elementor-kit-7{--e-global-color-primary:#5BBAE8;--e-global-color-secondary:#002F40;--e-global-color-text:#1E1E1E;--e-global-color-accent:#0B7B3C;--e-global-color-8225244:#5BBAE8;--e-global-color-0ce4a5e:#002F40;--e-global-color-c9eb75e:#FFD814;--e-global-color-708b0c7:#FF8400;--e-global-color-55dcacd:#D5D9D9;--e-global-color-223f1df:#F9F9F9;--e-global-color-151c6a4:#ECECED;--e-global-color-3c203d1:#E5E5E7;--e-global-color-3894eab:#FED85D;--e-global-typography-primary-font-family:"Roboto";--e-global-typography-primary-font-weight:600;--e-global-typography-secondary-font-family:"Roboto Slab";--e-global-typography-secondary-font-weight:400;--e-global-typography-text-font-family:"Roboto";--e-global-typography-text-font-weight:400;--e-global-typography-accent-font-family:"Roboto";--e-global-typography-accent-font-weight:500;font-family:"Lato", Sans-serif;font-size:1rem;font-weight:400;}.elementor-kit-7 e-page-transition{background-color:#FFBC7D;}.elementor-kit-7 a{font-family:"Lato", Sans-serif;}.elementor-kit-7 a:hover{text-decoration:underline;}.elementor-kit-7 h1{font-family:"Work Sans", Sans-serif;font-size:1rem;font-weight:700;}.elementor-kit-7 h2{font-family:"Work Sans", Sans-serif;font-size:1rem;font-weight:700;}.elementor-kit-7 h3{font-family:"Lato", Sans-serif;font-size:1rem;font-weight:400;}.elementor-section.elementor-section-boxed > .elementor-container{max-width:1440px;}.e-con{--container-max-width:1440px;}.elementor-widget:not(:last-child){--kit-widget-spacing:20px;}.elementor-element{--widgets-spacing:20px 20px;--widgets-spacing-row:20px;--widgets-spacing-column:20px;}{}h1.entry-title{display:var(--page-title-display);}.site-header .site-branding{flex-direction:column;align-items:stretch;}.site-header{padding-inline-end:0px;padding-inline-start:0px;}.site-footer .site-branding{flex-direction:column;align-items:stretch;}@media(max-width:1170px){.elementor-section.elementor-section-boxed > .elementor-container{max-width:1024px;}.e-con{--container-max-width:1024px;}}@media(max-width:767px){.elementor-section.elementor-section-boxed > .elementor-container{max-width:767px;}.e-con{--container-max-width:767px;}}:root { --black:#000000; --white:#FFFFFF; --grey-50:#F9F9F9; --grey-100:#EEEEEE; --text-4xl:clamp(2.63rem, 2.30172rem + 1.37931vw, 3.25rem); --text-3xl:clamp(2.25rem, 1.99138rem + 1.10345vw, 2.75rem); --text-2xl:clamp(1.88rem, 1.68103rem + 0.82759vw, 2.25rem); --text-xl:clamp(1.50rem, 1.37069rem + 0.55172vw, 1.75rem); --text-lg:clamp(1.13rem, 1.06034rem + 0.27586vw, 1.25rem); --text-md:1.05rem; --text-sm:clamp(0.6rem, 0.93750rem + 0.00000vw, 0.94rem); --text-xs:clamp(0.88rem, 0.87500rem + 0.00000vw, 0.88rem); --base:#002F40; --nova:#5BBAE8; --highlight:#FED85D; --text:#1E1E1E; --grey-200:#E5E5E7; --nova-hover:#7DC8ED; --nova-active:#3AABE3; --general-highlight:#F95954; --teal:#4C9EA3; --dark-blue:#205C83; --grey-300:#DEDEE0; --grey-400:#D0D1D3; --grey-500:#C2C3C6; --grey-600:#B4B6BA; --grey-700:#989BA0; --grey-800:#8A8D93; --space-xs:clamp(0.19rem, calc(0.168rem + 0.109vw), 0.25rem); --space-sm:clamp(0.38rem, calc(0.336rem + 0.218vw), 0.5rem); --space-lg:clamp(1rem, calc(0.818rem + 0.909vw), 1.5rem); --space-md:clamp(0.75rem, calc(0.659rem + 0.455vw), 1rem); --space-xl:clamp(1.38rem, calc(1.155rem + 1.127vw), 2rem); --space-2xl:clamp(2rem, calc(1.636rem + 1.818vw), 3rem); --space-3xl:clamp(2.5rem, calc(1.955rem + 2.727vw), 4rem); --space-0:0px; --radius-8:8px; --radius-16:16px; --radius-full:999px; --work-sans:Work Sans; --lato:Lato; --highlight-hover:#FEE07A; --general-highlight-hover:#FA7A76; --transparent:#ffffff00; --m-lg:clamp(2rem, 4vw, 4rem);; --space-top-bottom-xl:clamp(3rem, 10vw, 10rem);; --space-top-bottom-2xl:clamp(4rem, 13.3vw, 16rem); --hero-space:clamp(4rem, 13.3vw+100px, 16rem); }
/* Start custom CSS */html, body {
  overflow-x: hidden;
  overscroll-behavior-x: none;
}

a,
a:visited {
  text-decoration: none !important;
}

a,
a:visited,
a:hover,
a:active {
  text-decoration: none;
}

img {
  max-width: 100%;
  height: auto;
  display: block;
  border-radius: 16px;
}


.elementor img 
{
  border-radius: 16px;
}



:root {
  --nova-fs-h1:      clamp(2rem,      1.57143rem + 2.14286vw, 3.5rem);
  --nova-fs-h2:      clamp(1.625rem,  1.07143rem + 1.86vw,    2.5rem);
  --nova-fs-h3:      clamp(1.1875rem, 0.98214rem + 0.625vw,   1.5rem);
  --nova-fs-h4:      clamp(1.0625rem, 0.88393rem + 0.26786vw, 1.25rem);
  --nova-fs-h5:      clamp(1rem,      0.96429rem + 0.17857vw, 1.125rem);
  --nova-fs-h6:      clamp(0.9375rem, 0.90179rem + 0.08929vw, 1rem);
  --nova-fs-body:    clamp(0.9375rem, 0.90179rem + 0.08929vw, 1rem);
  --nova-fs-caption: clamp(0.6875rem, 0.65179rem + 0.08929vw, 0.75rem);
}



/* ----------------------------------------------------------------
   CSS Custom Properties — Font Sizes
   ---------------------------------------------------------------- */
:root {
  --nova-fs-h1:      clamp(2rem,      1.57143rem + 2.14286vw, 3.5rem);
  --nova-fs-h2:      clamp(1.625rem,  1.07143rem + 1.86vw,    2.5rem);
  --nova-fs-h3:      clamp(1.1875rem, 0.98214rem + 0.625vw,   1.5rem);
  --nova-fs-h4:      clamp(1.0625rem, 0.88393rem + 0.26786vw, 1.25rem);
  --nova-fs-h5:      clamp(1rem,      0.96429rem + 0.17857vw, 1.125rem);
  --nova-fs-h6:      clamp(0.9375rem, 0.90179rem + 0.08929vw, 1rem);
  --nova-fs-body:    clamp(0.9375rem, 0.90179rem + 0.08929vw, 1rem);
  --nova-fs-caption: clamp(0.6875rem, 0.65179rem + 0.08929vw, 0.75rem);
}

/* ================================================================
   HEADINGS
   ================================================================ */

/* H1 — Work Sans Bold — 56px / LH 1.1 */
body .elementor h1 {
  font-family: 'Work Sans', sans-serif;
  font-weight: 700;
  font-size: var(--nova-fs-h1);
  line-height: 1.1;
  letter-spacing: 0;
}

/* H2 — Work Sans Bold — 40px / LH 1.2 */
body .elementor h2 {
  font-family: 'Work Sans', sans-serif;
  font-weight: 700;
  font-size: var(--nova-fs-h2);
  line-height: 1.2;
  letter-spacing: 0;
}

/* H3 — Lato Bold — 24px / LH 1.3 */
body .elementor h3 {
  font-family: 'Lato', sans-serif;
  font-weight: 700;
  font-size: var(--nova-fs-h3);
  line-height: 1.3;
  letter-spacing: 0;
}

/* H4 — Lato Bold — 20px / LH 1.4 */
body .elementor h4 {
  font-family: 'Lato', sans-serif;
  font-weight: 700;
  font-size: var(--nova-fs-h4);
  line-height: 1.4;
  letter-spacing: 0;
}

/* H5 — Lato Bold — 18px / LH 1.4 (Ableitung) */
body .elementor h5 {
  font-family: 'Lato', sans-serif;
  font-weight: 700;
  font-size: var(--nova-fs-h5);
  line-height: 1.4;
  letter-spacing: 0;
}

/* H6 — Lato Bold — 16px / LH 1.4 (Ableitung) */
body .elementor h6 {
  font-family: 'Lato', sans-serif;
  font-weight: 700;
  font-size: var(--nova-fs-h6);
  line-height: 1.4;
  letter-spacing: 0;
}

/* ================================================================
   BODY TEXT
   ================================================================ */

/* p — Lato Regular — 16px / LH 1.7 */
p {
  font-family: 'Lato', sans-serif;
  font-weight: 400;
  font-size: var(--nova-fs-body);
  line-height: 1.7;
  letter-spacing: 0;
}

/* ================================================================
   INLINE
   ================================================================ */







/* ===== FADE ===== */
.kb-transition-fade .swiper-slide {
  opacity: 0 !important;
  transition: opacity 800ms ease;
}
.kb-transition-fade .swiper-slide-active {
  opacity: 1 !important;
}

/* Fade Slow */
.kb-transition-fade-slow .swiper-slide {
  opacity: 0 !important;
  transition: opacity 1200ms ease;
}
.kb-transition-fade-slow .swiper-slide-active {
  opacity: 1 !important;
}

/* ===== ZOOM IN ===== */
.kb-transition-zoom-in .swiper-slide {
  opacity: 0 !important;
  transform: scale(0.8);
  transition: opacity 600ms ease, transform 600ms ease;
}
.kb-transition-zoom-in .swiper-slide-active {
  opacity: 1 !important;
  transform: scale(1);
}

/* ===== ZOOM OUT ===== */
.kb-transition-zoom-out .swiper-slide {
  opacity: 0 !important;
  transform: scale(1.2);
  transition: opacity 600ms ease, transform 600ms ease;
}
.kb-transition-zoom-out .swiper-slide-active {
  opacity: 1 !important;
  transform: scale(1);
}

/* ===== BLUR ===== */
.kb-transition-blur .swiper-slide {
  opacity: 0 !important;
  filter: blur(20px);
  transition: opacity 600ms ease, filter 600ms ease;
}
.kb-transition-blur .swiper-slide-active {
  opacity: 1 !important;
  filter: blur(0);
}

/* ===== SLIDE UP ===== */
.kb-transition-slide-up .swiper-slide {
  opacity: 0 !important;
  transform: translateY(50px);
  transition: opacity 500ms ease, transform 500ms ease;
}
.kb-transition-slide-up .swiper-slide-active {
  opacity: 1 !important;
  transform: translateY(0);
}

/* ===== SLIDE DOWN ===== */
.kb-transition-slide-down .swiper-slide {
  opacity: 0 !important;
  transform: translateY(-50px);
  transition: opacity 500ms ease, transform 500ms ease;
}
.kb-transition-slide-down .swiper-slide-active {
  opacity: 1 !important;
  transform: translateY(0);
}

/* ===== FLIP HORIZONTAL ===== */
.kb-transition-flip-x .swiper-wrapper {
  perspective: 1200px;
}
.kb-transition-flip-x .swiper-slide {
  opacity: 0 !important;
  transform: rotateY(90deg);
  transform-origin: center center;
  transition: opacity 600ms ease, transform 600ms ease;
  backface-visibility: hidden;
}
.kb-transition-flip-x .swiper-slide-active {
  opacity: 1 !important;
  transform: rotateY(0deg);
}

/* ===== FLIP VERTICAL ===== */
.kb-transition-flip-y .swiper-wrapper {
  perspective: 1200px;
}
.kb-transition-flip-y .swiper-slide {
  opacity: 0 !important;
  transform: rotateX(90deg);
  transform-origin: center center;
  transition: opacity 600ms ease, transform 600ms ease;
  backface-visibility: hidden;
}
.kb-transition-flip-y .swiper-slide-active {
  opacity: 1 !important;
  transform: rotateX(0deg);
}






/* ===== FADE + ZOOM + BLUR (Kombination) ===== */
.kb-transition-cinematic .swiper-slide {
  opacity: 0 !important;
  transform: scale(1.1);
  filter: blur(10px);
  transition: opacity 800ms ease, transform 800ms ease, filter 800ms ease;
}
.kb-transition-cinematic .swiper-slide-active {
  opacity: 1 !important;
  transform: scale(1);
  filter: blur(0);
}


/* ===== WIPE LEFT ===== */
.kb-transition-wipe-left .swiper-slide {
  opacity: 0 !important;
  clip-path: inset(0 100% 0 0);
  transition: opacity 500ms ease, clip-path 500ms ease;
}
.kb-transition-wipe-left .swiper-slide-active {
  opacity: 1 !important;
  clip-path: inset(0 0 0 0);
}

/* ===== WIPE RIGHT ===== */
.kb-transition-wipe-right .swiper-slide {
  opacity: 0 !important;
  clip-path: inset(0 0 0 100%);
  transition: opacity 500ms ease, clip-path 500ms ease;
}
.kb-transition-wipe-right .swiper-slide-active {
  opacity: 1 !important;
  clip-path: inset(0 0 0 0);
}

/* ===== CIRCLE REVEAL ===== */
.kb-transition-circle .swiper-slide {
  opacity: 0 !important;
  clip-path: circle(0% at 50% 50%);
  transition: opacity 600ms ease, clip-path 600ms ease;
}
.kb-transition-circle .swiper-slide-active {
  opacity: 1 !important;
  clip-path: circle(100% at 50% 50%);
}


/* Overflow Utilities */
.overflow-visible,
.overflow-visible > .e-con-inner,
.overflow-visible .swiper,
.overflow-visible .swiper-wrapper {
  overflow: visible !important;
}


/* Steuerelemente über dem Overlay */
.kb-slider-fade-right .swiper-button-next,
.kb-slider-fade-right .swiper-button-prev,
.kb-slider-fade-right .swiper-pagination,
.kb-slider-fade-right .elementor-swiper-button {
  z-index: 20 !important;
}


.accordion-toggle .elementor-icon i {
  transition: transform 0.4s ease;
  display: block;
}

.accordion.is-open .accordion-toggle .elementor-icon i {
  transform: rotate(45deg);
}

/* Fade rechts - nur auf den Inhalt, nicht auf Navigation */
.kb-slider-fade-right .swiper{
  -webkit-mask-image: linear-gradient(
    to right,
    rgb(0, 0, 0) 0%,
    rgb(0, 0, 0) calc(100% - 120px),
    rgba(0, 0, 0, 0) 100%
  );
  mask-image: linear-gradient(
    to right,
    rgb(0, 0, 0) 0%,
    rgb(0, 0, 0) calc(100% - 120px),
    rgba(0, 0, 0, 0) 100%
  );
}




/* Responsive */
@media (max-width: 767px) {
  .kb-slider-fade-right .swiper-wrapper {
    -webkit-mask-image: linear-gradient(to right, rgb(0,0,0) 0%, rgb(0,0,0) calc(100% - 60px), rgba(0,0,0,0) 100%);
    mask-image: linear-gradient(to right, rgb(0,0,0) 0%, rgb(0,0,0) calc(100% - 60px), rgba(0,0,0,0) 100%);
  }
  .kb-slider-fade-left .swiper-wrapper {
    -webkit-mask-image: linear-gradient(to left, rgb(0,0,0) 0%, rgb(0,0,0) calc(100% - 60px), rgba(0,0,0,0) 100%);
    mask-image: linear-gradient(to left, rgb(0,0,0) 0%, rgb(0,0,0) calc(100% - 60px), rgba(0,0,0,0) 100%);
  }
  .kb-slider-fade-both .swiper-wrapper {
    -webkit-mask-image: linear-gradient(to right, rgba(0,0,0,0) 0%, rgb(0,0,0) 60px, rgb(0,0,0) calc(100% - 60px), rgba(0,0,0,0) 100%);
    mask-image: linear-gradient(to right, rgba(0,0,0,0) 0%, rgb(0,0,0) 60px, rgb(0,0,0) calc(100% - 60px), rgba(0,0,0,0) 100%);
  }
}

.kb-timeline-blur .swiper-slide {
  opacity: 0.4;
  filter: blur(3px);
  transition: all 0.5s ease;
}

.kb-timeline-blur .swiper-slide.swiper-slide-active {
  opacity: 1;
  filter: blur(0);
}

.kb-timeline-blur .swiper-slide.swiper-slide-next,
.kb-timeline-blur .swiper-slide.swiper-slide-prev {
  opacity: 0.6;
  filter: blur(1px);
}

.kb-timeline-slider .swiper-slide {
  color: rgba(255, 255, 255, 0.3) !important;
  transition: color 0.4s ease, transform 0.4s ease, opacity 0.4s ease;
  cursor: pointer;
  opacity: 0.5;
}



/* Alle Jahreszahlen grau */
.kb-timeline-years .swiper-slide .elementor-heading-title {
  color: #B4B6BA!important;
  transition: color 0.5s ease;
}

/* Aktive Jahreszahl farbig */
.kb-timeline-years .swiper-slide.swiper-slide-active .elementor-heading-title {
background: linear-gradient(30deg, #002F40, #5BBAE8);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
  transition: background-color 0.3s ease, border-color 0.3s ease, color 0.3s ease;
}

/* Optional: Nächste/Vorherige etwas heller grau */
.kb-timeline-years .swiper-slide.swiper-slide-next .elementor-heading-title,
.kb-timeline-years .swiper-slide.swiper-slide-prev .elementor-heading-title {
  color: #8A8D93 !important;
}


/* Divider/Linie anpassen */
.kb-timeline-years .swiper-slide .elementor-divider-separator {
  border-color: #DEDEE0 !important;
  transition: border-color 0.5s ease;
}

.kb-timeline-years .swiper-slide.swiper-slide-active .elementor-divider-separator {
   border-image: linear-gradient(90deg, #5BBAE8, #DEDEE0) 1;
   transition: background-color 0.3s ease, border-color 0.3s ease, color 0.3s ease;
}

.kb-timeline-cinematic .swiper-slide {
  opacity: 0.25;
  transform: scale(0.85);
  filter: blur(4px) saturate(0.5);
  transition: all 0.7s cubic-bezier(0.25, 0.46, 0.45, 0.94);
}

.kb-timeline-cinematic .swiper-slide.swiper-slide-active {
  opacity: 1;
  transform: scale(1);
  filter: blur(0) saturate(1);
}

.kb-timeline-cinematic .swiper-slide.swiper-slide-next,
.kb-timeline-cinematic .swiper-slide.swiper-slide-prev {
  opacity: 0.5;
  transform: scale(0.92);
  filter: blur(2px) saturate(0.7);
}


.kb-timeline-process .swiper-slide .elementor-heading-title {
  color: #B4B6BA!important;
  transition: color 0.5s ease;
}


.kb-timeline-process .swiper-slide.swiper-slide-active .elementor-heading-title {
background: linear-gradient(2deg, #205C83, #5BBAE8);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
  transition: background-color 0.3s ease, border-color 0.3s ease, color 0.3s ease;
}


.kb-timeline-process .swiper-slide .elementor-divider-separator {
  display: block !important;
  border: none !important;
  height: 2px !important;
  background: #DEDEE0 !important;
  transition: background 0.5s ease;
}

.kb-timeline-process .swiper-slide.swiper-slide-active .elementor-divider-separator {
  background: linear-gradient(90deg, #5BBAE8, #DEDEE0) !important;
  transition: background 0.3s ease;
}

/* Mit Klasse kb-text-active-dark auf dem Slider */
.kb-text-active-dark .swiper-slide-active .elementor-widget-text-editor .elementor-widget-container,
.kb-text-active-dark .swiper-slide-active .elementor-widget-text-editor .elementor-widget-container p,
.kb-text-active-dark .swiper-slide-active .elementor-widget-text-editor .elementor-widget-container span {
  color: var(--dark-blue) !important;
}


/* ===== FORM WRAPPER ===== */
.nova-form .elementor-form {
  display: flex;
  flex-direction: column;
  gap: 1.25rem;
}

.nova-form .elementor-form-fields-wrapper {
  display: flex;
  flex-direction: column;
  gap: 1.25rem;
}

/* ===== FIELD GROUP ===== */
.nova-form .elementor-field-group {
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
  margin: 0 !important;
  padding: 0 !important;
}

/* ===== LABELS ===== */
.nova-form .elementor-field-label {
  font-family: var(--font-body, 'Avenir', sans-serif) !important;
  font-size: 0.8rem !important;
  font-weight: 600 !important;
  text-transform: uppercase !important;
  letter-spacing: 0.08em !important;
  color: var(--nova, #4A90B8) !important;
  margin-bottom: 0 !important;
}

/* ===== INPUTS & TEXTAREA ===== */
.nova-form .elementor-field-textual {
  width: 100% !important;
  background: transparent !important;
  border: none !important;
  border-bottom: 1px solid rgba(255, 255, 255, 0.2) !important;
  border-radius: 0 !important;
  padding: 0.875rem 0 !important;
  color: var(--dark-blue, #ffffff) !important;
  font-family: var(--font-body, 'Avenir', sans-serif) !important;
  font-size: 1rem !important;
  outline: none !important;
  box-shadow: none !important;
  transition: border-color 0.3s ease !important;
}

/* Placeholder */
.nova-form .elementor-field-textual::placeholder {
  color: rgba(255, 255, 255, 0.3) !important;
  font-size: inherit !important;
}

/* Focus */
.nova-form .elementor-field-textual:focus {
  border-bottom-color: var(--nova, #4A90B8) !important;
  box-shadow: none !important;
  outline: none !important;
}

/* Textarea */
.nova-form textarea.elementor-field-textual {
  resize: none !important;
  min-height: 120px !important;
}

/* ===== SUBMIT BUTTON ===== */
.nova-form .elementor-field-type-submit {
  margin-top: 0.5rem !important;
}

.nova-form .elementor-button {
  font-family: var(--font-body, 'Avenir', sans-serif) !important;
  font-weight: 700 !important;
  font-size: 1rem !important;
  padding: 1rem 2rem !important;
  border-radius: 999px !important;
  background: var(--nova, #4A90B8) !important;
  border: none !important;
  color: var(--dark-blue, #0a1628) !important;
  cursor: pointer;
  transition: all 0.3s ease !important;
  width: 100% !important;
  position: relative;
  overflow: hidden;
}

.nova-form .elementor-button::before {
  content: '';
  position: absolute;
  inset: 0;
  background: rgba(255, 255, 255, 0.1);
  opacity: 0;
  transition: opacity 0.3s ease;
}

.nova-form .elementor-button:hover {
  transform: translateY(-2px);
  box-shadow: 0 8px 25px rgba(74, 144, 184, 0.4) !important;
}

.nova-form .elementor-button:hover::before {
  opacity: 1;
}

.nova-form .elementor-button-text {
  position: relative;
  z-index: 1;
  font-family: inherit !important;
  font-weight: inherit !important;
  color: inherit !important;
}




/* ─── rn-h1 ─── */
.rn-h1 .elementor-heading-title,
.rn-h1 .elementor-widget-container,
.rn-h1 .elementor-widget-container *,
.rn-h1 .dynamic-content-for-elementor-acf,
.rn-h1 .dynamic-content-for-elementor-acf * {
  font-family: var(--font-heading) !important;
  font-weight: 700 !important;
  font-size: var(--text-4xl) !important;
  line-height: 105% !important;
}

/* ─── rn-h2 ─── */
.rn-h2 .elementor-heading-title,
.rn-h2 .elementor-widget-container,
.rn-h2 .elementor-widget-container *,
.rn-h2 .dynamic-content-for-elementor-acf,
.rn-h2 .dynamic-content-for-elementor-acf * {
  font-family: var(--font-heading) !important;
  font-weight: 700 !important;
  font-size: var(--text-3xl) !important;
  line-height: 110% !important;
}

/* ─── rn-h2-copy ─── */
.rn-h2-copy .elementor-heading-title,
.rn-h2-copy .elementor-widget-container,
.rn-h2-copy .elementor-widget-container *,
.rn-h2-copy .dynamic-content-for-elementor-acf {
  font-family: var(--font-body) !important;
  font-weight: 400 !important;
  font-size: var(--text-lg) !important;
}

/* ─── rn-h3 ─── */
.rn-h3 .elementor-heading-title,
.rn-h3 .elementor-widget-container,
.rn-h3 .elementor-widget-container *,
.rn-h3 .dynamic-content-for-elementor-acf {
  font-family: var(--font-body) !important;
  font-weight: 700 !important;
  font-size: var(--text-xl) !important;
}

/* ─── rn-h4 ─── */
.rn-h4 .elementor-heading-title,
.rn-h4 .elementor-widget-container,
.rn-h4 .elementor-widget-container *,
.rn-h4 .dynamic-content-for-elementor-acf {
  font-family: var(--font-body) !important;
  font-weight: 700 !important;
  font-size: var(--text-lg) !important;
}

/* ─── rn-body ─── */
.rn-body .elementor-widget-container,
.rn-body .elementor-widget-container p,
.rn-body .elementor-widget-container span,
.rn-body .dynamic-content-for-elementor-acf,
.rn-body .dynamic-content-for-elementor-acf p {
  font-family: var(--font-body) !important;
  font-weight: 400 !important;
  font-size: var(--text-md) !important;
  line-height: 135% !important;
}

/* ─── rn-caption ─── */
.rn-caption .elementor-widget-container,
.rn-caption .elementor-widget-container *,
.rn-caption .dynamic-content-for-elementor-acf {
  font-family: var(--font-body) !important;
  font-weight: 700 !important;
  font-size: var(--text-sm) !important;
  text-transform: uppercase !important;
}

/* ─── eyebrow ─── */
.eyebrow .elementor-widget-container,
.eyebrow .elementor-widget-container *,
.eyebrow .dynamic-content-for-elementor-acf {
  font-family: var(--font-heading) !important;
  font-weight: 600 !important;
  font-size: var(--text-sm) !important;
  letter-spacing: 1px !important;
  text-transform: uppercase !important;
}

/* ─── text-white ─── */
.text-white .elementor-widget-container,
.text-white .elementor-widget-container *,
.text-white .elementor-heading-title,
.text-white .dynamic-content-for-elementor-acf,
.text-white .dynamic-content-for-elementor-acf * {
  color: var(--color-white) !important;
}

/* ─── text-base ─── */
.text-base .dynamic-content-for-elementor-acf {
  color: var(--color-base) !important;
}

/* ─── text-gradient-nova ─── */
.text-gradient-nova .elementor-heading-title,
.text-gradient-nova .elementor-widget-container,
.text-gradient-nova .elementor-widget-container *,
.text-gradient-nova .dynamic-content-for-elementor-acf,
.text-gradient-nova .dynamic-content-for-elementor-acf * {
  background: linear-gradient(135deg, var(--color-nova), var(--color-dark-blue)) !important;
  -webkit-background-clip: text !important;
  -webkit-text-fill-color: transparent !important;
  background-clip: text !important;
}

/* ─── Buttons auf Elementor Button Widget ─── */
.rn-btn-primary .elementor-button,
.rn-btn-primary.elementor-widget .elementor-button {
  height: 2.75rem !important;
  padding: 0 var(--space-xl) !important;
  border-radius: var(--radius-16) !important;
  background-color: var(--color-nova) !important;
  color: var(--color-base) !important;
  font-family: var(--font-heading) !important;
  font-weight: 500 !important;
  font-size: var(--text-md) !important;
  border: none !important;
  transition: background-color 0.2s !important;
}
.rn-btn-primary .elementor-button:hover {
  background-color: var(--color-nova-hover) !important;
}
.rn-btn-primary .elementor-button-text {
  color: var(--color-base) !important;
}

.rn-btn-secondary .elementor-button,
.rn-btn-secondary.elementor-widget .elementor-button {
  height: 2.75rem !important;
  padding: 0 var(--space-xl) !important;
  border-radius: var(--radius-16) !important;
  background-color: transparent !important;
  color: var(--color-base) !important;
  border: 2px solid var(--color-base) !important;
  font-family: var(--font-heading) !important;
  font-weight: 500 !important;
  font-size: var(--text-md) !important;
}

.rn-btn-outline .elementor-button,
.rn-btn-outline.elementor-widget .elementor-button {
  height: 2.75rem !important;
  padding: 0 var(--space-xl) !important;
  border-radius: var(--radius-16) !important;
  background-color: transparent !important;
  color: var(--color-nova) !important;
  border: 2px solid var(--color-nova) !important;
  font-family: var(--font-heading) !important;
  font-weight: 500 !important;
}
.rn-btn-outline .elementor-button:hover {
  color: var(--color-nova-hover) !important;
  border-color: var(--color-nova-hover) !important;
}

/* ─── Form Fields ─── */
.rn-form .elementor-field-label {
  font-family: var(--font-body) !important;
  font-size: var(--text-sm) !important;
  font-weight: 600 !important;
  color: var(--color-base) !important;
  margin-bottom: var(--space-xs) !important;
}

.rn-form .elementor-field-textual {
  width: 100% !important;
  background: var(--color-white) !important;
  border: 1px solid var(--color-grey-300) !important;
  border-radius: var(--radius-8) !important;
  padding: var(--space-sm) var(--space-md) !important;
  color: var(--color-text) !important;
  font-family: var(--font-body) !important;
  font-size: var(--text-md) !important;
  transition: border-color 0.2s !important;
  outline: none !important;
  box-shadow: none !important;
}

.rn-form .elementor-field-textual:focus {
  border-color: var(--color-nova) !important;
  box-shadow: 0 0 0 3px rgba(91, 186, 232, 0.15) !important;
  outline: none !important;
}

.rn-form .elementor-field-textual::placeholder {
  color: var(--color-grey-600) !important;
}

.rn-form textarea.elementor-field-textual {
  resize: vertical !important;
  min-height: 120px !important;
}

.rn-form .elementor-button {
  height: 2.75rem !important;
  padding: 0 var(--space-xl) !important;
  border-radius: var(--radius-16) !important;
  background-color: var(--color-nova) !important;
  color: var(--color-base) !important;
  font-family: var(--font-heading) !important;
  font-weight: 500 !important;
  font-size: var(--text-md) !important;
  border: none !important;
  cursor: pointer !important;
  transition: background-color 0.2s !important;
  width: 100% !important;
}

.rn-form .elementor-button:hover {
  background-color: var(--color-nova-hover) !important;
}

.rn-form .elementor-button-text {
  color: var(--color-base) !important;
  font-family: inherit !important;
}

/* ─── rn-btn-primary auf dyncontel-acf Link ─── */
.rn-btn-primary .dynamic-content-for-elementor-acf a,
.rn-btn-primary .elementor-widget-container a {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  height: 2.75rem !important;
  padding: 0 var(--space-xl) !important;
  border-radius: var(--radius-16) !important;
  background-color: var(--color-nova) !important;
  /*color: var(--color-base) !important;*/
  font-family: var(--font-heading) !important;
  font-weight: 500 !important;
  font-size: var(--text-md) !important;
  text-decoration: none !important;
  border: none !important;
  cursor: pointer !important;
  transition: background-color 0.2s !important;
  white-space: nowrap !important;
}

.rn-btn-primary .dynamic-content-for-elementor-acf a:hover,
.rn-btn-primary .elementor-widget-container a:hover {
  background-color: var(--color-nova-hover) !important;
  /*color: var(--color-base) !important;*/
  text-decoration: none !important;
}

/* ─── btn-lg Modifier ─── */
.btn-lg .dynamic-content-for-elementor-acf a,
.btn-lg .elementor-widget-container a {
  height: 3.5rem !important;
  padding: 0 32px !important;
}

/* ─── rn-btn-secondary auf dyncontel Link ─── */
.rn-btn-secondary .dynamic-content-for-elementor-acf a,
.rn-btn-secondary .elementor-widget-container a {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  height: 2.75rem !important;
  padding: 0 var(--space-xl) !important;
  border-radius: var(--radius-16) !important;
  background-color: transparent !important;
  color: var(--color-base) !important;
  border: 2px solid var(--color-base) !important;
  font-family: var(--font-heading) !important;
  font-weight: 500 !important;
  font-size: var(--text-md) !important;
  text-decoration: none !important;
  transition: background-color 0.2s, color 0.2s, border-color 0.2s !important;
}

/* ─── rn-btn-outline auf dyncontel Link ─── */
.rn-btn-outline .dynamic-content-for-elementor-acf a,
.rn-btn-outline .elementor-widget-container a {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  height: 2.75rem !important;
  padding: 0 var(--space-xl) !important;
  border-radius: var(--radius-16) !important;
  background-color: transparent !important;
  color: var(--color-nova) !important;
  border: 2px solid var(--color-nova) !important;
  font-family: var(--font-heading) !important;
  font-weight: 500 !important;
  font-size: var(--text-md) !important;
  text-decoration: none !important;
  transition: color 0.2s, border-color 0.2s !important;
}

.rn-btn-outline .dynamic-content-for-elementor-acf a:hover {
  color: var(--color-nova-hover) !important;
  border-color: var(--color-nova-hover) !important;
}

/* ─── text-base auf Links ─── */
.text-base .dynamic-content-for-elementor-acf a,
.text-base .elementor-widget-container a {
  color: var(--color-base) !important;
}


.elementor-button,
.elementor-button *,
.elementor-button span,
.elementor-button .elementor-button-text,
.elementor-button .elementor-button-content-wrapper {
  color: unset !important;
}
/* ================================================================
   Remazing Nova – Elementor Form CSS
   Einfügen in: Appearance > Customize > Additional CSS
   Nutzt vorhandene CSS-Variablen des Design Systems
   ================================================================ */


/* ================================================================
   CONTAINER
   ================================================================ */

.elementor-widget-form .elementor-form {
  background:    var(--base);
  border-radius: 20px;
  padding:       32px;
}

@media (max-width: 600px) {
  .elementor-widget-form .elementor-form { padding: 20px 16px; }
}


/* ================================================================
   LABELS
   ================================================================ */

.elementor-form .elementor-field-label {
  font-weight:    700       !important;
  font-size:      13px      !important;
  text-transform: uppercase !important;
  letter-spacing: 1px       !important;
  color:          #FFFFFF   !important;
  display:        block     !important;
  margin-bottom:  8px       !important;
  opacity:        1;
}

/* Stern neben dem Label-Text, nicht unter dem Feld */
.elementor-form .elementor-field-required .elementor-field-label::after {
  content: ' *';
  color:   var(--nova);
}


/* ================================================================
   INPUTS & TEXTAREA
   ================================================================ */

.elementor-form .elementor-field-textual {
  background:    rgba(255,255,255,0.10)        !important;
  border:        2px solid rgba(255,255,255,0.30) !important;
  border-radius: 10px                          !important;
  padding:       13px 16px                     !important;
  color:         #FFFFFF                       !important;
  font-size:     16px                          !important;
  width:         100%                          !important;
  min-height:    50px;
  transition:    border-color .2s, box-shadow .2s !important;
  -webkit-appearance: none;
  appearance:    none;
}

.elementor-form .elementor-field-textual::placeholder {
  color: rgba(255,255,255,0.55) !important;
}

.elementor-form .elementor-field-textual:hover {
  border-color: rgba(255,255,255,0.50) !important;
}

.elementor-form .elementor-field-textual:focus {
  border-color: var(--nova)                      !important;
  box-shadow:   0 0 0 3px rgba(91,186,232,0.2)  !important;
  outline:      none                             !important;
}

.elementor-form .elementor-field-type-textarea .elementor-field-textual {
  min-height:  110px;
  resize:      vertical;
  line-height: 1.6;
}


/* ================================================================
   SELECT
   ================================================================ */

.elementor-form .elementor-field-type-select select {
  background-color:    rgba(255,255,255,0.10);
  border:              2px solid rgba(255,255,255,0.30);
  border-radius:       10px;
  padding:             13px 44px 13px 16px;
  color:               #FFFFFF;
  font-size:           16px;
  width:               100%;
  min-height:          50px;
  -webkit-appearance:  none;
  appearance:          none;
  background-image:    url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 16 16'%3E%3Cpath d='M4 6l4 4 4-4' stroke='%235BBAE8' stroke-width='2' fill='none' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
  background-repeat:   no-repeat;
  background-position: right 16px center;
  cursor:              pointer;
  transition:          border-color .2s, box-shadow .2s;
}

.elementor-form .elementor-field-type-select select:hover {
  border-color: rgba(255,255,255,0.50);
}

.elementor-form .elementor-field-type-select select:focus {
  border-color: var(--nova);
  box-shadow:   0 0 0 3px rgba(91,186,232,0.2);
  outline:      none;
}

.elementor-form .elementor-field-type-select select option {
  background: var(--base);
  color:      #FFFFFF;
}


/* ================================================================
   CHECKBOXEN ALS KARTEN (checkbox_list)

   Elementor-Struktur (tatsächlich im DOM):
   <span class="elementor-field-option">
     <input type="checkbox" id="...">   ← opacity 0, volle Fläche
     <label for="...">Text</label>      ← styled als Karte
   </span>
   ================================================================ */

.elementor-form .elementor-field-type-checkbox_list .elementor-field-subgroup,
.elementor-form .elementor-field-type-checkbox .elementor-field-subgroup {
  display:               grid;
  grid-template-columns: 1fr 1fr;
  gap:                   8px;
}

@media (max-width: 600px) {
  .elementor-form .elementor-field-type-checkbox_list .elementor-field-subgroup,
  .elementor-form .elementor-field-type-checkbox .elementor-field-subgroup {
    grid-template-columns: 1fr;
  }
}

.elementor-form .elementor-field-type-checkbox_list .elementor-field-option,
.elementor-form .elementor-field-type-checkbox .elementor-field-option {
  position: relative;
  display:  block;
}

.elementor-form .elementor-field-type-checkbox_list .elementor-field-option input[type="checkbox"],
.elementor-form .elementor-field-type-checkbox .elementor-field-option input[type="checkbox"] {
  position: absolute;
  inset:    0;
  width:    100%;
  height:   100%;
  opacity:  0;
  cursor:   pointer;
  margin:   0;
  z-index:  1;
}

.elementor-form .elementor-field-type-checkbox_list .elementor-field-option label,
.elementor-form .elementor-field-type-checkbox .elementor-field-option label {
  display:       flex;
  align-items:   center;
  gap:           10px;
  padding:       12px 14px;
  background:    rgba(255,255,255,0.10);
  border:        2px solid rgba(255,255,255,0.28);
  border-radius: 10px;
  color:         rgba(255,255,255,0.75) !important;
  font-size:     14px;
  font-weight:   700;
  cursor:        pointer;
  min-height:    48px;
  transition:    border-color .2s, background .2s, color .2s;
  user-select:   none;
  position:      relative;
  z-index:       0;
}

/* Indikator-Box links */
.elementor-form .elementor-field-type-checkbox_list .elementor-field-option label::before,
.elementor-form .elementor-field-type-checkbox .elementor-field-option label::before {
  content:             '';
  width:               18px;
  height:              18px;
  min-width:           18px;
  border:              2px solid rgba(255,255,255,0.4);
  border-radius:       4px;
  background:          transparent;
  flex-shrink:         0;
  transition:          background .2s, border-color .2s;
  background-repeat:   no-repeat;
  background-position: center;
}

/* Checked – Sibling-Selektor */
.elementor-form .elementor-field-type-checkbox_list .elementor-field-option input[type="checkbox"]:checked ~ label,
.elementor-form .elementor-field-type-checkbox .elementor-field-option input[type="checkbox"]:checked ~ label {
  border-color: var(--nova);
  background:   rgba(91,186,232,0.15);
  color:        #FFFFFF !important;
}

.elementor-form .elementor-field-type-checkbox_list .elementor-field-option input[type="checkbox"]:checked ~ label::before,
.elementor-form .elementor-field-type-checkbox .elementor-field-option input[type="checkbox"]:checked ~ label::before {
  background-color: var(--nova);
  border-color:     var(--nova);
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='11' height='8' viewBox='0 0 11 8'%3E%3Cpath d='M1 4L4 7L10 1' stroke='white' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
}

/* Checked – :has() Fallback */
.elementor-form .elementor-field-type-checkbox_list .elementor-field-option:has(input:checked) label,
.elementor-form .elementor-field-type-checkbox .elementor-field-option:has(input:checked) label {
  border-color: var(--nova);
  background:   rgba(91,186,232,0.15);
  color:        #FFFFFF !important;
}

.elementor-form .elementor-field-type-checkbox_list .elementor-field-option:has(input:checked) label::before,
.elementor-form .elementor-field-type-checkbox .elementor-field-option:has(input:checked) label::before {
  background-color: var(--nova);
  border-color:     var(--nova);
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='11' height='8' viewBox='0 0 11 8'%3E%3Cpath d='M1 4L4 7L10 1' stroke='white' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
}

.elementor-form .elementor-field-type-checkbox_list .elementor-field-option input[type="checkbox"]:focus-visible ~ label,
.elementor-form .elementor-field-type-checkbox .elementor-field-option input[type="checkbox"]:focus-visible ~ label {
  outline:        3px solid var(--nova);
  outline-offset: 2px;
}


/* ================================================================
   RADIO BUTTONS ALS KARTEN
   ================================================================ */

.elementor-form .elementor-field-type-radio .elementor-field-subgroup {
  display:               grid;
  grid-template-columns: 1fr 1fr;
  gap:                   8px;
}

@media (max-width: 600px) {
  .elementor-form .elementor-field-type-radio .elementor-field-subgroup {
    grid-template-columns: 1fr;
  }
}

.elementor-form .elementor-field-type-radio .elementor-field-option {
  position: relative;
  display:  block;
}

.elementor-form .elementor-field-type-radio .elementor-field-option input[type="radio"] {
  position: absolute;
  inset:    0;
  width:    100%;
  height:   100%;
  opacity:  0;
  cursor:   pointer;
  margin:   0;
  z-index:  1;
}

.elementor-form .elementor-field-type-radio .elementor-field-option label {
  display:       flex;
  align-items:   center;
  gap:           10px;
  padding:       12px 14px;
  background:    rgba(255,255,255,0.10);
  border:        2px solid rgba(255,255,255,0.28);
  border-radius: 10px;
  color:         rgba(255,255,255,0.75) !important;
  font-size:     14px;
  font-weight:   700;
  cursor:        pointer;
  min-height:    48px;
  transition:    all .2s;
  user-select:   none;
  position:      relative;
  z-index:       0;
}

.elementor-form .elementor-field-type-radio .elementor-field-option label::before {
  content:       '';
  width:         18px;
  height:        18px;
  min-width:     18px;
  border:        2px solid rgba(255,255,255,0.4);
  border-radius: 50%;
  background:    transparent;
  flex-shrink:   0;
  transition:    all .2s;
}

.elementor-form .elementor-field-type-radio .elementor-field-option input[type="radio"]:checked ~ label {
  border-color: var(--nova);
  background:   rgba(91,186,232,0.15);
  color:        #FFFFFF !important;
}

.elementor-form .elementor-field-type-radio .elementor-field-option input[type="radio"]:checked ~ label::before {
  background:   var(--nova);
  border-color: var(--nova);
  box-shadow:   inset 0 0 0 3px var(--base);
}

.elementor-form .elementor-field-type-radio .elementor-field-option:has(input:checked) label {
  border-color: var(--nova);
  background:   rgba(91,186,232,0.15);
  color:        #FFFFFF !important;
}

.elementor-form .elementor-field-type-radio .elementor-field-option:has(input:checked) label::before {
  background:   var(--nova);
  border-color: var(--nova);
  box-shadow:   inset 0 0 0 3px var(--base);
}

.elementor-form .elementor-field-type-radio .elementor-field-option input[type="radio"]:focus-visible ~ label {
  outline:        3px solid var(--nova);
  outline-offset: 2px;
}


/* ================================================================
   DATENSCHUTZ / ACCEPTANCE
   ================================================================ */

.elementor-form .elementor-field-type-acceptance .elementor-field-option,
.elementor-form .elementor-acceptance-item { position: relative; }

.elementor-form .elementor-field-type-acceptance .elementor-field-option input[type="checkbox"],
.elementor-form .elementor-acceptance-item input[type="checkbox"] {
  position:    absolute;
  inset:       0;
  width:       100%;
  height:      100%;
  opacity:     0;
  cursor:      pointer;
  margin:      0;
  z-index:     1;
}

.elementor-form .elementor-field-type-acceptance .elementor-field-option label,
.elementor-form .elementor-acceptance-item label {
  display:     flex;
  align-items: flex-start;
  gap:         12px;
  color:       rgba(255,255,255,0.75) !important;
  font-size:   14px;
  line-height: 1.6;
  cursor:      pointer;
  position:    relative;
  z-index:     0;
}

.elementor-form .elementor-field-type-acceptance .elementor-field-option label::before,
.elementor-form .elementor-acceptance-item label::before {
  content:             '';
  width:               22px;
  height:              22px;
  min-width:           22px;
  border:              2px solid rgba(255,255,255,0.4);
  border-radius:       5px;
  background:          rgba(255,255,255,0.07);
  margin-top:          1px;
  flex-shrink:         0;
  transition:          all .2s;
  background-repeat:   no-repeat;
  background-position: center;
}

.elementor-form .elementor-field-type-acceptance .elementor-field-option input:checked ~ label::before,
.elementor-form .elementor-acceptance-item input:checked ~ label::before {
  background-color: var(--nova);
  border-color:     var(--nova);
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='13' height='9' viewBox='0 0 13 9'%3E%3Cpath d='M1 4.5L4.5 8L12 1' stroke='white' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
}

.elementor-form .elementor-field-type-acceptance .elementor-field-option:has(input:checked) label::before,
.elementor-form .elementor-acceptance-item:has(input:checked) label::before {
  background-color: var(--nova);
  border-color:     var(--nova);
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='13' height='9' viewBox='0 0 13 9'%3E%3Cpath d='M1 4.5L4.5 8L12 1' stroke='white' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
}

.elementor-form .elementor-field-type-acceptance .elementor-field-option input:focus-visible ~ label::before,
.elementor-form .elementor-acceptance-item input:focus-visible ~ label::before {
  outline:        3px solid var(--nova);
  outline-offset: 2px;
}

.elementor-form .elementor-field-type-acceptance a,
.elementor-form .elementor-acceptance-item a {
  color:           var(--nova);
  text-decoration: underline;
}


/* ================================================================
   SUBMIT-BUTTON
   ================================================================ */

.elementor-form .elementor-button {
  background-color: var(--nova)            !important;
  color:            #FFFFFF                !important;
  font-weight:      700                    !important;
  font-size:        16px                   !important;
  border-radius:    16px                   !important;
  border:           2px solid transparent  !important;
  padding:          14px 32px             !important;
  min-height:       50px                   !important;
  width:            auto                   !important;
  display:          inline-flex            !important;
  align-items:      center                 !important;
  cursor:           pointer                !important;
  transition:       background .2s         !important;
}

.elementor-form .elementor-button:hover {
  background-color: var(--nova-hover) !important;
}

.elementor-form .elementor-button:active {
  background-color: var(--nova-active) !important;
}

.elementor-form .elementor-button:focus-visible {
  outline:        3px solid #FFFFFF !important;
  outline-offset: 2px               !important;
}


/* ================================================================
   FEHLERMELDUNGEN & ERFOLG
   ================================================================ */

.elementor-form .elementor-message {
  font-size:     12px;
  margin-top:    6px;
  border-radius: 8px;
}

.elementor-form .elementor-message-danger,
.elementor-form .elementor-field-group .elementor-message {
  color:      var(--general-highlight);
  background: rgba(249,89,84,0.08);
  padding:    8px 12px;
}

.elementor-form .elementor-message-success {
  color:         #FFFFFF;
  background:    rgba(91,186,232,0.12);
  border:        2px solid rgba(91,186,232,0.3);
  padding:       14px 18px;
  border-radius: 10px;
  font-size:     16px;
  font-weight:   700;
}


/* ================================================================
   MULTI-STEP: SCHRITT-INDIKATOR
   ================================================================ */

/* CSS-Variablen überschreiben (Elementor nutzt diese intern) */
.elementor-form {
  --e-form-steps-indicator-active-primary-color:   var(--nova);
  --e-form-steps-indicator-active-secondary-color: #002F40;
}

/* Nummern-Kreis: inaktiv */
.elementor-form .e-form__indicators__indicator__number {
  width:           36px                      !important;
  height:          36px                      !important;
  border-radius:   50%                       !important;
  border:          2px solid rgba(255,255,255,0.2) !important;
  color:           rgba(255,255,255,0.3)     !important;
  background:      transparent               !important;
  font-weight:     700                       !important;
  font-size:       14px                      !important;
  display:         flex                      !important;
  align-items:     center                    !important;
  justify-content: center                    !important;
  transition:      all .2s                   !important;
}

/* Nummern-Kreis: aktiv */
.elementor-form .e-form__indicators__indicator--state-active .e-form__indicators__indicator__number {
  background:   var(--nova) !important;
  border-color: var(--nova) !important;
  color:        #002F40     !important;
}

/* Nummern-Kreis: abgeschlossen */
.elementor-form .e-form__indicators__indicator--state-complete .e-form__indicators__indicator__number {
  background:   var(--teal) !important;
  border-color: var(--teal) !important;
  color:        #FFFFFF     !important;
}

/* Trennlinie */
.elementor-form .e-form__indicators__indicator__separator {
  background: rgba(255,255,255,0.15) !important;
  height:     2px                    !important;
}

.elementor-form .e-form__indicators__indicator--state-complete .e-form__indicators__indicator__separator {
  background: var(--nova) !important;
}

/* Step-Label */
.elementor-form .e-form__indicators__indicator__label {
  font-size:      10px              !important;
  font-weight:    700               !important;
  text-transform: uppercase         !important;
  letter-spacing: 1px               !important;
  color:          rgba(255,255,255,0.3) !important;
  text-align:     center            !important;
}

.elementor-form .e-form__indicators__indicator--state-active .e-form__indicators__indicator__label {
  color: var(--nova) !important;
}

.elementor-form .e-form__indicators__indicator--state-complete .e-form__indicators__indicator__label {
  color: var(--teal) !important;
}

@media (max-width: 600px) {
  .elementor-form .e-form__indicators__indicator__label { display: none !important; }
}


/* ================================================================
   MULTI-STEP: PROGRESS BAR
   ================================================================ */

.elementor-form .e-form__step__indicator-progress {
  height:        3px;
  background:    rgba(255,255,255,0.1);
  border-radius: 2px;
  overflow:      hidden;
  margin-bottom: 24px;
}

.elementor-form .e-form__step__indicator-progress-inner {
  height:        100%;
  background:    var(--nova);
  border-radius: 2px;
  transition:    width .4s ease;
}


/* ================================================================
   MULTI-STEP: ZURÜCK / WEITER BUTTONS
   ================================================================ */

.elementor-form .e-form__buttons {
  display:    flex;
  gap:        12px;
  margin-top: 24px;
}

/* Zurück: Ghost */
.elementor-form .e-form__step__button--prev .elementor-button {
  background-color: transparent                    !important;
  color:            rgba(255,255,255,0.6)           !important;
  border:           2px solid rgba(255,255,255,0.2) !important;
  width:            auto                            !important;
  display:          inline-flex                     !important;
  align-items:      center                          !important;
}

.elementor-form .e-form__step__button--prev .elementor-button:hover {
  border-color:     rgba(255,255,255,0.45) !important;
  color:            #FFFFFF                 !important;
  background-color: transparent             !important;
}

/* Weiter: Nova */
.elementor-form .e-form__step__button--next .elementor-button {
  background-color: var(--nova)           !important;
  color:            #FFFFFF               !important;
  border:           2px solid transparent !important;
}

.elementor-form .e-form__step__button--next .elementor-button:hover {
  background-color: var(--nova-hover) !important;
}


/* ================================================================
   ABSTÄNDE
   ================================================================ */

.elementor-form .elementor-field-group      { margin-bottom: 26px; }
.elementor-form .elementor-field-group:last-child { margin-bottom: 26px; }

.elementor-form .elementor-field-description {
  font-size:   12px;
  color:       rgba(255,255,255,0.3);
  margin-top:  5px;
  line-height: 1.5;
}


.elementor-form .form-pflichtfeld-hinweis {
  font-size:   12px;
  color:       rgba(255,255,255,0.4);
  margin-top:  16px;
  line-height: 1.5;
}

.elementor-form .form-pflichtfeld-hinweis .pflichtfeld-stern {
  color:       var(--nova);
  font-weight: 700;
}



/* ================================================================
   Remazing Nova – Elementor Form CSS (LIGHT VARIANT)
   Klasse auf dem Section/Container-Wrapper: form-light
   Einfügen in: Appearance > Customize > Additional CSS
   ================================================================ */


/* ================================================================
   CONTAINER
   ================================================================ */

.form-light .elementor-widget-form .elementor-form,
.form-light.elementor-widget-form .elementor-form {
  background:    #FFFFFF;
  border-radius: 20px;
  padding:       32px;
  box-shadow:    0 4px 32px rgba(0,47,64,0.08);
}

@media (max-width: 600px) {
  .form-light .elementor-widget-form .elementor-form,
  .form-light.elementor-widget-form .elementor-form { padding: 20px 16px; }
}


/* ================================================================
   LABELS
   ================================================================ */

.form-light .elementor-form .elementor-field-label {
  font-weight:    700           !important;
  font-size:      13px          !important;
  text-transform: uppercase     !important;
  letter-spacing: 1px           !important;
  color:          var(--base)   !important;
  display:        block         !important;
  margin-bottom:  8px           !important;
  opacity:        1;
}

/* Stern neben dem Label-Text, nicht unter dem Feld */
.form-light .elementor-form .elementor-field-required .elementor-field-label::after {
  content: ' *';
  color:   var(--nova);
}


/* ================================================================
   INPUTS & TEXTAREA
   ================================================================ */

.form-light .elementor-form .elementor-field-textual {
  background:    #FFFFFF                          !important;
  border:        2px solid #A8BEC9                !important;
  border-radius: 10px                             !important;
  padding:       13px 16px                        !important;
  color:         var(--base)                      !important;
  font-size:     16px                             !important;
  width:         100%                             !important;
  min-height:    50px;
  box-shadow:    0 1px 4px rgba(0,47,64,0.06)     !important;
  transition:    border-color .2s, box-shadow .2s !important;
  -webkit-appearance: none;
  appearance:    none;
}

.form-light .elementor-form .elementor-field-textual::placeholder {
  color: #6B8EA0 !important;
}

.form-light .elementor-form .elementor-field-textual:hover {
  border-color: #7AAABB !important;
}

.form-light .elementor-form .elementor-field-textual:focus {
  background:   #FFFFFF                         !important;
  border-color: var(--nova)                     !important;
  box-shadow:   0 0 0 3px rgba(91,186,232,0.15) !important;
  outline:      none                            !important;
}

.form-light .elementor-form .elementor-field-type-textarea .elementor-field-textual {
  min-height:  110px;
  resize:      vertical;
  line-height: 1.6;
}


/* ================================================================
   SELECT
   ================================================================ */

.form-light .elementor-form .elementor-field-type-select select {
  background-color:    #FFFFFF;
  border:              2px solid #A8BEC9;
  box-shadow:          0 1px 4px rgba(0,47,64,0.06);
  border-radius:       10px;
  padding:             13px 44px 13px 16px;
  color:               var(--base);
  font-size:           16px;
  width:               100%;
  min-height:          50px;
  -webkit-appearance:  none;
  appearance:          none;
  background-image:    url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 16 16'%3E%3Cpath d='M4 6l4 4 4-4' stroke='%235BBAE8' stroke-width='2' fill='none' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
  background-repeat:   no-repeat;
  background-position: right 16px center;
  cursor:              pointer;
  transition:          border-color .2s, box-shadow .2s;
}

.form-light .elementor-form .elementor-field-type-select select:hover {
  border-color: #7AAABB;
}

.form-light .elementor-form .elementor-field-type-select select:focus {
  background:   #FFFFFF;
  border-color: var(--nova);
  box-shadow:   0 0 0 3px rgba(91,186,232,0.15);
  outline:      none;
}

.form-light .elementor-form .elementor-field-type-select select option {
  background: #FFFFFF;
  color:      var(--base);
}


/* ================================================================
   CHECKBOXEN ALS KARTEN (checkbox_list)
   ================================================================ */

.form-light .elementor-form .elementor-field-type-checkbox_list .elementor-field-subgroup,
.form-light .elementor-form .elementor-field-type-checkbox .elementor-field-subgroup {
  display:               grid;
  grid-template-columns: 1fr 1fr;
  gap:                   8px;
}

@media (max-width: 600px) {
  .form-light .elementor-form .elementor-field-type-checkbox_list .elementor-field-subgroup,
  .form-light .elementor-form .elementor-field-type-checkbox .elementor-field-subgroup {
    grid-template-columns: 1fr;
  }
}

.form-light .elementor-form .elementor-field-type-checkbox_list .elementor-field-option,
.form-light .elementor-form .elementor-field-type-checkbox .elementor-field-option {
  position: relative;
  display:  block;
}

.form-light .elementor-form .elementor-field-type-checkbox_list .elementor-field-option input[type="checkbox"],
.form-light .elementor-form .elementor-field-type-checkbox .elementor-field-option input[type="checkbox"] {
  position: absolute;
  inset:    0;
  width:    100%;
  height:   100%;
  opacity:  0;
  cursor:   pointer;
  margin:   0;
  z-index:  1;
}

.form-light .elementor-form .elementor-field-type-checkbox_list .elementor-field-option label,
.form-light .elementor-form .elementor-field-type-checkbox .elementor-field-option label {
  display:       flex;
  align-items:   center;
  gap:           10px;
  padding:       12px 14px;
  background:    #FFFFFF;
  border:        2px solid #A8BEC9;
  border-radius: 10px;
  color:         var(--base)  !important;
  font-size:     14px;
  font-weight:   700;
  cursor:        pointer;
  min-height:    48px;
  box-shadow:    0 1px 4px rgba(0,47,64,0.06);
  transition:    border-color .2s, background .2s, color .2s, box-shadow .2s;
  user-select:   none;
  position:      relative;
  z-index:       0;
}

.form-light .elementor-form .elementor-field-type-checkbox_list .elementor-field-option label::before,
.form-light .elementor-form .elementor-field-type-checkbox .elementor-field-option label::before {
  content:             '';
  width:               18px;
  height:              18px;
  min-width:           18px;
  border:              1.5px solid #A8BEC9;
  border-radius:       4px;
  background:          #FFFFFF;
  flex-shrink:         0;
  transition:          background .2s, border-color .2s;
  background-repeat:   no-repeat;
  background-position: center;
}

/* Checked */
.form-light .elementor-form .elementor-field-type-checkbox_list .elementor-field-option input[type="checkbox"]:checked ~ label,
.form-light .elementor-form .elementor-field-type-checkbox .elementor-field-option input[type="checkbox"]:checked ~ label,
.form-light .elementor-form .elementor-field-type-checkbox_list .elementor-field-option:has(input:checked) label,
.form-light .elementor-form .elementor-field-type-checkbox .elementor-field-option:has(input:checked) label {
  border-color: var(--nova);
  background:   rgba(91,186,232,0.08);
  color:        var(--base) !important;
  opacity:      1;
}

.form-light .elementor-form .elementor-field-type-checkbox_list .elementor-field-option input[type="checkbox"]:checked ~ label::before,
.form-light .elementor-form .elementor-field-type-checkbox .elementor-field-option input[type="checkbox"]:checked ~ label::before,
.form-light .elementor-form .elementor-field-type-checkbox_list .elementor-field-option:has(input:checked) label::before,
.form-light .elementor-form .elementor-field-type-checkbox .elementor-field-option:has(input:checked) label::before {
  background-color: var(--nova);
  border-color:     var(--nova);
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='11' height='8' viewBox='0 0 11 8'%3E%3Cpath d='M1 4L4 7L10 1' stroke='white' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
}

.form-light .elementor-form .elementor-field-type-checkbox_list .elementor-field-option input[type="checkbox"]:focus-visible ~ label,
.form-light .elementor-form .elementor-field-type-checkbox .elementor-field-option input[type="checkbox"]:focus-visible ~ label {
  outline:        3px solid var(--nova);
  outline-offset: 2px;
}


/* ================================================================
   RADIO BUTTONS ALS KARTEN
   ================================================================ */

.form-light .elementor-form .elementor-field-type-radio .elementor-field-subgroup {
  display:               grid;
  grid-template-columns: 1fr 1fr;
  gap:                   8px;
}

@media (max-width: 600px) {
  .form-light .elementor-form .elementor-field-type-radio .elementor-field-subgroup {
    grid-template-columns: 1fr;
  }
}

.form-light .elementor-form .elementor-field-type-radio .elementor-field-option {
  position: relative;
  display:  block;
}

.form-light .elementor-form .elementor-field-type-radio .elementor-field-option input[type="radio"] {
  position: absolute;
  inset:    0;
  width:    100%;
  height:   100%;
  opacity:  0;
  cursor:   pointer;
  margin:   0;
  z-index:  1;
}

.form-light .elementor-form .elementor-field-type-radio .elementor-field-option label {
  display:       flex;
  align-items:   center;
  gap:           10px;
  padding:       12px 14px;
  background:    #FFFFFF;
  border:        2px solid #A8BEC9;
  border-radius: 10px;
  color:         var(--base) !important;
  font-size:     14px;
  font-weight:   700;
  cursor:        pointer;
  min-height:    48px;
  box-shadow:    0 1px 4px rgba(0,47,64,0.06);
  transition:    all .2s;
  user-select:   none;
  position:      relative;
  z-index:       0;
}

.form-light .elementor-form .elementor-field-type-radio .elementor-field-option label::before {
  content:       '';
  width:         18px;
  height:        18px;
  min-width:     18px;
  border:        1.5px solid #A8BEC9;
  border-radius: 50%;
  background:    #FFFFFF;
  flex-shrink:   0;
  transition:    all .2s;
}

.form-light .elementor-form .elementor-field-type-radio .elementor-field-option input[type="radio"]:checked ~ label,
.form-light .elementor-form .elementor-field-type-radio .elementor-field-option:has(input:checked) label {
  border-color: var(--nova);
  background:   rgba(91,186,232,0.08);
  color:        var(--base) !important;
  opacity:      1;
}

.form-light .elementor-form .elementor-field-type-radio .elementor-field-option input[type="radio"]:checked ~ label::before,
.form-light .elementor-form .elementor-field-type-radio .elementor-field-option:has(input:checked) label::before {
  background:   var(--nova);
  border-color: var(--nova);
  box-shadow:   inset 0 0 0 3px #FFFFFF;
}

.form-light .elementor-form .elementor-field-type-radio .elementor-field-option input[type="radio"]:focus-visible ~ label {
  outline:        3px solid var(--nova);
  outline-offset: 2px;
}


/* ================================================================
   DATENSCHUTZ / ACCEPTANCE
   ================================================================ */

.form-light .elementor-form .elementor-field-type-acceptance .elementor-field-option,
.form-light .elementor-form .elementor-acceptance-item { position: relative; }

.form-light .elementor-form .elementor-field-type-acceptance .elementor-field-option input[type="checkbox"],
.form-light .elementor-form .elementor-acceptance-item input[type="checkbox"] {
  position: absolute;
  inset:    0;
  width:    100%;
  height:   100%;
  opacity:  0;
  cursor:   pointer;
  margin:   0;
  z-index:  1;
}

.form-light .elementor-form .elementor-field-type-acceptance .elementor-field-option label,
.form-light .elementor-form .elementor-acceptance-item label {
  display:     flex;
  align-items: flex-start;
  gap:         12px;
  color:       rgba(0,47,64,0.6) !important;
  font-size:   14px;
  line-height: 1.6;
  cursor:      pointer;
  position:    relative;
  z-index:     0;
}

.form-light .elementor-form .elementor-field-type-acceptance .elementor-field-option label::before,
.form-light .elementor-form .elementor-acceptance-item label::before {
  content:             '';
  width:               22px;
  height:              22px;
  min-width:           22px;
  border:              1.5px solid #A8BEC9;
  border-radius:       5px;
  background:          #FFFFFF;
  margin-top:          1px;
  flex-shrink:         0;
  transition:          all .2s;
  background-repeat:   no-repeat;
  background-position: center;
}

.form-light .elementor-form .elementor-field-type-acceptance .elementor-field-option input:checked ~ label::before,
.form-light .elementor-form .elementor-field-type-acceptance .elementor-field-option:has(input:checked) label::before,
.form-light .elementor-form .elementor-acceptance-item input:checked ~ label::before,
.form-light .elementor-form .elementor-acceptance-item:has(input:checked) label::before {
  background-color: var(--nova);
  border-color:     var(--nova);
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='13' height='9' viewBox='0 0 13 9'%3E%3Cpath d='M1 4.5L4.5 8L12 1' stroke='white' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
}

.form-light .elementor-form .elementor-field-type-acceptance a,
.form-light .elementor-form .elementor-acceptance-item a {
  color:           var(--nova);
  text-decoration: underline;
}


/* ================================================================
   SUBMIT-BUTTON
   ================================================================ */

.form-light .elementor-form .elementor-button {
  background-color: var(--nova)            !important;
  color:            var(--base)            !important;
  font-weight:      700                    !important;
  font-size:        16px                   !important;
  border-radius:    16px                   !important;
  border:           2px solid transparent  !important;
  padding:          14px 32px              !important;
  min-height:       50px                   !important;
  width:            auto                   !important;
  display:          inline-flex            !important;
  align-items:      center                 !important;
  cursor:           pointer                !important;
  transition:       background .2s, box-shadow .2s !important;
}

.form-light .elementor-form .elementor-button:hover {
  background-color: var(--nova-hover)                   !important;
  box-shadow:       0 6px 20px rgba(91,186,232,0.35)    !important;
}

.form-light .elementor-form .elementor-button:active {
  background-color: var(--nova-active) !important;
  box-shadow:       none !important;
}

.form-light .elementor-form .elementor-button:focus-visible {
  outline:        3px solid var(--nova) !important;
  outline-offset: 2px                   !important;
}


/* ================================================================
   FEHLERMELDUNGEN & ERFOLG
   ================================================================ */

.form-light .elementor-form .elementor-message {
  font-size:     12px;
  margin-top:    6px;
  border-radius: 8px;
}

.form-light .elementor-form .elementor-message-danger {
  color:      var(--general-highlight);
  background: rgba(249,89,84,0.06);
  padding:    8px 12px;
  border:     1px solid rgba(249,89,84,0.2);
}

.form-light .elementor-form .elementor-message-success {
  color:         var(--base);
  background:    rgba(91,186,232,0.1);
  border:        2px solid rgba(91,186,232,0.3);
  padding:       14px 18px;
  border-radius: 10px;
  font-size:     16px;
  font-weight:   700;
}


/* ================================================================
   MULTI-STEP: SCHRITT-INDIKATOR
   ================================================================ */

/* CSS-Variablen überschreiben (Elementor nutzt diese intern) */
.form-light .elementor-form {
  --e-form-steps-indicator-active-primary-color:   var(--nova);
  --e-form-steps-indicator-active-secondary-color: #FFFFFF;
}

/* Nummern-Kreis: inaktiv */
.form-light .elementor-form .e-form__indicators__indicator__number {
  width:           36px           !important;
  height:          36px           !important;
  border-radius:   50%            !important;
  border:          2px solid #D1DDE5 !important;
  color:           #A8BEC9        !important;
  background:      #FFFFFF        !important;
  font-weight:     700            !important;
  font-size:       14px           !important;
  display:         flex           !important;
  align-items:     center         !important;
  justify-content: center         !important;
  transition:      all .2s        !important;
}

/* Nummern-Kreis: aktiv */
.form-light .elementor-form .e-form__indicators__indicator--state-active .e-form__indicators__indicator__number {
  background:   var(--nova) !important;
  border-color: var(--nova) !important;
  color:        #FFFFFF     !important;
}

/* Nummern-Kreis: abgeschlossen */
.form-light .elementor-form .e-form__indicators__indicator--state-complete .e-form__indicators__indicator__number {
  background:   var(--teal) !important;
  border-color: var(--teal) !important;
  color:        #FFFFFF     !important;
}

/* Trennlinie */
.form-light .elementor-form .e-form__indicators__indicator__separator {
  background: #D1DDE5 !important;
  height:     2px     !important;
}

.form-light .elementor-form .e-form__indicators__indicator--state-complete .e-form__indicators__indicator__separator {
  background: var(--nova) !important;
}

/* Step-Label */
.form-light .elementor-form .e-form__indicators__indicator__label {
  font-size:      10px     !important;
  font-weight:    700      !important;
  text-transform: uppercase !important;
  letter-spacing: 1px      !important;
  color:          #A8BEC9  !important;
  text-align:     center   !important;
}

.form-light .elementor-form .e-form__indicators__indicator--state-active .e-form__indicators__indicator__label {
  color: var(--nova) !important;
}

.form-light .elementor-form .e-form__indicators__indicator--state-complete .e-form__indicators__indicator__label {
  color: var(--teal) !important;
}

@media (max-width: 600px) {
  .form-light .elementor-form .e-form__indicators__indicator__label { display: none !important; }
}


/* ================================================================
   MULTI-STEP: PROGRESS BAR
   ================================================================ */

.form-light .elementor-form .e-form__step__indicator-progress {
  height:        3px;
  background:    #E2EBF0;
  border-radius: 2px;
  overflow:      hidden;
  margin-bottom: 24px;
}

.form-light .elementor-form .e-form__step__indicator-progress-inner {
  height:        100%;
  background:    var(--nova);
  border-radius: 2px;
  transition:    width .4s ease;
}


/* ================================================================
   MULTI-STEP: ZURÜCK / WEITER BUTTONS
   ================================================================ */

.form-light .elementor-form .e-form__buttons {
  display:    flex;
  gap:        12px;
  margin-top: 24px;
}

/* Zurück: Ghost mit Base-Farbe */
.form-light .elementor-form .e-form__step__button--prev .elementor-button {
  background-color: transparent                  !important;
  color:            rgba(0,47,64,0.5)            !important;
  border:           2px solid #D1DDE5            !important;
  width:            auto                         !important;
  display:          inline-flex                  !important;
  align-items:      center                       !important;
}

.form-light .elementor-form .e-form__step__button--prev .elementor-button:hover {
  border-color:     #A8BEC9            !important;
  color:            var(--base)        !important;
  background-color: transparent        !important;
}

/* Weiter: Nova */
.form-light .elementor-form .e-form__step__button--next .elementor-button {
  background-color: var(--nova)           !important;
  color:            var(--base)           !important;
  border:           2px solid transparent !important;
}

.form-light .elementor-form .e-form__step__button--next .elementor-button:hover {
  background-color: var(--nova-hover) !important;
}


/* ================================================================
   ABSTÄNDE
   ================================================================ */

.form-light .elementor-form .elementor-field-group      { margin-bottom: 26px; }
.form-light .elementor-form .elementor-field-group:last-child { margin-bottom: 26px; }

.form-light .elementor-form .elementor-field-description {
  font-size:   12px;
  color:       rgba(0,47,64,0.4);
  margin-top:  5px;
  line-height: 1.5;
}

/* Pflichtfeld-Hinweis */
.form-light .elementor-form .form-pflichtfeld-hinweis {
  font-size:  12px;
  color:      rgba(0,47,64,0.4);
  margin-top: 16px;
  line-height: 1.5;
}

.form-light .elementor-form .form-pflichtfeld-hinweis .pflichtfeld-stern {
  color:       var(--nova);
  font-weight: 700;
}/* End custom CSS */