
:root{--jbw-accent:#b68b5a;--jbw-accent-dark:#8c673f;--jbw-ink:#151515;--jbw-soft-ink:#666;--jbw-line:#e7e7e7;--jbw-mist:#f7f7f7;--jbw-shadow:0 12px 34px rgba(0,0,0,.06);--jbw-success:#2d6a4f}
.jbw-booking-wrap{background:#fff;border:1px solid var(--jbw-line);border-radius:24px;padding:28px;box-shadow:var(--jbw-shadow);max-width:760px;overflow:hidden}
.jbw-booking-main{min-width:0}
.jbw-steps{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin:0 0 22px;padding:0;list-style:none}
.jbw-step{background:var(--jbw-mist);border:1px solid var(--jbw-line);border-radius:18px;padding:14px 16px}
.jbw-step-number{display:block;font-size:.78rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--jbw-accent-dark);margin-bottom:5px}
.jbw-step-text{display:block;color:var(--jbw-ink);font-weight:600;font-size:.96rem}
.jbw-grid{display:grid;grid-template-columns:1.2fr .8fr;gap:16px;margin-bottom:18px}
.jbw-field label{display:block;font-weight:700;margin-bottom:8px;color:var(--jbw-ink);font-size:13px;letter-spacing:.02em;text-transform:uppercase}
.jbw-field input{width:100%;min-height:52px;padding:0 14px;border:1px solid #dcdcdc;border-radius:14px;background:#f7f7f7;color:var(--jbw-ink);font-size:15px;box-sizing:border-box;transition:all .22s ease;box-shadow:none}
.jbw-field input:focus{outline:none;border-color:#111;background:#fff;box-shadow:0 0 0 4px rgba(0,0,0,.06)}
.jbw-slots-status{margin:6px 0 14px;min-height:28px;color:var(--jbw-ink);font-weight:600;display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.jbw-status-pill{display:inline-flex;align-items:center;justify-content:center;padding:7px 11px;border-radius:999px;background:#efefef;color:#222;font-size:.75rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase}
.jbw-status-pill.is-loading{background:#f3f3f3;color:var(--jbw-soft-ink)}
.jbw-status-pill.is-success{background:#e7f2ea;color:var(--jbw-success)}
.jbw-status-pill.is-empty{background:#f8ece8;color:#935041}
.jbw-slots{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin-bottom:22px;position:relative}
.jbw-slots.is-loading{min-height:170px}
.jbw-slots.is-loading::before{content:"";position:absolute;inset:0;border-radius:18px;background:linear-gradient(90deg,rgba(240,240,240,.95) 25%,rgba(250,250,250,.98) 50%,rgba(240,240,240,.95) 75%);background-size:200% 100%;animation:jbwShimmer 1.15s linear infinite}
@keyframes jbwShimmer{0%{background-position:200% 0}100%{background-position:-200% 0}}
.jbw-slot-btn{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;width:100%;padding:16px;border:1px solid #ddd;border-radius:16px;background:linear-gradient(180deg,#fbfbfb 0%,#f0f0f0 100%);color:#111;cursor:pointer;transition:transform .18s ease,box-shadow .22s ease,background .22s ease,border-color .22s ease,color .22s ease;text-align:center;min-height:74px;box-shadow:0 2px 8px rgba(0,0,0,.04)}
.jbw-slot-btn:hover{transform:translateY(-2px);border-color:#111;background:#fff;box-shadow:0 10px 24px rgba(0,0,0,.10)}
.jbw-slot-btn.is-active{border-color:#111;background:#111;color:#fff;box-shadow:0 12px 24px rgba(0,0,0,.18)}
.jbw-slot-top{display:flex;align-items:center;justify-content:center;gap:10px;width:100%}
.jbw-time{font-weight:700;font-size:15px;line-height:1.3}
.jbw-remaining{font-size:12px;color:var(--jbw-soft-ink)}
.jbw-slot-btn.is-active .jbw-remaining{color:rgba(255,255,255,.82)}
.jbw-slot-check{position:absolute;right:10px;top:-9px;border:1px solid #d8d8d8;border-radius:999px;background:#fff;color:#111;padding:4px 9px;font-size:11px;font-weight:700;line-height:1;box-shadow:0 4px 10px rgba(0,0,0,.08);opacity:0;transform:translateY(4px);transition:opacity .18s ease,transform .18s ease}
.jbw-slot-btn.is-active .jbw-slot-check{opacity:1;transform:translateY(0)}
.jbw-book-now.button.alt{display:inline-flex;align-items:center;justify-content:center;width:100%;min-height:54px;padding:14px 22px;border-radius:14px;background:#111;color:#fff;border:none;font-size:15px;font-weight:700;letter-spacing:.02em;box-shadow:0 12px 24px rgba(0,0,0,.14);cursor:pointer;transition:transform .18s ease,box-shadow .22s ease,background .22s ease}
.jbw-book-now.button.alt:hover{transform:translateY(-1px);background:#000;color:#fff;box-shadow:0 16px 28px rgba(0,0,0,.18)}
.jbw-book-now.button.alt:disabled{opacity:.45;cursor:not-allowed;box-shadow:none}

@media (max-width:767px){
  .jbw-booking-wrap{padding:20px;border-radius:20px}
  .jbw-steps,.jbw-grid{grid-template-columns:1fr}
  .jbw-slots{grid-template-columns:repeat(2,1fr)}
}
@media (max-width:480px){
  .jbw-slots{grid-template-columns:1fr}
}
