* {
  margin: 0 auto;
  padding: 0;
}

/*
azul: #394a5e  (58,74,94)
verde: #52695a (82,106,90)
gris: #716c68 (112,108,104)
rojo error: #900020 (144,0,32)
*/

/* css formulario contacto */

#formulario {

  width: 400px;
  border-radius: 2em;
  -webkit-border-radius: 2em;
  -moz-border-radius: 2em;
  border: 2px dashed #394a5e;
  margin: 4em auto 10em auto;
  text-align: left;
  background-color: #eff0ef;
  padding: 2em;
  overflow: auto;
}


form {
  display: block;
  font-size: 1em;
  background-color: transparent;
}

label {
  display: block;
  font-size: 0.9em;
  font-weight: 400;
  color: #716c68;
  margin-bottom: 0.1em;
}

.text input {
  width: 100%;
}

input {
  margin-bottom: 2em;
  font-family: "Roboto Slab", sans-serif;
  font-weight: 300;
  color: #394a5e;
  font-size: 1em;
  line-height: 1.5em;
  padding-top: 0.4em;
  border: none;
  border-bottom: 2px dashed #716c68;
  background-color: transparent;
}

input:focus,
textarea:focus {
  outline: none;
  border-bottom: 2px dashed #394a5e;
}

select:focus {
  outline: none;
}


.soy label {

  display: inline-block;
  position: relative;
  margin-right: 1.2em;
  font-family: "Roboto Slab", sans-serif;
  color: #394a5e;
  font-size: 1em;
  font-weight: 300;
}

.soy {
  /* margin-left: 2em;
   margin-bottom: 2em; */
  margin: 1em 0 2em 2em;
  line-height: em;
}

.soy input[type="radio"] {
  position: absolute;
  opacity: 0;
}


.soy input[type="radio"] + .radio-label:before {
  content: '';
  background: #f4f4f4;
  border-radius: 100%;
  border: 1px solid #716c68;
  display: inline-block;
  position: relative;

  width: 1em;
  height: 1em;

  top: 0.1em;
  margin-right: 0.4em;
  vertical-align: top;
  cursor: pointer;
  text-align: center;
  -webkit-transition: all 250ms ease;
  transition: all 250ms ease;
}

.soy input[type="radio"]:checked + .radio-label:before {
  background-color: #394a5e;
  border: 1px solid #394a5e;
  -webkit-box-shadow: inset 0 0 0 4px #f4f4f4;
  box-shadow: inset 0 0 0 4px #f4f4f4;
}

.soy input[type="radio"]:focus + .radio-label:before {
  outline: none;
  border-color: #394a5e;
}

.soy input[type="radio"]:disabled + .radio-label:before {
  -webkit-box-shadow: inset 0 0 0 4px #f4f4f4;
  box-shadow: inset 0 0 0 4px #f4f4f4;
  border-color: #b4b4b4;
  background: #b4b4b4;
}

.soy input[type="radio"] + .radio-label:empty:before {
  margin-right: 0;

}


/* select edad */

select {

  font-family: "Roboto Slab", sans-serif;
  color: #394a5e;
  font-size: 1em;
  font-weight: 300;
}

.edad,
.asunto {

  position: relative;
  border-bottom: 2px dashed #716c68;
  width: 23em;
  overflow: hidden;
  background-color: transparent;
  margin-bottom: 2em;

}

.edad:before,
.asunto:before {
  content: '';
  position: absolute;
  right: 0.5em;
  top: 1.2em;
  width: 0;
  height: 0;
  border-style: solid;
  border-width: 7px 5px 0 5px;
  border-color: #716c68 transparent transparent transparent;
  z-index: 5;
  pointer-events: none;
}

.edad select,
.asunto select {
  padding: 6px 8px;
  width: 120%;
  border: none;
  box-shadow: none;
  background-color: transparent;
  background-image: none;
  appearance: none;
  margin-top: 0.6em
}

.mensaje textarea:focus {
  outline: none;
  border-bottom: 2px dashed #394a5e;
}

.mensaje textarea {
  width: 100%;
  margin-top: 0.6em;
  margin-bottom: 2em;

  resize: vertical;
  overflow-y: auto;
  border: none;
  border-bottom: 2px dashed #716c68;
  background-color: #eee;

  font-family: "Roboto Slab", sans-serif;
  color: #394a5e;
  font-size: 1em;
  font-weight: 300;

}


/* css para LOPD - checkbox */

/* clase lopd */

.lopd {
  display: block;
  position: relative;
  padding-left: 2em;
  margin-bottom: 12px;
  cursor: pointer;
  font-size: 0.8em;
  -webkit-user-select: none;
  -moz-user-select: none;
  -ms-user-select: none;
  user-select: none;
  color: #394a5e;
  font-weight: 300;
}

.lopd a {
  text-decoration: none;
  color: #716c68;
}

/* Ocultar la casilla de verificación predeterminada del navegador */

.lopd input {
  position: absolute;
  opacity: 0;
}

/* casilla de verificación nueva */

.checkmark {
  position: absolute;
  top: 0;
  left: 0;
  height: 1.2em;
  width: 1.2em;
  background-color: #eee;
}

/* fondo de color gris al pasar el ratón sobre la casilla de verificación */

.lopd:hover input ~ .checkmark {
  background-color: #ccc;
}

/* Cambia el fondo de color de la casilla, cuando está verificada */

.lopd input:checked ~ .checkmark {
  background-color: #394a5e;
}

/* Marca de verificación, cuando está oculta */

.checkmark:after {
  content: "";
  position: absolute;
  display: none;
}

/* Marca de verificación, cuando se muestra */

.lopd input:checked ~ .checkmark:after {
  display: block;
}

/* Estilo de la marca de verificación */

.lopd .checkmark:after {
  left: 4px;
  top: 0px;
  width: 5px;
  height: 10px;
  border: solid white;
  border-width: 0 3px 3px 0;
  -webkit-transform: rotate(45deg);
  -ms-transform: rotate(45deg);
  transform: rotate(45deg);
}

/* Botones enviar formulario */

.botones {
  padding: 0 1em;
  border: none;
  margin-bottom: 2em;

}

.botones #limpiar {
  font-size: ;
  border: none;
  padding-top: 2.4em;
}

.botones #limpiar:hover {
  padding-top: 2.4em;
  font-weight: 500;
  color: #c63e3e;
  border-bottom: 2px dashed #c63e3e;
}

.botones #enviar {
  float: right;
  border: none;
  font-size: 1.2em;
  font-weight: 500;
  color: #52695a;
  background-color: lightgray;
  padding: 1.6em 0.5em;
  border-radius: 3.2em;
  border: 2px dashed #52695a;
  margin-bottom: 2em;
}

.botones #enviar:hover {

  color: white;
  background-color: #52695a;
  padding: 1.6em 0.5em;
  border-radius: 3.2em;
  border: 2px dashed white;
  margin-bottom: 2em;
}

/* === Estilos de Validacion === */

.text input:required:valid, 
.mensaje textarea:required:valid { 
outline: none;
  border-bottom: 2px dashed #52695a;
}

.text input:focus:invalid, 
.mensaje textarea:focus:invalid {
outline: none;
  border-bottom: 2px dashed #900020; }