/* ===== Book Now popup (GSF × KINVENT) — works on top of style.css ===== */
.bk-modal{
  --bk-orange:var(--orange,#f47a21);--bk-orange-dark:var(--orange-dark,#d9640f);--bk-orange-soft:var(--orange-soft,#fff3ea);
  --bk-navy:var(--navy,#232d71);--bk-navy-soft:var(--navy-soft,#eef0f8);--bk-bg2:var(--bg-2,#f2f4f7);
  --bk-line:var(--line,#e4e7ef);--bk-muted:var(--muted,#5d6480);--bk-text:var(--text,#1b2140);
  position:fixed;inset:0;z-index:1000;display:flex;align-items:center;justify-content:center;padding:20px;
  visibility:hidden;opacity:0;transition:opacity .25s,visibility 0s .25s;
}
.bk-modal.open{visibility:visible;opacity:1;transition:opacity .25s}
.bk-modal [hidden]{display:none!important}
body.bk-lock{overflow:hidden}

.bk-backdrop{position:absolute;inset:0;background:rgba(23,30,82,.62);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px)}
.bk-dialog{
  position:relative;width:100%;max-width:560px;max-height:calc(100vh - 40px);overflow-y:auto;
  background:#fff;color:var(--bk-text);border-radius:22px;box-shadow:0 40px 90px -30px rgba(0,0,0,.6);
  transform:translateY(24px) scale(.97);transition:transform .3s cubic-bezier(.2,.8,.2,1);
}
.bk-modal.open .bk-dialog{transform:none}
.bk-dialog::before{content:"";position:sticky;top:0;display:block;height:6px;z-index:2;background:linear-gradient(90deg,var(--bk-orange) 0 60%,var(--bk-navy) 60%)}

.bk-close{position:absolute;top:16px;right:16px;z-index:3;width:38px;height:38px;border-radius:50%;border:0;cursor:pointer;
  background:rgba(255,255,255,.15);color:#fff;font-size:1.6rem;line-height:1;display:grid;place-items:center;transition:background .2s}
.bk-close:hover{background:var(--bk-orange)}

/* Header */
.bk-head{background:var(--bk-navy);color:#fff;padding:26px 30px 22px;position:relative;overflow:hidden}
.bk-head::after{content:"";position:absolute;width:220px;height:220px;right:-80px;top:-90px;border-radius:50%;background:radial-gradient(circle,rgba(244,122,33,.5),transparent 65%)}
.bk-eyebrow{font-size:.72rem;font-weight:600;letter-spacing:.16em;text-transform:uppercase;color:var(--bk-orange)}
.bk-head h3{color:#fff;font-size:1.45rem;margin:6px 0 10px;padding-right:40px}
.bk-meta{display:flex;flex-wrap:wrap;gap:8px 16px;font-size:.84rem;color:#c9cde6}
.bk-steps{list-style:none;display:flex;gap:6px;margin:20px 0 0;padding:0;position:relative;z-index:1}
.bk-step{flex:1;display:flex;align-items:center;gap:8px;font-size:.78rem;color:#aab0d6;padding-top:10px;border-top:3px solid rgba(255,255,255,.18);transition:color .3s,border-color .3s}
.bk-step b{width:22px;height:22px;border-radius:50%;display:grid;place-items:center;font-size:.72rem;background:rgba(255,255,255,.14);color:#fff;flex:none}
.bk-step.active{color:#fff;border-color:var(--bk-orange)}
.bk-step.active b{background:var(--bk-orange)}
.bk-step.done{color:#fff;border-color:#4cc38a}
.bk-step.done b{background:#4cc38a;font-size:0}
.bk-step.done b::after{content:"✓";font-size:.75rem}

/* Body */
.bk-body{padding:26px 30px 28px}
.bk-summary{display:flex;justify-content:space-between;align-items:center;gap:14px;margin:6px 0 14px;padding:16px 18px;border-radius:12px;background:var(--bk-orange-soft);border:1px dashed rgba(244,122,33,.45)}
.bk-summary span{display:block;font-weight:600;color:var(--bk-navy)}
.bk-summary small{color:var(--bk-muted);font-size:.78rem}
.bk-summary strong{font-family:"Montserrat",sans-serif;font-size:1.55rem;color:var(--bk-navy);white-space:nowrap}
.bk-agree{display:flex;gap:10px;align-items:flex-start;font-size:.85rem;color:var(--bk-muted);margin-bottom:14px;cursor:pointer}
.bk-agree input{width:18px;height:18px;margin-top:2px;accent-color:var(--bk-orange);flex:none}
.bk-pay{width:100%;padding:16px;font-size:1rem}
.bk-pay[disabled]{opacity:.75;cursor:wait;transform:none}
.bk-spin{width:16px;height:16px;border:2px solid rgba(255,255,255,.45);border-top-color:#fff;border-radius:50%;animation:bkspin .7s linear infinite}
@keyframes bkspin{to{transform:rotate(360deg)}}
.bk-secure{text-align:center;font-size:.78rem;color:var(--bk-muted);margin-top:12px}
.bk-secure b{color:var(--bk-navy)}

/* Success */
.bk-success{padding:34px 30px 32px;text-align:center}
.bk-tick{width:76px;height:76px;margin:0 auto 16px;border-radius:50%;background:#e9f8ee;color:#17924d;font-size:2.4rem;font-weight:700;display:grid;place-items:center;animation:bkpop .45s cubic-bezier(.2,1.4,.4,1)}
@keyframes bkpop{from{transform:scale(.4);opacity:0}}
.bk-success h3{font-size:1.5rem;margin-bottom:8px}
.bk-success>p{color:var(--bk-muted);font-size:.95rem}
.bk-receipt{margin:22px 0 14px;text-align:left;border:1px solid var(--bk-line);border-radius:12px;overflow:hidden}
.bk-receipt div{display:flex;justify-content:space-between;gap:14px;padding:12px 16px;border-bottom:1px solid var(--bk-line);font-size:.9rem}
.bk-receipt div:last-child{border-bottom:0}
.bk-receipt div:first-child{background:var(--bk-orange-soft)}
.bk-receipt dt{color:var(--bk-muted)}
.bk-receipt dd{margin:0;font-weight:600;color:var(--bk-navy);text-align:right;word-break:break-all}
.bk-small{font-size:.8rem!important;margin-bottom:18px}
.bk-success .btn{min-width:160px}

@media (max-width:560px){
  .bk-modal{padding:0;align-items:flex-end}
  .bk-dialog{max-height:94vh;border-radius:20px 20px 0 0}
  .bk-head{padding:22px 20px 18px}
  .bk-body,.bk-success{padding:22px 20px 26px}
  .bk-step{font-size:.7rem;gap:6px}
  .bk-modal .form-row{grid-template-columns:1fr}
}
