/* Contacto. Monta sobre inicio.css (barra, menú, pie, botones, .wrap)
   y soluciones.css (.shero). */

.contacto{padding-block:clamp(28px,4vh,44px) clamp(48px,7vh,88px)}

.contacto__in{
  display:grid;
  grid-template-columns:minmax(0,58fr) minmax(0,42fr);
  gap:clamp(18px,2.4vw,32px);
  align-items:start;
}

.panel{
  padding:clamp(22px,3vw,40px);
  background:var(--g-050);
  border:1px solid var(--g-200);
}
.panel h2{font-size:var(--fs-xl);letter-spacing:-.02em}
.panel > p{margin-top:var(--sp-3);font-size:var(--fs-sm);color:var(--g-700);max-width:52ch}

/* ---------- Formulario ---------- */

.form{display:grid;gap:var(--sp-5);margin-top:clamp(20px,3vh,30px)}

.form__fila{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:var(--sp-4) var(--sp-5);
}
.form__fila--sola{grid-template-columns:1fr}

.campo{display:grid;gap:var(--sp-2);min-width:0}

.campo label{
  font-size:var(--fs-xs);
  font-weight:600;
  color:var(--g-700);
}
.campo label i{font-style:normal;color:var(--g-500);font-weight:500}
.campo label b{color:var(--blue);font-weight:700}

.campo input,
.campo select,
.campo textarea{
  width:100%;
  min-height:var(--ctl-h);
  padding:var(--sp-3) var(--sp-4);
  background:var(--white);
  border:1px solid var(--g-300);
  border-radius:3px;
  font-family:var(--font-body);
  font-size:var(--fs-sm);
  color:var(--black);
  transition:border-color var(--tr-fast),box-shadow var(--tr-fast);
}
.campo textarea{min-height:110px;resize:vertical;line-height:1.6}
.campo input::placeholder,
.campo textarea::placeholder{color:var(--g-500)}

.campo select{
  appearance:none;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='none' stroke='%237B7B7B' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");
  background-repeat:no-repeat;
  background-position:right var(--sp-4) center;
  padding-right:var(--sp-8);
}

.campo input:focus,
.campo select:focus,
.campo textarea:focus{
  outline:none;
  border-color:var(--blue);
  box-shadow:0 0 0 3px rgba(17,119,232,.14);
}

/* estados de validación */

.campo__error{
  font-size:var(--fs-xs);
  color:#C0392B;
  display:none;
}
.campo.is-mal .campo__error{display:block}
.campo.is-mal input,
.campo.is-mal select,
.campo.is-mal textarea{border-color:#C0392B}

.campo.is-bien input,
.campo.is-bien select,
.campo.is-bien textarea{
  border-color:#1C7A4B;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='15' height='15' viewBox='0 0 24 24' fill='none' stroke='%231C7A4B' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m5 13 4 4L19 7'/%3E%3C/svg%3E");
  background-repeat:no-repeat;
  background-position:right var(--sp-4) center;
  padding-right:var(--sp-8);
}
.campo.is-bien select{background-image:none;padding-right:var(--sp-8)}

/* ---------- Adjuntar ---------- */

.adjuntar{
  display:grid;
  grid-template-columns:auto minmax(0,1fr);
  align-items:start;
  gap:var(--sp-3);
  padding:var(--sp-4);
  background:var(--white);
  border:1px dashed var(--g-300);
  border-radius:3px;
  cursor:pointer;
  transition:border-color var(--tr-fast);
}
.adjuntar:hover{border-color:var(--g-500)}
.adjuntar:focus-within{border-color:var(--blue)}
.adjuntar svg{color:var(--g-500);margin-top:2px}
.adjuntar input[type=file]{position:absolute;width:1px;height:1px;opacity:0;pointer-events:none}
.adjuntar b{font-size:var(--fs-sm);font-weight:600}
.adjuntar b i{font-style:normal;color:var(--g-500);font-weight:500}
.adjuntar span{display:block;margin-top:2px;font-size:var(--fs-xs);color:var(--g-500);line-height:1.5}

/* ---------- Enviar ---------- */

.form__pie{
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:var(--sp-4);
}
.form__pie .btn-solid{flex:none}
.form__nota{font-size:var(--fs-xs);color:var(--g-500);max-width:40ch}

/* ---------- Estados de respuesta ---------- */

.estado{
  display:grid;
  justify-items:center;
  text-align:center;
  gap:var(--sp-4);
  padding:clamp(28px,4vw,48px) clamp(22px,3vw,40px);
  border:1px solid var(--g-200);
}
.estado[hidden]{display:none}

.estado--bien{background:#F1F8F3;border-color:#CDE6D6}
.estado--mal{background:#FDF2F1;border-color:#F3D5D1}

.estado__icono{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:46px;
  height:46px;
  border-radius:50%;
  color:var(--white);
}
.estado--bien .estado__icono{background:#1C7A4B}
.estado--mal .estado__icono{background:#C0392B}

.estado h2{font-size:clamp(22px,2.6vw,30px);letter-spacing:-.025em}
.estado p{font-size:var(--fs-sm);color:var(--g-700);max-width:46ch}
.estado__fuerte{font-size:var(--fs-md);color:var(--black);max-width:44ch}

.estado hr{
  width:44px;
  height:1px;
  margin:var(--sp-2) 0;
  border:0;
  background:var(--g-300);
}

.estado .btn-line{background:var(--white);margin-top:var(--sp-2)}

/* ---------- Qué enviar ---------- */

.aparte__lista{display:grid;margin-top:clamp(18px,2.6vh,26px)}

.aparte__i{
  display:grid;
  grid-template-columns:auto minmax(0,1fr);
  align-items:center;
  gap:var(--sp-4);
  padding-block:var(--sp-4);
  border-bottom:1px solid var(--g-200);
  font-size:var(--fs-sm);
  color:var(--g-700);
  line-height:1.45;
}
.aparte__i:first-child{border-top:1px solid var(--g-200)}
.aparte__i svg{color:var(--black);opacity:.7}

.aparte__cierre{
  margin-top:clamp(20px,3vh,28px);
  padding-top:var(--sp-5);
  border-top:1px solid var(--g-200);
  font-size:11px;
  font-weight:600;
  letter-spacing:.16em;
  text-transform:uppercase;
  color:var(--g-500);
  line-height:1.8;
}

/* ---------- Responsive ---------- */

@media (max-width:1024px){
  .contacto__in{grid-template-columns:1fr}
}

@media (max-width:640px){
  .form__fila{grid-template-columns:1fr}
  .form__pie{flex-direction:column;align-items:stretch}
  .form__pie .btn-solid{width:100%}
  .form__nota{max-width:none;text-align:center}

  /* en obra, con una mano: el dedo necesita el alto completo */
  .campo input,.campo select,.campo textarea{min-height:48px}
}

.shero .vert{color:rgba(255,255,255,.92)}
