Por que inserir o transition no seletor .enviar e não no seletor .enviar:hover?
.enviar {
width: 40%;
padding: 15px 0;
background: orange;
color: white;
font-weight: bold;
font-size: 18px;
border: none;
border-radius: 5px;
transition: 1s background;
}
.enviar:hover {
background: darkorange;
transition: 1s background;
}
Testei das duas formas e funcionaram fazendo a mesma alteração visual no botão.