.hero-contacto {
      min-height: 460px;
      background: linear-gradient(rgba(8,20,32,.88), rgba(8,20,32,.88)),
                  url('https://tecnomedconsulting.com/assets/7DFLASH-Navigation-System-2.jpg') center/cover no-repeat;
      text-align: center; display: flex; align-items: center;
    }
    .hero-contacto h1 { font-family: var(--font-h); font-size: 48px; font-weight: 800; color: var(--teal-dark); margin-bottom: 12px; }
    .hero-contacto p  { color: rgba(255,255,255,.78); font-size: 16px; }

    /* Layout */
    .contact-layout { display: grid; grid-template-columns: 1fr 1fr; gap: 48px; align-items: start; padding: 72px 0; }

    /* Form card */
    .form-card {
      background: var(--white); border-radius: 16px; padding: 36px 32px;
      border: 1.5px solid rgba(0,201,167,.2);
      box-shadow: 0 4px 24px rgba(0,0,0,.06);
    }
    .form-card h2 { font-family: var(--font-h); font-size: 20px; font-weight: 800; margin-bottom: 28px; }

    .form-row { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; margin-bottom: 16px; }
    .form-group { margin-bottom: 16px; }
    .form-group label { display: block; font-family: var(--font-h); font-size: 12px; font-weight: 700; color: var(--dark); margin-bottom: 6px; letter-spacing: .3px; }
    .form-group input,
    .form-group select,
    .form-group textarea {
      width: 100%; padding: 11px 14px; border: 1.5px solid var(--border);
      border-radius: 8px; font-family: var(--font-b); font-size: 13px; color: var(--dark);
      background: var(--white); outline: none; transition: border-color .2s, box-shadow .2s;
      appearance: none;
    }
    .form-group input::placeholder,
    .form-group textarea::placeholder { color: #b0bcc8; }
    .form-group input:focus,
    .form-group select:focus,
    .form-group textarea:focus { border-color: var(--teal); box-shadow: 0 0 0 3px rgba(0,201,167,.12); }
    .form-group textarea { resize: vertical; min-height: 110px; }
    .select-wrap { position: relative; }
    .select-wrap::after { content: ''; position: absolute; right: 14px; top: 50%; transform: translateY(-50%); border: 5px solid transparent; border-top-color: var(--gray); pointer-events: none; }

    .btn-submit {
      display: block; width: 100%; padding: 15px; background: var(--teal); color: var(--dark);
      font-family: var(--font-h); font-size: 14px; font-weight: 800; letter-spacing: .5px;
      border: none; border-radius: 8px; cursor: pointer; transition: background .2s, transform .2s;
      margin-top: 8px;
    }
    .btn-submit:hover { background: var(--teal-dark); transform: translateY(-1px); }

    /* Info side */
    .info-side h2 { font-family: var(--font-h); font-size: 24px; font-weight: 800; margin-bottom: 12px; }
    .info-side p  { font-size: 14px; color: var(--gray); line-height: 1.7; margin-bottom: 32px; }

    .info-item { display: flex; align-items: flex-start; gap: 14px; margin-bottom: 20px; }
    .info-icon { width: 40px; height: 40px; border-radius: 50%; background: rgba(0,201,167,.1); display: flex; align-items: center; justify-content: center; flex-shrink: 0; }
    .info-icon svg { width: 18px; stroke: var(--teal); fill: none; stroke-width: 1.8; }
    .info-item h4 { font-family: var(--font-h); font-size: 13px; font-weight: 700; margin-bottom: 2px; }
    .info-item p  { font-size: 13px; color: var(--teal-dark); margin: 0; }
    .info-item a  { color: var(--teal-dark); text-decoration: none; }
    .info-item a:hover  { text-decoration: underline; }

    /* Map placeholder */
    /* .map-box {
      background: var(--light-bg); border-radius: 12px; height: 450px; margin-top: 24px;
      border: 1.5px solid var(--border);
      display: flex; align-items: center; justify-content: center; flex-direction: column; gap: 10px;
    } */
    .map-box { border-radius: 12px; height: 450px; margin-top: 24px; border: 1.5px solid var(--border); overflow: hidden; }
    .map-box img { width: 100%; height: 100%; object-fit: cover; }
    .map-box svg { width: 36px; stroke: var(--teal); fill: none; stroke-width: 1.5; opacity: .6; }
    .map-box p { font-size: 12px; color: var(--gray-lt); }

    /* Success message */
    .success-msg {
      display: none; background: rgba(0,201,167,.1); border: 1.5px solid var(--teal);
      border-radius: 8px; padding: 16px 20px; margin-top: 16px;
      font-family: var(--font-h); font-size: 14px; font-weight: 600; color: var(--teal); text-align: center;
    }

    @media(max-width:900px){
      .contact-layout { grid-template-columns: 1fr; padding: 48px 0; }
      .form-row { grid-template-columns: 1fr; }
      .hero-contacto h1 { font-size: 34px; }
    }

    @media(max-width:450px){
       .hero-contacto h1 { font-size: 32px;}
    }
/* ── VALIDACIÓN DE CAMPOS ── */
.required { color: #c0392b; margin-left: 2px; }

.field-error {
  display: block;
  font-size: 11px;
  color: #c0392b;
  margin-top: 5px;
  min-height: 16px;
  font-family: var(--font-b);
}

/* Campo inválido */
.form-group input.is-invalid,
.form-group select.is-invalid,
.form-group textarea.is-invalid {
  border-color: #e74c3c;
  background-color: #fff8f8;
  box-shadow: 0 0 0 3px rgba(231,76,60,.1);
}

/* Campo válido */
.form-group input.is-valid,
.form-group select.is-valid,
.form-group textarea.is-valid {
  border-color: #27ae60;
  background-color: #f8fff9;
  box-shadow: 0 0 0 3px rgba(39,174,96,.08);
}

/* Estado de carga del botón */
.btn-submit:disabled {
  opacity: 0.7;
  cursor: not-allowed;
  transform: none;
}

/* Mensaje de error del servidor */
.error-msg {
  display: none;
  background: rgba(231,76,60,.1);
  border: 1.5px solid #e74c3c;
  border-radius: 8px;
  padding: 16px 20px;
  margin-top: 16px;
  font-family: var(--font-h);
  font-size: 13px;
  font-weight: 600;
  color: #c0392b;
  text-align: center;
}
