.contato-layout {
  display: grid;
  grid-template-columns: 1fr 1.4fr;
  gap: 40px;
  align-items: start;
}

.info-contato {
  background: linear-gradient(
    160deg,
    var(--cor-principal),
    var(--cor-secundaria)
  );
  color: var(--branco);
  border-radius: var(--raio);
  padding: 36px;
}

.info-contato h2 {
  color: var(--branco);
  margin-bottom: 16px;
}

.info-contato > p {
  margin-bottom: 26px;
}

.info-item {
  display: flex;
  align-items: center;
  gap: 14px;
  margin-bottom: 20px;
}

.info-item i {
  font-size: 1.2rem;
  background-color: rgba(255, 255, 255, 0.25);
  width: 42px;
  height: 42px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
}

.formulario {
  background-color: var(--branco);
  border-radius: var(--raio);
  padding: 36px;
  box-shadow: var(--sombra-suave);
}

.campo {
  margin-bottom: 20px;
}

.campo label {
  display: block;
  font-weight: 600;
  margin-bottom: 8px;
  font-size: 0.95rem;
}

.campo input,
.campo textarea {
  width: 100%;
  padding: 12px 16px;
  border: 2px solid var(--cinza-claro);
  border-radius: var(--raio-pequeno);
  font-family: var(--fonte-texto);
  font-size: 0.95rem;
  outline: none;
  transition: border-color var(--transicao);
}

.campo input:focus,
.campo textarea:focus {
  border-color: var(--cor-principal);
}

.campo textarea {
  resize: vertical;
  min-height: 120px;
}

.campo .mensagem-erro {
  color: var(--cor-erro);
  font-size: 0.82rem;
  margin-top: 6px;
  display: none;
}

.campo.invalido input,
.campo.invalido textarea {
  border-color: var(--cor-erro);
}

.campo.invalido .mensagem-erro {
  display: block;
}

.linha-dupla {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 20px;
}
