/* ============ PÁGINA DE FORMULARIO ============ */
body.pagina-formulario{ background:var(--background); }

.nav-volver{
  font-family:'Karla', sans-serif;
  font-size:.68rem;
  letter-spacing:.18em;
  text-transform:uppercase;
  color:color-mix(in oklab, var(--foreground) 75%, transparent);
  text-decoration:none;
  transition:color .25s ease;
}
.nav-volver:hover{ color:var(--gold); }

.form-wrap{
  max-width:640px;
  margin:0 auto;
  padding:64px 24px 100px;
}

.form-intro{ text-align:center; }
.form-intro h1{
  margin-top:16px;
  font-family:'Cormorant Garamond', serif;
  font-weight:300;
  font-size:2.4rem;
}
@media (min-width:640px){ .form-intro h1{ font-size:3rem; } }
.form-intro .gold-rule{ margin:24px auto 0; width:120px; }
.form-intro-texto{
  margin-top:26px;
  font-size:.92rem;
  line-height:1.85;
  color:var(--muted-foreground);
}

.form-tarjeta{
  margin-top:56px;
  border:1px solid color-mix(in oklab, var(--gold) 28%, transparent);
  padding:36px 26px;
  display:flex;
  flex-direction:column;
  gap:26px;
}
@media (min-width:640px){ .form-tarjeta{ padding:48px 52px; } }

.campo{ display:flex; flex-direction:column; gap:10px; }
.campo label{
  font-family:'Karla', sans-serif;
  font-size:.72rem;
  letter-spacing:.1em;
  text-transform:uppercase;
  color:color-mix(in oklab, var(--foreground) 85%, transparent);
}
.obligatorio{ color:var(--gold); }

.campo input[type="text"],
.campo input[type="number"],
.campo input[type="email"],
.campo input[type="tel"],
.campo textarea{
  font-family:'Karla', sans-serif;
  font-size:.95rem;
  color:var(--foreground);
  background:var(--card);
  border:1px solid color-mix(in oklab, var(--gold) 30%, transparent);
  padding:12px 14px;
  outline:none;
  transition:border-color .25s ease, box-shadow .25s ease;
  resize:vertical;
  width:100%;
}
.campo input[type="text"]:focus,
.campo input[type="number"]:focus,
.campo input[type="email"]:focus,
.campo input[type="tel"]:focus,
.campo textarea:focus{
  border-color:var(--gold);
  box-shadow:0 0 0 3px color-mix(in oklab, var(--gold) 16%, transparent);
}
.campo input[type="number"]{ max-width:140px; }

.opciones-asistencia{ display:flex; flex-wrap:wrap; gap:14px; }
.opcion-radio{
  flex:1;
  min-width:150px;
  display:flex; align-items:center; gap:10px;
  border:1px solid color-mix(in oklab, var(--gold) 30%, transparent);
  padding:14px 16px;
  cursor:pointer;
  font-size:.9rem;
  color:var(--foreground);
  transition:border-color .25s ease, background .25s ease;
}
.opcion-radio:has(input:checked){
  border-color:var(--gold);
  background:color-mix(in oklab, var(--gold) 8%, transparent);
}
.opcion-radio input{ accent-color:var(--gold); width:16px; height:16px; flex-shrink:0; }

.campo-acompanantes{ transition:opacity .3s ease, max-height .3s ease; }
.oculto{ display:none !important; }
.campos-personalizados{ display:flex; flex-direction:column; gap:26px; }
.campos-personalizados:empty{ display:none; }

.form-tarjeta .btn-grande{
  margin-top:8px;
  width:100%;
  text-align:center;
  border:none;
  cursor:pointer;
}
.form-tarjeta .btn-grande:disabled{ opacity:.6; cursor:not-allowed; }

