/* Button-Geometrie:
       Einheitlich eckig und vertikal zentriert, ohne browserabhängige
       Padding-Hacks für Chrome/Firefox/Safari. */
    body:not(.elementor-editor-active) :where(
      button,
      input[type="button"],
      input[type="submit"],
      input[type="reset"],
      .button,
      .wp-block-button__link,
      .elementor-button
    ) {
      border-radius: 0 !important;
      align-items: center !important;
      justify-content: center !important;
      text-align: center !important;
      box-sizing: border-box !important;
    }

    body:not(.elementor-editor-active) :where(
      button,
      .button,
      .wp-block-button__link,
      .elementor-button
    ) {
      display: inline-flex !important;
    }

    body:not(.elementor-editor-active) :where(
      .elementor-button-content-wrapper,
      .elementor-button-text
    ) {
      align-items: center !important;
      justify-content: center !important;
    }

    body:not(.elementor-editor-active) :where(.elementor-button-content-wrapper) {
      display: inline-flex !important;
      width: 100%;
    }

    .main-header-menu .ast-custom-button > a.menu-link,
    #ast-hf-mobile-menu .ast-custom-button > a.menu-link,
    .ast-builder-menu-mobile .main-header-menu .ast-custom-button > a.menu-link,
    body.page-id-3786 .wp-block-button__link {
      border-radius: 0 !important;
      display: inline-flex !important;
      align-items: center !important;
      justify-content: center !important;
      line-height: 1 !important;
      text-align: center !important;
      box-sizing: border-box !important;
    }

    body:not(.elementor-editor-active) .elementor-form .elementor-button .elementor-button-content-wrapper,
    body:not(.elementor-editor-active) .elementor-form .elementor-button .elementor-button-text {
      display: inline-flex !important;
      align-items: center !important;
      justify-content: center !important;
      transform: none !important;
      width: 100%;
    }

    .main-header-menu .ast-custom-button > a.menu-link,
    #ast-hf-mobile-menu .ast-custom-button > a.menu-link,
    .ast-builder-menu-mobile .main-header-menu .ast-custom-button > a.menu-link {
      padding-top: 10px !important;
      padding-bottom: 10px !important;
    }

    body.page-id-3786 .wp-block-button__link {
      padding-top: 20px !important;
      padding-bottom: 20px !important;
    }

    @media (max-width: 1023px) {
      body :where(.site-content, main) :where(.elementor-button, .wp-block-button__link) {
        font-size: var(--e-global-typography-text-font-size, 1rem) !important;
        line-height: 1.2em !important;
        padding-block: 0.7em !important;
        padding-inline: 1.35em !important;
      }

      body :where(.site-content, main) .elementor-button :where(.elementor-button-content-wrapper, .elementor-button-text) {
        font-size: inherit !important;
        line-height: inherit !important;
      }
    }

    @media (max-width: 479px) {
      body :where(.site-content, main) :where(.elementor-button, .wp-block-button__link) {
        padding-block: 0.65em !important;
        padding-inline: 1.25em !important;
      }
    }

    .elementor-form {
      --ff-form-line-height: 1.5em;
      --ff-form-choice-size: 0.9em;
      --ff-form-choice-gap: 0.25em;
      --ff-form-choice-group-gap: 0.5em;
      --ff-form-choice-border: 0.1em;
      --ff-form-choice-check-size: 0.48em;
    }

    body:not(.elementor-editor-active) .elementor-form .elementor-field-option {
      display: grid !important;
      grid-template-columns: var(--ff-form-choice-size) minmax(0, auto) !important;
      column-gap: var(--ff-form-choice-gap) !important;
      align-items: start !important;
      margin-bottom: 0.5em !important;
    }

    body:not(.elementor-editor-active) .elementor-form .elementor-field-option label {
      margin: 0 !important;
      padding: 0 !important;
    }

    body:not(.elementor-editor-active) .elementor-location-footer .elementor-form .elementor-field-option:has(input[type="radio"]) {
      display: grid !important;
      column-gap: 0.18em !important;
    }

    body:not(.elementor-editor-active) .elementor-form .elementor-field-option input[type="radio"],
    body:not(.elementor-editor-active) .elementor-form .elementor-field-option input[type="checkbox"] {
      inline-size: var(--ff-form-choice-size) !important;
      block-size: var(--ff-form-choice-size) !important;
      box-sizing: border-box !important;
      margin: calc((var(--ff-form-line-height) - var(--ff-form-choice-size)) / 2) 0 0 0 !important;
      align-self: start !important;
      appearance: none !important;
      -webkit-appearance: none !important;
      display: grid !important;
      place-content: center !important;
      flex: 0 0 var(--ff-form-choice-size) !important;
      padding: 0 !important;
      border: var(--ff-form-choice-border) solid currentColor !important;
      background: transparent !important;
      color: currentColor !important;
      cursor: pointer !important;
    }

    body:not(.elementor-editor-active) .elementor-form .elementor-field-option input[type="checkbox"] {
      border-radius: 0 !important;
    }

    body:not(.elementor-editor-active) .elementor-form .elementor-field-option input[type="radio"] {
      border-radius: 50% !important;
    }

    body:not(.elementor-editor-active) .elementor-location-footer .elementor-form .elementor-field-option input[type="radio"] {
      border-width: 0.085em !important;
      margin-right: 0 !important;
    }

    body:not(.elementor-editor-active) .elementor-form .elementor-field-option input[type="radio"]::before,
    body:not(.elementor-editor-active) .elementor-form .elementor-field-option input[type="checkbox"]::before {
      content: "" !important;
      inline-size: var(--ff-form-choice-check-size) !important;
      block-size: var(--ff-form-choice-check-size) !important;
      background: currentColor !important;
      transform: scale(0) !important;
      transition: transform 120ms ease-in-out !important;
    }

    body:not(.elementor-editor-active) .elementor-form .elementor-field-option input[type="radio"]::before {
      border-radius: 50% !important;
    }

    body:not(.elementor-editor-active) .elementor-form .elementor-field-option input[type="checkbox"]::before {
      clip-path: polygon(14% 44%, 0 65%, 50% 100%, 100% 16%, 80% 0%, 43% 62%) !important;
    }

    body:not(.elementor-editor-active) .elementor-form .elementor-field-option input[type="radio"]:checked::before,
    body:not(.elementor-editor-active) .elementor-form .elementor-field-option input[type="checkbox"]:checked::before {
      transform: scale(1) !important;
    }

    body:not(.elementor-editor-active) .elementor-form .elementor-subgroup-inline {
      gap: 0 var(--ff-form-choice-group-gap) !important;
    }

    body:not(.elementor-editor-active) .elementor-form .elementor-subgroup-inline .elementor-field-option:not(:last-child) {
      margin-right: var(--ff-form-choice-group-gap) !important;
    }

    body:not(.elementor-editor-active) .elementor-form .elementor-field-option.ff-option-focus,
    body:not(.elementor-editor-active) .elementor-form .elementor-field-option:has(input[type="radio"]:focus-visible),
    body:not(.elementor-editor-active) .elementor-form .elementor-field-option:has(input[type="checkbox"]:focus-visible) {
      background-color: var(--ff-focus-surface) !important;
      box-shadow: 0 0 0 3px var(--ff-focus-surface) !important;
      color: var(--ff-focus-text) !important;
      border-radius: 0 !important;
    }

    body:not(.elementor-editor-active) .elementor-form .elementor-field-option.ff-option-focus label,
    body:not(.elementor-editor-active) .elementor-form .elementor-field-option:has(input[type="radio"]:focus-visible) label,
    body:not(.elementor-editor-active) .elementor-form .elementor-field-option:has(input[type="checkbox"]:focus-visible) label {
      color: var(--ff-focus-text) !important;
    }

    body:not(.elementor-editor-active) .elementor-form .elementor-field-option.ff-option-focus input[type="radio"],
    body:not(.elementor-editor-active) .elementor-form .elementor-field-option.ff-option-focus input[type="checkbox"],
    body:not(.elementor-editor-active) .elementor-form .elementor-field-option input[type="radio"]:focus-visible,
    body:not(.elementor-editor-active) .elementor-form .elementor-field-option input[type="checkbox"]:focus-visible {
      background-color: transparent !important;
      border-color: var(--ff-focus-text) !important;
      box-shadow: none !important;
    }

    /* Elementor-Editor / Vorschau-Canvas:
       gleiche Custom-Controls wie im Frontend, aber nur innerhalb gerenderter
       Elementor-Seiten/Formulare — nicht im WP-/Elementor-Admin-Panel. */
    body.elementor-editor-active .elementor-form .elementor-field-option {
      display: grid !important;
      grid-template-columns: var(--ff-form-choice-size) minmax(0, auto) !important;
      column-gap: var(--ff-form-choice-gap) !important;
      align-items: start !important;
      margin-bottom: 0.5em !important;
    }

    body.elementor-editor-active .elementor-form .elementor-field-option label {
      margin: 0 !important;
      padding: 0 !important;
    }

    body.elementor-editor-active .elementor-location-footer .elementor-form .elementor-field-option:has(input[type="radio"]) {
      display: grid !important;
      column-gap: 0.18em !important;
    }

    body.elementor-editor-active .elementor-form .elementor-field-option input[type="radio"],
    body.elementor-editor-active .elementor-form .elementor-field-option input[type="checkbox"] {
      inline-size: var(--ff-form-choice-size) !important;
      block-size: var(--ff-form-choice-size) !important;
      box-sizing: border-box !important;
      margin: calc((var(--ff-form-line-height) - var(--ff-form-choice-size)) / 2) 0 0 0 !important;
      align-self: start !important;
      appearance: none !important;
      -webkit-appearance: none !important;
      display: grid !important;
      place-content: center !important;
      flex: 0 0 var(--ff-form-choice-size) !important;
      padding: 0 !important;
      border: var(--ff-form-choice-border) solid currentColor !important;
      background: transparent !important;
      color: currentColor !important;
      cursor: pointer !important;
    }

    body.elementor-editor-active .elementor-form .elementor-field-option input[type="checkbox"] {
      border-radius: 0 !important;
    }

    body.elementor-editor-active .elementor-form .elementor-field-option input[type="radio"] {
      border-radius: 50% !important;
    }

    body.elementor-editor-active .elementor-location-footer .elementor-form .elementor-field-option input[type="radio"] {
      border-width: 0.085em !important;
      margin-right: 0 !important;
    }

    body.elementor-editor-active .elementor-form .elementor-field-option input[type="radio"]::before,
    body.elementor-editor-active .elementor-form .elementor-field-option input[type="checkbox"]::before {
      content: "" !important;
      inline-size: var(--ff-form-choice-check-size) !important;
      block-size: var(--ff-form-choice-check-size) !important;
      background: currentColor !important;
      transform: scale(0) !important;
      transition: transform 120ms ease-in-out !important;
    }

    body.elementor-editor-active .elementor-form .elementor-field-option input[type="radio"]::before {
      border-radius: 50% !important;
    }

    body.elementor-editor-active .elementor-form .elementor-field-option input[type="checkbox"]::before {
      clip-path: polygon(14% 44%, 0 65%, 50% 100%, 100% 16%, 80% 0%, 43% 62%) !important;
    }

    body.elementor-editor-active .elementor-form .elementor-field-option input[type="radio"]:checked::before,
    body.elementor-editor-active .elementor-form .elementor-field-option input[type="checkbox"]:checked::before {
      transform: scale(1) !important;
    }

    body.elementor-editor-active .elementor-form .elementor-subgroup-inline {
      gap: 0 var(--ff-form-choice-group-gap) !important;
    }

    body.elementor-editor-active .elementor-form .elementor-subgroup-inline .elementor-field-option:not(:last-child) {
      margin-right: var(--ff-form-choice-group-gap) !important;
    }

    body.elementor-editor-active .elementor-form .elementor-field-option.ff-option-focus,
    body.elementor-editor-active .elementor-form .elementor-field-option:has(input[type="radio"]:focus-visible),
    body.elementor-editor-active .elementor-form .elementor-field-option:has(input[type="checkbox"]:focus-visible) {
      background-color: var(--ff-focus-surface) !important;
      box-shadow: 0 0 0 3px var(--ff-focus-surface) !important;
      color: var(--ff-focus-text) !important;
      border-radius: 0 !important;
    }

    body.elementor-editor-active .elementor-form .elementor-field-option.ff-option-focus label,
    body.elementor-editor-active .elementor-form .elementor-field-option:has(input[type="radio"]:focus-visible) label,
    body.elementor-editor-active .elementor-form .elementor-field-option:has(input[type="checkbox"]:focus-visible) label {
      color: var(--ff-focus-text) !important;
    }

    body.elementor-editor-active .elementor-form .elementor-field-option.ff-option-focus input[type="radio"],
    body.elementor-editor-active .elementor-form .elementor-field-option.ff-option-focus input[type="checkbox"],
    body.elementor-editor-active .elementor-form .elementor-field-option input[type="radio"]:focus-visible,
    body.elementor-editor-active .elementor-form .elementor-field-option input[type="checkbox"]:focus-visible {
      background-color: transparent !important;
      border-color: var(--ff-focus-text) !important;
      box-shadow: none !important;
    }
