:host {
  --_radio-legend-padding-block: 0 1rem;
  --_form-flex-direction: column;
  --_inline-flex-desktop: 1 1 100%;
  --_button-flex: 1 1 100%;
  --inline-container-max-width: unset;
  --form-field-border-radius: 0.5rem;
  --button-padding: 1rem 5.5rem;
  --forms-body-font: normal 400 0.8125rem 'Yamamay';
}

.hidden,
form-wrapper #app-embed:not(.shadow-root-updated) {
  display: none !important;
}

div:has(> shop-lead-capture) {
  display: none;
}

form-wrapper,
#app-embed {
  div:empty {
    display: none;
  }
}

.form-wrapper--modal {
  .shopify-app-block {
    overflow-y: auto;
    margin-bottom: 2rem;
  }

  .form-wrapper__footer {
    position: sticky;
    bottom: 0;
  }
}

.form-wrapper__modal {
  overflow-y: auto;

  button[type='submit'] {
    display: none;
  }
}

[data-sizing='form-wrapper'] {
  [class*='_selectContainer_']:has([aria-controls="custom#phone_prefix-selector-dropdown"]) {
    flex-basis: calc(30% - 8px);
  }

  [class*='_selectContainer_']:has([aria-controls="custom#phone_prefix-selector-dropdown"]) + div {
    margin-top: 30px;
    flex-basis: calc(70% - 8px);
    input {
      padding-block: calc(var(--form-field-padding-top) - 9px);
      padding-top: 17px;
      padding-bottom: 10px;

      ~ label[class*="inputFilled"],
      &:-webkit-autofill ~ label,
      &:focus ~ label {
        top: 8px !important;
      }
    }
  }

  form:is([data-sizing='form-wrapper'] form) {
    /* redundant selector but needed to increase specificity */
    flex-direction: var(--_form-flex-direction);
    flex-wrap: wrap;
    gap: 0.5rem;

    > * {
      flex: 1 1 100%;
    }

    div:not(.form-wrapper__modal div):has(#first_name, #last_name, #email, #phone_number) {
      flex: var(--_inline-flex-desktop);
    }

    button[type='submit'] {
      margin-top: 1rem;
      flex: var(--_button-flex);
    }
  }

  div:last-child {
    padding-bottom: 0;
  }

  input[type='radio'],
  input[type='checkbox'] {
    --_radius: 2px;
    --_inner-radius: 1px;
    appearance: none;
    border: 1px solid var(--theme-color-black);
    width: 1rem;
    height: 1rem;
    border-radius: var(--_radius);
    position: relative;

    &:checked::before {
      content: '';
      display: block;
      position: absolute;
      top: 50%;
      left: 50%;
      transform: translate(-50%, -50%);
      width: 0.5rem;
      height: 0.5rem;
      background-color: var(--theme-color-black);
      border-radius: var(--_inner-radius);
    }
  }

  input[type='radio'] {
    --_radius: 50%;
    --_inner-radius: 50%;
  }

  input[type='radio'] + span {
    line-height: 1;
    font-size: 0.6875rem;
  }

  fieldset[name='custom#general_consent'],
  fieldset[name='custom#marketing_consent'],
  fieldset[name='custom#profiling_consent'],
  fieldset[name='custom#club_consent'] {
    label {
      grid-template-columns: auto minmax(0, 1fr);
    }

    span {
      font-size: 0.6875rem;
      line-height: 0.875rem;
    }
  }

  .form-wrapper__error {
    font: var(--forms-body-font);
    color: var(--form-error-color);
    line-height: var(--forms-base-font-line-height);
  }

  .phone-country-selector button[aria-controls='country-selector-dropdown'] {
    max-height: 100%;
  }
}

fieldset[name='custom#title'] {
  padding-block: var(--_radio-legend-padding-block);

  legend {
    padding: 0;
  }

  & > div {
    gap: 2rem;
    display: flex;
    flex-wrap: wrap;
  }
}

fieldset:has([type='checkbox']) {
  padding-top: 0.75rem;

  label {
    align-items: start;
  }

  legend {
    display: none;
  }
}

[data-testid='date-birthday'] {
  margin-bottom: 0.75rem;
}

.form-cancel__close:not(.form-submitted-successfully .form-cancel__close) {
  display: none;
}

.form-submitted-successfully {
  .form-wrapper__header,
  .form-wrapper__extra-message,
  .form-cancel__delete,
  .form-wrapper__under {
    display: none;
  }
}

.form-wrapper__extra-message ul li:not(:last-child) {
  margin-bottom: 0.25rem;
}

section[data-testid='banner-success']:is([data-current-step='success'] section) > * {
  font-size: 1rem;
  font-weight: 500;

  &:first-child {
    margin-bottom: 2rem;
  }
}

@media screen and (min-width: 1000px) {
  :host {
    --_radio-legend-padding-block: 1rem;
    --_form-flex-direction: row;
    --_inline-flex-desktop: 1 1 calc(50% - 1rem);
    --_button-flex: 0;
  }

  fieldset[name='custom#title']:not(.form-wrapper__modal fieldset[name='custom#title']) {
    display: flex;
    gap: 2rem;

    legend {
      float: left;
    }
  }
}
