.pgb2bs-booking{
  --pgb2bs-bg:#f4f8fb;
  --pgb2bs-panel:#ffffff;
  --pgb2bs-primary:#0e4f9f;
  --pgb2bs-secondary:#11a887;
  --pgb2bs-border:rgba(15,35,54,.12);
  --pgb2bs-border-strong:rgba(14,79,159,.16);
  --pgb2bs-text:#0f2336;
  --pgb2bs-muted:#637587;
  --pgb2bs-soft:#eef5f9;
  --pgb2bs-soft-2:#f8fbfd;
  --pgb2bs-danger:#b42318;
  color:var(--pgb2bs-text);
  padding:28px 0;
}
.pgb2bs-booking *{box-sizing:border-box}
.pgb2bs-booking__shell{
  width:min(1240px,100%);
  margin:0 auto;
  border:1px solid var(--pgb2bs-border);
  border-radius:30px;
  padding:28px;
  background:radial-gradient(circle at top left,rgba(17,168,135,.12),transparent 24%),radial-gradient(circle at top right,rgba(14,79,159,.10),transparent 28%),#fff;
  box-shadow:0 28px 70px rgba(15,35,54,.10);
}
.pgb2bs-booking__header{margin-bottom:26px}
.pgb2bs-booking__eyebrow{
  display:inline-flex;padding:8px 14px;border-radius:999px;
  background:rgba(14,79,159,.08);border:1px solid rgba(14,79,159,.14);
  color:var(--pgb2bs-primary);text-transform:uppercase;letter-spacing:.18em;font-size:.75rem;font-weight:800;
}
.pgb2bs-booking__header h2{margin:16px 0 10px;font-size:clamp(2rem,3vw,3rem);line-height:1.08;color:var(--pgb2bs-text);letter-spacing:-.03em}
.pgb2bs-booking__header p{margin:0;color:var(--pgb2bs-muted);font-size:1.02rem;max-width:760px;line-height:1.7}
.pgb2bs-booking__grid{display:grid;grid-template-columns:minmax(0,1.02fr) minmax(0,1fr);gap:24px}
.pgb2bs-card{
  background:var(--pgb2bs-panel);
  border:1px solid var(--pgb2bs-border);
  border-radius:24px;
  padding:24px;
  box-shadow:0 16px 40px rgba(15,35,54,.06);
}
.pgb2bs-calendar__topbar{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:18px}
.pgb2bs-calendar__month{font-size:1.15rem;font-weight:800;color:var(--pgb2bs-text);text-align:center;flex:1}
.pgb2bs-nav-btn{
  border:1px solid var(--pgb2bs-border);background:var(--pgb2bs-soft-2);color:var(--pgb2bs-primary);
  width:44px;height:44px;border-radius:14px;cursor:pointer;font-size:1.45rem;line-height:1;transition:transform .2s ease,border-color .2s ease,background .2s ease,box-shadow .2s ease;
}
.pgb2bs-nav-btn:hover{transform:translateY(-1px);border-color:var(--pgb2bs-border-strong);background:#fff;box-shadow:0 10px 24px rgba(14,79,159,.10)}
.pgb2bs-calendar__weekdays,.pgb2bs-calendar__days{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:10px}
.pgb2bs-calendar__weekdays{margin-bottom:10px}
.pgb2bs-calendar__weekday,.pgb2bs-calendar__day{min-height:52px;display:flex;align-items:center;justify-content:center;border-radius:16px}
.pgb2bs-calendar__weekday{color:var(--pgb2bs-muted);font-size:.84rem;text-transform:uppercase;letter-spacing:.08em;font-weight:700}
.pgb2bs-calendar__day{
  position:relative;border:1px solid rgba(15,35,54,.07);background:var(--pgb2bs-soft-2);color:var(--pgb2bs-text);cursor:pointer;
  transition:transform .2s ease,border-color .2s ease,background .2s ease,box-shadow .2s ease;font-weight:700;
}
.pgb2bs-calendar__day:hover:not(:disabled){transform:translateY(-1px);border-color:var(--pgb2bs-border-strong);background:#fff;box-shadow:0 10px 22px rgba(14,79,159,.08)}
.pgb2bs-calendar__day[disabled]{opacity:.34;cursor:not-allowed;background:#f1f5f9;color:#9aa7b3}
.pgb2bs-calendar__day.is-empty{visibility:hidden;pointer-events:none}
.pgb2bs-calendar__day.is-selected{background:linear-gradient(135deg,var(--pgb2bs-primary),var(--pgb2bs-secondary));color:#fff;border-color:transparent;box-shadow:0 14px 28px rgba(14,79,159,.20)}
.pgb2bs-calendar__day.is-today::after{content:'';position:absolute;bottom:7px;left:50%;transform:translateX(-50%);width:6px;height:6px;border-radius:999px;background:var(--pgb2bs-secondary)}
.pgb2bs-details{display:flex;flex-direction:column;gap:20px}
.pgb2bs-details__section{display:flex;flex-direction:column;gap:10px}
.pgb2bs-details__label,.pgb2bs-summary__label{color:var(--pgb2bs-muted);text-transform:uppercase;letter-spacing:.12em;font-size:.78rem;font-weight:800}
.pgb2bs-details__selected-date{font-size:1.3rem;font-weight:800;color:var(--pgb2bs-text)}
.pgb2bs-slots-message,.pgb2bs-form__feedback{color:var(--pgb2bs-muted);font-size:.95rem}
.pgb2bs-slots{display:flex;flex-wrap:wrap;gap:10px}
.pgb2bs-slot{
  border:1px solid rgba(14,79,159,.14);background:var(--pgb2bs-soft-2);color:var(--pgb2bs-text);padding:12px 14px;border-radius:999px;cursor:pointer;font-weight:700;min-width:86px;
  transition:transform .2s ease,border-color .2s ease,background .2s ease,box-shadow .2s ease;
}
.pgb2bs-slot:hover:not(:disabled){transform:translateY(-1px);border-color:var(--pgb2bs-border-strong);background:#fff;box-shadow:0 10px 22px rgba(14,79,159,.08)}
.pgb2bs-slot.is-selected{background:linear-gradient(135deg,var(--pgb2bs-primary),var(--pgb2bs-secondary));color:#fff;border-color:transparent}
.pgb2bs-slot:disabled{opacity:.35;cursor:not-allowed;text-decoration:line-through}
.pgb2bs-form{display:flex;flex-direction:column;gap:16px}
.pgb2bs-summary{display:grid;gap:8px;padding:18px;border-radius:18px;border:1px solid var(--pgb2bs-border);background:linear-gradient(135deg,rgba(14,79,159,.08),rgba(17,168,135,.08))}
.pgb2bs-summary__item{display:flex;align-items:center;justify-content:space-between;gap:12px;color:var(--pgb2bs-muted)}
.pgb2bs-summary__item strong{color:var(--pgb2bs-text)}
.pgb2bs-field-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
.pgb2bs-field-grid--single{grid-template-columns:minmax(0,1fr)}
.pgb2bs-field{display:flex;flex-direction:column;gap:8px}
.pgb2bs-field span{color:var(--pgb2bs-muted);font-size:.9rem;font-weight:600}
.pgb2bs-field input,.pgb2bs-field select{
  width:100%;border-radius:16px;border:1px solid rgba(15,35,54,.12);padding:15px 16px;background:#fff;color:var(--pgb2bs-text);outline:none;
  transition:border-color .2s ease,box-shadow .2s ease,background .2s ease;
}
.pgb2bs-field input:focus,.pgb2bs-field select:focus{border-color:rgba(14,79,159,.46);box-shadow:0 0 0 4px rgba(14,79,159,.08)}
.pgb2bs-field input::placeholder{color:#8a98a6}
.pgb2bs-field select{-webkit-appearance:none;-moz-appearance:none;appearance:none;padding-right:46px;background-image:linear-gradient(45deg,transparent 50%, var(--pgb2bs-primary) 50%),linear-gradient(135deg,var(--pgb2bs-primary) 50%, transparent 50%);background-position:calc(100% - 22px) calc(50% - 3px),calc(100% - 16px) calc(50% - 3px);background-size:6px 6px,6px 6px;background-repeat:no-repeat}
.pgb2bs-field select option{background-color:#fff;color:var(--pgb2bs-text)}
.pgb2bs-submit-btn{
  width:100%;border:0;padding:16px 24px;border-radius:18px;background:linear-gradient(135deg,var(--pgb2bs-primary),var(--pgb2bs-secondary));color:#fff;font-size:1rem;font-weight:800;cursor:pointer;
  box-shadow:0 18px 34px rgba(14,79,159,.18);transition:transform .2s ease,box-shadow .2s ease,opacity .2s ease;
}
.pgb2bs-submit-btn:hover{transform:translateY(-1px);box-shadow:0 20px 38px rgba(14,79,159,.24)}
.pgb2bs-submit-btn:disabled{opacity:.6;cursor:wait}
.pgb2bs-form__feedback.is-error{color:var(--pgb2bs-danger)}
.pgb2bs-form__feedback.is-success{color:#08785f}
@media (max-width:960px){.pgb2bs-booking__grid{grid-template-columns:1fr}}
@media (max-width:640px){
  .pgb2bs-booking{padding:18px 0}
  .pgb2bs-booking__shell{padding:18px;border-radius:22px}
  .pgb2bs-card{padding:18px;border-radius:20px}
  .pgb2bs-calendar__weekdays,.pgb2bs-calendar__days{gap:6px}
  .pgb2bs-calendar__weekday,.pgb2bs-calendar__day{min-height:44px;border-radius:12px;font-size:.92rem}
  .pgb2bs-field-grid{grid-template-columns:1fr}
  .pgb2bs-booking__header h2{font-size:1.75rem}
}


/* v2.4.8 - Forzado visual PROGYNE para evitar caché/estilos heredados oscuros del plugin de Filo Negro. */
.pgb2bs-booking.pgb2bs-theme-progyne,
.pgb2bs-booking.pgb2bs-theme-progyne *{
  color-scheme:light !important;
}
.pgb2bs-booking.pgb2bs-theme-progyne{
  background:transparent !important;
  color:#0f2336 !important;
}
.pgb2bs-booking.pgb2bs-theme-progyne .pgb2bs-booking__shell{
  background:
    radial-gradient(circle at 8% 0,rgba(17,168,135,.14),transparent 28%),
    radial-gradient(circle at 100% 0,rgba(14,79,159,.12),transparent 30%),
    #ffffff !important;
  border-color:rgba(15,35,54,.12) !important;
  box-shadow:0 28px 70px rgba(15,35,54,.10) !important;
}
.pgb2bs-booking.pgb2bs-theme-progyne .pgb2bs-card,
.pgb2bs-booking.pgb2bs-theme-progyne .pgb2bs-details,
.pgb2bs-booking.pgb2bs-theme-progyne .pgb2bs-calendar{
  background:#ffffff !important;
  border-color:rgba(15,35,54,.12) !important;
  box-shadow:0 16px 40px rgba(15,35,54,.06) !important;
}
.pgb2bs-booking.pgb2bs-theme-progyne .pgb2bs-booking__header h2,
.pgb2bs-booking.pgb2bs-theme-progyne .pgb2bs-details__selected-date,
.pgb2bs-booking.pgb2bs-theme-progyne .pgb2bs-calendar__month,
.pgb2bs-booking.pgb2bs-theme-progyne .pgb2bs-summary__item strong{
  color:#0f2336 !important;
}
.pgb2bs-booking.pgb2bs-theme-progyne .pgb2bs-booking__header p,
.pgb2bs-booking.pgb2bs-theme-progyne .pgb2bs-calendar__weekday,
.pgb2bs-booking.pgb2bs-theme-progyne .pgb2bs-details__label,
.pgb2bs-booking.pgb2bs-theme-progyne .pgb2bs-summary__label,
.pgb2bs-booking.pgb2bs-theme-progyne .pgb2bs-summary__item,
.pgb2bs-booking.pgb2bs-theme-progyne .pgb2bs-field span,
.pgb2bs-booking.pgb2bs-theme-progyne .pgb2bs-slots-message,
.pgb2bs-booking.pgb2bs-theme-progyne .pgb2bs-form__feedback{
  color:#637587 !important;
}
.pgb2bs-booking.pgb2bs-theme-progyne .pgb2bs-booking__eyebrow{
  background:rgba(14,79,159,.08) !important;
  border-color:rgba(14,79,159,.14) !important;
  color:#0e4f9f !important;
}
.pgb2bs-booking.pgb2bs-theme-progyne .pgb2bs-nav-btn,
.pgb2bs-booking.pgb2bs-theme-progyne .pgb2bs-calendar__day,
.pgb2bs-booking.pgb2bs-theme-progyne .pgb2bs-slot{
  background:#f8fbfd !important;
  border-color:rgba(15,35,54,.10) !important;
  color:#0f2336 !important;
}
.pgb2bs-booking.pgb2bs-theme-progyne .pgb2bs-nav-btn:hover,
.pgb2bs-booking.pgb2bs-theme-progyne .pgb2bs-calendar__day:hover:not(:disabled),
.pgb2bs-booking.pgb2bs-theme-progyne .pgb2bs-slot:hover:not(:disabled){
  background:#ffffff !important;
  border-color:rgba(14,79,159,.20) !important;
  color:#0e4f9f !important;
}
.pgb2bs-booking.pgb2bs-theme-progyne .pgb2bs-calendar__day.is-selected,
.pgb2bs-booking.pgb2bs-theme-progyne .pgb2bs-slot.is-selected,
.pgb2bs-booking.pgb2bs-theme-progyne .pgb2bs-submit-btn{
  background:linear-gradient(135deg,#0e4f9f,#11a887) !important;
  color:#ffffff !important;
  border-color:transparent !important;
}
.pgb2bs-booking.pgb2bs-theme-progyne .pgb2bs-summary{
  background:linear-gradient(135deg,rgba(14,79,159,.08),rgba(17,168,135,.08)) !important;
  border-color:rgba(15,35,54,.12) !important;
}
.pgb2bs-booking.pgb2bs-theme-progyne .pgb2bs-field input,
.pgb2bs-booking.pgb2bs-theme-progyne .pgb2bs-field select{
  background:#ffffff !important;
  border-color:rgba(15,35,54,.12) !important;
  color:#0f2336 !important;
  -webkit-text-fill-color:#0f2336 !important;
}
.pgb2bs-booking.pgb2bs-theme-progyne .pgb2bs-field input::placeholder{
  color:#8a98a6 !important;
  -webkit-text-fill-color:#8a98a6 !important;
}
.pgb2bs-booking.pgb2bs-theme-progyne .pgb2bs-field select option{
  background:#ffffff !important;
  color:#0f2336 !important;
}
