/* Jack Bookings: customer booking widget.
   Built to survive theme and page-builder button styles: buttons are reset, then styled here. */
.jb-widget{--jb-accent:#1f6feb;--jb-rgb:31,111,235;--jb-line:rgba(127,127,127,.32);--jb-soft:rgba(127,127,127,.1);
  font:inherit;color:inherit;width:100%;max-width:560px;margin:0 auto;padding:24px 20px;border:1px solid var(--jb-line);border-radius:16px;box-sizing:border-box;text-align:left}
.jb-widget *,.jb-widget *::before,.jb-widget *::after{box-sizing:border-box}
.jb-widget p{margin:0 0 12px}

/* Buttons: neutralise the theme, then each kind sets what it needs. */
.jb-widget button.jb-b{all:unset!important;box-sizing:border-box!important;display:inline-flex!important;align-items:center!important;justify-content:center!important;
  cursor:pointer!important;font:inherit!important;line-height:1.2!important;text-align:center!important;color:inherit!important;-webkit-tap-highlight-color:transparent}
.jb-widget button.jb-b:disabled{cursor:default!important}
.jb-widget button.jb-b:focus-visible{outline:3px solid var(--jb-accent)!important;outline-offset:2px!important}

/* Headings and titles */
.jb-widget .jb-title{text-align:center;margin:0 0 4px}
.jb-widget .jb-biz{opacity:.65;font-size:.95em;margin:0 0 4px}
.jb-widget h3.jb-h{margin:0 0 6px!important;padding:0!important;font-size:1.55em!important;line-height:1.2!important;font-weight:700!important;color:inherit!important;text-transform:none!important;letter-spacing:0!important}
.jb-widget h4.jb-pick{margin:0 0 16px!important;padding:0!important;text-align:center;font-size:1.15em!important;line-height:1.3!important;font-weight:600!important;color:inherit!important;text-transform:none!important}
.jb-widget .jb-metas{display:flex;flex-wrap:wrap;justify-content:center;gap:4px 16px;opacity:.72}
.jb-widget .jb-meta{display:inline-flex;align-items:center;gap:6px}
.jb-widget .jb-ico{width:16px;height:16px;flex:none}
.jb-widget hr.jb-rule{border:0!important;border-top:1px solid var(--jb-line)!important;margin:18px 0!important;height:0!important;background:none!important}
.jb-widget .jb-sub{opacity:.75;text-align:center}

.jb-widget .jb-top{display:flex;align-items:center;margin:-6px 0 10px}
.jb-widget button.jb-b.jb-back{padding:8px 10px 8px 6px!important;border-radius:8px!important;gap:4px!important;opacity:.8;font-size:.95em!important;background:transparent!important;border:0!important}
.jb-widget button.jb-b.jb-back:hover{opacity:1;background:var(--jb-soft)!important}

/* Service list */
.jb-widget button.jb-b.jb-svc{display:block!important;width:100%!important;text-align:left!important;margin:0 0 10px!important;padding:14px 16px!important;border:1px solid var(--jb-line)!important;border-radius:12px!important;background:transparent!important}
.jb-widget button.jb-b.jb-svc:hover{border-color:var(--jb-accent)!important;box-shadow:0 0 0 1px var(--jb-accent)!important}
.jb-widget .jb-svc-top{display:flex;justify-content:space-between;gap:12px;font-weight:600}
.jb-widget .jb-svc-meta{opacity:.72;font-size:.92em;margin-top:2px}
.jb-widget .jb-svc-desc{margin-top:6px;font-size:.95em;opacity:.9}

/* Calendar */
.jb-widget .jb-cal-wrap{max-width:400px;margin:0 auto}
.jb-widget .jb-cal-head{display:flex;align-items:center;justify-content:space-between;margin:0 0 10px}
.jb-widget .jb-cal-head strong{font-weight:600;font-size:1.05em}
.jb-widget button.jb-b.jb-nav{width:40px!important;height:40px!important;min-width:0!important;padding:0!important;border-radius:50%!important;font-size:24px!important;line-height:1!important;color:var(--jb-accent)!important;background:rgba(var(--jb-rgb),.12)!important;border:0!important}
.jb-widget button.jb-b.jb-nav:hover:not(:disabled){background:rgba(var(--jb-rgb),.22)!important}
.jb-widget button.jb-b.jb-nav:disabled{background:transparent!important;opacity:.3}
.jb-widget .jb-cal{display:grid!important;grid-template-columns:repeat(7,minmax(0,1fr))!important;row-gap:6px;column-gap:0;width:100%}
.jb-widget .jb-dow{text-align:center;font-size:.72em;letter-spacing:.06em;text-transform:uppercase;opacity:.6;padding:2px 0 8px}
.jb-widget .jb-blank{min-height:1px}
.jb-widget button.jb-b.jb-day{position:relative!important;width:min(44px,100%)!important;height:auto!important;min-width:0!important;min-height:0!important;aspect-ratio:1/1!important;margin:0 auto!important;padding:0!important;
  border:0!important;border-radius:50%!important;background:transparent!important;font-size:15px!important;font-variant-numeric:tabular-nums;color:inherit!important;opacity:.38}
