/* ============================================
   Mexican Harvest — Formularios (contacto y reservas)
   ============================================ */

.campo-formulario {
  margin-bottom: 1.4rem;
}

.campo-formulario label {
  display: block;
  font-size: 0.78rem;
  font-weight: 700;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--color-cafe);
  margin-bottom: 0.45rem;
}

.campo-formulario input,
.campo-formulario select,
.campo-formulario textarea {
  width: 100%;
  background-color: var(--color-crema-claro);
  border: var(--borde-tinta);
  border-radius: var(--radio-suave);
  padding: 0.85rem 1rem;
  font-family: var(--fuente-texto);
  font-size: 1rem;
  color: var(--color-tinta);
  transition: border-color var(--transicion-suave), box-shadow var(--transicion-suave);
}

.campo-formulario input:focus,
.campo-formulario select:focus,
.campo-formulario textarea:focus {
  outline: none;
  border-color: var(--color-vino);
  box-shadow: 0 0 0 3px rgba(138, 47, 43, 0.15);
}

.campo-formulario input.invalido,
.campo-formulario select.invalido,
.campo-formulario textarea.invalido {
  border-color: var(--color-vino);
  background-color: rgba(138, 47, 43, 0.06);
}

.campo-formulario .mensaje-error {
  display: none;
  font-size: 0.82rem;
  color: var(--color-vino);
  margin-top: 0.35rem;
}

.campo-formulario .mensaje-error.visible {
  display: block;
}

/* Tarjeta que envuelve a los formularios */
.tarjeta-formulario {
  background-color: var(--color-crema-claro);
  border: var(--borde-tinta);
  border-radius: var(--radio-suave);
  padding: clamp(1.8rem, 4vw, 3rem);
  box-shadow: var(--sombra-carta);
}

/* Aviso de éxito al enviar */
.aviso-exito {
  display: none;
  border: 1px solid var(--color-monarca);
  background-color: rgba(67, 96, 76, 0.1);
  color: var(--color-monarca);
  border-radius: var(--radio-suave);
  padding: 1rem 1.2rem;
  margin-bottom: 1.4rem;
  font-weight: 700;
}

.aviso-exito.visible {
  display: block;
}

/* Datos de contacto laterales */
.dato-contacto {
  display: flex;
  gap: 1rem;
  padding-block: 1.1rem;
}

.dato-contacto + .dato-contacto {
  border-top: var(--borde-punteado);
}

.dato-contacto svg {
  width: 22px;
  height: 22px;
  flex-shrink: 0;
  color: var(--color-vino);
  margin-top: 0.2rem;
}

.dato-contacto h3 {
  font-size: 1rem;
  margin-bottom: 0.2rem;
}

.dato-contacto p {
  font-size: 0.95rem;
  color: rgba(43, 29, 18, 0.72);
  margin: 0;
}

/* Mapa */
.marco-mapa {
  border: 6px solid var(--color-crema-claro);
  border-radius: var(--radio-suave);
  box-shadow: var(--sombra-carta);
  overflow: hidden;
}

.marco-mapa iframe {
  display: block;
  width: 100%;
  height: 380px;
  border: 0;
  filter: sepia(0.25) saturate(0.9);
}
