/* =============================================================
   Beachfront Booking Widget — widget.css  v5.1.0
   Scoped to .bmt-widget. Design tokens: #e52020 red, #fba518 orange,
   #FEF1E4 cream, #1C0D0A dark, Figtree body, Forum headings.
   ============================================================= */

.bmt-widget *, .bmt-widget *::before, .bmt-widget *::after {
	box-sizing: border-box; margin: 0; padding: 0;
}
.bmt-widget {
	font-family: 'Figtree', sans-serif; font-size: 16px;
	color: #1C0D0A; line-height: 1.6;
	width: 100%; max-width: 560px; margin: 0 auto;
}

/* ── Loading ── */
.bmt-w-loading { display:flex; flex-direction:column; align-items:center; justify-content:center; padding:48px 24px; color:#6b7280; font-size:14px; gap:12px; }
.bmt-w-spinner { width:32px; height:32px; border:3px solid #FEF1E4; border-top-color:#e52020; border-radius:50%; animation:bmt-spin .7s linear infinite; }
@keyframes bmt-spin { to { transform:rotate(360deg); } }

/* ── Wrap ── */
.bmt-w-wrap { background:#fff; border-radius:16px; box-shadow:0 2px 20px rgba(28,13,10,.08); overflow:hidden; }

/* ── Progress ── */
.bmt-w-progress { display:flex; background:#FEF1E4; }
.bmt-w-progress-step { flex:1; display:flex; flex-direction:column; align-items:center; padding:12px 4px; font-size:11px; font-weight:600; color:#9ca3af; text-transform:uppercase; letter-spacing:.04em; gap:4px; border-bottom:3px solid transparent; transition:color .2s; }
.bmt-w-progress-step.active { color:#e52020; border-bottom-color:#e52020; }
.bmt-w-progress-step.done { color:#6b7280; border-bottom-color:#e5d7d1; }
.bmt-w-progress-step .step-num { width:22px; height:22px; border-radius:50%; background:#e5d7d1; display:flex; align-items:center; justify-content:center; font-size:11px; font-weight:700; transition:background .2s,color .2s; }
.bmt-w-progress-step.active .step-num { background:#e52020; color:#fff; }
.bmt-w-progress-step.done .step-num { background:#6b7280; color:#fff; }
.bmt-w-progress-step .step-label { display:none; }
@media (min-width:420px) { .bmt-w-progress-step .step-label { display:block; } }

/* ── Step body ── */
.bmt-w-step { display:none; padding:24px 20px; }
.bmt-w-step.active { display:block; }
.bmt-w-step-title { font-family:'Forum',serif; font-size:22px; font-weight:400; color:#1C0D0A; margin-bottom:20px; }

/* ── Form elements ── */
.bmt-w-field { margin-bottom:16px; }
.bmt-w-field label { display:block; font-size:13px; font-weight:600; color:#374151; margin-bottom:6px; }
.bmt-w-required { color:#e52020; }
.bmt-w-input, .bmt-w-select { width:100%; padding:12px 14px; border:1.5px solid #e5d7d1; border-radius:10px; font-family:'Figtree',sans-serif; font-size:15px; color:#1C0D0A; background:#fff; transition:border-color .2s,box-shadow .2s; appearance:none; -webkit-appearance:none; }
.bmt-w-input:focus, .bmt-w-select:focus { outline:none; border-color:#e52020; box-shadow:0 0 0 3px rgba(229,32,32,.12); }
.bmt-w-input.error, .bmt-w-select.error { border-color:#ef4444; }
.bmt-w-date-input { width:100%; padding:12px 14px; border:1.5px solid #e5d7d1; border-radius:10px; font-family:'Figtree',sans-serif; font-size:15px; color:#1C0D0A; background:#fff; cursor:pointer; transition:border-color .2s,box-shadow .2s; }
.bmt-w-date-input:focus { outline:none; border-color:#e52020; box-shadow:0 0 0 3px rgba(229,32,32,.12); }

/* ── Duration cards ── */
.bmt-w-duration-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(120px,1fr)); gap:10px; }
.bmt-w-duration-card { border:1.5px solid #e5d7d1; border-radius:12px; padding:14px 10px; text-align:center; cursor:pointer; transition:border-color .2s,background .2s,transform .1s; background:#fff; }
.bmt-w-duration-card:hover { border-color:#fba518; background:#fffbf5; }
.bmt-w-duration-card.selected { border-color:#e52020; background:#fff5f5; }
.bmt-w-duration-card:active { transform:scale(.97); }
.bmt-w-duration-mins { font-family:'Forum',serif; font-size:20px; color:#1C0D0A; display:block; }
.bmt-w-duration-price { font-size:13px; font-weight:600; color:#e52020; margin-top:2px; display:block; }

/* ── Therapist cards ── */
.bmt-w-therapist-list { display:flex; flex-direction:column; gap:8px; }
.bmt-w-therapist-card { display:flex; align-items:center; gap:14px; padding:14px 16px; border:1.5px solid #e5d7d1; border-radius:12px; cursor:pointer; transition:border-color .2s,background .2s; background:#fff; }
.bmt-w-therapist-card:hover { border-color:#fba518; background:#fffbf5; }
.bmt-w-therapist-card.selected { border-color:#e52020; background:#fff5f5; }
.bmt-w-therapist-avatar { width:40px; height:40px; border-radius:50%; background:#FEF1E4; display:flex; align-items:center; justify-content:center; font-size:18px; flex-shrink:0; }
.bmt-w-therapist-name { font-size:15px; font-weight:600; color:#1C0D0A; }
.bmt-w-therapist-sub { font-size:12px; color:#6b7280; margin-top:1px; }

/* ── Slot grid ── */
.bmt-w-slots-loading { display:flex; align-items:center; gap:10px; padding:16px 0; color:#6b7280; font-size:14px; }
.bmt-w-slots-loading .bmt-w-spinner { width:20px; height:20px; border-width:2px; }
.bmt-w-slots-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:8px; margin-top:12px; }
@media (min-width:380px) { .bmt-w-slots-grid { grid-template-columns:repeat(4,1fr); } }

.bmt-w-slot { padding:10px 6px; border:1.5px solid #e5d7d1; border-radius:8px; text-align:center; font-size:14px; font-weight:600; cursor:pointer; transition:border-color .15s,background .15s; background:#fff; color:#1C0D0A; }
.bmt-w-slot:hover:not(.bmt-w-slot-held) { border-color:#fba518; background:#fffbf5; }
.bmt-w-slot.selected { border-color:#e52020; background:#e52020; color:#fff; }
.bmt-w-slot.selected .bmt-w-slot-count { color:rgba(255,255,255,.8); }

/* ── Slot availability count (Any Available only) ── */
.bmt-w-slot-count { font-size:10px; font-weight:400; color:#6b7280; margin-top:2px; line-height:1; }

/* ── Held slots ── */
.bmt-w-slot-held { opacity:.45; cursor:not-allowed; border-style:dashed; }

.bmt-w-no-slots { padding:20px 0; text-align:center; color:#6b7280; font-size:14px; }

/* ── Health fund row ── */
.bmt-w-hf-row { display:none; background:#FEF1E4; border:1.5px solid #e5d7d1; border-radius:10px; padding:14px 16px; margin-top:12px; margin-bottom:0; }
.bmt-w-hf-row.visible { display:block; }
.bmt-w-hf-label { display:flex; align-items:flex-start; gap:10px; cursor:pointer; }
.bmt-w-hf-checkbox { width:18px; height:18px; margin-top:2px; accent-color:#e52020; flex-shrink:0; cursor:pointer; }
.bmt-w-hf-text { font-size:14px; font-weight:600; color:#1C0D0A; }
.bmt-w-hf-text small { display:block; font-weight:400; color:#6b7280; margin-top:2px; }
.bmt-w-hf-unavailable { display:none; margin-top:10px; font-size:13px; color:#92400e; background:#fef3c7; border:1px solid #fcd34d; border-radius:6px; padding:8px 10px; }

/* ── Client details ── */
.bmt-w-fields-row { display:grid; grid-template-columns:1fr 1fr; gap:12px; }
@media (max-width:380px) { .bmt-w-fields-row { grid-template-columns:1fr; } }

/* ── Payment step ── */
.bmt-w-summary-box { background:#FEF1E4; border-radius:12px; padding:16px 18px; margin-bottom:20px; font-size:14px; }
.bmt-w-summary-box h3 { font-family:'Forum',serif; font-size:18px; font-weight:400; margin-bottom:12px; color:#1C0D0A; }
.bmt-w-summary-row { display:flex; justify-content:space-between; padding:6px 0; border-bottom:1px solid #e5d7d1; color:#374151; }
.bmt-w-summary-row:last-child { border-bottom:none; font-weight:700; color:#1C0D0A; font-size:15px; padding-top:8px; }
.bmt-w-pay-options { display:flex; flex-direction:column; gap:10px; margin-bottom:8px; }
.bmt-w-pay-btn { display:flex; align-items:center; gap:14px; padding:16px 18px; border:1.5px solid #e5d7d1; border-radius:12px; cursor:pointer; background:#fff; text-align:left; transition:border-color .2s,background .2s; width:100%; }
.bmt-w-pay-btn:hover { border-color:#fba518; background:#fffbf5; }
.bmt-w-pay-btn.selected { border-color:#e52020; background:#fff5f5; }
.bmt-w-pay-icon { font-size:26px; flex-shrink:0; }
.bmt-w-pay-title { font-size:15px; font-weight:700; color:#1C0D0A; display:block; }
.bmt-w-pay-desc { font-size:12px; color:#6b7280; margin-top:1px; display:block; }
.bmt-w-bpoint-wrap { display:none; margin-top:16px; border:1.5px solid #e5d7d1; border-radius:12px; overflow:hidden; }
.bmt-w-bpoint-wrap.visible { display:block; }
.bmt-w-bpoint-wrap iframe { width:100%; min-height:360px; border:none; display:block; }

/* ── Confirmation ── */
.bmt-w-confirm { padding:32px 20px; text-align:center; }
.bmt-w-confirm-icon { font-size:52px; margin-bottom:12px; }
.bmt-w-confirm h2 { font-family:'Forum',serif; font-size:26px; font-weight:400; color:#1C0D0A; margin-bottom:8px; }
.bmt-w-confirm p { font-size:15px; color:#374151; margin-bottom:6px; }
.bmt-w-ref { display:inline-block; background:#FEF1E4; border-radius:8px; padding:6px 14px; font-weight:700; font-size:15px; color:#e52020; margin:8px 0 16px; }
.bmt-w-new-booking-btn { display:inline-block; margin-top:8px; padding:12px 28px; background:#e52020; color:#fff; border:none; border-radius:30px; font-size:15px; font-weight:600; cursor:pointer; transition:background .2s; font-family:'Figtree',sans-serif; }
.bmt-w-new-booking-btn:hover { background:#fba518; }

/* ── Error ── */
.bmt-w-error { background:#fef2f2; border:1px solid #fecaca; border-left:4px solid #ef4444; border-radius:8px; padding:10px 14px; font-size:14px; color:#991b1b; margin-bottom:16px; display:none; }
.bmt-w-error.visible { display:block; }

/* ── Nav ── */
.bmt-w-nav { display:flex; justify-content:space-between; align-items:center; gap:10px; margin-top:20px; padding-top:16px; border-top:1px solid #f3f4f6; flex-wrap:wrap; }
.bmt-w-back { background:none; border:1.5px solid #e5d7d1; border-radius:30px; padding:10px 20px; font-size:14px; font-weight:600; color:#6b7280; cursor:pointer; transition:border-color .2s,color .2s; font-family:'Figtree',sans-serif; }
.bmt-w-back:hover { border-color:#1C0D0A; color:#1C0D0A; }
.bmt-w-add-another { border-color:#fba518 !important; color:#fba518 !important; }
.bmt-w-add-another:hover { background:#fffbf5 !important; border-color:#e52020 !important; color:#e52020 !important; }
.bmt-w-add-another:disabled { opacity:.4; cursor:not-allowed; }
.bmt-w-next { background:#e52020; border:none; border-radius:30px; padding:12px 28px; font-size:15px; font-weight:600; color:#fff; cursor:pointer; transition:background .2s,opacity .2s; font-family:'Figtree',sans-serif; flex:1; max-width:280px; }
.bmt-w-next:hover:not(:disabled) { background:#fba518; }
.bmt-w-next:disabled { opacity:.5; cursor:not-allowed; }
.bmt-w-next.loading { opacity:.7; pointer-events:none; }
.bmt-w-next .bmt-w-btn-spinner { display:none; width:16px; height:16px; border:2px solid rgba(255,255,255,.4); border-top-color:#fff; border-radius:50%; animation:bmt-spin .6s linear infinite; vertical-align:middle; margin-right:6px; }
.bmt-w-next.loading .bmt-w-btn-spinner { display:inline-block; }

/* ── General ── */
.bmt-widget-error { color:#991b1b; font-size:14px; padding:12px; background:#fef2f2; border-radius:8px; }
