/* ============================================================
   BVT · Bloque de compra [bvt_compra]
   wp-content/mu-plugins/bvt-reservas/compra.css

   Mismo sistema que form.css: todo cuelga de .bvt-compra con la clase
   repetida y !important, y nunca se usa el combinador ">" (Elementor mete
   divs propios en el medio). El porqué está en la cabecera de form.css.
   ============================================================ */

.bvt-compra.bvt-compra{
  --uva-900:#2C0E42; --uva-800:#3E1259; --uva-700:#5B1D7E; --uva-500:#8A3FB0;
  --ink:#241C2B; --ink-70:#584C63; --ink-50:#8A7F93;
  --line:#E6DEEC; --borde-hover:#D3C2DF; --lila:#F3ECF7; --campo:#FBF9FC; --linea-suave:#EFE9F4;

  display:block !important;
  background:#fff !important;
  border:1px solid var(--line) !important;
  border-radius:16px !important;
  overflow:hidden !important;
  box-shadow:0 20px 44px -30px rgba(44,14,66,.7) !important;
  color:var(--ink) !important;
  font-family:'Work Sans','Segoe UI',system-ui,sans-serif !important;
  font-size:15px !important;
  line-height:1.55 !important;
}
.bvt-compra.bvt-compra *{ box-sizing:border-box !important }
.bvt-compra.bvt-compra p,
.bvt-compra.bvt-compra h3{ margin:0 !important }

/* --- cabecera --- */
.bvt-compra.bvt-compra .bvt-head{
  padding:15px 20px !important; color:#fff !important;
  background:linear-gradient(148deg,var(--uva-800),var(--uva-700)) !important;
}
.bvt-compra.bvt-compra .bvt-head h3{
  color:#fff !important;
  font-family:REM,'Segoe UI',sans-serif !important; font-size:23px !important; font-weight:600 !important; letter-spacing:-.015em !important;
}
.bvt-compra.bvt-compra .bvt-body{
  padding:20px 20px 22px !important; display:flex !important; flex-direction:column !important; gap:18px !important;
}

/* --- pasos --- */
.bvt-compra.bvt-compra fieldset.bvt-paso{ border:0 !important; margin:0 !important; padding:0 !important; min-width:0 !important }
/* Cada paso después del primero lleva una línea arriba: se lee como "otro paso"
   sin agregar texto. */
.bvt-compra.bvt-compra .bvt-paso ~ .bvt-paso{ padding-top:18px !important; border-top:1px solid var(--linea-suave) !important }
.bvt-compra.bvt-compra .bvt-paso-t{
  display:flex !important; align-items:center !important; gap:10px !important;
  padding:0 !important; margin:0 0 12px !important; border:0 !important;
  font-family:REM,'Segoe UI',sans-serif !important; font-size:17px !important; font-weight:600 !important; line-height:1.2 !important; color:var(--uva-800) !important;
}
/* Un <legend> se dibuja sobre el borde del fieldset: la línea de arriba le
   pasaba por el costado. Flotado a lo ancho sale del borde y queda debajo. */
.bvt-compra.bvt-compra legend.bvt-paso-t{ float:left !important; width:100% !important }
.bvt-compra.bvt-compra .bvt-salidas,
.bvt-compra.bvt-compra .bvt-fechas,
.bvt-compra.bvt-compra .bvt-cal{ clear:both !important }
.bvt-compra.bvt-compra .bvt-num{
  display:inline-flex !important; align-items:center !important; justify-content:center !important; flex:none !important;
  width:26px !important; height:26px !important; border-radius:50% !important;
  background:var(--uva-700) !important; color:#fff !important; font-size:13px !important; font-weight:600 !important; line-height:1 !important;
}

/* --- opciones: salidas y fechas ---
   El radio queda en el DOM (no display:none) para que funcione con teclado. */
.bvt-compra.bvt-compra .bvt-op{ display:block !important; position:relative !important; margin:0 !important; cursor:pointer !important }
.bvt-compra.bvt-compra .bvt-op input{
  position:absolute !important; opacity:0 !important; width:1px !important; height:1px !important; margin:0 !important; pointer-events:none !important;
}
.bvt-compra.bvt-compra .bvt-op-caja{
  display:flex !important; flex-direction:column !important; gap:2px !important;
  padding:12px 46px 12px 14px !important;
  background:var(--campo) !important; border:1.5px solid var(--line) !important; border-radius:12px !important;
  transition:border-color .15s, background .15s, box-shadow .15s !important;
}
.bvt-compra.bvt-compra .bvt-op:hover .bvt-op-caja{ border-color:var(--borde-hover) !important }
.bvt-compra.bvt-compra .bvt-op input:checked + .bvt-op-caja{ border-color:var(--uva-700) !important; background:var(--lila) !important }
.bvt-compra.bvt-compra .bvt-op input:focus-visible + .bvt-op-caja{ box-shadow:0 0 0 3px rgba(138,63,176,.22) !important }

