/* Kimodo Gravity-Forms / Elementor-Formulare
 * Gilt für jedes Formular im Wrapper .kimodo-contact-form (Kontakt + Firmenanfrage).
 */

/* Farben */
body .kimodo-contact-form .gform_wrapper,
body .elementor-form {
  --kimodo-dark: #07192b;
  --kimodo-orange: #f76518;
  --kimodo-hover: #182430;
  --kimodo-field-bg: #f0f0f0;
  --kimodo-placeholder: #7f8792;
}

/* =========================================================
   GRAVITY FORMS – .kimodo-contact-form
========================================================= */

/* Required Legend oben entfernen */
body .kimodo-contact-form .gform_wrapper .gform_required_legend {
  display: none !important;
}

/* Wrapper */
body .kimodo-contact-form .gform_wrapper {
  width: 100%;
  max-width: 100%;
  font-family: inherit;
}

body .kimodo-contact-form .gform_wrapper form {
  margin: 0 !important;
  padding: 0 !important;
}

/* Grid */
body .kimodo-contact-form .gform_wrapper .gform_fields {
  display: grid !important;
  grid-template-columns: repeat(12, 1fr) !important;
  column-gap: 24px !important;
  row-gap: 24px !important;
}

/* Einzelne Felder */
body .kimodo-contact-form .gform_wrapper .gfield {
  margin: 0 !important;
  padding: 0 !important;
}

/* Standard volle Breite, GF-Breitenklassen bleiben erhalten */
body .kimodo-contact-form .gform_wrapper .gfield {
  grid-column: 1 / -1;
}

/* Labels 18px */
body .kimodo-contact-form .gform_wrapper .gfield_label,
body .kimodo-contact-form .gform_wrapper .gform-field-label {
  display: block !important;
  margin: 0 0 7px !important;
  padding: 0 !important;
  color: var(--kimodo-dark) !important;
  font-size: 18px !important;
  font-weight: 900 !important;
  line-height: 1.15 !important;
}

/* Pflichtstern */
body .kimodo-contact-form .gform_wrapper .gfield_required,
body .kimodo-contact-form .gform_wrapper .gfield_required_text,
body .kimodo-contact-form .gform_wrapper .gfield_required_asterisk {
  color: var(--kimodo-dark) !important;
  font-size: 18px !important;
  font-weight: 900 !important;
  padding-left: 6px !important;
}

/* Input Container */
body .kimodo-contact-form .gform_wrapper .ginput_container {
  margin: 0 !important;
}

/* Inputs kompakt */
body .kimodo-contact-form .gform_wrapper input[type="text"],
body .kimodo-contact-form .gform_wrapper input[type="email"],
body .kimodo-contact-form .gform_wrapper input[type="tel"],
body .kimodo-contact-form .gform_wrapper input[type="number"],
body .kimodo-contact-form .gform_wrapper input[type="date"],
body .kimodo-contact-form .gform_wrapper select {
  width: 100% !important;
  height: 47px !important;
  min-height: 47px !important;
  padding: 6px 16px !important;
  box-sizing: border-box !important;
  background-color: var(--kimodo-field-bg) !important;
  border: 0 !important;
  border-radius: 0 !important;
  color: var(--kimodo-dark) !important;
  font-size: 15px !important;
  font-weight: 400 !important;
  line-height: 1.4 !important;
  box-shadow: none !important;
  outline: none !important;
  appearance: auto;
  transition: background-color 160ms ease, box-shadow 160ms ease;
}

/* Textarea */
body .kimodo-contact-form .gform_wrapper textarea {
  width: 100% !important;
  min-height: 120px !important;
  padding: 16px !important;
  box-sizing: border-box !important;
  background-color: var(--kimodo-field-bg) !important;
  border: 0 !important;
  border-radius: 0 !important;
  color: var(--kimodo-dark) !important;
  font-size: 15px !important;
  font-weight: 400 !important;
  line-height: 1.4 !important;
  box-shadow: none !important;
  outline: none !important;
  resize: vertical;
}

/* Placeholder */
body .kimodo-contact-form .gform_wrapper input::placeholder,
body .kimodo-contact-form .gform_wrapper textarea::placeholder {
  color: var(--kimodo-placeholder) !important;
  opacity: 1 !important;
}

/* Fokus */
body .kimodo-contact-form .gform_wrapper input:focus,
body .kimodo-contact-form .gform_wrapper select:focus,
body .kimodo-contact-form .gform_wrapper textarea:focus {
  background-color: #ffffff !important;
  box-shadow: 0 0 0 2px rgba(247, 101, 24, 0.25) !important;
}