.form-estado{
  min-height:20px;
  text-align:center;
  font-size:.85rem;
  color:var(--muted-foreground);
}
.form-estado.error{ color:#b3392f; }

.form-gracias{
  margin-top:56px;
  text-align:center;
  border:1px solid color-mix(in oklab, var(--gold) 40%, transparent);
  padding:56px 40px;
}
.form-gracias .estrella{ font-size:1.4rem; color:var(--gold); margin:0; }
.form-gracias h2{
  margin-top:16px;
  font-family:'Cormorant Garamond', serif;
  font-weight:300;
  font-size:2rem;
}
.form-gracias p{ margin-top:18px; font-size:.92rem; line-height:1.8; color:var(--muted-foreground); }

/* ============ INVITADOS ADICIONALES ============ */
.invitados-extra{ display:flex; flex-direction:column; gap:20px; }
.invitados-extra:empty{ display:none; }
.invitado-extra{
  border:1px solid color-mix(in oklab, var(--gold) 22%, transparent);
  padding:20px 18px;
  display:flex;
  flex-direction:column;
  gap:12px;
}
.invitado-extra .invitado-titulo{
  font-family:'Karla', sans-serif;
  font-size:.68rem;
  letter-spacing:.12em;
  text-transform:uppercase;
  color:var(--gold);
}
.invitado-extra input[type="text"]{
  font-family:'Karla', sans-serif;
  font-size:.95rem;
  color:var(--foreground);
  background:var(--card);
  border:1px solid color-mix(in oklab, var(--gold) 30%, transparent);
  padding:12px 14px;
  outline:none;
  width:100%;
  box-sizing:border-box;
  transition:border-color .25s ease, box-shadow .25s ease;
}
.invitado-extra input[type="text"]:focus{
  border-color:var(--gold);
  box-shadow:0 0 0 3px color-mix(in oklab, var(--gold) 16%, transparent);
}

/* ---- interruptor "es niño/a" (mismo estilo que el panel) ---- */
.switch-toggle{
  display:flex;
  align-items:center;
  gap:12px;
  cursor:pointer;
  font-family:'Karla', sans-serif;
  font-size:.85rem;
  color:var(--foreground);
}
.switch-toggle input{ position:absolute; opacity:0; width:0; height:0; }
.switch-track{
  position:relative;
  flex-shrink:0;
  width:40px; height:23px;
  border-radius:999px;
  background:color-mix(in oklab, var(--muted-foreground) 35%, transparent);
  transition:background-color .25s ease;
}
.switch-thumb{
  position:absolute;
  top:3px; left:3px;
  width:17px; height:17px;
  border-radius:50%;
  background:var(--background);
  box-shadow:0 1px 3px rgba(0,0,0,.3);
  transition:transform .25s ease;
}
.switch-toggle input:checked + .switch-track{ background:var(--gold); }
.switch-toggle input:checked + .switch-track .switch-thumb{ transform:translateX(17px); }
.switch-toggle input:focus-visible + .switch-track{ box-shadow:0 0 0 3px color-mix(in oklab, var(--gold) 25%, transparent); }

/* ============ IDENTIFICACIÓN DEL GRUPO (lista maestra) ============ */
#pasoIdentificar .btn-grande,
#pasoNoEncontrado .btn-outline{ width:100%; text-align:center; border:none; cursor:pointer; margin-top:8px; }
#pasoIdentificar .form-estado{ margin-top:14px; }

.confirmar-grupo-intro{
  font-family:'Cormorant Garamond', serif;
  font-style:italic;
  font-size:1.3rem;
  color:var(--foreground);
  margin:0 0 20px;
  text-align:center;
}
.confirmar-grupo-miembros{
  display:flex; flex-direction:column; gap:10px;
  margin-bottom:24px;
}
.confirmar-grupo-miembro{
  border:1px solid color-mix(in oklab, var(--gold) 25%, transparent);
  padding:13px 16px;
  font-size:.92rem;
  color:var(--foreground);
}
.confirmar-grupo-miembro .nino-tag{ font-size:.72rem; color:var(--muted-foreground); margin-left:6px; }
.confirmar-grupo-botones{ display:flex; flex-direction:column; gap:12px; }
.confirmar-grupo-botones .btn-grande, .confirmar-grupo-botones .btn-outline{
  width:100%; text-align:center; border:none; cursor:pointer; margin-top:0;
}
.confirmar-grupo-botones .btn-outline{ border:1px solid color-mix(in oklab, var(--gold) 55%, transparent); }

/* ============ MIEMBROS DEL GRUPO EN EL FORMULARIO (con X para quitar) ============ */
.miembros-grupo{ display:flex; flex-direction:column; gap:10px; margin-top:8px; }
.miembro-grupo-fila{
  display:flex; align-items:center; gap:12px;
  border:1px solid color-mix(in oklab, var(--gold) 22%, transparent);
  padding:13px 16px;
  transition:opacity .25s ease, border-color .25s ease;
}
.miembro-grupo-fila.no-asiste{
  opacity:.5;
  border-color:color-mix(in oklab, var(--muted-foreground) 30%, transparent);
}
.miembro-grupo-fila .nombre{
  flex:1; min-width:0;
  font-size:.92rem; color:var(--foreground);
}
.miembro-grupo-fila.no-asiste .nombre{ text-decoration:line-through; }
.miembro-grupo-fila .nino-tag{ font-size:.72rem; color:var(--muted-foreground); margin-left:6px; }
.miembro-grupo-fila button{
  flex-shrink:0;
  background:none; border:1px solid color-mix(in oklab, var(--gold) 35%, transparent);
  cursor:pointer;
  font-family:'Karla', sans-serif; font-size:.66rem; letter-spacing:.08em; text-transform:uppercase;
  color:var(--gold);
  padding:6px 12px;
}
.miembro-grupo-fila button:hover{ background:color-mix(in oklab, var(--gold) 10%, transparent); }

/* ============ BOTÓN VOLVER Y RESUMEN DE RESPUESTA PREVIA ============ */
.paso-volver{
  display:inline-block;
  background:none; border:none; cursor:pointer;
  font-family:'Karla', sans-serif;
  font-size:.68rem;
  letter-spacing:.1em;
  text-transform:uppercase;
  color:var(--muted-foreground);
  padding:0;
  margin-bottom:22px;
}
.paso-volver:hover{ color:var(--gold); }

.ya-respondido-resumen{
  border:1px solid color-mix(in oklab, var(--gold) 25%, transparent);
  padding:18px 20px;
  margin-bottom:24px;
  font-size:.88rem;
  color:var(--foreground);
  line-height:1.8;
}
.ya-respondido-resumen .fila{ display:flex; justify-content:space-between; gap:12px; }
.ya-respondido-resumen .fila + .fila{ margin-top:6px; padding-top:6px; border-top:1px solid color-mix(in oklab, var(--gold) 12%, transparent); }
.ya-respondido-resumen .etiqueta{ color:var(--muted-foreground); flex-shrink:0; }
.ya-respondido-resumen .valor{ text-align:right; }
.ya-respondido-resumen .valor.si{ color:#3d7a4d; }
.ya-respondido-resumen .valor.no{ color:#b3392f; }
