.elementor-2577 .elementor-element.elementor-element-59798581{--display:flex;--flex-direction:column;--container-widget-width:calc( ( 1 - var( --container-widget-flex-grow ) ) * 100% );--container-widget-height:initial;--container-widget-flex-grow:0;--container-widget-align-self:initial;--flex-wrap-mobile:wrap;--justify-content:center;--align-items:stretch;--gap:30px 30px;--row-gap:30px;--column-gap:30px;--padding-top:0px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;}.elementor-widget-heading .elementor-heading-title{font-family:var( --e-global-typography-primary-font-family ), Sans-serif;font-size:var( --e-global-typography-primary-font-size );font-weight:var( --e-global-typography-primary-font-weight );text-decoration:var( --e-global-typography-primary-text-decoration );line-height:var( --e-global-typography-primary-line-height );letter-spacing:var( --e-global-typography-primary-letter-spacing );word-spacing:var( --e-global-typography-primary-word-spacing );color:var( --e-global-color-primary );}.elementor-2577 .elementor-element.elementor-element-56b3c9f6{text-align:center;}.elementor-2577 .elementor-element.elementor-element-56b3c9f6 .elementor-heading-title{font-family:"Manrope", Sans-serif;font-size:32px;font-weight:600;font-style:normal;text-decoration:none;line-height:1.1em;letter-spacing:0px;word-spacing:0em;color:#183C51;}.elementor-widget-form .elementor-field-group > label, .elementor-widget-form .elementor-field-subgroup label{color:var( --e-global-color-text );}.elementor-widget-form .elementor-field-group > label{font-family:var( --e-global-typography-text-font-family ), Sans-serif;font-size:var( --e-global-typography-text-font-size );font-weight:var( --e-global-typography-text-font-weight );text-decoration:var( --e-global-typography-text-text-decoration );line-height:var( --e-global-typography-text-line-height );letter-spacing:var( --e-global-typography-text-letter-spacing );word-spacing:var( --e-global-typography-text-word-spacing );}.elementor-widget-form .elementor-field-type-html{color:var( --e-global-color-text );font-family:var( --e-global-typography-text-font-family ), Sans-serif;font-size:var( --e-global-typography-text-font-size );font-weight:var( --e-global-typography-text-font-weight );text-decoration:var( --e-global-typography-text-text-decoration );line-height:var( --e-global-typography-text-line-height );letter-spacing:var( --e-global-typography-text-letter-spacing );word-spacing:var( --e-global-typography-text-word-spacing );}.elementor-widget-form .elementor-field-group .elementor-field{color:var( --e-global-color-text );}.elementor-widget-form .elementor-field-group .elementor-field, .elementor-widget-form .elementor-field-subgroup label{font-family:var( --e-global-typography-text-font-family ), Sans-serif;font-size:var( --e-global-typography-text-font-size );font-weight:var( --e-global-typography-text-font-weight );text-decoration:var( --e-global-typography-text-text-decoration );line-height:var( --e-global-typography-text-line-height );letter-spacing:var( --e-global-typography-text-letter-spacing );word-spacing:var( --e-global-typography-text-word-spacing );}.elementor-widget-form .elementor-button{font-family:var( --e-global-typography-accent-font-family ), Sans-serif;font-size:var( --e-global-typography-accent-font-size );font-weight:var( --e-global-typography-accent-font-weight );font-style:var( --e-global-typography-accent-font-style );text-decoration:var( --e-global-typography-accent-text-decoration );line-height:var( --e-global-typography-accent-line-height );letter-spacing:var( --e-global-typography-accent-letter-spacing );word-spacing:var( --e-global-typography-accent-word-spacing );}.elementor-widget-form .e-form__buttons__wrapper__button-next{background-color:var( --e-global-color-accent );}.elementor-widget-form .elementor-button[type="submit"]{background-color:var( --e-global-color-accent );}.elementor-widget-form .e-form__buttons__wrapper__button-previous{background-color:var( --e-global-color-accent );}.elementor-widget-form .elementor-message{font-family:var( --e-global-typography-text-font-family ), Sans-serif;font-size:var( --e-global-typography-text-font-size );font-weight:var( --e-global-typography-text-font-weight );text-decoration:var( --e-global-typography-text-text-decoration );line-height:var( --e-global-typography-text-line-height );letter-spacing:var( --e-global-typography-text-letter-spacing );word-spacing:var( --e-global-typography-text-word-spacing );}.elementor-widget-form .e-form__indicators__indicator, .elementor-widget-form .e-form__indicators__indicator__label{font-family:var( --e-global-typography-accent-font-family ), Sans-serif;font-size:var( --e-global-typography-accent-font-size );font-weight:var( --e-global-typography-accent-font-weight );font-style:var( --e-global-typography-accent-font-style );text-decoration:var( --e-global-typography-accent-text-decoration );line-height:var( --e-global-typography-accent-line-height );letter-spacing:var( --e-global-typography-accent-letter-spacing );word-spacing:var( --e-global-typography-accent-word-spacing );}.elementor-widget-form{--e-form-steps-indicator-inactive-primary-color:var( --e-global-color-text );--e-form-steps-indicator-active-primary-color:var( --e-global-color-accent );--e-form-steps-indicator-completed-primary-color:var( --e-global-color-accent );--e-form-steps-indicator-progress-color:var( --e-global-color-accent );--e-form-steps-indicator-progress-background-color:var( --e-global-color-text );--e-form-steps-indicator-progress-meter-color:var( --e-global-color-text );}.elementor-widget-form .e-form__indicators__indicator__progress__meter{font-family:var( --e-global-typography-accent-font-family ), Sans-serif;font-size:var( --e-global-typography-accent-font-size );font-weight:var( --e-global-typography-accent-font-weight );font-style:var( --e-global-typography-accent-font-style );text-decoration:var( --e-global-typography-accent-text-decoration );line-height:var( --e-global-typography-accent-line-height );letter-spacing:var( --e-global-typography-accent-letter-spacing );word-spacing:var( --e-global-typography-accent-word-spacing );}.elementor-2577 .elementor-element.elementor-element-3a727ed{margin:0px 0px calc(var(--kit-widget-spacing, 0px) + 0px) 0px;padding:0px 0px 0px 0px;--e-form-steps-indicators-spacing:20px;--e-form-steps-indicator-padding:35px;--e-form-steps-indicator-inactive-primary-color:var( --e-global-color-accent );--e-form-steps-indicator-inactive-secondary-color:#677EA775;--e-form-steps-indicator-active-primary-color:var( --e-global-color-secondary );--e-form-steps-indicator-active-secondary-color:var( --e-global-color-61018de );--e-form-steps-indicator-completed-primary-color:var( --e-global-color-secondary );--e-form-steps-divider-width:1px;--e-form-steps-divider-gap:10px;}.elementor-2577 .elementor-element.elementor-element-3a727ed.elementor-element{--align-self:stretch;}.elementor-2577 .elementor-element.elementor-element-3a727ed .elementor-button-content-wrapper{flex-direction:row-reverse;}.elementor-2577 .elementor-element.elementor-element-3a727ed .elementor-field-group{padding-right:calc( 10px/2 );padding-left:calc( 10px/2 );margin-bottom:10px;}.elementor-2577 .elementor-element.elementor-element-3a727ed .elementor-form-fields-wrapper{margin-left:calc( -10px/2 );margin-right:calc( -10px/2 );margin-bottom:-10px;}.elementor-2577 .elementor-element.elementor-element-3a727ed .elementor-field-group.recaptcha_v3-bottomleft, .elementor-2577 .elementor-element.elementor-element-3a727ed .elementor-field-group.recaptcha_v3-bottomright{margin-bottom:0;}body.rtl .elementor-2577 .elementor-element.elementor-element-3a727ed .elementor-labels-inline .elementor-field-group > label{padding-left:0px;}body:not(.rtl) .elementor-2577 .elementor-element.elementor-element-3a727ed .elementor-labels-inline .elementor-field-group > label{padding-right:0px;}body .elementor-2577 .elementor-element.elementor-element-3a727ed .elementor-labels-above .elementor-field-group > label{padding-bottom:0px;}.elementor-2577 .elementor-element.elementor-element-3a727ed .elementor-field-type-html{padding-bottom:0px;}.elementor-2577 .elementor-element.elementor-element-3a727ed .elementor-field-group .elementor-field:not(.elementor-select-wrapper){background-color:#ffffff;}.elementor-2577 .elementor-element.elementor-element-3a727ed .elementor-field-group .elementor-select-wrapper select{background-color:#ffffff;}.elementor-2577 .elementor-element.elementor-element-3a727ed .elementor-button span{justify-content:space-between;}.elementor-2577 .elementor-element.elementor-element-3a727ed .elementor-button{border-style:solid;border-radius:4px 4px 4px 4px;}.elementor-2577 .elementor-element.elementor-element-3a727ed .e-form__buttons__wrapper__button-next{color:#ffffff;border-color:var( --e-global-color-accent );}.elementor-2577 .elementor-element.elementor-element-3a727ed .elementor-button[type="submit"]{color:#ffffff;border-color:var( --e-global-color-accent );}.elementor-2577 .elementor-element.elementor-element-3a727ed .elementor-button[type="submit"] svg *{fill:#ffffff;}.elementor-2577 .elementor-element.elementor-element-3a727ed .e-form__buttons__wrapper__button-previous{background-color:var( --e-global-color-secondary );color:var( --e-global-color-text );border-color:var( --e-global-color-text );}.elementor-2577 .elementor-element.elementor-element-3a727ed .e-form__buttons__wrapper__button-next:hover{background-color:var( --e-global-color-61018de );color:var( --e-global-color-312855e );border-color:var( --e-global-color-61018de );}.elementor-2577 .elementor-element.elementor-element-3a727ed .elementor-button[type="submit"]:hover{background-color:var( --e-global-color-61018de );color:var( --e-global-color-312855e );border-color:var( --e-global-color-61018de );}.elementor-2577 .elementor-element.elementor-element-3a727ed .elementor-button[type="submit"]:hover svg *{fill:var( --e-global-color-312855e );}.elementor-2577 .elementor-element.elementor-element-3a727ed .e-form__buttons__wrapper__button-previous:hover{background-color:var( --e-global-color-312855e );color:var( --e-global-color-text );border-color:var( --e-global-color-text );}.elementor-2577 .elementor-element.elementor-element-3a727ed .e-form__indicators__indicator, .elementor-2577 .elementor-element.elementor-element-3a727ed .e-form__indicators__indicator__label{font-family:var( --e-global-typography-text-font-family ), Sans-serif;font-size:var( --e-global-typography-text-font-size );font-weight:var( --e-global-typography-text-font-weight );text-decoration:var( --e-global-typography-text-text-decoration );line-height:var( --e-global-typography-text-line-height );letter-spacing:var( --e-global-typography-text-letter-spacing );word-spacing:var( --e-global-typography-text-word-spacing );}#elementor-popup-modal-2577 .dialog-widget-content{animation-duration:0.14s;background-color:#FDFFFF;border-radius:14px 14px 14px 14px;box-shadow:2px 8px 23px 3px rgba(0,0,0,0.2);}#elementor-popup-modal-2577{background-color:#00000080;justify-content:center;align-items:center;pointer-events:all;}#elementor-popup-modal-2577 .dialog-message{width:635px;height:auto;padding:60px 0px 60px 0px;}#elementor-popup-modal-2577 .dialog-close-button{display:flex;}#elementor-popup-modal-2577 .dialog-close-button i{color:#333333;}#elementor-popup-modal-2577 .dialog-close-button svg{fill:#333333;}@media(min-width:768px){.elementor-2577 .elementor-element.elementor-element-59798581{--width:90%;}}@media(max-width:1024px){.elementor-2577 .elementor-element.elementor-element-59798581{--justify-content:flex-start;--padding-top:0px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;}.elementor-2577 .elementor-element.elementor-element-59798581.e-con{--align-self:flex-start;}.elementor-widget-heading .elementor-heading-title{font-size:var( --e-global-typography-primary-font-size );line-height:var( --e-global-typography-primary-line-height );letter-spacing:var( --e-global-typography-primary-letter-spacing );word-spacing:var( --e-global-typography-primary-word-spacing );}.elementor-2577 .elementor-element.elementor-element-56b3c9f6 .elementor-heading-title{font-size:25px;}.elementor-widget-form .elementor-field-group > label{font-size:var( --e-global-typography-text-font-size );line-height:var( --e-global-typography-text-line-height );letter-spacing:var( --e-global-typography-text-letter-spacing );word-spacing:var( --e-global-typography-text-word-spacing );}.elementor-widget-form .elementor-field-type-html{font-size:var( --e-global-typography-text-font-size );line-height:var( --e-global-typography-text-line-height );letter-spacing:var( --e-global-typography-text-letter-spacing );word-spacing:var( --e-global-typography-text-word-spacing );}.elementor-widget-form .elementor-field-group .elementor-field, .elementor-widget-form .elementor-field-subgroup label{font-size:var( --e-global-typography-text-font-size );line-height:var( --e-global-typography-text-line-height );letter-spacing:var( --e-global-typography-text-letter-spacing );word-spacing:var( --e-global-typography-text-word-spacing );}.elementor-widget-form .elementor-button{font-size:var( --e-global-typography-accent-font-size );line-height:var( --e-global-typography-accent-line-height );letter-spacing:var( --e-global-typography-accent-letter-spacing );word-spacing:var( --e-global-typography-accent-word-spacing );}.elementor-widget-form .elementor-message{font-size:var( --e-global-typography-text-font-size );line-height:var( --e-global-typography-text-line-height );letter-spacing:var( --e-global-typography-text-letter-spacing );word-spacing:var( --e-global-typography-text-word-spacing );}.elementor-widget-form .e-form__indicators__indicator, .elementor-widget-form .e-form__indicators__indicator__label{font-size:var( --e-global-typography-accent-font-size );line-height:var( --e-global-typography-accent-line-height );letter-spacing:var( --e-global-typography-accent-letter-spacing );word-spacing:var( --e-global-typography-accent-word-spacing );}.elementor-widget-form .e-form__indicators__indicator__progress__meter{font-size:var( --e-global-typography-accent-font-size );line-height:var( --e-global-typography-accent-line-height );letter-spacing:var( --e-global-typography-accent-letter-spacing );word-spacing:var( --e-global-typography-accent-word-spacing );}.elementor-2577 .elementor-element.elementor-element-3a727ed .elementor-button{border-width:1px 1px 1px 1px;}.elementor-2577 .elementor-element.elementor-element-3a727ed .e-form__indicators__indicator, .elementor-2577 .elementor-element.elementor-element-3a727ed .e-form__indicators__indicator__label{font-size:var( --e-global-typography-text-font-size );line-height:var( --e-global-typography-text-line-height );letter-spacing:var( --e-global-typography-text-letter-spacing );word-spacing:var( --e-global-typography-text-word-spacing );}#elementor-popup-modal-2577 .dialog-message{width:75vw;}}@media(max-width:767px){.elementor-2577 .elementor-element.elementor-element-59798581{--padding-top:0%;--padding-bottom:0%;--padding-left:5%;--padding-right:5%;}.elementor-widget-heading .elementor-heading-title{font-size:var( --e-global-typography-primary-font-size );line-height:var( --e-global-typography-primary-line-height );letter-spacing:var( --e-global-typography-primary-letter-spacing );word-spacing:var( --e-global-typography-primary-word-spacing );}.elementor-2577 .elementor-element.elementor-element-56b3c9f6 .elementor-heading-title{font-size:20px;}.elementor-widget-form .elementor-field-group > label{font-size:var( --e-global-typography-text-font-size );line-height:var( --e-global-typography-text-line-height );letter-spacing:var( --e-global-typography-text-letter-spacing );word-spacing:var( --e-global-typography-text-word-spacing );}.elementor-widget-form .elementor-field-type-html{font-size:var( --e-global-typography-text-font-size );line-height:var( --e-global-typography-text-line-height );letter-spacing:var( --e-global-typography-text-letter-spacing );word-spacing:var( --e-global-typography-text-word-spacing );}.elementor-widget-form .elementor-field-group .elementor-field, .elementor-widget-form .elementor-field-subgroup label{font-size:var( --e-global-typography-text-font-size );line-height:var( --e-global-typography-text-line-height );letter-spacing:var( --e-global-typography-text-letter-spacing );word-spacing:var( --e-global-typography-text-word-spacing );}.elementor-widget-form .elementor-button{font-size:var( --e-global-typography-accent-font-size );line-height:var( --e-global-typography-accent-line-height );letter-spacing:var( --e-global-typography-accent-letter-spacing );word-spacing:var( --e-global-typography-accent-word-spacing );}.elementor-widget-form .elementor-message{font-size:var( --e-global-typography-text-font-size );line-height:var( --e-global-typography-text-line-height );letter-spacing:var( --e-global-typography-text-letter-spacing );word-spacing:var( --e-global-typography-text-word-spacing );}.elementor-widget-form .e-form__indicators__indicator, .elementor-widget-form .e-form__indicators__indicator__label{font-size:var( --e-global-typography-accent-font-size );line-height:var( --e-global-typography-accent-line-height );letter-spacing:var( --e-global-typography-accent-letter-spacing );word-spacing:var( --e-global-typography-accent-word-spacing );}.elementor-widget-form .e-form__indicators__indicator__progress__meter{font-size:var( --e-global-typography-accent-font-size );line-height:var( --e-global-typography-accent-line-height );letter-spacing:var( --e-global-typography-accent-letter-spacing );word-spacing:var( --e-global-typography-accent-word-spacing );}.elementor-2577 .elementor-element.elementor-element-3a727ed .e-form__indicators__indicator, .elementor-2577 .elementor-element.elementor-element-3a727ed .e-form__indicators__indicator__label{font-size:var( --e-global-typography-text-font-size );line-height:var( --e-global-typography-text-line-height );letter-spacing:var( --e-global-typography-text-letter-spacing );word-spacing:var( --e-global-typography-text-word-spacing );}#elementor-popup-modal-2577 .dialog-message{width:100vw;}#elementor-popup-modal-2577{align-items:center;}}/* Start custom CSS for form, class: .elementor-element-3a727ed *//* ============================================================
   RETARO GROUP – Elementor Form CSS
   Kontaktformular · Vollständig responsiv
   Markenfarbe: #677EA7 · Rundungen: 4px (sm) / 8px (md)
   Einbinden via: Elementor → Site Settings → Custom CSS
   ============================================================ */

/* ─── CSS-Variablen ─── */
:root {
  --rf-blue:        #677EA7;
  --rf-blue-dark:   #4e6289;
  --rf-blue-pale:   #e8eef5;
  --rf-navy:        #0d1b2e;
  --rf-bg:          #f7f7f7;
  --rf-white:       #ffffff;
  --rf-text:        #1a1a2e;
  --rf-text-mid:    #4a5568;
  --rf-text-muted:  #8a9ab5;
  --rf-border:      #e2e8f0;
  --rf-success:     #16a34a;
  --rf-error:       #dc2626;
  --rf-r-sm:        4px;
  --rf-r-md:        8px;
  --rf-shadow:      0 4px 24px rgba(103, 126, 167, 0.08);
}


/* ============================================================
   1. FORMULAR-WRAPPER
   ============================================================ */

.elementor-form {
  background: transparent;
  border: 1px solid #e2e8f0;
  border-radius: 14px;
  box-shadow: var(--rf-shadow);
  overflow: hidden;
}
.elementor-form .elementor-form-fields-wrapper {
    padding: 35px 15px 35px 15px !important;
}


/* ============================================================
   2. STEPS – FORTSCHRITTSBALKEN
   Elementor Form Steps Widget
   ============================================================ */

/* Schritt-Navigation (Wrapper) */
.elementor-form-fields-sanitized .e-form__indicators,
.e-form__indicators {
  display: flex;
  align-items: center;
  background: var(--rf-bg);
  border-bottom: 1px solid var(--rf-border);
  padding: 16px 28px;
  gap: 0;
  margin-bottom: 0 !important;
}

/* Einzelner Step-Indikator */
.e-form__indicators__indicator {
  display: flex;
  align-items: center;
  gap: 8px;
  flex: 1;
  position: relative;
}

/* Verbindungslinie zwischen Steps */
.e-form__indicators__indicator:not(:last-child)::after {
  content: '';
  flex: 1;
  height: 2px;
  background: var(--rf-border);
  margin: 0 8px;
  display: block;
}

/* Aktiver Step: Linie in Blau */
.e-form__indicators__indicator--state-active:not(:last-child)::after,
.e-form__indicators__indicator--state-completed:not(:last-child)::after {
  background: var(--rf-blue);
}

/* Step-Kreis (Zahl) */
.e-form__indicators__indicator__number {
  width: 28px;
  height: 28px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 0.72rem;
  font-weight: 700;
  flex-shrink: 0;
  background: var(--rf-border);
  color: var(--rf-text-muted);
  transition: background 0.25s, color 0.25s;
  line-height: 1;
}

/* Aktiver Step-Kreis */
.e-form__indicators__indicator--state-active .e-form__indicators__indicator__number {
  background: var(--rf-blue);
  color: #ffffff;
}

/* Abgeschlossener Step-Kreis */
.e-form__indicators__indicator--state-completed .e-form__indicators__indicator__number {
  background: var(--rf-success);
  color: #677ea7;
}

/* Step-Label (Text) */
.e-form__indicators__indicator__label {
  font-size: 0.75rem;
  font-weight: 600;
  color: var(--rf-text-muted);
  white-space: nowrap;
}

.e-form__indicators__indicator--state-active .e-form__indicators__indicator__label {
  color: #677ea7;
}

.e-form__indicators__indicator--state-completed .e-form__indicators__indicator__label {
  color: #677ea7;
}


/* ============================================================
   3. FORMULAR-FELDER – ALLGEMEIN
   ============================================================ */

/* Feld-Wrapper */
.elementor-field-group {
  margin-bottom: 14px !important;
}

/* Label */
.elementor-field-label {
  font-size: 0.82rem !important;
  font-weight: 700 !important;
  color: var(--rf-text) !important;
  margin-bottom: 6px !important;
  display: block;
}

/* Pflichtfeld-Stern */
.elementor-field-label .elementor-required-mark {
  color: var(--rf-blue);
  margin-left: 2px;
}

/* Basis-Input-Stil (gilt für alle Felder) */
.elementor-field-textual,
.elementor-field-textual:focus,
.elementor-field-textual:hover {
  width: 100% !important;
  padding: 11px 14px !important;
  border: 1.5px solid var(--rf-border) !important;
  border-radius: var(--rf-r-sm) !important;
  font-size: 0.9rem !important;
  color: var(--rf-text) !important;
  background: var(--rf-bg) !important;
  font-family: inherit !important;
  transition: border-color 0.2s, box-shadow 0.2s !important;
  box-shadow: none !important;
  outline: none !important;
  -webkit-appearance: none;
  appearance: none;
}

/* Focus-State */
.elementor-field-textual:focus {
  border-color: var(--rf-blue) !important;
  box-shadow: 0 0 0 3px rgba(103, 126, 167, 0.12) !important;
  background: var(--rf-white) !important;
}

/* Placeholder */
.elementor-field-textual::placeholder {
  color: var(--rf-text-muted) !important;
  font-size: 0.88rem !important;
}


/* ============================================================
   4. TEXT-INPUT
   ============================================================ */

input[type="text"].elementor-field-textual,
input[type="email"].elementor-field-textual,
input[type="tel"].elementor-field-textual,
input[type="number"].elementor-field-textual,
input[type="url"].elementor-field-textual,
input[type="password"].elementor-field-textual {
  height: 44px;
}


/* ============================================================
   5. TEXTAREA
   ============================================================ */

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


/* ============================================================
   6. SELECT / DROPDOWN
   ============================================================ */

select.elementor-field-textual {
  height: 44px !important;
  cursor: pointer !important;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%23677EA7' stroke-width='1.5' fill='none' stroke-linecap='round'/%3E%3C/svg%3E") !important;
  background-repeat: no-repeat !important;
  background-position: right 14px center !important;
  padding-right: 36px !important;
}

select.elementor-field-textual:focus {
  border-color: var(--rf-blue) !important;
  box-shadow: 0 0 0 3px rgba(103, 126, 167, 0.12) !important;
}


/* ============================================================
   7. CHECKBOX & RADIO
   ============================================================ */

/* Wrapper */
.elementor-field-type-checkbox .elementor-field-subgroup,
.elementor-field-type-radio .elementor-field-subgroup {
  display: flex;
  flex-direction: column;
  gap: 10px;
}

/* Einzelne Option */
.elementor-field-type-checkbox .elementor-field-option,
.elementor-field-type-radio .elementor-field-option {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  padding: 12px 14px;
  background: var(--rf-bg);
  border: 1.5px solid var(--rf-border);
  border-radius: var(--rf-r-sm);
  cursor: pointer;
  transition: border-color 0.2s, background 0.2s;
}

.elementor-field-type-checkbox .elementor-field-option:hover,
.elementor-field-type-radio .elementor-field-option:hover {
  border-color: var(--rf-blue);
  background: var(--rf-blue-pale);
}

/* Checkbox / Radio Input */
.elementor-field-type-checkbox input[type="checkbox"],
.elementor-field-type-radio input[type="radio"] {
  width: 18px !important;
  height: 18px !important;
  accent-color: var(--rf-blue) !important;
  margin-top: 1px;
  flex-shrink: 0;
  cursor: pointer;
}

/* Checkbox-Label */
.elementor-field-type-checkbox .elementor-field-option label,
.elementor-field-type-radio .elementor-field-option label {
  font-size: 0.88rem !important;
  color: var(--rf-text-mid) !important;
  cursor: pointer;
  line-height: 1.5;
  font-weight: 500 !important;
}

/* Datenschutz-Checkbox (einzeln, inline) */
.elementor-field-type-acceptance .elementor-field-subgroup {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  background: var(--rf-bg);
  border: 1px solid var(--rf-border);
  border-radius: var(--rf-r-sm);
  padding: 12px 14px;
}

.elementor-field-type-acceptance input[type="checkbox"] {
  width: 18px !important;
  height: 18px !important;
  accent-color: var(--rf-blue) !important;
  margin-top: 2px;
  flex-shrink: 0;
}

.elementor-field-type-acceptance label {
  font-size: 0.78rem !important;
  color: var(--rf-text-muted) !important;
  line-height: 1.6 !important;
}

.elementor-field-type-acceptance label a {
  color: var(--rf-blue) !important;
  text-decoration: none !important;
}

.elementor-field-type-acceptance label a:hover {
  text-decoration: underline !important;
}


/* ============================================================
   8. DATE / TIME PICKER
   ============================================================ */

input[type="date"].elementor-field-textual,
input[type="time"].elementor-field-textual {
  height: 44px;
  cursor: pointer;
}

input[type="date"].elementor-field-textual::-webkit-calendar-picker-indicator,
input[type="time"].elementor-field-textual::-webkit-calendar-picker-indicator {
  opacity: 0.5;
  cursor: pointer;
  filter: invert(40%) sepia(30%) saturate(400%) hue-rotate(190deg);
}


/* ============================================================
   9. FILE UPLOAD
   ============================================================ */

.elementor-field-type-upload .elementor-field {
  width: 100% !important;
  padding: 11px 14px !important;
  border: 1.5px dashed var(--rf-border) !important;
  border-radius: var(--rf-r-sm) !important;
  background: var(--rf-bg) !important;
  font-size: 0.88rem !important;
  color: var(--rf-text-muted) !important;
  cursor: pointer;
  transition: border-color 0.2s;
}

.elementor-field-type-upload .elementor-field:hover {
  border-color: var(--rf-blue) !important;
  background: var(--rf-blue-pale) !important;
}


/* ============================================================
   10. RATING (Sterne)
   ============================================================ */

.elementor-field-type-rating .elementor-field-rating {
  display: flex;
  gap: 6px;
}

.elementor-field-type-rating .elementor-field-rating-star {
  font-size: 1.4rem;
  color: var(--rf-border);
  cursor: pointer;
  transition: color 0.15s;
}

.elementor-field-type-rating .elementor-field-rating-star:hover,
.elementor-field-type-rating .elementor-field-rating-star.selected {
  color: #f59e0b;
}


/* ============================================================
   11. SUBMIT-BUTTON
   ============================================================ */

.elementor-button.elementor-size-md,
.elementor-field-type-submit .elementor-button,
button[type="submit"].elementor-button {
  width: 100% !important;
  padding: 14px 24px !important;
  background: var(--rf-blue) !important;
  color: #ffffff !important;
  border: none !important;
  border-radius: var(--rf-r-sm) !important;
  font-size: 1rem !important;
  font-weight: 700 !important;
  cursor: pointer !important;
  transition: background 0.2s, transform 0.15s !important;
  letter-spacing: 0.3px !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 8px !important;
  box-shadow: 0 4px 16px rgba(103, 126, 167, 0.25) !important;
}

.elementor-button.elementor-size-md:hover,
.elementor-field-type-submit .elementor-button:hover,
button[type="submit"].elementor-button:hover {
  background: var(--rf-blue-dark) !important;
  transform: translateY(-1px) !important;
  box-shadow: 0 6px 20px rgba(103, 126, 167, 0.35) !important;
}

.elementor-button.elementor-size-md:active,
button[type="submit"].elementor-button:active {
  transform: translateY(0) !important;
}


/* ============================================================
   12. STEP-NAVIGATION (Weiter / Zurück Buttons)
   ============================================================ */

.e-form__buttons__wrapper {
  display: flex;
  gap: 12px;
  margin-top: 8px;
}

/* Weiter-Button */
.e-form__buttons__wrapper .elementor-button--next {
  flex: 1;
  padding: 13px 24px !important;
  background: var(--rf-blue) !important;
  color: #ffffff !important;
  border: none !important;
  border-radius: var(--rf-r-sm) !important;
  font-size: 0.95rem !important;
  font-weight: 700 !important;
  cursor: pointer !important;
  transition: background 0.2s !important;
}

.e-form__buttons__wrapper .elementor-button--next:hover {
  background: var(--rf-blue-dark) !important;
}

/* Zurück-Button */
.e-form__buttons__wrapper .elementor-button--prev {
  padding: 13px 20px !important;
  background: transparent !important;
  color: var(--rf-text-mid) !important;
  border: 1.5px solid var(--rf-border) !important;
  border-radius: var(--rf-r-sm) !important;
  font-size: 0.95rem !important;
  font-weight: 600 !important;
  cursor: pointer !important;
  transition: border-color 0.2s, color 0.2s !important;
}

.e-form__buttons__wrapper .elementor-button--prev:hover {
  border-color: var(--rf-blue) !important;
  color: var(--rf-blue) !important;
}


/* ============================================================
   13. FEHLERMELDUNGEN & VALIDIERUNG
   ============================================================ */

/* Fehler-State am Feld */
.elementor-field-textual.elementor-field-invalid,
.elementor-field-textual.elementor-field-invalid:focus {
  border-color: var(--rf-error) !important;
  box-shadow: 0 0 0 3px rgba(220, 38, 38, 0.1) !important;
}

/* Fehlermeldung-Text */
.elementor-message.elementor-message-danger,
.elementor-field-group .elementor-message {
  font-size: 0.75rem !important;
  color: var(--rf-error) !important;
  margin-top: 5px !important;
  display: flex;
  align-items: center;
  gap: 4px;
}

.elementor-field-group .elementor-message::before {
  content: '⚠';
  font-size: 0.7rem;
}

/* Erfolgs-Meldung nach Absenden */
.elementor-message.elementor-message-success {
  background: #f0fdf4 !important;
  border: 1px solid #bbf7d0 !important;
  color: var(--rf-success) !important;
  border-radius: var(--rf-r-sm) !important;
  padding: 14px 18px !important;
  font-size: 0.9rem !important;
  font-weight: 600 !important;
}


/* ============================================================
   14. FORMULAR-SPALTEN (2-spaltig)
   Elementor Column-Layout innerhalb des Formulars
   ============================================================ */

/* Zwei Felder nebeneinander */
.elementor-form .elementor-col-50 {
  width: calc(50% - 7px) !important;
  display: inline-block !important;
  vertical-align: top;
}

.elementor-form .elementor-col-50:nth-child(odd) {
  margin-right: 14px;
}

/* Drei Felder nebeneinander */
.elementor-form .elementor-col-33 {
  width: calc(33.333% - 10px) !important;
  display: inline-block !important;
  vertical-align: top;
  margin-right: 14px;
}

.elementor-form .elementor-col-33:last-child {
  margin-right: 0;
}


/* ============================================================
   15. TRUST-ZEILE UNTER DEM FORMULAR
   (Eigenes HTML-Widget unter dem Form-Widget)
   ============================================================ */

.rf-form-trust {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 20px;
  padding: 14px 28px;
  border-top: 1px solid var(--rf-border);
  background: var(--rf-bg);
  flex-wrap: wrap;
  margin-top: 0;
}

.rf-form-trust-item {
  display: flex;
  align-items: center;
  gap: 5px;
  font-size: 0.75rem;
  color: var(--rf-text-muted);
}

.rf-form-trust-item .rf-check {
  color: var(--rf-success);
  font-weight: 700;
}


/* ============================================================
   16. RESPONSIVE – TABLET (max. 1024px)
   ============================================================ */

@media (max-width: 1024px) {

  .e-form__indicators {
    padding: 14px 20px;
    gap: 0;
  }

  .e-form__indicators__indicator__label {
    display: none; /* Labels ausblenden, nur Kreise zeigen */
  }

  .elementor-form .elementor-col-50 {
    width: 100% !important;
    display: block !important;
    margin-right: 0 !important;
  }

  .elementor-form .elementor-col-33 {
    width: 100% !important;
    display: block !important;
    margin-right: 0 !important;
  }

}


/* ============================================================
   17. RESPONSIVE – MOBIL (max. 768px)
   ============================================================ */

@media (max-width: 768px) {

  /* Formular-Wrapper */
  .elementor-form {
    border-radius: var(--rf-r-sm);
    box-shadow: none;
    border-left: none;
    border-right: none;
  }

  /* Steps */
  .e-form__indicators {
    padding: 12px 16px;
  }

  .e-form__indicators__indicator__number {
    width: 24px;
    height: 24px;
    font-size: 0.68rem;
  }

  /* Felder */
  .elementor-field-textual,
  .elementor-field-textual:focus {
    font-size: 16px !important; /* verhindert iOS-Zoom beim Fokus */
    padding: 12px 12px !important;
  }

  input[type="text"].elementor-field-textual,
  input[type="email"].elementor-field-textual,
  input[type="tel"].elementor-field-textual,
  select.elementor-field-textual {
    height: 48px; /* größere Touch-Targets auf Mobile */
  }

  /* Checkbox/Radio */
  .elementor-field-type-checkbox .elementor-field-option,
  .elementor-field-type-radio .elementor-field-option {
    padding: 14px 12px;
  }

  .elementor-field-type-checkbox input[type="checkbox"],
  .elementor-field-type-radio input[type="radio"] {
    width: 20px !important;
    height: 20px !important;
  }

  /* Submit-Button */
  .elementor-button.elementor-size-md,
  button[type="submit"].elementor-button {
    padding: 16px 20px !important;
    font-size: 1rem !important;
  }

  /* Step-Buttons */
  .e-form__buttons__wrapper {
    flex-direction: column-reverse;
    gap: 10px;
  }

  .e-form__buttons__wrapper .elementor-button--prev {
    width: 100%;
  }

  /* Trust-Zeile */
  .rf-form-trust {
    gap: 12px;
    padding: 12px 16px;
    justify-content: flex-start;
  }

  .rf-form-trust-item {
    font-size: 0.7rem;
  }

}


/* ============================================================
   18. RESPONSIVE – KLEIN-MOBIL (max. 480px)
   ============================================================ */

@media (max-width: 480px) {

  .e-form__indicators__indicator:not(:last-child)::after {
    margin: 0 4px;
  }

  .elementor-field-label {
    font-size: 0.8rem !important;
  }

  .elementor-field-type-checkbox .elementor-field-subgroup,
  .elementor-field-type-radio .elementor-field-subgroup {
    gap: 8px;
  }

  .rf-form-trust {
    flex-direction: column;
    align-items: flex-start;
    gap: 8px;
  }

}/* End custom CSS */