/* GF-Spaltenbreiten im 12er-Grid */
@media (min-width: 768px) {
  body .kimodo-contact-form .gform_wrapper .gfield--width-half,
  body .kimodo-contact-form .gform_wrapper .gf_left_half,
  body .kimodo-contact-form .gform_wrapper .gf_right_half {
    grid-column: span 6 !important;
  }

  body .kimodo-contact-form .gform_wrapper .gfield--width-third,
  body .kimodo-contact-form .gform_wrapper .gf_third {
    grid-column: span 4 !important;
  }

  body .kimodo-contact-form .gform_wrapper .gfield--width-quarter {
    grid-column: span 3 !important;
  }

  body .kimodo-contact-form .gform_wrapper .gfield--width-seven-twelfths {
    grid-column: span 7 !important;
  }
}

/* Footer / Button-Bereich */
body .kimodo-contact-form .gform_wrapper .gform_footer,
body .kimodo-contact-form .gform_wrapper .gform_page_footer {
  margin: 34px 0 0 !important;
  padding: 0 !important;
  display: flex !important;
  justify-content: flex-end !important;
  align-items: center !important;
}

/* Button */
body .kimodo-contact-form .gform_wrapper .gform_button,
body .kimodo-contact-form .gform_wrapper input[type="submit"],
body .kimodo-contact-form .gform_wrapper button[type="submit"],
body .kimodo-contact-form .gform_button {
  min-width: 185px !important;
  min-height: 62px !important;
  padding: 17px 38px !important;
  background-color: var(--kimodo-orange) !important;
  border: 0 !important;
  border-radius: 999px !important;
  color: #ffffff !important;
  font-size: 20px !important;
  font-weight: 900 !important;
  line-height: 1 !important;
  text-transform: uppercase !important;
  letter-spacing: 0.01em !important;
  cursor: pointer !important;
  box-shadow: none !important;
  transition: background-color 180ms ease, transform 180ms ease !important;
}

/* Button Hover */
body .kimodo-contact-form .gform_wrapper .gform_button:hover,
body .kimodo-contact-form .gform_wrapper input[type="submit"]:hover,
body .kimodo-contact-form .gform_wrapper button[type="submit"]:hover,
body .kimodo-contact-form .gform_button:hover {
  background-color: #182430 !important;
  transform: translateY(-2px);
}

/* Cloudflare Turnstile */
body .kimodo-contact-form .gform_wrapper .cf-turnstile,
body .kimodo-contact-form .gform_wrapper iframe[src*="challenges.cloudflare.com"] {
  margin-top: 6px !important;
}

/* Fehler */
body .kimodo-contact-form .gform_wrapper .gfield_error input,
body .kimodo-contact-form .gform_wrapper .gfield_error select,
body .kimodo-contact-form .gform_wrapper .gfield_error textarea {
  box-shadow: 0 0 0 2px rgba(217, 48, 37, 0.35) !important;
}

body .kimodo-contact-form .gform_wrapper .gfield_validation_message,
body .kimodo-contact-form .gform_wrapper .validation_message {
  margin-top: 8px !important;
  padding: 0 !important;
  background: transparent !important;
  border: 0 !important;
  color: #d93025 !important;
  font-size: 14px !important;
  font-weight: 700 !important;
}

/* =========================================================
   ELEMENTOR FORMULAR – falls aktuell Elementor-Formular aktiv ist
========================================================= */

/* Labels 18px */
body .elementor-form .elementor-field-label {
  margin: 0 0 7px !important;
  padding: 0 !important;
  color: var(--kimodo-dark) !important;
  font-size: 18px !important;
  font-weight: 900 !important;
  line-height: 1.15 !important;
}

/* Pflichtstern Elementor */
body .elementor-form .elementor-field-required {
  color: var(--kimodo-dark) !important;
}

/* Elementor Inputs */
body .elementor-form input.elementor-field,
body .elementor-form select.elementor-field {
  width: 100% !important;
  height: 47px !important;
  min-height: 47px !important;
  padding: 6px 16px !important;
  box-sizing: border-box !important;
  background-color: var(--kimodo-field-bg) !important;
  border: 0 !important;
  border-radius: 0 !important;
  color: var(--kimodo-dark) !important;
  font-size: 15px !important;
  font-weight: 400 !important;
  line-height: 1.4 !important;
  box-shadow: none !important;
  outline: none !important;
}

