/* Página de contacto y confirmación. */
.contacto__rejilla { display: grid; gap: var(--espacio-5); }
.contacto h2 { font-size: 1.4rem; margin-bottom: var(--espacio-3); color: var(--blue-dark); }
.contacto h3 { font-size: 1.05rem; margin: var(--espacio-4) 0 var(--espacio-2); }

.campo { margin-bottom: var(--espacio-4); }
.campo label { display: block; margin-bottom: var(--espacio-1); font-weight: 600; }
.campo small { font-weight: 500; color: var(--text-muted); }
.campo input[type="text"], .campo input[type="tel"], .campo input[type="email"], .campo select, .campo textarea {
  width: 100%; min-height: 48px; padding: 0.7rem 0.9rem; border: 2px solid var(--border); border-radius: var(--radio-chico);
  font: inherit; color: var(--navy); background: var(--white);
}
.campo textarea { min-height: 8rem; resize: vertical; }
.campo input:focus, .campo select:focus, .campo textarea:focus { border-color: var(--blue); outline: 3px solid rgba(8, 145, 204, 0.35); outline-offset: 1px; }
.campo--error input, .campo--error select, .campo--error textarea { border-color: var(--danger); }
.campo__ayuda { margin-top: var(--espacio-1); font-size: var(--texto-s); color: var(--text-muted); }
.campo__error { margin-top: var(--espacio-1); font-size: var(--texto-s); font-weight: 600; color: #a52a2a; }

.telefono { display: grid; gap: var(--espacio-2); }
@media (min-width: 560px) { .telefono { grid-template-columns: minmax(0, 14rem) 1fr; } }

.casilla { display: flex !important; gap: var(--espacio-2); align-items: flex-start; font-weight: 500 !important; }
.casilla input { width: 22px; height: 22px; margin-top: 2px; flex: none; accent-color: var(--blue); }

/* Campo trampa: fuera de pantalla (no display:none, que algunos bots detectan) */
.trampa { position: absolute; left: -9999px; top: auto; width: 1px; height: 1px; overflow: hidden; }

.resumen-errores, .aviso-formulario { margin-bottom: var(--espacio-4); padding: var(--espacio-3); border-radius: var(--radio-chico); }
.resumen-errores { border: 2px solid var(--danger); background: #fff5f5; }
.resumen-errores ul { margin: var(--espacio-2) 0 0 1.2rem; list-style: disc; }
.resumen-errores a { color: #a52a2a; font-weight: 600; }
.aviso-formulario { border: 2px solid var(--yellow); background: #fff8e1; }
.resumen-errores:focus, .aviso-formulario:focus { outline: 3px solid var(--blue-bright); outline-offset: 2px; }

.contacto__datos { align-self: start; padding: var(--espacio-4); border: 1px solid var(--border); border-radius: var(--radio); background: var(--blue-pale-2); }
.lista-contacto li { display: flex; gap: var(--espacio-2); align-items: flex-start; margin-bottom: var(--espacio-3); }
.lista-contacto .icono { color: var(--blue); margin-top: 3px; flex: none; }
.horarios div { display: flex; justify-content: space-between; gap: var(--espacio-3); padding: var(--espacio-1) 0; border-bottom: 1px dashed var(--border); }
.horarios dt { font-weight: 600; }
.nota { margin-top: var(--espacio-2); font-size: var(--texto-s); color: var(--text-muted); }

.gracias__contenido { display: grid; gap: var(--espacio-4); align-items: center; justify-items: center; text-align: center; padding-block: var(--espacio-4); }
.gracias__contenido img { width: 120px; height: auto; }
.gracias h1 { font-size: clamp(1.8rem, 5vw, 2.6rem); margin-bottom: var(--espacio-3); }
.gracias h2 { font-size: 1.2rem; margin: var(--espacio-4) 0 var(--espacio-2); color: var(--blue-dark); }
.codigo { display: inline-block; margin: var(--espacio-2) 0; padding: 0.4rem 1.2rem; border: 2px dashed var(--blue); border-radius: var(--radio-chico); font-size: clamp(1.8rem, 6vw, 2.6rem); font-weight: 700; letter-spacing: 0.12em; color: var(--navy); }
.gracias .horarios { max-width: 22rem; margin-inline: auto; }
.gracias__botones { display: flex; flex-wrap: wrap; gap: var(--espacio-3); justify-content: center; margin-top: var(--espacio-3); }

@media (min-width: 900px) {
  .contacto__rejilla { grid-template-columns: 1.3fr 1fr; }
  .gracias__contenido { grid-template-columns: auto 1fr; text-align: left; justify-items: start; }
  .gracias .horarios { margin-inline: 0; }
  .gracias__botones { justify-content: flex-start; }
}

.contador { text-align: right; margin-top: var(--espacio-1); font-variant-numeric: tabular-nums; }
