#contact {
  background-image: url("../img/steelframe.png");
  background-position: center;
  background-size: cover;
  padding: 40px 10%;
  box-sizing: border-box;
}

#contact .justline {
  background: #fff;
}

#contact > div {
  height: auto;
  overflow: hidden;
  border-radius: 4px;
  display: flex;
}

#contact form {
  background: #fff;
  width: 60%;
  box-sizing: border-box;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-direction: column;
}

.h1 {
  width: 90%;
}

#contact form .h1 h1 {
  margin-top: 0;
}

#contact .input-container {
  position: relative;
  width: 80%;
  margin: 0px auto;
  padding-top: 26px;
}

#contact .input-container p {
  margin: 4px 0;
  color: #bb0000;
}

#contact .textarea p {
  color: #888 !important;
}

#contact form label {
  font-family: "Montserrat", sans-serif;
  font-size: 0.9em;
  position: absolute;
  top: 34px;
  left: 6px;
  color: grey;
  transition: 0.5s;
}

.input-container > img {
  position: absolute;
  top: 42px;
  transform: translateY(-50%);
  right: 6px;
  opacity: 0.8;
  display: none;
}
/* NOTE: estilos especiales del textarea */
.textarea > img {
  top: 42px !important;
  bottom: auto !important;
}

/* NOTE: con focus o completado, el label se mantiene arriba */
.input-container input:focus ~ label,
.input-container input:valid ~ label {
  color: #777 !important;
  top: 4px !important;
}
/* NOTE: mensajes de bien/mal estilizados */
.input-container > .error {
  filter: invert(13%) sepia(88%) saturate(4050%) hue-rotate(358deg)
    brightness(86%) contrast(122%);
}
.wrong ~ .error {
  display: block;
}
.input-container > .check {
  filter: invert(42%) sepia(50%) saturate(6564%) hue-rotate(102deg)
    brightness(90%) contrast(73%);
}
.right ~ .check {
  display: block;
}
/* NOTE: borde inferior bien/mal estilizado */
form .input-container > .right {
  border: 1px solid #228c22 !important;
}
form .input-container > .wrong {
  border: 1px solid #bb0000 !important;
}

#contact form input,
#contact form textarea {
  padding: 6px;
  border-radius: 4px;
  margin: 0;
  border: none;
  background: #f8f8ff;
  border: 1px solid #bbb;
  font-family: "Montserrat", sans-serif;
  font-size: 0.9em;
  color: #000;
  width: 100%;
  box-sizing: border-box;
}

#contact form textarea {
  resize: none;
}

.input-container input:focus {
  outline-color: #2471a3;
}
.input-container input:focus ~ label {
  color: #2471a3 !important;
}

#contact form .button {
  width: 300px;
  min-width: 50%;
  margin: 20px auto 0px;
}

.button {
  line-height: 40px;
  background: #b00000;
  color: #fff;
  border-radius: 4px;
  font-family: "Montserrat", sans-serif;
  font-size: 0.9em;
  box-sizing: border-box;
  margin: 20px 0;
  padding: 0;
  max-width: 100%;
  text-align: center;
  text-decoration: none;
  cursor: pointer;
  opacity: 0.9;
}

.button:hover {
  opacity: 1;
}

#contact-info {
  width: 40%;
  background: #800000;
  margin: 0;
  box-sizing: border-box;
  overflow: hidden;
  padding: 0px;
  display: flex;
  flex-direction: column;
  user-select: text;
  -webkit-user-select: text;
  -moz-user-select: text;
}

#contact-info > div {
  padding: 3vw;
  width: 100%;
  box-sizing: border-box;
  display: flex;
  flex-direction: column;
}

#contact-info .h1 {
  margin-bottom: 0px;
}

#contact-info h2,
#contact-info p {
  color: white;
}

#contact-info .h1 > p {
  font-family: "Montserrat", sans-serif;
  font-size: 0.9em;
  color: #000;
  width: 90%;
  margin: 6px 0;
  margin-bottom: 14px;
  color: #fff;
}

#contact-info span {
  display: flex;
  align-items: center;
  justify-content: flex-start;
  margin: 8px 0;
}

#contact-info span img {
  filter: invert();
  width: 24px;
  margin-right: 8px;
}

#contact-info span p {
  margin: 0;
}

#contact-info #wppmessage {
  background: #65bc54;
  color: #fff;
  text-decoration: none;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 80%;
  line-height: 40px;
  border-radius: 4px;
  margin: 12px 0;
  opacity: 0.9;
}

#contact-info #wppmessage:hover {
  opacity: 1;
}

#contact-info #wppmessage img {
  margin: 10px;
  margin-left: 0;
}

#contact-info .social {
  padding: 0;
}

#contact-info .social img {
  height: 30px;
  margin: 0;
}

iframe {
  width: 100%;
  border: 0;
  background: lightgrey;
}

@media only screen and (max-width: 1024px) {
  #contact-form .input-container {
    width: 100%;
  }
}

@media only screen and (max-width: 768px) {
  #contact {
    padding: 0;
    background: none;
  }

  #contact > div {
    flex-direction: column;
    width: 100%;
    border-radius: 0;
  }

  #contact form {
    width: 100%;
  }

  #contact form .h1 {
    display: none;
  }

  #contact-info {
    width: 100%;
    padding: 3vw 10%;
    position: relative;
    overflow: visible;
    padding-bottom: 30px;
    margin-bottom: 20px;
  }
  iframe {
    display: none;
  }
}

@media only screen and (max-width: 425px) {
}
