/* ===== Formulario de reserva — combina con la estética de la landing =====
   Va "blindado": stacking context propio + z-index máximo para que las capas
   absolutas de Landingi no lo tapen ni bloqueen la escritura. */

.tb-reserve{
  --tb-red:#9b0c0c;
  --tb-red-dark:#7b1118;
  --tb-gold:#ffb628;
  --tb-gray:#595c61;
  --tb-cream:#f6f1e9;

  font-family:'Montserrat', system-ui, sans-serif;
  background:var(--tb-cream);
  padding:70px 20px;

  /* clave: contexto de apilamiento propio, por encima de todo */
  position:relative;
  z-index:2147483000;
  isolation:isolate;
}
.tb-reserve *{ box-sizing:border-box; }

.tb-reserve__inner{ max-width:680px; margin:0 auto; text-align:center; }
.tb-reserve__title{
  font-size:clamp(28px,4vw,40px);
  color:var(--tb-red);
  margin:0 0 10px;
  font-weight:700;
}
.tb-reserve__sub{ color:var(--tb-gray); margin:0 0 32px; font-size:17px; }

.tb-reserve .tb-form{
  background:#fff;
  border-radius:16px;
  padding:34px;
  box-shadow:0 18px 50px rgba(0,0,0,.12);
  text-align:left;
  position:relative;
  z-index:1;
}
.tb-reserve .tb-form__row{ margin-bottom:18px; }
.tb-reserve .tb-form__row--2{ display:grid; grid-template-columns:1fr 1fr; gap:18px; }
.tb-reserve .tb-field{ display:flex; flex-direction:column; }
.tb-reserve .tb-label{ font-size:14px; font-weight:600; color:var(--tb-red); margin-bottom:6px; display:block; }

.tb-reserve .tb-form input,
.tb-reserve .tb-form select{
  font-family:inherit;
  font-size:16px;
  line-height:1.3;
  padding:13px 14px;
  border:1.5px solid #d7d7d7;
  border-radius:10px;
  background:#fff;
  color:#2b2b2b;
  width:100%;
  height:auto;
  margin:0;
  -webkit-appearance:none;
  appearance:none;
  /* asegurar interacción aunque haya capas alrededor */
  position:relative;
  z-index:1;
  pointer-events:auto;
}
.tb-reserve .tb-form select{
  background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='none' stroke='%23595c61' stroke-width='2'><path d='M6 9l6 6 6-6'/></svg>");
  background-repeat:no-repeat;
  background-position:right 14px center;
  padding-right:38px;
}
.tb-reserve .tb-form input:focus,
.tb-reserve .tb-form select:focus{
  outline:none;
  border-color:var(--tb-red);
  box-shadow:0 0 0 3px rgba(155,12,12,.15);
}
.tb-reserve .tb-form input.invalid,
.tb-reserve .tb-form select.invalid{ border-color:#d9534f; box-shadow:0 0 0 3px rgba(217,83,79,.12); }

.tb-reserve .tb-total{
  display:flex; align-items:center; justify-content:space-between;
  background:var(--tb-cream);
  border:1px solid #ece3d3;
  border-radius:12px;
  padding:16px 20px;
  margin:8px 0 20px;
  font-size:18px;
  color:var(--tb-gray);
}
.tb-reserve .tb-total strong{ font-size:26px; color:var(--tb-red); }

.tb-reserve .tb-error{
  background:#fdecea; color:#b3261e;
  border-radius:10px; padding:12px 14px; margin:0 0 16px;
  font-size:14px; font-weight:500;
}

.tb-reserve .tb-submit{
  width:100%;
  border:none;
  border-radius:999px;
  background:var(--tb-red);
  color:#fff;
  font-family:inherit;
  font-size:18px;
  font-weight:700;
  padding:16px 24px;
  cursor:pointer;
  transition:background .2s ease, transform .15s ease;
}
.tb-reserve .tb-submit:hover{ background:var(--tb-red-dark); }
.tb-reserve .tb-submit:active{ transform:translateY(1px); }
.tb-reserve .tb-submit[disabled]{ opacity:.65; cursor:not-allowed; }

.tb-reserve .tb-legal{ font-size:12px; color:var(--tb-gray); text-align:center; margin:14px 0 0; }

@media (max-width:560px){
  .tb-reserve .tb-form{ padding:24px; }
  .tb-reserve .tb-form__row--2{ grid-template-columns:1fr; }
}

/* ============================================================
   Recuadro "Inscripción anticipada" (GENERAL y PREFERENCIAL)
   ------------------------------------------------------------
   Los recuadros originales eran chicos y de distinto ancho (hechos para
   "Early Bird"). Acá los unificamos: mismo ancho, centrados en su tarjeta,
   con el rótulo en una línea y el precio grande debajo, todo centrado.
   IDs:  GENERAL  -> recuadro #LCZbN1...  texto #T4NACg2...
         PREFER.  -> recuadro #FNHBvZa... texto #QFRfFHX...
   No se toca el mobile (≤763px), que ya estaba bien.
   ============================================================ */

/* --- comportamiento común (escritorio + tablet) --- */
@media (min-width: 764px){
  /* el recuadro de texto se centra y no recorta */
  #T4NACg2icwdUKEecT0tJz3a17S0sBEJG,
  #QFRfFHXziwcig82m8xcHaNBP2335MNd0{
    display:flex !important;
    flex-direction:column !important;
    justify-content:center !important;
    align-items:center !important;
    text-align:center !important;
    overflow:visible !important;
    padding:0 .5rem !important;
    box-sizing:border-box !important;
  }
  /* rótulo "Inscripción anticipada": una línea, legible */
  #T4NACg2icwdUKEecT0tJz3a17S0sBEJG p:first-child,
  #QFRfFHXziwcig82m8xcHaNBP2335MNd0 p:first-child{
    font-size:1rem !important;
    line-height:1.15 !important;
    font-weight:700 !important;
    white-space:nowrap !important;
    margin:0 !important;
  }
  /* precio anticipado: grande */
  #T4NACg2icwdUKEecT0tJz3a17S0sBEJG p:last-child,
  #QFRfFHXziwcig82m8xcHaNBP2335MNd0 p:last-child{
    font-size:1.4rem !important;
    line-height:1.2 !important;
    font-weight:700 !important;
    margin:.1rem 0 0 !important;
  }
}

