/* booking page — minimal, matches .ct-page design system */
.bk-page .ct-copy h1{font-size:clamp(2.6rem,6vw,4.6rem);letter-spacing:-.055em}
.bk-page .bk-points{list-style:none;margin:14px 0 0;padding:0;display:grid;gap:14px;max-width:420px}
.bk-page .bk-points li{display:grid;gap:4px;padding:16px 18px;border:1px solid var(--ct-line);border-radius:16px;background:#fff}
.bk-page .bk-points li span{font-weight:700;font-size:1rem;letter-spacing:-.01em;color:var(--ct-ink)}
.bk-page .bk-points li small{font-size:.88rem;line-height:1.5;color:var(--ct-mut)}
.bk-page .bk-points li::before{content:"\2713";display:inline-grid;place-items:center;width:22px;height:22px;border-radius:50%;background:rgba(8,118,237,.1);color:var(--ct-accent);font-size:.78rem;font-weight:800;margin-bottom:4px}

.bk-page .bk-wrap{gap:0}
.bk-page .bk-form{gap:28px}

.bk-page .bk-step{display:grid;gap:14px}
.bk-page .bk-step-head{display:flex;align-items:center;gap:12px;font-weight:700;letter-spacing:-.01em;color:var(--ct-ink)}
.bk-page .bk-step-head b{display:inline-grid;place-items:center;width:26px;height:26px;border-radius:50%;background:var(--ct-ink);color:#fff;font-size:.82rem;font-weight:700}
.bk-page .bk-step-head span{font-size:1.05rem}
.bk-page .bk-tz{margin-left:auto;font-size:.78rem;font-weight:500;color:var(--ct-mut);letter-spacing:.02em}

/* date pills */
.bk-page .bk-dates{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(78px,1fr);gap:10px;overflow-x:auto;padding:4px 2px 10px;scroll-snap-type:x mandatory;scrollbar-width:thin}
.bk-page .bk-dates::-webkit-scrollbar{height:6px}
.bk-page .bk-dates::-webkit-scrollbar-thumb{background:#dde0e8;border-radius:4px}
.bk-page .bk-date{display:grid;place-items:center;gap:2px;padding:14px 10px;border:1px solid var(--ct-line);border-radius:16px;background:#fff;color:var(--ct-ink);font:inherit;cursor:pointer;scroll-snap-align:start;transition:border-color .2s,background .2s,color .2s,transform .2s}
.bk-page .bk-date:hover{border-color:#c6cad4;transform:translateY(-1px)}
.bk-page .bk-date small{font-size:.72rem;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--ct-mut)}
.bk-page .bk-date b{font-size:1.4rem;font-weight:800;letter-spacing:-.03em;line-height:1}
.bk-page .bk-date em{font-size:.7rem;font-style:normal;font-weight:600;color:var(--ct-mut);text-transform:uppercase;letter-spacing:.08em}
.bk-page .bk-date.is-on{background:var(--ct-ink);border-color:var(--ct-ink);color:#fff}
.bk-page .bk-date.is-on small,
.bk-page .bk-date.is-on em{color:rgba(255,255,255,.65)}

/* time slots */
.bk-page .bk-slots{display:grid;grid-template-columns:repeat(auto-fill,minmax(104px,1fr));gap:10px}
.bk-page .bk-slot{display:grid;place-items:center;min-height:48px;padding:0 10px;border:1px solid var(--ct-line);border-radius:12px;background:#fff;color:var(--ct-ink);font:inherit;font-size:.95rem;font-weight:600;letter-spacing:-.01em;cursor:pointer;transition:border-color .2s,background .2s,color .2s,transform .2s}
.bk-page .bk-slot:hover{border-color:#c6cad4;transform:translateY(-1px)}
.bk-page .bk-slot.is-on{background:var(--ct-accent);border-color:var(--ct-accent);color:#fff;box-shadow:0 6px 16px rgba(8,118,237,.22)}
.bk-page .bk-slots-empty,.bk-page .bk-slots-note{margin:0;font-size:.9rem;color:var(--ct-mut)}

/* service select */
.bk-page .bk-select{width:100%;min-height:56px;padding:0 44px 0 20px;border:1px solid var(--ct-line);border-radius:14px;background:#fff url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='none' stroke='%235a6171' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'><path d='M6 9l6 6 6-6'/></svg>") right 18px center/14px 14px no-repeat;color:var(--ct-ink);font:inherit;font-size:.98rem;transition:border-color .2s,box-shadow .2s;appearance:none}
.bk-page .bk-select:focus{outline:none;border-color:var(--ct-accent);box-shadow:0 0 0 3px rgba(8,118,237,.12)}
.bk-page .bk-select:required:invalid{color:#9199a6}
.bk-page .bk-select option{color:var(--ct-ink)}

.bk-page .bk-select{padding-right:44px}

/* submit button — flat, no glow, spinner on load */
.bk-page .bk-submit button,
.bk-page .bk-submit button:hover,
.bk-page .bk-submit button:focus,
.bk-page .bk-submit button:active,
.bk-page .bk-submit button:disabled{gap:12px;box-shadow:none !important}
.bk-page .bk-submit button b{display:inline-grid;place-items:center;width:30px;height:30px;border-radius:50%;background:rgba(255,255,255,.18);font-weight:700;transition:transform .3s}
.bk-page .bk-submit button:hover b{transform:translate(2px,-2px)}
.bk-page .bk-submit button.is-loading{cursor:wait;opacity:1}
.bk-page .bk-submit button.is-loading b{display:none}
.bk-page .bk-submit button.is-loading::after{content:"";width:18px;height:18px;border:2px solid rgba(255,255,255,.35);border-top-color:#fff;border-radius:50%;animation:bk-spin .7s linear infinite;margin-left:4px}
@keyframes bk-spin{to{transform:rotate(360deg)}}

/* kill any stray shadow on the booking form wrappers */
.bk-page .ct-form-wrap,
.bk-page .bk-wrap,
.bk-page .ct-form,
.bk-page .bk-form{box-shadow:none}

/* make sure the form actually hides when the success card is shown */
.bk-page .ct-form[hidden]{display:none}

/* fail status — more prominent + shake */
.bk-page .ct-status.is-error{padding:14px 16px;background:#fef2f2;border:1px solid #f1b6b9;color:#b4282f;font-weight:600;border-radius:12px}
.bk-page .ct-status.is-error::before{content:"\26A0";margin-right:8px;font-weight:700}
@keyframes bk-shake{0%,100%{transform:translateX(0)}20%,60%{transform:translateX(-4px)}40%,80%{transform:translateX(4px)}}
.bk-page .ct-status.is-shake{animation:bk-shake .45s cubic-bezier(.36,.07,.19,.97) both}

/* soft note when EmailJS isn't yet configured (local-only booking) */
.bk-page .ct-done.is-local::after{content:"EmailJS is not yet configured locally — add your keys to email-config.js to actually send emails.";display:block;padding:10px 14px;border-radius:10px;background:#fff8e5;border:1px solid #f0e2b6;color:#8a6d2a;font-size:.85rem}

@media(max-width:719px){
  .bk-page .bk-points li{padding:14px 16px}
  .bk-page .bk-dates{grid-auto-columns:minmax(72px,1fr)}
  .bk-page .bk-date{padding:12px 8px;border-radius:14px}
  .bk-page .bk-date b{font-size:1.25rem}
  .bk-page .bk-slot{min-height:44px;border-radius:10px;font-size:.9rem}
  .bk-page .bk-form{gap:24px}
}
