/* Very specific selector to align search result page form. */
[data-drupal-selector*="views-exposed-form-search-page"] .form-item__label {
  margin-top: 10px;
}

.form-item__label.form-required::after,
.app-required>label:after,
.app-required legend .fieldset__label:after,
.app-required-label:after {
  content: '*';
  color: var(--color--red);
  background-image: none;
  font-size:18px;
}

.node-form {
  .bg-box-small {
    margin-block: 24px;
  }
}


.two-columns-fields {
  --columns-gap: 24px;

  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: 0 var(--columns-gap);
  flex-wrap: wrap;
}

.two-columns-fields:has(.form-item__description) {
  align-items: flex-start;
}

.two-columns-fields>* {
  flex: 0 0 calc(50% - (var(--columns-gap) / 2));
}

/* 70 / 30 split for two-column groups */
.two-columns-fields.three-one>*:first-child {
  flex: 0 0 calc(70% - (var(--columns-gap) / 2));
}

.two-columns-fields.three-one>*:nth-child(2) {
  flex: 0 0 calc(30% - (var(--columns-gap) / 2));
}


@media (max-width: 768px) {
  .two-columns-fields {
    display: block;
  }

  .two-columns-fields>* {
    flex: none;
    width: 100%;
  }
}


/* form-items and form-items within paragraphs */
.form-item,
tr .form-item {
  margin-block: 0;
  margin-bottom: 32px;
}

/* Form items within a .sm-margin-bottom wrapper
   We use that for dependant fields
   so they appear closer to the top filed
*/
.sm-margin-bottom>*:nth-child(2) {
  margin-top: -22px;
}

/* .two-columns-fields :is(.form-wrapper, .form-item) {
  margin-block: 0;
} */

.form-item__label {
  color: var(--color-primary);
  font-size: 16px;
  line-height: 1.25;
  font-weight: 400;
}


.field--widget-datetime-range-flatpickr .form-item input,
.field--widget-datetime-flatpickr .form-item input, .js-form-type-datetime-flatpickr input,
.field--widget-datetime-range-separate-inputs-flatpickr div.form-item input {
  margin-left: 0;
}


.js-form-item:has(.flatpickr-input) {
  position: relative;
  background-image: none;
}

.flatpickr-input+input {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23666' viewBox='0 0 24 24'%3E%3Cpath d='M7 2v2H5a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2V6a2 2 0 0 0-2-2h-2V2h-2v2H9V2H7zm12 18H5V9h14v11z'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-size: contain;
  background-size: 18px;
  background-position: 98% 50%;
}

/* js-form may contain more than the label and the input (ir description)
so bellow code does not align the icon corectly */
/* .js-form-item:has(.flatpickr-input) input[type="text"].form-control {
  padding-right: 44px;
  background-color: var(--color-bg);
  margin-left: 0;
}

.js-form-item:has(.flatpickr-input):after {
  content: "";
  position: absolute;
  right: 14px;
  width: 18px;
  height: 18px;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23666' viewBox='0 0 24 24'%3E%3Cpath d='M7 2v2H5a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2V6a2 2 0 0 0-2-2h-2V2h-2v2H9V2H7zm12 18H5V9h14v11z'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-size: contain;
  pointer-events: none;
} */

.flatpickr-calendar {
  [type="number"] {
    min-height: unset;
  }
}

form .form-element {
  border-radius: 12px;
  border-color: var(--color-primary);
  padding: 13px 12px;
  color: var(--color-primary);
  width: 100%;

  &::placeholder {
    color: var(--color-inactive);
  }

  &:focus,
  &:focus-visible {
    border-color: var(--color-primary);
    outline: 2px solid var(--color-primary);
    outline-offset: 2px;
    border-width: 1px;
  }
}

.form-element:disabled {
  background-color: var(--color-filled-form-input);
  color: var(--color-primary);
  -webkit-text-fill-color: var(--color-primary);
}

/* .form-element:read-only {
  background-color: var(--color-filled-form-input);
  color: var(--color-primary);
  -webkit-text-fill-color: var(--color-primary);
} */

.form-select,
.form-date,
.js-form-type-date {
  width: 100%;
}

.form-actions {
  justify-content: flex-end;
  align-items: flex-end;
}

.user-flow-terms-form,
.user-register-form,
.submission-edit-form,
.user-login-form,
.user-pass {
  .form-actions {
    justify-content: flex-start;
    align-items: flex-start;
  }
}

.submission-edit-form {
  .form-actions :nth-child(2) {
    margin-left: auto;
    margin-right: 24px;
  }
}

