/* ============================
  Richiweb Booking Front
  Scope: #rwkb-booking
============================ */
#rwkb-booking.rwkb-wrap{
  --rwkb-bg:#ffffff;
  --rwkb-b:#e5e7eb;
  --rwkb-t:#111827;
  --rwkb-m:#6b7280;
  --rwkb-ok:#065f46;
  --rwkb-okbg:#ecfdf5;
  --rwkb-okb:#a7f3d0;
  --rwkb-er:#991b1b;
  --rwkb-erbg:#fef2f2;
  --rwkb-erb:#fecaca;
  --rwkb-pr:#111827;
  --rwkb-pr2:#0f172a;

  font-family: system-ui, -apple-system, Segoe UI, Roboto, Arial, sans-serif;
  color:var(--rwkb-t);
  background:transparent;
  max-width: 980px;
  margin: 0 auto;
}

/* ✅ patch: algunos themes/Elementor aplican colores globales (p.ej. textos blancos)
   y se “pierden” títulos/labels dentro del form. Forzamos colores dentro del wrapper. */
#rwkb-booking .rwkb-title,
#rwkb-booking .rwkb-sub,
#rwkb-booking .rwkb-h3,
#rwkb-booking label,
#rwkb-booking .rwkb-check span,
#rwkb-booking .rwkb-field small{
  color: var(--rwkb-t) !important;
}

#rwkb-booking .rwkb-sub,
#rwkb-booking .rwkb-field small{
  color: var(--rwkb-m) !important;
}

#rwkb-booking .rwkb-head{
  background:var(--rwkb-bg);
  border:1px solid var(--rwkb-b);
  border-radius:16px;
  padding:16px 18px;
  margin-bottom:12px;
}
#rwkb-booking .rwkb-title{margin:0;font-size:20px;letter-spacing:.2px}
#rwkb-booking .rwkb-sub{margin:6px 0 0;color:var(--rwkb-m);font-size:13px}

#rwkb-booking .rwkb-alert{
  border-radius:14px;
  padding:12px 14px;
  margin: 10px 0 12px;
  display:none;
  border:1px solid var(--rwkb-b);
  background:#f9fafb;
  font-size:14px;
  transition: all .25s ease;
}
#rwkb-booking .rwkb-alert.is-ok{background:var(--rwkb-okbg);border-color:var(--rwkb-okb);color:var(--rwkb-ok)}
#rwkb-booking .rwkb-alert.is-err{background:var(--rwkb-erbg);border-color:var(--rwkb-erb);color:var(--rwkb-er)}

#rwkb-booking .rwkb-form{
  background:var(--rwkb-bg);
  border:1px solid var(--rwkb-b);
  border-radius:16px;
  padding: 14px;
}

#rwkb-booking .rwkb-req{color:#dc2626;font-weight:700}

#rwkb-booking .rwkb-steps{
  display:flex;
  gap:8px;
  flex-wrap:wrap;
  margin-bottom:12px;
}
#rwkb-booking .rwkb-step{
  border:1px solid var(--rwkb-b);
  background:#f9fafb;
  color:var(--rwkb-t);
  padding:8px 10px;
  border-radius:999px;
  cursor:pointer;
  font-size:12px;
  font-weight:700;
  text-align:center;
}
#rwkb-booking .rwkb-step.is-active{
  background:var(--rwkb-pr);
  border-color:var(--rwkb-pr);
  color:#fff;
}

#rwkb-booking .rwkb-panel{display:none}
#rwkb-booking .rwkb-panel.is-active{display:block}

#rwkb-booking .rwkb-h3{
  margin: 10px 0 10px;
  font-size:15px;
}

#rwkb-booking .rwkb-grid{
  display:grid;
  grid-template-columns: 1fr 1fr;
  gap: 12px;
}
#rwkb-booking .rwkb-field{display:flex;flex-direction:column;gap:6px}
#rwkb-booking .rwkb-field--full{grid-column:1 / -1}

#rwkb-booking input[type="text"],
#rwkb-booking input[type="email"],
#rwkb-booking input[type="url"],
#rwkb-booking input[type="number"],
#rwkb-booking select,
#rwkb-booking textarea{
  border:1px solid var(--rwkb-b);
  border-radius:12px;
  padding:10px 12px;
  font-size:14px;
  outline:none;
  background:#fff;
  transition: border-color .2s ease, box-shadow .2s ease;
}