/* tilde de la salida elegida */
.bvt-compra.bvt-compra .bvt-salida .bvt-op-caja::after{
  content:'' !important; position:absolute !important; right:14px !important; top:50% !important;
  width:20px !important; height:20px !important; margin-top:-10px !important; border-radius:50% !important;
  border:1.5px solid var(--line) !important; background:#fff no-repeat center / 12px 12px !important;
}
.bvt-compra.bvt-compra .bvt-salida input:checked + .bvt-op-caja::after{
  border-color:var(--uva-700) !important; background-color:var(--uva-700) !important;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m5 12 5 5 9-10'/%3E%3C/svg%3E") !important;
}

.bvt-compra.bvt-compra .bvt-salidas{ display:flex !important; flex-direction:column !important; gap:8px !important }
.bvt-compra.bvt-compra .bvt-op-t{
  display:flex !important; flex-wrap:wrap !important; align-items:baseline !important; gap:2px 8px !important;
  font-size:15px !important; font-weight:500 !important; color:var(--ink) !important;
}
.bvt-compra.bvt-compra .bvt-hora{ color:var(--uva-700) !important; font-weight:600 !important; white-space:nowrap !important }
.bvt-compra.bvt-compra .bvt-op-d{ font-size:13px !important; color:var(--ink-70) !important }

.bvt-compra.bvt-compra .bvt-fechas{ display:grid !important; grid-template-columns:repeat(2,minmax(0,1fr)) !important; gap:8px !important }
@media (min-width:600px){
  .bvt-compra.bvt-compra .bvt-fechas{ grid-template-columns:repeat(3,minmax(0,1fr)) !important }
}
.bvt-compra.bvt-compra .bvt-fecha .bvt-op-caja{
  padding:10px 8px !important; align-items:center !important; text-align:center !important; gap:0 !important;
}
.bvt-compra.bvt-compra .bvt-f-dia{ font-size:13px !important; font-weight:500 !important; color:var(--ink-70) !important }
.bvt-compra.bvt-compra .bvt-f-num{ font-size:15px !important; font-weight:600 !important; color:var(--uva-800) !important; white-space:nowrap !important }

