/* Reserverra booking widget — reproduces the proven legacy escape-room calendar look
   (dark slot chips, yellow hover glow, orange accent, round player radios, popup form). */

:root{
  --chip:#252525; --chip-dead:#e8e8e8; --chip-dead-ink:#bdbdbd;
  --accent:#F1623A; --accent-dark:#901238; --glow:#fceb83; --ink:#535353;
}
.rv-widget{font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;color:#2b2b2b}
.rv-widget h1{font-size:34px;margin:0 0 6px;letter-spacing:.2px}
.rv-widget .lede{color:#6a6a6a;max-width:60ch;margin:0 0 6px}
.rv-widget .meta{color:#6a6a6a;font-size:14px;margin:8px 0 4px}
.rv-widget .meta b{color:#2b2b2b}
.rv-back a{color:#8a8a8a;text-decoration:none;font-size:14px}

/* ---- calendar ---- */
.calendar{max-width:900px;margin:24px auto 0;position:relative}
.calendar:after{content:" ";display:table;clear:both}
.calendar__inner{position:relative;margin-bottom:26px}
.calendar__table{overflow:hidden}
.calendar__row{display:flex}
.calendar__col{flex:1 1 14.28%;min-width:0}
.calendar__title{font-size:15px;color:#666;text-align:center;padding-bottom:16px;min-height:56px}
.calendar__title strong{display:block;font-weight:700;color:#2b2b2b}
.calendar__title span{font-weight:400;font-size:13px}
.calendar__item{padding:5px 0}
.calendar__item a{display:block;max-width:74px;margin:0 auto;padding:10px;text-align:center;
  text-decoration:none;cursor:default;outline:none;color:var(--chip-dead-ink);background:var(--chip-dead);
  font-size:16px;border-radius:6px;position:relative;user-select:none;transition:.2s ease}
.calendar__item a.is-active{background:var(--chip);color:#fff;cursor:pointer}
.calendar__item a.is-active:hover{color:var(--glow);box-shadow:0 0 0 3px var(--glow)}
.calendar__item a.is-active:after{content:attr(data-title);position:absolute;bottom:100%;left:0;
  margin-bottom:8px;white-space:nowrap;background:#383838;color:#fff;padding:7px 10px;font-size:12px;
  line-height:12px;border-radius:4px;box-shadow:4px 4px 8px rgba(0,0,0,.3);opacity:0;visibility:hidden;
  transition:.2s ease;pointer-events:none}
.calendar__item a.is-active:hover:after{opacity:1;visibility:visible;transform:translateY(-4px)}

/* ---- week nav ---- */
.calendar-nav{max-width:390px;margin:0 auto;display:flex;align-items:center;justify-content:center;gap:10px}
.calendar-nav__btn{width:50px;height:50px;line-height:50px;color:#fff;text-align:center;border-radius:50%;
  background:var(--chip);font-size:20px;border:none;cursor:pointer;transition:.3s ease;flex:0 0 auto}
.calendar-nav__btn:hover{color:var(--glow);box-shadow:0 0 0 3px var(--glow)}
.calendar-nav__btn.disabled{background:#ececec;color:#bdbdbd;cursor:default;box-shadow:none}
.calendar-nav__week{background:#eee;border-radius:25px;height:50px;line-height:50px;text-align:center;
  font-weight:700;padding:0 22px;min-width:220px}

/* ---- popup booking form (magnific dialog) ---- */
.booking-popup{background:#fff;padding:38px 46px 52px;text-align:left;width:760px;max-width:94vw;
  margin:40px auto;position:relative;color:var(--ink);border-radius:6px}
.booking-popup h3{margin:6px 0 26px;font-size:27px;color:#2b2b2b;font-weight:700}
.esc-booking-popup-item{margin-bottom:18px}
.esc-booking-popup-label{font-size:16px;font-weight:700;display:inline-block;width:180px;margin-top:12px;vertical-align:top}
.esc-booking-popup-input{outline:none;height:50px;width:520px;max-width:60%;font-size:19px;padding-left:12px;
  border-radius:10px;border:2px solid #e0e0e0;color:var(--ink);box-sizing:border-box}
.esc-booking-popup-input:focus{border-color:var(--accent)}
.booking-popup-radios{display:inline-block;vertical-align:top}
.booking-popup-radios input[type=radio]{display:none}
.booking-popup-radios input[type=radio]+label{display:inline-block;text-align:center;font-size:19px;
  width:50px;height:50px;line-height:44px;margin:0 8px 8px 0;border-radius:50%;border:3px solid #e0e0e0;
  color:#ccc;cursor:pointer;font-weight:700;box-sizing:border-box}
.booking-popup-radios input[type=radio]:checked+label{color:var(--accent);border-color:var(--accent)}
.booking-price{font-size:22px;font-weight:700;color:#2b2b2b;margin:6px 0 0 180px}
.booking-price small{font-weight:400;font-size:14px;color:#8a8a8a}
.booking-popup-go{position:relative;display:inline-block;margin:22px 0 0 180px;padding:16px 52px 16px 24px;
  border-radius:8px;font-size:18px;font-weight:700;text-decoration:none;background:var(--accent);color:#fff;
  border:none;outline:none;cursor:pointer;transition:background .2s ease}
.booking-popup-go:hover{background:var(--accent-dark)}
.booking-popup-go:after{content:'\2192';position:absolute;right:18px;top:16px}
.booking-note{color:#8a8a8a;font-size:13px;margin:16px 0 0 180px}

@media only screen and (max-width:840px){
  .calendar__title strong{font-size:13px}
  .calendar__item a{font-size:14px;padding:8px}
  .booking-popup{padding:32px 18px 40px}
  .esc-booking-popup-label{display:block;width:100%;padding-bottom:6px;margin-top:0}
  .esc-booking-popup-input{width:100%;max-width:100%}
  .booking-price,.booking-popup-go,.booking-note{margin-left:0}
}