#rwkb-booking input:focus,
#rwkb-booking textarea:focus,
#rwkb-booking select:focus{
  border-color: var(--rwkb-pr);
  box-shadow: 0 0 0 2px rgba(17,24,39,.08);
}

#rwkb-booking textarea{resize:vertical}
#rwkb-booking small{color:var(--rwkb-m);font-size:12px}

#rwkb-booking .rwkb-checkgrid{
  display:grid;
  grid-template-columns: repeat(3, minmax(0,1fr));
  gap:8px;
}
#rwkb-booking .rwkb-checkrow{
  display:flex;
  gap:10px;
  flex-wrap:wrap;
}
#rwkb-booking .rwkb-check{
  display:flex;
  align-items:center;
  gap:8px;
  padding:8px 10px;
  border:1px solid var(--rwkb-b);
  border-radius:12px;
  background:#f9fafb;
  cursor:pointer;
  user-select:none;
}
#rwkb-booking .rwkb-check input{margin:0}

#rwkb-booking .rwkb-ref-links{display:grid;gap:8px}

#rwkb-booking .rwkb-plan-card{
  margin-top:10px;
  border:1px solid rgba(255,255,255,.15);
  border-radius:14px;
  padding:12px;
  background:#0b1220;
  color:#fff;
}
#rwkb-booking .rwkb-plan-top{
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:10px;
}
#rwkb-booking .rwkb-plan-title{font-weight:800}
#rwkb-booking .rwkb-plan-sub{
  font-size:13px;
  opacity:.85;
  margin-top:2px;
}
#rwkb-booking .rwkb-plan-badge{
  display:inline-block;
  background:#f59e0b;
  color:#111827;
  padding:4px 10px;
  border-radius:999px;
  font-size:12px;
  font-weight:800;
}
#rwkb-booking .rwkb-plan-price{
  margin-top:8px;
  font-size:20px;
  font-weight:900;
}
#rwkb-booking .rwkb-plan-price span{
  font-size:12px;
  opacity:.75;
  font-weight:600;
}
#rwkb-booking .rwkb-plan-list{
  margin:10px 0 0;
  padding:0 0 0 18px;
  display:grid;
  gap:6px;
  color: rgba(255,255,255,.92);
}
#rwkb-booking .rwkb-plan-list li{font-size:13px}

#rwkb-booking .rwkb-files-list{
  margin-top:10px;
  display:grid;
  gap:8px;
}
#rwkb-booking .rwkb-file{
  display:flex;
  justify-content:space-between;
  gap:10px;
  border:1px solid var(--rwkb-b);
  border-radius:12px;
  padding:10px 12px;
  background:#f9fafb;
}
#rwkb-booking .rwkb-file span{color:var(--rwkb-m);font-size:12px}

#rwkb-booking .rwkb-actions{
  margin-top:12px;
  display:flex;
  gap:10px;
  flex-wrap:wrap;
}

#rwkb-booking .rwkb-nav{
  margin-top:12px;
  display:flex;
  justify-content:space-between;
  gap:10px;
}

#rwkb-booking .rwkb-btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:8px;
  border-radius:12px;
  padding:10px 14px;
  border:1px solid var(--rwkb-b);
  cursor:pointer;
  font-weight:800;
  font-size:14px;
  background:#fff;
}
#rwkb-booking .rwkb-btn--primary{
  background:var(--rwkb-pr);
  border-color:var(--rwkb-pr);
  color:#fff;
}
#rwkb-booking .rwkb-btn--ghost{
  background:#f9fafb;
  color:var(--rwkb-t);
}
#rwkb-booking .rwkb-btn:disabled{opacity:.6;cursor:not-allowed}

/* Advisor box */
#rwkb-booking .rwkb-advisor{
  margin-top:14px;
  background:#fff;
  border:1px dashed #cbd5e1;
  border-radius:16px;
  padding:14px;
}

/* Honeypot hidden */
#rwkb-booking .rwkb-hp{position:absolute;left:-9999px;top:-9999px;height:1px;width:1px;overflow:hidden}

/* Responsive */
@media (max-width: 860px){
  #rwkb-booking .rwkb-grid{grid-template-columns:1fr}
  #rwkb-booking .rwkb-checkgrid{grid-template-columns: repeat(2, minmax(0,1fr))}
}
@media (max-width: 520px){
  #rwkb-booking .rwkb-checkgrid{grid-template-columns:1fr}
  #rwkb-booking .rwkb-step{flex:1}
}
