body {
  box-sizing: border-box;
  font-family: "Roboto", sans-serif;
  font-size: 15px;
  color: #545454;
}

a {
  text-decoration: none;
  color: #007BFF;
}

.container {
  width: 100%;
  max-width: 570px;
  margin: auto;
  padding-top: 55px;
  min-height: 100vh;
}

form {
  padding: 35px 35px 16px;
  box-shadow: 3px -3px 15px rgb(204, 202, 202);
  margin-bottom: 25px;
}

form:last-of-type {
  padding-bottom: 104px
}

fieldset {
  border: none;
  padding: 0 0 20px;
  display: grid;
  grid-template-columns: repeat(2, 2fr);
  gap: 12px;

  legend {
    font-size: 24px;
    font-weight: 500;
  }
}

label:not(:has([type="radio"], [type="file"])) {
  display: grid;
}

.full {
  grid-column: span 2;
  padding-top: 20px;
}

.half {
  padding-top: 20px;
}

select,
input:not([type="radio"]) {
  border: 1px solid #E4E4E4;
  font-size: inherit;
  color: inherit;
  padding: 10px 8px;
  outline: none;
  margin-top: 7px;
  border-radius: 7px;
  appearance: none;
  cursor: pointer;

  &:focus {
    border: 2px solid #007BFF;
    padding: 9px 7px;
  }
}

label:has([type="email"])>input+span {
  color: #969696;
  font-size: 13px;
  padding-top: 7px;
  line-height: 18px;
}

div:has([type="radio"])>label:last-of-type {
  padding-left: 20px;
}

input[type="radio"]+span {
  position: relative;
  padding-left: 8px;

  &::before {
    content: "";
    position: absolute;
    left: -23px;
    box-sizing: border-box;
    display: inline-block;
    width: 20px;
    height: 20px;
    border-radius: 50%;
    border: 1px solid #E4E4E4;
    cursor: pointer;
  }
}

input[type="radio"] {
  opacity: 0;

  &:checked+span::before {
    border: 5px solid #007BFF;
  }
}

label:has(select)>span {
  position: relative;

  &::after {
    content: url(images/double-arrow.svg);
    position: absolute;
    bottom: -40px;
    right: 10px;
    pointer-events: none;
  }
}

.btn {
  width: 100%;
  background-color: #007BFF;
  color: #fff;
  font-size: 15px;
  font-weight: 500;
  padding-block: 10px;
  border-radius: 7px;
  border: none;
  transition: .3s;
  cursor: pointer;

  &:hover {
    opacity: 0.8;
  }
}

.btn-small {
  width: 30%;
}

p {
  margin: 0;
  font-size: 13px;
  color: #969696;
  text-align: center;
  padding-top: 22px;
  line-height: 18px;
  position: relative;

  &::after {
    content: "";
    position: absolute;
    display: block;
    width: 100%;
    height: 1px;
    background-color: #E4E4E4;
    bottom: -20px;
  }
}

#login {
  padding-top: 40px;
  display: flex;
  justify-content: center;
  gap: 20px;
}

#foto {
  display: grid;
  grid-template-columns: 1fr 2fr 3fr;
  gap: 10px;

  >img {
    grid-row: span 2;
    align-self: center;
  }

  label {
    position: relative;
    align-self: self-end;
    justify-self: right;
    margin-top: 7px;

    [type="file"] {
      display: none;
    }

    [type="text"] {
      width: 138px;
      padding: 5px 4px;
      pointer-events: none;
    }

    &::after {
      content: url(images/foto-icon.svg);
      position: absolute;
      top: 14px;
      right: 9px;
      cursor: pointer;
    }

    &::before {
      content: "Up to 1 MB (300x300 px)";
      position: absolute;
      color: #969696;
      font-size: 13px;
      line-height: 18px;
      bottom: -25px;
      left: 2px;
      cursor: pointer;

    }
  }

  button {
    justify-self: left;
    align-self: end;
    border: 1px solid #E4E4E4;
    background-color: #fff;
    border-radius: 7px;
    padding: 5px 5px;
    cursor: pointer;

    img {
      vertical-align: middle;
    }
  }
}