/* --- ESCRITORIO (≥1200px): recuadros iguales y centrados en su tarjeta --- */
@media (min-width: 1200px){
  /* GENERAL: tarjeta left 2.5rem, ancho 19.8125 -> centro 12.406rem */
  #LCZbN1V1Ms5ozyMofspIOZfCy4wnnXTw,
  #T4NACg2icwdUKEecT0tJz3a17S0sBEJG{
    width:15rem !important; left:4.90625rem !important;
    top:23.4375rem !important; height:4.4375rem !important;
  }
  /* PREFERENCIAL: tarjeta left 27.375rem, ancho 20.0625 -> centro 37.406rem */
  #FNHBvZaTHA0HwydFc0TbJzAIQr0M4WiK,
  #QFRfFHXziwcig82m8xcHaNBP2335MNd0{
    width:15rem !important; left:29.90625rem !important;
    top:23.4375rem !important; height:4.4375rem !important;
  }
}

/* --- TABLET (764–1199px): mismo criterio con las posiciones de tablet --- */
@media (min-width: 764px) and (max-width: 1199px){
  /* GENERAL: tarjeta left 0, ancho 19.8125 -> centro 9.906rem */
  #LCZbN1V1Ms5ozyMofspIOZfCy4wnnXTw,
  #T4NACg2icwdUKEecT0tJz3a17S0sBEJG{
    width:15rem !important; left:2.40625rem !important;
    top:23.4375rem !important; height:4.4375rem !important;
  }
  /* PREFERENCIAL: tarjeta left 11.6875rem, ancho 20.0625 -> centro 21.719rem */
  #FNHBvZaTHA0HwydFc0TbJzAIQr0M4WiK,
  #QFRfFHXziwcig82m8xcHaNBP2335MNd0{
    width:15rem !important; left:14.21875rem !important;
    top:23.4375rem !important; height:4.4375rem !important;
  }
}

/* ===== Botón flotante de WhatsApp ===== */
.wa-float{
  position:fixed;
  bottom:22px; right:22px;
  width:58px; height:58px;
  border-radius:50%;
  background:#25d366;
  color:#fff;
  display:flex; align-items:center; justify-content:center;
  box-shadow:0 8px 24px rgba(0,0,0,.28);
  z-index:2147483600;
  transition:transform .15s ease;
}
.wa-float:hover{ transform:scale(1.08); }
.wa-float svg{ width:32px; height:32px; display:block; }