/* --- calendario --- */
.bvt-compra.bvt-compra .bvt-cal{ padding:10px !important; background:var(--campo) !important; border:1.5px solid var(--line) !important; border-radius:12px !important }
.bvt-compra.bvt-compra .bvt-cal-nav{ display:flex !important; align-items:center !important; justify-content:space-between !important; margin-bottom:6px !important }
.bvt-compra.bvt-compra .bvt-cal-mes{
  font-family:REM,'Segoe UI',sans-serif !important; font-size:15px !important; font-weight:500 !important; text-transform:capitalize !important;
}
.bvt-compra.bvt-compra .bvt-cal-nav button{
  width:34px !important; height:34px !important; padding:0 !important; border:0 !important; border-radius:50% !important;
  background:transparent !important; color:var(--uva-700) !important; font-size:20px !important; line-height:1 !important; cursor:pointer !important;
}
.bvt-compra.bvt-compra .bvt-cal-nav button:hover{ background:var(--lila) !important }
.bvt-compra.bvt-compra .bvt-cal-nav button[disabled]{ opacity:.25 !important; cursor:default !important; background:transparent !important }
.bvt-compra.bvt-compra .bvt-cal-grilla{ display:grid !important; grid-template-columns:repeat(7,minmax(0,1fr)) !important; gap:4px !important; text-align:center !important }
.bvt-compra.bvt-compra .bvt-cal-dow{
  padding:4px 0 !important; font-size:11.5px !important; color:var(--ink-50) !important; text-transform:uppercase !important; letter-spacing:.04em !important;
}
.bvt-compra.bvt-compra .bvt-cal-dia{
  display:flex !important; align-items:center !important; justify-content:center !important;
  width:100% !important; height:38px !important; border-radius:9px !important; font-size:14px !important;
}
.bvt-compra.bvt-compra .bvt-cal-dia.is-off{ color:#C9C0D0 !important }
.bvt-compra.bvt-compra button.bvt-cal-dia{
  padding:0 !important; border:1.5px solid var(--line) !important; background:#fff !important;
  color:var(--uva-800) !important; font-family:inherit !important; font-weight:600 !important; cursor:pointer !important;
}
.bvt-compra.bvt-compra button.bvt-cal-dia:hover{ background:var(--lila) !important; border-color:var(--borde-hover) !important }
.bvt-compra.bvt-compra button.bvt-cal-dia.is-elegida{ background:var(--uva-700) !important; border-color:var(--uva-700) !important; color:#fff !important }
.bvt-compra.bvt-compra .bvt-cal-elegida{ margin-top:8px !important; font-size:13.5px !important; color:var(--ink-70) !important }

/* --- pasajeros: una fila compacta --- */
.bvt-compra.bvt-compra .bvt-paso-fila{
  display:flex !important; align-items:center !important; justify-content:space-between !important; gap:12px !important;
}
.bvt-compra.bvt-compra .bvt-paso-fila .bvt-paso-t{ margin:0 !important }
.bvt-compra.bvt-compra .bvt-stepper{
  display:flex !important; align-items:center !important; gap:2px !important; padding:3px !important;
  background:var(--campo) !important; border:1.5px solid var(--line) !important; border-radius:999px !important;
}
/* Botones y número son cajas flex de la misma altura, centradas: con texto
   suelto cada fuente apoya distinto y el número quedaba más abajo que − y +. */
.bvt-compra.bvt-compra .bvt-stepper button{
  display:flex !important; align-items:center !important; justify-content:center !important;
  width:34px !important; height:34px !important; flex:none !important; padding:0 !important;
  border:0 !important; border-radius:50% !important; background:transparent !important;
  color:var(--uva-700) !important; font-size:19px !important; font-weight:400 !important; line-height:1 !important; cursor:pointer !important;
  transition:background .15s, opacity .15s !important;
}
.bvt-compra.bvt-compra .bvt-stepper button:hover{ background:var(--lila) !important }
.bvt-compra.bvt-compra .bvt-stepper button[disabled]{ opacity:.3 !important; cursor:default !important; background:transparent !important }
.bvt-compra.bvt-compra .bvt-stepper output{
  display:flex !important; align-items:center !important; justify-content:center !important;
  min-width:30px !important; height:34px !important; line-height:1 !important;
  font-family:REM,'Segoe UI',sans-serif !important; font-size:16px !important; font-weight:600 !important; color:var(--ink) !important;
  font-variant-numeric:tabular-nums !important;
}

/* --- comprar --- */
.bvt-compra.bvt-compra .bvt-btn-compra{
  display:flex !important; align-items:center !important; justify-content:center !important;
  width:100% !important; min-height:52px !important; padding:0 16px !important; margin:0 !important;
  border:0 !important; border-radius:12px !important;
  background:linear-gradient(148deg,var(--uva-800),var(--uva-700)) !important; color:#fff !important;
  font-family:REM,'Segoe UI',sans-serif !important; font-size:16.5px !important; font-weight:600 !important;
  letter-spacing:-.005em !important; text-transform:none !important; cursor:pointer !important;
  box-shadow:0 12px 22px -14px rgba(62,18,89,.95) !important;
  transition:filter .18s, transform .1s, opacity .18s !important;
}
.bvt-compra.bvt-compra .bvt-btn-compra:hover{ filter:brightness(1.12) !important }
.bvt-compra.bvt-compra .bvt-btn-compra:active{ transform:translateY(1px) !important }
.bvt-compra.bvt-compra .bvt-btn-compra[disabled]{ opacity:.45 !important; cursor:not-allowed !important; box-shadow:none !important; filter:none !important; transform:none !important }
.bvt-compra.bvt-compra .bvt-micro{
  margin-top:-12px !important; font-size:12px !important; line-height:1.45 !important; color:var(--ink-50) !important; text-align:center !important;
}
.bvt-compra.bvt-compra .bvt-vacio{
  padding:14px !important; border-radius:12px !important; background:var(--lila) !important;
  color:var(--uva-800) !important; text-align:center !important; font-weight:500 !important;
}

/* --- aviso para administradores (va afuera del bloque) --- */
.bvt-compra-aviso.bvt-compra-aviso{
  margin:0 0 12px !important; padding:12px 14px !important;
  border:1.5px dashed #E0A23A !important; border-radius:10px !important; background:#FFF8E6 !important; color:#5C4300 !important;
  font-family:'Work Sans','Segoe UI',system-ui,sans-serif !important; font-size:13.5px !important; line-height:1.5 !important;
}
.bvt-compra-aviso.bvt-compra-aviso ul{ margin:6px 0 0 18px !important; padding:0 !important }
