* {
  margin: 0;
  padding: 0;
  box-sizing: border-box;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

:root {
  --color-base-white: #ffffff;
  --color-base-gray-100: #e1e1e6;
  --color-base-gray-200: #8c8c99;
  --color-base-gray-300: #7c7c8a;
  --color-base-gray-400: #323238;
  --color-feedback-success-color: #1d8841;
  --color-produto-purple-light: #8257e5;
  --color-produto-purple-mid: #633bbc;

  --color-teal-green: #04d361;

  font-size: 62.5%;
}

button {
  cursor: pointer;
}

html,
body,
input,
textarea,
button {
  font-size: 1.6rem;
  font-family: "IBM Plex Sans", sans-serif;
}

body {
  height: 100vh;
  display: grid;
  place-content: center;
  background: linear-gradient(#fff, #ececec);
}

form {
  padding: 3.2rem;
  border: 1px solid var(--color-base-gray-100);
  border-radius: 0.6rem;
  background-color: white;
  overflow: hidden;
  z-index: 10;
  position: relative;
  box-shadow: 0px 1px 1px rgba(0, 0, 0, 0.2);
}

/* step progress classes */

.step-progress {
  display: flex;
  align-items: center;
  gap: 4rem;

  border-bottom: 1px solid var(--color-base-gray-100);
  padding: 3.2rem;

  counter-reset: step;
}

.step-progress strong {
  display: flex;
  align-items: center;
  gap: 0.8rem;

  color: var(--color-base-gray-200);
}

.step-progress strong.active {
  color: var(--color-base-gray-400);
}

.step-progress strong::before {
  counter-increment: step;
  content: counter(step);
  font-family: "Titillium Web", sans-serif;
  font-weight: bold;

  background-color: var(--color-base-gray-100);
  width: 2.8rem;
  height: 2.8rem;
  border-radius: 50%;

  display: flex;
  align-items: center;
  justify-content: center;

  color: var(--color-base-gray-200);

  transition: background-color 400ms ease-in-out;
}

.step-progress .active::before {
  background-color: var(--color-produto-purple-mid);
  color: var(--color-base-white);

  /* counter */
}

.step-progress .done::before {
  background-color: var(--color-feedback-success-color);
  content: "✔";
}

/* content classes */

.content {
  margin-top: 3.2rem;

  display: grid;
  gap: 1.6rem;
}

/* button classes */

.button-wrapper {
  margin-top: 3.2rem;
  display: flex;
  justify-content: space-between;
}

.btn {
  display: flex;
  justify-content: center;
  align-items: center;
  padding: 1.6rem 3.2rem;
  border: 0;
  border-radius: 0.6rem;

  font-weight: 700;

  text-transform: uppercase;

  min-width: 15.8rem;
}

/* inputs */

label {
  font-weight: 700;
  color: var(--color-base-gray-400);
}

input,
textarea {
  margin-top: 0.4rem;

  width: 100%;

  padding: 1.6rem;
  background-color: var(--color-base-white);

  border: 1px solid var(--color-base-gray-100);
  border-radius: 0.2rem;
}

textarea {
  resize: none;
}

input:hover,
textarea:hover {
  border-color: var(--color-produto-purple-mid);
}
input:focus,
textarea:focus {
  outline: 2px solid var(--color-produto-purple-light);
}

input::placeholder,
textarea::placeholder {
  color: var(--color-base-gray-200);
  font-family: "IBM Plex Sans", sans-serif;
}

label:has(+ input[required])::after {
  content: " *";
  color: var(--color-produto-purple-light);
}

/* utility classes */

.justify-end {
  justify-content: flex-end;
}

.primary {
  background-color: var(--color-produto-purple-mid);
  color: var(--color-base-white);
}

.primary:hover {
  background-color: var(--color-produto-purple-light);
}

.secondary {
  color: var(--color-produto-purple-mid);
  background-color: var(--color-base-white);
  border: 1px solid var(--color-produto-purple-mid);
}

.form-step {
  display: block;
}

.sended-text {
  color: var(--color-base-gray-400);
}
.success-message {
  color: var(--color-produto-purple-mid);
}

.two-cols {
  display: flex;
  gap: 3.2rem;
  max-width: 54rem;
  margin: 0 auto;
  margin-bottom: 2rem;
}

.sended-text {
  font-size: 3.2rem;
  max-width: 30rem;
}

.sended-image {
  width: 16rem;
}

@keyframes appear {
  /* backwards make this 0% init with this animations */
  0% {
    scale: 0.7;
    opacity: 0;
  }
}

.form-step.active {
  animation: appear 200ms 100ms ease-in-out backwards;
}

@keyframes slideout {
  100% {
    transform: translateX(50%);
    opacity: 0;
  }
}

.form-step {
  animation: slideout 200ms ease-out forwards;
}

.hide {
  display: none;
}

/* other styles */

.app-details {
  position: absolute;
  bottom: 0;
  left: 0;
  padding: 0.8rem;
  color: #222;
  font-weight: bold;
  z-index: 1;
}

.app-details .symbol {
  color: var(--color-teal-green);
}

.app-details .emphasis {
  color: var(--color-produto-purple-mid);
}