.jb-widget button.jb-b.jb-day.is-open{opacity:1!important;font-weight:700!important;color:var(--jb-accent)!important;background:rgba(var(--jb-rgb),.12)!important}
.jb-widget button.jb-b.jb-day.is-open:hover{background:rgba(var(--jb-rgb),.24)!important}
.jb-widget button.jb-b.jb-day.is-on{background:var(--jb-accent)!important;color:#fff!important}
.jb-widget button.jb-b.jb-day.is-today::after{content:"";position:absolute;bottom:6px;left:50%;width:4px;height:4px;margin-left:-2px;border-radius:50%;background:currentColor}
.jb-widget .jb-empty-month{text-align:center;opacity:.75;margin:14px 0 0}

/* Times */
.jb-widget .jb-times{margin-top:18px}
.jb-widget .jb-slots-title{font-weight:600;text-align:center;margin:0 0 10px}
.jb-widget .jb-slots{display:grid;grid-template-columns:repeat(auto-fill,minmax(104px,1fr));gap:10px}
.jb-widget button.jb-b.jb-slot{min-height:46px!important;padding:8px!important;border:1.5px solid var(--jb-accent)!important;border-radius:10px!important;background:transparent!important;color:var(--jb-accent)!important;font-weight:700!important}
.jb-widget button.jb-b.jb-slot:hover{background:var(--jb-accent)!important;color:#fff!important}
.jb-widget .jb-tz{margin-top:22px;font-size:.92em}
.jb-widget .jb-tz strong{display:block;margin-bottom:4px}
.jb-widget .jb-tz span{display:inline-flex;align-items:center;gap:6px;opacity:.8}

/* Details form */
.jb-widget .jb-summary{padding:12px 14px;border-radius:12px;background:var(--jb-soft);margin:0 0 18px;text-align:center}
.jb-widget .jb-summary strong{display:block}
.jb-widget label.jb-f{display:block;margin:0 0 14px}
.jb-widget label.jb-f>span{display:block;font-weight:600;margin-bottom:4px}
.jb-widget label.jb-f input,.jb-widget label.jb-f textarea{display:block!important;width:100%!important;max-width:100%!important;margin:0!important;font:inherit!important;color:inherit!important;padding:11px 12px!important;border:1px solid var(--jb-line)!important;border-radius:10px!important;background:transparent!important;box-shadow:none!important}
.jb-widget label.jb-f input:focus,.jb-widget label.jb-f textarea:focus{border-color:var(--jb-accent)!important;outline:2px solid var(--jb-accent)!important;outline-offset:0!important}
.jb-widget .jb-hp{position:absolute!important;left:-9999px!important;width:1px!important;height:1px!important;overflow:hidden!important}
.jb-widget fieldset.jb-pay{border:1px solid var(--jb-line)!important;border-radius:12px!important;margin:0 0 18px!important;padding:8px 14px!important;min-width:0}
.jb-widget fieldset.jb-pay legend{font-weight:600;padding:0 6px}
.jb-widget label.jb-radio{display:flex!important;align-items:flex-start;gap:10px;padding:10px 0;margin:0;cursor:pointer}
.jb-widget label.jb-radio+label.jb-radio{border-top:1px solid var(--jb-line)}
.jb-widget label.jb-radio input{margin:.3em 0 0!important;flex:none}
.jb-widget label.jb-radio small{display:block;opacity:.7;font-size:.88em;line-height:1.35}

.jb-widget button.jb-b.jb-go{display:flex!important;width:100%!important;min-height:50px!important;padding:12px 18px!important;border:0!important;border-radius:12px!important;background:var(--jb-accent)!important;color:#fff!important;font-weight:700!important}
.jb-widget button.jb-b.jb-go:disabled{opacity:.6}
.jb-widget button.jb-b.jb-outline{padding:11px 18px!important;border:1.5px solid var(--jb-accent)!important;border-radius:12px!important;color:var(--jb-accent)!important;font-weight:700!important}
.jb-widget a.jb-go-link{display:flex;align-items:center;justify-content:center;width:100%;min-height:50px;padding:12px 18px;border-radius:12px;background:var(--jb-accent);color:#fff!important;font-weight:700;text-decoration:none!important;margin:0 0 12px}

.jb-widget .jb-err{margin:0 0 14px;padding:10px 12px;border-radius:10px;border:1px solid #d9534f;color:#b3261e;background:rgba(217,83,79,.1)}
.jb-widget .jb-load{opacity:.7;text-align:center;margin:18px 0}
.jb-widget .jb-note{font-size:.88em;opacity:.7;margin:16px 0 0}
.jb-widget .jb-done{text-align:center}
.jb-widget .jb-done .jb-summary{margin:14px 0}

@media (max-width:480px){
  .jb-widget{padding:18px 14px;border-radius:14px}
  .jb-widget h3.jb-h{font-size:1.35em!important}
}

/* Additional parties on a request */
.jb-widget .jb-party-title{font-weight:600;margin:0 0 10px}
.jb-widget fieldset.jb-party{border:1px solid var(--jb-line)!important;border-radius:12px!important;margin:0 0 16px!important;padding:12px 14px 2px!important;min-width:0}
.jb-widget fieldset.jb-party legend{font-weight:600;padding:0 6px}
