/**
 * Zufuk'x — Public Booking Widget
 * All styles scoped to .zfx-booking-widget — no theme conflicts.
 * Colors/fonts are intentionally left as CSS variables so the
 * designer can override them in Elementor or Gutenberg.
 */

/* ------------------------------------------------------------------ */
/* Design tokens — override per site                                    */
/* ------------------------------------------------------------------ */
.zfx-booking-widget {
	--zfx-bk-accent:        #815f39;
	--zfx-bk-accent-hover:  #6b4f2e;
	--zfx-bk-accent-light:  #efd7b5;
	--zfx-bk-accent-subtle: #f9f2e8;
	--zfx-bk-dark:          #1a1a1a;
	--zfx-bk-text:          #3a3a3a;
	--zfx-bk-muted:         #888;
	--zfx-bk-border:        #e4d8c8;
	--zfx-bk-bg:            #faf8f5;
	--zfx-bk-white:         #ffffff;
	--zfx-bk-success:       #27ae60;
	--zfx-bk-radius:        2px;
	--zfx-bk-shadow:        0 12px 40px rgba(0,0,0,.15);
	--zfx-bk-transition:    160ms ease;
	font-family: inherit;
	color: var(--zfx-bk-text);
	box-sizing: border-box;
}
.zfx-booking-widget *, .zfx-booking-widget *::before, .zfx-booking-widget *::after { box-sizing: inherit; }

/* ------------------------------------------------------------------ */
/* Empty state                                                          */
/* ------------------------------------------------------------------ */
.zfx-bk-empty { text-align:center; padding:3rem 1rem; color:var(--zfx-bk-muted); font-style:italic; }

/* ------------------------------------------------------------------ */
/* Service list accordion                                               */
/* ------------------------------------------------------------------ */
.zfx-bk-service-list { border:1px solid var(--zfx-bk-border); border-radius:var(--zfx-bk-radius); overflow:hidden; }
.zfx-bk-category + .zfx-bk-category { border-top:1px solid var(--zfx-bk-border); }

.zfx-bk-cat-toggle {
	display:flex; align-items:center; width:100%; padding:.9rem 1.25rem;
	background:var(--zfx-bk-bg); border:none; cursor:pointer; text-align:left;
	gap:.75rem; transition:background var(--zfx-bk-transition);
}
.zfx-bk-cat-toggle:hover { background:var(--zfx-bk-accent-subtle); }

.zfx-bk-cat-name { flex:1; font-size:.78rem; font-weight:700; letter-spacing:.12em; text-transform:uppercase; color:var(--zfx-bk-dark); }
.zfx-bk-cat-count { font-size:.75rem; color:var(--zfx-bk-muted); }
.zfx-bk-chevron { width:16px; height:16px; color:var(--zfx-bk-accent); transition:transform var(--zfx-bk-transition); flex-shrink:0; }
.zfx-bk-cat-toggle[aria-expanded="false"] .zfx-bk-chevron { transform:rotate(-90deg); }
.zfx-bk-cat-body { background:var(--zfx-bk-white); }

/* ------------------------------------------------------------------ */
/* Service row                                                          */
/* ------------------------------------------------------------------ */
.zfx-bk-service-row {
	display:flex; align-items:center; gap:1rem; padding:.85rem 1.25rem;
	border-top:1px solid var(--zfx-bk-border); transition:background var(--zfx-bk-transition);
}
.zfx-bk-service-row:hover { background:var(--zfx-bk-accent-subtle); }
.zfx-bk-service-row.zfx-in-cart { background:var(--zfx-bk-accent-subtle); }