@media (max-width: 568px) {
  .submission-edit-form {
    .form-actions input {
      margin-right: 24px;
      margin-bottom: 12px;
    }

    .form-actions :nth-child(2) {
      margin-left: 0;
      margin-right: 0;
    }
  }
}

input[type="checkbox"] {
  width: 24px;
  height: 24px;
  border-radius: 4px;

}

input[type="checkbox"],
input[type="radio"] {
  border-color: var(--color-primary);
}


input[type="checkbox"]:checked {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='12' viewBox='0 0 16 12' fill='none'%3E%3Cpath d='M14.6465 0.646484C14.8417 0.451238 15.1583 0.451239 15.3535 0.646484C15.5487 0.841751 15.5487 1.15825 15.3535 1.35352L5.85352 10.8535C5.65826 11.0487 5.34176 11.0488 5.14648 10.8535L0.646484 6.35352C0.451239 6.15828 0.451239 5.84172 0.646484 5.64648C0.841751 5.45125 1.15825 5.45125 1.35352 5.64648L5.5 9.79297L14.6465 0.646484Z' fill='%230F55F5' stroke='%230032A0'/%3E%3C/svg%3E");
}

input[type="radio"]:checked {
  border-color: var(--color-secondary);
  background-image: url("data:image/svg+xml,%3Csvg width='17' height='17' viewBox='0 0 17 17' xmlns='http://www.w3.org/2000/svg'%3E%3Ccircle cx='8.5' cy='8.5' r='8.5' fill='%230032A0'/%3E%3C/svg%3E%0A");
}

input[type="checkbox"]:hover,
input[type="checkbox"]:focus,
input[type="checkbox"]:focus-visible {
  border: 2px solid var(--color-primary);
  outline: none;
}

input[type="radio"]:hover,
input[type="radio"]:focus,
input[type="radio"]:focus-visible {
  border: 2px solid var(--color-secondary);
  outline: none;
  box-shadow: none;
}

.js-form-type-checkbox {
  label {
    color: var(--color-primary-black);
  }
}

.form-type-boolean {
  &:has(input[type="radio"]):first-child {
    display: none;
  }
}

.fieldset__legend,
.fieldset--group .fieldset__legend--visible~.fieldset__wrapper {
  border: none;
  background-color: transparent;
  padding: 0;
}

.fieldset__wrapper {
  .form-item {
    margin-block: 8px;
  }

  .form-boolean-group:not(.form-checkboxes) {
    display: flex;
    gap: 32px;
    align-items: center;
  }
}

.fieldset__label {
  font-size: 16px;
  font-weight: 400;
  line-height: 1.25;
  color: var(--color-primary);
  padding: 0 0 8px 0;
}


.node-form .form-actions:has(input:nth-child(2):not([type="hidden"])) {
  input:nth-child(1) {
    margin-inline-end: var(--sp1);
  }
}


.field--type-link tbody .form-item__description.description {
  display: none;
}

.form-item__description {
  max-width: unset;
}

.profile-details-card {
  border-radius: 12px;
  border: 1px solid var(--color-primary);
  padding: 24px;
  margin-bottom: 32px;

  .details>div {
    display: flex;
    flex-wrap: wrap;
    gap: 16px 32px;
    margin-bottom: 24px;

    .field {
      flex: 1 1 calc(50% - 16px);
      margin-bottom: 0;
    }
  }

  .field__label {
    color: var(--color-primary);
  }

}

.profile-details-card--frozen {
  background: #f7f9fc;

  .profile-details-card__notice {
    margin-top: 8px;
    font-size: 14px;
  }
}

.login-link-wrapper {
  margin-top: 24px;
}

.login-link {
  color: var(--color-primary);
  text-decoration: none;
}

@media (max-width: 768px) {
  .profile-details-card {
    .details>div {
      flex-direction: column;
      gap: 12px;

      .field {
        flex-basis: 100%;
      }
    }
  }
}

h2.node-form--title {
  color: var(--color-primary);
  font-size: 32px;
  margin: 0;
  margin-bottom: 32px;
  line-height: 1.4;

  span {
    font-size: 16px;
    display: block;
    color: var(--color-secondary);
  }
}

.submission-edit-form {

  .form-type-boolean {
    padding-bottom: 16px;
  }

  ul {
    padding-bottom: 8px;
  }


  .submission-form--declaration,
  .submission-form--terms,
  .submission-form--consent {
    padding-bottom: 8px;
  }

}



.ui-dialog .ui-dialog-title {
  font-size: 18px;
  line-height: 1;
}