/* Elementor Textarea */
body .elementor-form textarea.elementor-field {
  width: 100% !important;
  min-height: 210px !important;
  padding: 16px !important;
  box-sizing: border-box !important;
  background-color: var(--kimodo-field-bg) !important;
  border: 0 !important;
  border-radius: 0 !important;
  color: var(--kimodo-dark) !important;
  font-size: 15px !important;
  font-weight: 400 !important;
  line-height: 1.4 !important;
  box-shadow: none !important;
  outline: none !important;
  resize: vertical;
}

/* Elementor Placeholder */
body .elementor-form input.elementor-field::placeholder,
body .elementor-form textarea.elementor-field::placeholder {
  color: var(--kimodo-placeholder) !important;
  opacity: 1 !important;
  font-size: 15px !important;
}

/* Elementor Focus */
body .elementor-form input.elementor-field:focus,
body .elementor-form select.elementor-field:focus,
body .elementor-form textarea.elementor-field:focus {
  background-color: #ffffff !important;
  box-shadow: 0 0 0 2px rgba(247, 101, 24, 0.25) !important;
}

/* Elementor Button Wrapper */
body .elementor-form .elementor-field-type-submit {
  display: flex !important;
  justify-content: flex-end !important;
  margin-top: 34px !important;
}

/* Elementor Button */
body .elementor-form .elementor-button,
body .elementor-form button[type="submit"] {
  min-width: 185px !important;
  min-height: 62px !important;
  padding: 17px 38px !important;
  background-color: var(--kimodo-orange) !important;
  border: 0 !important;
  border-radius: 999px !important;
  color: #ffffff !important;
  font-size: 20px !important;
  font-weight: 900 !important;
  line-height: 1 !important;
  text-transform: uppercase !important;
  letter-spacing: 0.01em !important;
  cursor: pointer !important;
  box-shadow: none !important;
  transition: background-color 180ms ease, transform 180ms ease !important;
}

/* Elementor Button Hover */
body .elementor-form .elementor-button:hover,
body .elementor-form button[type="submit"]:hover {
  background-color: #182430 !important;
  transform: translateY(-2px);
}

/* =========================================================
   MOBILE
========================================================= */

@media (max-width: 767px) {
  body .kimodo-contact-form .gform_wrapper .gform_fields {
    grid-template-columns: 1fr !important;
    column-gap: 0 !important;
    row-gap: 22px !important;
  }

  body .kimodo-contact-form .gform_wrapper .gfield,
  body .kimodo-contact-form .gform_wrapper .gfield--width-third,
  body .kimodo-contact-form .gform_wrapper .gf_third {
    grid-column: 1 / -1 !important;
  }

  body .kimodo-contact-form .gform_wrapper .gfield_label,
  body .kimodo-contact-form .gform_wrapper .gform-field-label,
  body .elementor-form .elementor-field-label {
    font-size: 17px !important;
    margin-bottom: 7px !important;
  }

  body .kimodo-contact-form .gform_wrapper input[type="text"],
  body .kimodo-contact-form .gform_wrapper input[type="email"],
  body .kimodo-contact-form .gform_wrapper input[type="tel"],
  body .kimodo-contact-form .gform_wrapper input[type="number"],
  body .kimodo-contact-form .gform_wrapper input[type="date"],
  body .kimodo-contact-form .gform_wrapper select,
  body .elementor-form input.elementor-field,
  body .elementor-form select.elementor-field {
    height: 46px !important;
    min-height: 46px !important;
    font-size: 15px !important;
  }

  body .kimodo-contact-form .gform_wrapper textarea,
  body .elementor-form textarea.elementor-field {
    min-height: 185px !important;
    font-size: 15px !important;
  }

  body .kimodo-contact-form .gform_wrapper .gform_footer,
  body .kimodo-contact-form .gform_wrapper .gform_page_footer,
  body .elementor-form .elementor-field-type-submit {
    justify-content: center !important;
    margin-top: 28px !important;
  }

  body .kimodo-contact-form .gform_wrapper .gform_button,
  body .kimodo-contact-form .gform_wrapper input[type="submit"],
  body .kimodo-contact-form .gform_wrapper button[type="submit"],
  body .kimodo-contact-form .gform_button,
  body .elementor-form .elementor-button,
  body .elementor-form button[type="submit"] {
    width: 100% !important;
    min-width: 0 !important;
    min-height: 58px !important;
    font-size: 19px !important;
  }
}