.zfx-bk-svc-info { flex:1; min-width:0; }
.zfx-bk-svc-name { display:block; font-size:.9375rem; font-weight:500; color:var(--zfx-bk-dark); white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.zfx-bk-svc-desc { display:block; font-size:.78rem; color:var(--zfx-bk-muted); margin-top:.15rem; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }

.zfx-bk-svc-meta { display:flex; flex-direction:column; align-items:flex-end; gap:.1rem; flex-shrink:0; text-align:right; }
.zfx-bk-svc-duration { font-size:.75rem; color:var(--zfx-bk-muted); }
.zfx-bk-svc-price { font-size:.875rem; font-weight:600; color:var(--zfx-bk-accent); white-space:nowrap; }
.zfx-bk-svc-price-note { display:block; font-size:.68rem; font-style:italic; color:var(--zfx-bk-muted); text-align:right; margin-top:.1rem; white-space:nowrap; }

/* "Added to cart" badge */
.zfx-bk-in-cart-badge {
	display:inline-flex; align-items:center; gap:.3rem;
	background:var(--zfx-bk-success); color:#fff;
	font-size:.72rem; font-weight:700; padding:.3rem .65rem;
	border-radius:50px; white-space:nowrap; flex-shrink:0;
}
.zfx-bk-in-cart-badge svg { width:12px; height:12px; }

/* Book button */
.zfx-bk-book-btn {
	display:inline-flex; align-items:center; gap:.35rem;
	padding:.45rem .9rem; background:transparent;
	border:1px solid var(--zfx-bk-dark); border-radius:var(--zfx-bk-radius);
	color:var(--zfx-bk-dark); font-size:.78rem; font-weight:600;
	letter-spacing:.04em; white-space:nowrap; cursor:pointer;
	transition:background var(--zfx-bk-transition), color var(--zfx-bk-transition);
	flex-shrink:0;
}
.zfx-bk-book-btn svg { width:13px; height:13px; }
.zfx-bk-book-btn:hover { background:var(--zfx-bk-dark); color:var(--zfx-bk-white); }
.zfx-bk-book-btn.zfx-in-cart { border-color:var(--zfx-bk-accent); color:var(--zfx-bk-accent); }

/* ------------------------------------------------------------------ */
/* "Book now or add more?" prompt                                       */
/* ------------------------------------------------------------------ */
.zfx-bk-prompt-overlay {
	position:fixed; inset:0; background:rgba(0,0,0,.45); z-index:100000;
	display:flex; align-items:flex-end; justify-content:center;
	padding:1rem; transition:opacity .2s;
}
.zfx-bk-prompt-overlay[aria-hidden="true"] { display:none; }

.zfx-bk-prompt {
	background:var(--zfx-bk-white); border-radius:6px 6px 0 0;
	width:100%; max-width:480px; padding:1.5rem;
	box-shadow:0 -4px 24px rgba(0,0,0,.12);
	animation:zfxSlideUp .22s ease;
}

@keyframes zfxSlideUp {
	from { transform:translateY(100%); opacity:0; }
	to   { transform:translateY(0);    opacity:1; }
}

.zfx-bk-prompt-svc-name {
	font-size:.72rem; font-weight:700; letter-spacing:.1em; text-transform:uppercase;
	color:var(--zfx-bk-accent); margin:0 0 .35rem;
}
.zfx-bk-prompt-question {
	font-size:1.05rem; font-weight:700; color:var(--zfx-bk-dark);
	margin:0 0 1.25rem; line-height:1.3;
}
.zfx-bk-prompt-actions { display:grid; grid-template-columns:1fr 1fr; gap:.75rem; margin-bottom:.75rem; }

.zfx-bk-prompt-btn-primary,
.zfx-bk-prompt-btn-secondary {
	display:flex; align-items:center; justify-content:center; gap:.5rem;
	padding:.75rem .5rem; border-radius:var(--zfx-bk-radius);
	font-size:.875rem; font-weight:600; cursor:pointer;
	transition:background var(--zfx-bk-transition), color var(--zfx-bk-transition);
}
.zfx-bk-prompt-btn-primary svg,
.zfx-bk-prompt-btn-secondary svg { width:16px; height:16px; flex-shrink:0; }

.zfx-bk-prompt-btn-primary {
	background:var(--zfx-bk-dark); color:var(--zfx-bk-white); border:none;
}
.zfx-bk-prompt-btn-primary:hover { background:var(--zfx-bk-accent); }

.zfx-bk-prompt-btn-secondary {
	background:transparent; color:var(--zfx-bk-dark);
	border:1px solid var(--zfx-bk-border);
}
.zfx-bk-prompt-btn-secondary:hover { border-color:var(--zfx-bk-accent); background:var(--zfx-bk-accent-subtle); }

.zfx-bk-prompt-close {
	display:block; width:100%; text-align:center; background:none; border:none;
	color:var(--zfx-bk-muted); font-size:.825rem; cursor:pointer; padding:.35rem;
	transition:color var(--zfx-bk-transition);
}
.zfx-bk-prompt-close:hover { color:var(--zfx-bk-dark); }

/* ------------------------------------------------------------------ */
/* Floating cart button                                                 */
/* ------------------------------------------------------------------ */
.zfx-bk-cart-float {
	position:fixed; bottom:1.5rem; right:1.5rem; z-index:9999;
	animation:zfxFadeIn .3s ease;
}
@keyframes zfxFadeIn { from{opacity:0;transform:translateY(8px);} to{opacity:1;transform:translateY(0);} }

.zfx-bk-cart-btn {
	display:flex; align-items:center; gap:.6rem;
	padding:.75rem 1.25rem; background:var(--zfx-bk-dark); color:var(--zfx-bk-white);
	border:none; border-radius:50px; font-size:.875rem; font-weight:700;
	cursor:pointer; box-shadow:0 4px 16px rgba(0,0,0,.25);
	transition:background var(--zfx-bk-transition), transform .15s;
}
.zfx-bk-cart-btn:hover { background:var(--zfx-bk-accent); transform:translateY(-2px); }
.zfx-bk-cart-btn svg { width:18px; height:18px; }

.zfx-bk-cart-badge {
	background:var(--zfx-bk-accent); color:#fff; width:22px; height:22px;
	border-radius:50%; font-size:.72rem; font-weight:800;
	display:flex; align-items:center; justify-content:center;
	flex-shrink:0;
}

/* ------------------------------------------------------------------ */
/* Modal overlay                                                        */
/* ------------------------------------------------------------------ */
.zfx-bk-overlay {
	display:none; position:fixed; inset:0;
	background:rgba(0,0,0,.55); z-index:99999;
	align-items:center; justify-content:center; padding:1rem;
}
.zfx-bk-overlay[aria-hidden="false"] { display:flex; }

.zfx-bk-modal {
	background:var(--zfx-bk-white); border-radius:4px;
	width:100%; max-width:560px; max-height:92vh; overflow-y:auto;
	box-shadow:var(--zfx-bk-shadow); display:flex; flex-direction:column;
}

.zfx-bk-modal-header {
	display:flex; align-items:flex-start; justify-content:space-between;
	padding:1.4rem 1.5rem .9rem; border-bottom:1px solid var(--zfx-bk-border);
}
.zfx-bk-modal-eyebrow { font-size:.68rem; font-weight:700; letter-spacing:.12em; text-transform:uppercase; color:var(--zfx-bk-accent); margin:0 0 .25rem; }
.zfx-bk-modal-title { font-size:1.2rem; font-weight:700; color:var(--zfx-bk-dark); margin:0; line-height:1.3; }

.zfx-bk-close { background:none; border:none; padding:.25rem; cursor:pointer; color:var(--zfx-bk-muted); display:flex; align-items:center; border-radius:2px; transition:color var(--zfx-bk-transition); flex-shrink:0; margin-left:.5rem; }
.zfx-bk-close:hover { color:var(--zfx-bk-dark); }
.zfx-bk-close svg { width:18px; height:18px; }

/* Progress */
.zfx-bk-progress-wrap { padding:.9rem 1.5rem .4rem; border-bottom:1px solid var(--zfx-bk-border); }
.zfx-bk-progress-track { height:3px; background:var(--zfx-bk-border); border-radius:2px; margin-bottom:.55rem; }
.zfx-bk-progress-fill { height:100%; background:var(--zfx-bk-accent); border-radius:2px; transition:width .3s ease; }
.zfx-bk-step-labels { display:flex; justify-content:space-between; }
.zfx-bk-step-labels span { font-size:.68rem; color:var(--zfx-bk-muted); transition:color var(--zfx-bk-transition); }
.zfx-bk-step-labels span.active { color:var(--zfx-bk-accent); font-weight:700; }
.zfx-bk-step-labels span.done  { color:var(--zfx-bk-dark); }

.zfx-bk-modal-body { padding:1.4rem 1.5rem; flex:1; }

/* ------------------------------------------------------------------ */
/* Cart summary in wizard (step 1)                                      */
/* ------------------------------------------------------------------ */
.zfx-bk-cart-list { border:1px solid var(--zfx-bk-border); border-radius:var(--zfx-bk-radius); overflow:hidden; margin-bottom:1rem; }
.zfx-bk-cart-item { display:flex; align-items:center; gap:.75rem; padding:.75rem 1rem; border-bottom:1px solid var(--zfx-bk-border); }
.zfx-bk-cart-item:last-child { border-bottom:none; }
.zfx-bk-cart-item-info { flex:1; }
.zfx-bk-cart-item-name { font-size:.9rem; font-weight:600; color:var(--zfx-bk-dark); }
.zfx-bk-cart-item-meta { font-size:.78rem; color:var(--zfx-bk-muted); margin-top:.1rem; }
.zfx-bk-cart-item-price { font-size:.875rem; font-weight:700; color:var(--zfx-bk-accent); flex-shrink:0; }
.zfx-bk-cart-remove { background:none; border:none; color:var(--zfx-bk-muted); cursor:pointer; padding:.2rem; display:flex; border-radius:2px; transition:color var(--zfx-bk-transition); flex-shrink:0; }
.zfx-bk-cart-remove:hover { color:#c0392b; }
.zfx-bk-cart-remove svg { width:14px; height:14px; }

.zfx-bk-cart-total-row { display:flex; justify-content:space-between; align-items:center; padding:.5rem .25rem; font-size:.875rem; }
.zfx-bk-cart-total-val { font-weight:700; color:var(--zfx-bk-accent); font-size:1rem; }

/* ------------------------------------------------------------------ */
/* Pane internals (reused by all steps)                                 */
/* ------------------------------------------------------------------ */
.zfx-bk-pane-hint { font-size:.875rem; color:var(--zfx-bk-muted); margin:0 0 1.2rem; }
.zfx-bk-notice { display:flex; align-items:flex-start; gap:.5rem; background:var(--zfx-bk-accent-subtle); border-left:3px solid var(--zfx-bk-accent); border-radius:var(--zfx-bk-radius); padding:.75rem 1rem; font-size:.85rem; color:var(--zfx-bk-text); margin-bottom:1.2rem; }
.zfx-bk-notice svg { width:16px; height:16px; flex-shrink:0; margin-top:.1rem; color:var(--zfx-bk-accent); }

.zfx-bk-field-group { margin-bottom:1.2rem; }
.zfx-bk-field-group:last-child { margin-bottom:0; }
.zfx-bk-label { display:block; font-size:.77rem; font-weight:700; letter-spacing:.05em; text-transform:uppercase; color:var(--zfx-bk-dark); margin-bottom:.45rem; }
.zfx-bk-req { color:var(--zfx-bk-accent); }
.zfx-bk-row-2 { display:grid; grid-template-columns:1fr 1fr; gap:1rem; }

/* Stylist picker: small round photo preview next to the select */
.zfx-bk-stylist-picker { display:flex; align-items:center; gap:.6rem; }
.zfx-bk-stylist-picker .zfx-bk-input { flex:1; }
.zfx-bk-stylist-photo { width:34px; height:34px; flex:0 0 34px; border-radius:50%; overflow:hidden; background:var(--zfx-bk-light,#f3f3f3); border:1px solid var(--zfx-bk-border); display:flex; align-items:center; justify-content:center; }
.zfx-bk-stylist-photo img { width:100%; height:100%; object-fit:cover; }
.zfx-bk-stylist-photo .dashicons { font-size:18px; width:18px; height:18px; color:var(--zfx-bk-muted); }

/* Pills */
.zfx-bk-pills { display:flex; flex-wrap:wrap; gap:.4rem; }
.zfx-bk-pill { cursor:pointer; }
.zfx-bk-pill input[type="radio"] { position:absolute; opacity:0; width:0; height:0; }
.zfx-bk-pill span { display:inline-block; padding:.38rem .85rem; border:1px solid var(--zfx-bk-border); border-radius:50px; font-size:.8rem; color:var(--zfx-bk-text); transition:background var(--zfx-bk-transition),border-color var(--zfx-bk-transition),color var(--zfx-bk-transition); }
.zfx-bk-pill:hover span { border-color:var(--zfx-bk-accent); background:var(--zfx-bk-accent-subtle); }
.zfx-bk-pill input:checked + span { background:var(--zfx-bk-accent); border-color:var(--zfx-bk-accent); color:var(--zfx-bk-white); font-weight:600; }

/* Price preview */
.zfx-bk-price-preview { display:flex; align-items:center; justify-content:space-between; background:var(--zfx-bk-accent-subtle); border:1px solid var(--zfx-bk-accent-light); border-radius:var(--zfx-bk-radius); padding:.85rem 1.1rem; margin-top:1.2rem; }
.zfx-bk-price-label { font-size:.77rem; font-weight:700; letter-spacing:.05em; text-transform:uppercase; color:var(--zfx-bk-text); }
.zfx-bk-price-val { font-size:1.25rem; font-weight:700; color:var(--zfx-bk-accent); }

/* Inputs */
.zfx-bk-input { display:block; width:100%; padding:.58rem .8rem; border:1px solid var(--zfx-bk-border); border-radius:var(--zfx-bk-radius); font-size:.9rem; color:var(--zfx-bk-text); background:var(--zfx-bk-white); outline:none; transition:border-color var(--zfx-bk-transition),box-shadow var(--zfx-bk-transition); }
.zfx-bk-input:focus { border-color:var(--zfx-bk-accent); box-shadow:0 0 0 3px rgba(129,95,57,.1); }
.zfx-bk-textarea { resize:vertical; min-height:75px; }
select.zfx-bk-input { cursor:pointer; appearance:none; -webkit-appearance:none; background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%23888' stroke-width='2'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E"); background-repeat:no-repeat; background-position:right .6rem center; padding-right:2rem; }

/* Date field — a visible calendar icon makes it obvious a full calendar picker is
   available (so people can see the day of week), not just manual typing. */
input[type="date"].zfx-bk-input {
	cursor: pointer;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='18' height='18' viewBox='0 0 24 24' fill='none' stroke='%23815f39' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='4' width='18' height='18' rx='2'/%3E%3Cline x1='16' y1='2' x2='16' y2='6'/%3E%3Cline x1='8' y1='2' x2='8' y2='6'/%3E%3Cline x1='3' y1='10' x2='21' y2='10'/%3E%3C/svg%3E");
	background-repeat: no-repeat;
	background-position: right .7rem center;
	padding-right: 2.4rem;
}
input[type="date"].zfx-bk-input::-webkit-calendar-picker-indicator {
	position: absolute;
	right: 0;
	width: 2.4rem;
	height: 100%;
	opacity: 0;
	cursor: pointer;
}
.zfx-bk-field-group:has(input[type="date"]) { position: relative; }

/* Slots */
.zfx-bk-slots-grid { display:flex; flex-wrap:wrap; gap:.4rem; margin-top:.25rem; }
.zfx-bk-slots-hint { font-size:.85rem; color:var(--zfx-bk-muted); margin:0; }
.zfx-bk-slots-hint.zfx-bk-error { color:#c0392b; }
.zfx-bk-slot { padding:.38rem .7rem; border:1px solid var(--zfx-bk-border); border-radius:var(--zfx-bk-radius); font-size:.8rem; color:var(--zfx-bk-text); background:var(--zfx-bk-white); cursor:pointer; transition:background var(--zfx-bk-transition),border-color var(--zfx-bk-transition),color var(--zfx-bk-transition); }
.zfx-bk-slot:hover:not(:disabled) { border-color:var(--zfx-bk-accent); background:var(--zfx-bk-accent-subtle); }
.zfx-bk-slot.selected { background:var(--zfx-bk-accent); border-color:var(--zfx-bk-accent); color:var(--zfx-bk-white); font-weight:600; }
.zfx-bk-slot:disabled { opacity:.4; cursor:not-allowed; }

/* Booking summary (step 5) */
.zfx-bk-summary { border:1px solid var(--zfx-bk-border); border-radius:var(--zfx-bk-radius); overflow:hidden; }
.zfx-bk-sum-row { display:flex; align-items:baseline; justify-content:space-between; padding:.65rem 1rem; font-size:.875rem; border-bottom:1px solid var(--zfx-bk-border); }
.zfx-bk-sum-row:last-child { border-bottom:none; }
.zfx-bk-sum-key { color:var(--zfx-bk-muted); font-size:.77rem; font-weight:600; text-transform:uppercase; letter-spacing:.04em; flex-shrink:0; margin-right:1rem; }
.zfx-bk-sum-val { font-weight:500; text-align:right; }
.zfx-bk-sum-price-row { background:var(--zfx-bk-accent-subtle); }
.zfx-bk-sum-price { font-size:1.05rem; font-weight:700; color:var(--zfx-bk-accent); }
.zfx-bk-deposit-val { color:#c0392b; font-weight:700; }

/* Deposit info banner */
.zfx-bk-deposit-info { display:flex; align-items:flex-start; gap:.75rem; background:#fff5f5; border:1px solid #f0c0c0; border-radius:var(--zfx-bk-radius); padding:.9rem 1rem; margin-top:1rem; font-size:.85rem; color:var(--zfx-bk-text); }
.zfx-bk-deposit-info svg { width:20px; height:20px; flex-shrink:0; color:#c0392b; margin-top:.1rem; }
.zfx-bk-deposit-info strong { display:block; margin-bottom:.25rem; color:#c0392b; }
.zfx-bk-deposit-info p { margin:0; color:var(--zfx-bk-muted); line-height:1.5; font-size:.82rem; }

/* Booking policy acceptance */
.zfx-bk-policy-box { background:var(--zfx-bk-bg-subtle,#f7f5f2); border:1px solid var(--zfx-bk-border); border-radius:var(--zfx-bk-radius); padding:.9rem 1rem; }
.zfx-bk-policy-title { display:block; font-size:.85rem; color:var(--zfx-bk-text); margin-bottom:.35rem; }
.zfx-bk-policy-text { margin:0 0 .75rem; color:var(--zfx-bk-muted); line-height:1.5; font-size:.82rem; }
.zfx-bk-policy-estimate { color:var(--zfx-bk-text); font-weight:500; border-left:3px solid var(--zfx-bk-accent); padding-left:.6rem; }

/* Estimate disclaimer — persistent across every wizard step */
.zfx-bk-estimate-banner {
	display:flex; align-items:flex-start; gap:.5rem;
	padding:.6rem 1.25rem; background:var(--zfx-bk-accent-subtle);
	border-bottom:1px solid var(--zfx-bk-border);
	font-size:.78rem; line-height:1.45; color:var(--zfx-bk-text);
}
.zfx-bk-estimate-banner svg { width:15px; height:15px; flex-shrink:0; margin-top:.12rem; color:var(--zfx-bk-accent); }
.zfx-bk-policy-check { display:flex; align-items:flex-start; gap:.5rem; font-size:.82rem; color:var(--zfx-bk-text); cursor:pointer; line-height:1.4; }
.zfx-bk-policy-check input[type="checkbox"] { margin-top:.15rem; width:16px; height:16px; flex-shrink:0; cursor:pointer; }

/* Error */
.zfx-bk-error { display:block; font-size:.78rem; color:#c0392b; margin-top:.3rem; }

/* Modal footer */
.zfx-bk-modal-footer { display:flex; align-items:center; justify-content:space-between; padding:.9rem 1.5rem; border-top:1px solid var(--zfx-bk-border); background:var(--zfx-bk-bg); }
.zfx-bk-btn-ghost { background:none; border:none; color:var(--zfx-bk-muted); font-size:.875rem; cursor:pointer; padding:.5rem .25rem; transition:color var(--zfx-bk-transition); }
.zfx-bk-btn-ghost:hover { color:var(--zfx-bk-dark); }
.zfx-bk-btn-primary { display:inline-flex; align-items:center; gap:.4rem; padding:.62rem 1.4rem; background:var(--zfx-bk-dark); color:var(--zfx-bk-white); border:none; border-radius:var(--zfx-bk-radius); font-size:.875rem; font-weight:600; letter-spacing:.04em; cursor:pointer; transition:background var(--zfx-bk-transition); }
.zfx-bk-btn-primary:hover:not(:disabled) { background:var(--zfx-bk-accent); }
.zfx-bk-btn-primary:disabled { opacity:.6; cursor:not-allowed; }

/* ------------------------------------------------------------------ */
/* Success screen                                                       */
/* ------------------------------------------------------------------ */
.zfx-bk-success { text-align:center; padding:3rem 1.5rem; }
.zfx-bk-success-check { width:60px; height:60px; background:var(--zfx-bk-success); color:#fff; border-radius:50%; font-size:1.75rem; font-weight:700; line-height:60px; margin:0 auto 1.25rem; }
.zfx-bk-success-title { font-size:1.35rem; font-weight:700; color:var(--zfx-bk-dark); margin:0 0 .75rem; }
.zfx-bk-success-msg { font-size:.9rem; color:var(--zfx-bk-muted); max-width:380px; margin:0 auto; line-height:1.65; }

/* ------------------------------------------------------------------ */
/* Responsive                                                           */
/* ------------------------------------------------------------------ */
@media (max-width:560px) {
	.zfx-bk-service-row { flex-wrap:wrap; gap:.5rem; }
	.zfx-bk-svc-meta { flex-direction:row; gap:.5rem; align-items:center; flex:1; }
	.zfx-bk-row-2 { grid-template-columns:1fr; }
	.zfx-bk-prompt-actions { grid-template-columns:1fr; }
	.zfx-bk-modal-header, .zfx-bk-modal-body, .zfx-bk-modal-footer, .zfx-bk-progress-wrap { padding-left:1rem; padding-right:1rem; }
	.zfx-bk-cart-float { bottom:1rem; right:1rem; }
}

/* ------------------------------------------------------------------ */
/* Photo upload zone                                                    */
/* ------------------------------------------------------------------ */
.zfx-bk-photo-upload {
	display: flex;
	align-items: center;
	gap: .75rem;
	padding: .75rem 1rem;
	border: 2px dashed var(--zfx-bk-border);
	border-radius: 10px;
	cursor: pointer;
	transition: border-color .2s, background .2s;
}
.zfx-bk-photo-upload:hover { border-color: var(--zfx-bk-accent); background: rgba(0,0,0,.02); }
.zfx-bk-photo-icon { font-size: 1.4rem; line-height: 1; flex-shrink: 0; }
.zfx-bk-photo-label { font-size: .875rem; color: var(--zfx-bk-muted); flex: 1; }
.zfx-bk-photo-remove {
	background: none; border: none; cursor: pointer;
	color: var(--zfx-bk-muted); font-size: 1rem; padding: 0 4px;
}
.zfx-bk-photo-remove:hover { color: #e53e3e; }
