body {
  margin: 0;
  padding: 0;
  background: #313339;
  font-family: "Source Sans Pro", sans-serif;
  overflow-x: hidden;
}

* {
  box-sizing: border-box;
}

.row {
  display: flex;
  flex-direction: row;
}

.illustration svg {
  fill: #313339 !important;
}

.container {
  width: 100%;
  height: 100vh;
}

h1 {
  font-weight: 600;
  color: #ffffff;
  font-size: 30px;
}

button {
  color: #ffffff;
  background: #3f51b5;
  border: none;
  border-radius: 3px;

  font-weight: 600;
  padding: 9px 20px;
  font-size: 13px;
  cursor: pointer;
  font-family: "Source Sans Pro", sans-serif;
}

button svg {
  margin-right: 7px;
}

input {
  font-family: "Source Sans Pro", sans-serif;

  background: #2b2c31;
  border: 1px solid #222226;
  border-radius: 5px;
  padding: 9px 10px;
  width: 250px;
  margin-right: 5px;
  color: #bdc3c7;
  margin-bottom: 5px;
}

input.error {
  border: 1px solid #ee5253;
}

input.success {
  border: 1px solid #1dd1a1;
}

#msg.error {
  color: #ee5253;
}

#msg {
  font-size: 11px;
  margin-top: 5px;
}

input,
button {
  box-shadow: 0px 3px 6px rgba(0, 0, 0, 0.16);
}

p {
  color: #bdc3c7;
  font-size: 15px;
}

.container .text {
  width: 40%;
  z-index: 1;
}

.text .text-container {
  margin-top: 240px;
  padding: 0px 80px;
}

.container .illustration {
  width: 60%;
  position: relative;

  background-image: url("../img/blocks.svg"),
    linear-gradient(#3d33a7 0%, #3c1775 100%);
  background-position: right;
  background-repeat: no-repeat;
}

a {
  color: #6172d5;
  text-decoration: none;
}

.container .wave {
  position: absolute;
  height: 100vh;
  left: -1px;
  top: 0;
  bottom: -1px;
}

button:disabled {
  cursor: not-allowed;
}

.spinner {
  stroke: #ffffff;
  -webkit-animation: rotation 1.35s linear infinite;
  animation: rotation 1.35s linear infinite;
}

@-webkit-keyframes rotation {
  0% {
    -webkit-transform: rotate(0deg);
    transform: rotate(0deg);
  }

  100% {
    -webkit-transform: rotate(270deg);
    transform: rotate(270deg);
  }
}

@keyframes rotation {
  0% {
    -webkit-transform: rotate(0deg);
    transform: rotate(0deg);
  }

  100% {
    -webkit-transform: rotate(270deg);
    transform: rotate(270deg);
  }
}

.circle {
  stroke-dasharray: 180;
  stroke-dashoffset: 0;
  -webkit-transform-origin: center;
  -ms-transform-origin: center;
  transform-origin: center;
  -webkit-animation: turn 1.35s ease-in-out infinite;
  animation: turn 1.35s ease-in-out infinite;
}

@-webkit-keyframes turn {
  0% {
    stroke-dashoffset: 180;
  }

  50% {
    stroke-dashoffset: 45;
    -webkit-transform: rotate(135deg);
    transform: rotate(135deg);
  }

  100% {
    stroke-dashoffset: 180;
    -webkit-transform: rotate(450deg);
    transform: rotate(450deg);
  }
}

.mobile-wave {
  display: none !important;
}

@keyframes turn {
  0% {
    stroke-dashoffset: 180;
  }

  50% {
    stroke-dashoffset: 45;
    -webkit-transform: rotate(135deg);
    transform: rotate(135deg);
  }

  100% {
    stroke-dashoffset: 180;
    -webkit-transform: rotate(450deg);
    transform: rotate(450deg);
  }
}

@media only screen and (max-width: 1000px) {
  .text-container {
    margin-top: 150px;
    padding-right: 0px !important;
    padding-left: 40px !important;
  }
}

@media only screen and (max-width: 1560px) {
  .illustration {
    width: 50% !important;
  }

  .text {
    width: 50% !important;
  }
}

@media only screen and (max-width: 1280px) {
  .text .text-container {
    margin-top: 200px;
  }
}

@media only screen and (max-width: 1230px) {
  .illustration {
    width: 35% !important;
  }

  .text {
    width: 65% !important;
  }
}

@media only screen and (max-width: 780px) {
  button,
  input,
  form {
    width: 100% !important;
  }

  h1 {
    font-size: 27px;
  }
}

@media only screen and (max-width: 600px) {
  .container {
    flex-direction: column !important;
  }

  .container.illustration {
    background-repeat: no-repeat !important;
    background-size: 200% 100% !important;
  }

  .text-container {
    margin-top: 120px !important;
    width: 100%;
    /* text-align: center; */
    padding: 0 80px !important;
  }

  .illustration {
    width: 100% !important;
    height: 100% !important;
  }

  .text {
    width: 100% !important;
  }

  .wave {
    display: none !important;
  }

  .mobile-wave {
    display: block !important;
    position: relative;
    width: 100% !important;
    top: -2px;
  }

  .illustration {
    background-size: 250%;

    background-position-x: normal;
  }
}

@media only screen and (max-width: 500px) {
  .text-container {
    padding: 0 40px !important;
    margin-top: 75px !important;
  }
  .container.illustration {
    bottom: 0;
    background-position: bottom !important;
  }

  .container .illustration {
    background-position: right bottom !important;
  }
}

@media only screen and (max-width: 400px) {
  .text-container {
    padding: 0 30px !important;
  }
}

@media only screen and (max-width: 300px) {
  .text-container {
    padding: 0 30px !important;
  }
}
