/* Variables */
/* -------------- */
:root {
  --primary-blue: #02194d;
  --primary-green: #8eeb08;

  --neutral-white: #ffffff;
  --neutral-gray-100: #f6f7f9;
  --neutral-gray-200: #e5e7ec;
  --neutral-gray-300: #d9dce4;

  --global-margin: 1rem;
  --global-form-height: 2.5rem;
}

/* Typography */
/* --------------- */

.text--12 {
  font-size: 0.75rem;
}

.text--14 {
  font-size: 0.875rem;
}

/* Links */
/* ----------- */

.link--underline {
  text-decoration: underline;

  &:hover {
    text-decoration: none;
  }
}

/* Components */
/* ---------------- */

.stepper {
  display: flex;
  align-items: center;
  padding: 0;
  margin: 0 0 2rem 0;
  list-style: none;
  justify-content: space-between;
  gap: var(--global-margin);
}

.stepper__item {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.5rem;
  color: var(--primary-blue);
}

.stepper__num {
  width: 2.5rem;
  height: 2.5rem;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 1rem;
  font-weight: 700;
  border-radius: 50%;
  border: 0.125rem solid var(--neutral-gray-200);
  color: var(--primary-blue);
  background-color: var(--neutral-gray-100);
}

.stepper__item--active {
  color: var(--primary-green);

  .stepper__num {
    background-color: var(--neutral-white);
    color: var(--primary-green);
  }
}

/* Lists */

.list {
  position: relative;
  list-style: none;
}

.list--requirements {
  display: flex;
  flex-direction: column;
  margin: 0;
  gap: 0.25rem;

  li {
    display: flex;
    align-items: center;
    gap: 0.5rem;
  }

  .icon {
    width: 1.25rem;
    height: 1.25rem;
  }

  .is--valid .icon {
    color: var(--primary-green);
  }
}

/* Forms */
/* ----------- */

.form__item--code {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  justify-content: center;

  .input {
    width: var(--global-form-height);
    text-align: center;
  }
}

.form__item {
  position: relative;
}

.form__group {
  position: relative;
  display: flex;
  flex-direction: column;

  label {
    margin-bottom: 0.5rem;
  }

  .form-error {
    margin-top: 0.25rem;
    margin-bottom: 0;
  }
}

.form__group--checkbox {
  flex-direction: row;
  gap: 0.75rem;
  margin-top: 0.625rem;

  .checkbox {
    top: 0;
  }
}

.input {
  position: relative;
  appearance: none;
  -webkit-appearance: none;
  height: var(--global-form-height);
  display: block;
  box-sizing: border-box;
  width: 100%;
  margin: 0;
  padding: .5rem;
  border: .125rem solid var(--neutral-gray-300);
  border-radius: .25rem;
  background-color: var(--neutral-white);
  box-shadow: none;
  font-family: inherit;
  font-size: 1rem;
  font-weight: 400;
  line-height: 1.5;
  color: var(--primary-blue);
  transition: box-shadow .5s,border-color .25s ease-in-out;
  outline: none;

  &:hover,
  &:focus,
  &:active {
    border-color: var(--primary-blue);
  }
}