/* GMKD Reservas — Formulario público */

.gmkd-reservas-wrap {
  max-width: 600px;
  margin: 0 auto;
  padding: 16px;
  font-family: inherit;
}

.gmkd-form-box {
  background: #fff;
  border: 1px solid #e4d9c4;
  border-radius: 16px;
  overflow: hidden;
  box-shadow: 0 4px 24px rgba(26,17,8,.06);
}

.gmkd-form-header {
  background: var(--gmkd-reservas-brand, #1a1108);
  padding: 28px 32px 24px;
  text-align: center;
}
.gmkd-form-header .gmkd-icon { font-size: 28px; display: block; margin-bottom: 10px; }
.gmkd-form-header .gmkd-logo-icon { display: block; margin: 0 auto 14px; max-width: 110px; max-height: 78px; width: auto; height: auto; object-fit: contain; background: transparent; border: 0; border-radius: 0; padding: 0; box-shadow: none; }
.gmkd-form-header h2 { color: #fff; font-size: 22px; margin: 0 0 6px; font-weight: 600; }
.gmkd-form-header p  { color: rgba(250,246,239,.6); font-size: 14px; margin: 0; }

#gmkd-form-container { padding: 28px 32px; }

.gmkd-row {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  gap: 16px;
}

.gmkd-row > .gmkd-field,
.gmkd-field {
  min-width: 0;
}

.gmkd-field { margin-bottom: 18px; }
.gmkd-field label {
  display: block;
  font-size: 13px;
  font-weight: 500;
  color: #374151;
  margin-bottom: 6px;
}
.gmkd-field label span { color: var(--gmkd-reservas-brand, #c8922a); }

.gmkd-field input[type="text"],
.gmkd-field input[type="email"],
.gmkd-field input[type="tel"],
.gmkd-field input[type="date"],
.gmkd-field select,
.gmkd-field textarea {
  width: 100%;
  max-width: 100%;
  min-width: 0;
  padding: 10px 14px;
  border: 1px solid #d1d5db;
  border-radius: 8px;
  font-size: 14px;
  color: #111827;
  background: #fff;
  transition: border-color .2s, box-shadow .2s;
  box-sizing: border-box;
  font-family: inherit;
  appearance: auto;
}
.gmkd-field input:focus,
.gmkd-field select:focus,
.gmkd-field textarea:focus {
  outline: none;
  border-color: var(--gmkd-reservas-brand, #c8922a);
  box-shadow: 0 0 0 3px rgba(17,24,39,.08);
}
.gmkd-field textarea { resize: vertical; }

/* Safari/iPhone puede aplicar un ancho intrínseco grande al input date. */
.gmkd-field input[type="date"] {
  display: block;
  inline-size: 100%;
  max-inline-size: 100%;
  min-inline-size: 0;
}

@media(max-width:640px) {
  .gmkd-reservas-wrap {
    width: 100%;
    box-sizing: border-box;
    padding: 10px;
  }

  #gmkd-form-container {
    padding: 22px 18px;
  }

  .gmkd-form-header {
    padding: 24px 18px 20px;
  }

  .gmkd-row {
    grid-template-columns: minmax(0, 1fr);
    gap: 0;
  }
}

/* Turnos: siempre 2 columnas, también en móvil, para reducir scroll */
.gmkd-turnos-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
  min-width: 0;
}

.gmkd-turno-opt {
  min-width: 0;
  border: 2px solid #e5e7eb;
  border-radius: 10px;
  padding: 14px 16px;
  cursor: pointer;
  transition: all .2s;
  text-align: center;
  user-select: none;
}

@media(max-width:400px){
  .gmkd-turnos-grid { gap: 8px; }
  .gmkd-turno-opt { padding: 12px 8px; }
  .gmkd-turno-opt .tn,
  .gmkd-turno-opt .tl,
  .gmkd-turno-opt .gmkd-turno-line { font-size: 13px; }
}
.gmkd-turno-opt:hover:not(.bloqueado) { border-color: var(--gmkd-reservas-brand, #c8922a); background: #fafafa; }
.gmkd-turno-opt.seleccionado { border-color: var(--gmkd-reservas-brand, #c8922a); background: #fafafa; box-shadow: 0 0 0 3px rgba(17,24,39,.06); }
.gmkd-turno-opt.bloqueado { opacity: .4; cursor: not-allowed; background: #f9fafb; }

.gmkd-turno-opt .tn,
.gmkd-turno-opt .tl,
.gmkd-turno-opt .gmkd-turno-line { font-weight: 600; font-size: 14px; color: #111827; line-height: 1.35; }
.gmkd-turno-opt .tp { font-size: 11px; color: #9ca3af; margin-top: 4px; }
.gmkd-turno-opt.bloqueado .tp { color: #ef4444; }

/* Botón */
.gmkd-btn {
  width: 100%;
  background: var(--gmkd-reservas-brand, #1a1108);
  color: #fff;
  border: none;
  padding: 13px 20px;
  border-radius: 10px;
  font-size: 15px;
  font-weight: 500;
  cursor: pointer;
  transition: opacity .2s;
  font-family: inherit;
  margin-top: 4px;
}
.gmkd-btn:hover { opacity: .85; }
.gmkd-btn:disabled { opacity: .5; cursor: not-allowed; }

.gmkd-legal { font-size: 11px; color: #9ca3af; text-align: center; margin-top: 12px; }
.gmkd-legal a { color: var(--gmkd-reservas-brand, #c8922a); }

/* Alerta */
.gmkd-alerta {
  margin: 0 32px;
  padding: 12px 16px;
  border-radius: 8px;
  font-size: 14px;
  margin-top: 16px;
}
.gmkd-alerta.error { background: #fef2f2; color: #991b1b; border: 1px solid #fecaca; }
.gmkd-alerta.ok    { background: #f0fdf4; color: #166534; border: 1px solid #bbf7d0; }

/* Éxito */
#gmkd-success { padding: 40px 32px; text-align: center; }
.gmkd-success-icon { font-size: 40px; margin-bottom: 12px; }
#gmkd-success h3 { font-size: 20px; margin-bottom: 8px; color: #111827; }
#gmkd-success p  { color: #6b7280; font-size: 14px; }
