/* Booking adaptation of the supplied Fred Saloon black / gold / ivory UI. */
#bookingModal .booking-price-breakdown { background:#fff; padding:18px; border:1px solid #e8e2d3; border-radius:10px; margin:18px 0 24px; }
#bookingModal .booking-price-breakdown .summary-row { display:flex; justify-content:space-between; padding:10px 0; }
#bookingModal .booking-price-breakdown .summary-row:nth-last-child(2) { border-top:1px solid #dcd5c2; font-size:1.08rem; font-weight:700; }
#bookingModal .mobile-network-choices { border:1px solid #dcd5c2; border-radius:10px; overflow:hidden; }
#bookingModal .mobile-network-choices label { display:flex; align-items:center; gap:12px; padding:16px; background:#fff; margin:0; cursor:pointer; }
#bookingModal .mobile-network-choices label + label { border-top:1px solid #e8e2d3; }
#bookingModal .mobile-network-choices label:has(input:checked) { background:#fbf7ec; }
#bookingModal .mobile-network-choices input { accent-color:#a8871e; width:18px; height:18px; }
#bookingModal .payment-phone-field { display:flex; align-items:center; gap:12px; }
#bookingModal .payment-phone-field input { min-width:0; width:100%; }
#bookingModal .payment-processing { text-align:center; padding:30px 20px; }
#bookingModal .payment-processing .spinner { display:block; margin:0 auto 20px; width:44px; height:44px; }
#bookingModal .payment-processing p { white-space:pre-line; line-height:1.7; }
@media(prefers-reduced-motion:reduce) { #bookingModal .spinner { animation:none; } }
#bookingModal .booking-receipt { padding:24px; background:#fff; border:1px solid #e1ddd4; border-radius:6px; margin-bottom:18px; }
#bookingModal .booking-receipt-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:26px 24px; }
#bookingModal .booking-receipt-item { display:grid; align-content:start; gap:6px; font-size:.86rem; overflow-wrap:anywhere; }
#bookingModal .booking-receipt-item strong { color:#625d53; font-size:.78rem; }
#bookingModal .booking-receipt-item span { color:#29261f; white-space:pre-line; line-height:1.6; }
#bookingModal .booking-receipt-item:last-child span { color:#826817; font-weight:700; }
#bookingModal .booking-receipt-note { display:grid; gap:6px; margin-top:24px; padding-top:18px; border-top:1px solid #e8e2d3; font-size:.8rem; line-height:1.6; color:#706b60; }
#bookingModal .booking-receipt-note strong { color:#826817; }
@media(max-width:380px) { #bookingModal .booking-receipt { padding:16px; } #bookingModal .booking-receipt-grid { grid-template-columns:1fr; gap:18px; } }
#bookingModal { --booking-gold:#D4AF37; --booking-ivory:#F8F6F0; }
#bookingModal .booking-shell { display:block; width:min(1080px,calc(100% - 32px)); background:var(--booking-ivory); border:1px solid #dcd5c2; border-radius:14px; overflow-y:auto; }
#bookingModal .booking-aside { display:block; min-height:0; padding:20px 26px; background:#0b0b0b; border:0; }
#bookingModal .booking-brand-card { display:flex; align-items:center; gap:12px; }
#bookingModal .booking-logo { width:38px; height:38px; margin:0; }
#bookingModal .booking-brand-card .eyebrow { color:#e6c766; margin:0; font-size:.95rem; }
#bookingModal .booking-brand-card h3,
#bookingModal .booking-brand-card p,
#bookingModal .booking-trust-list,
#bookingModal .booking-whatsapp-mini,
#bookingModal .booking-desktop-close { display:none; }
#bookingModal .booking-mobile-close { display:grid; top:18px; right:18px; color:#f8f6f0; background:#171717; }
#bookingModal .booking-main { display:grid; grid-template-columns:minmax(0,1fr) 300px; gap:0 24px; padding:24px; overflow:visible; background:var(--booking-ivory); }
#bookingModal .booking-title-row,#bookingModal .booking-progress-wrap,#bookingModal .booking-stepper { grid-column:1 / -1; }
#bookingModal #bookingForm { min-width:0; }
#bookingModal .booking-live-summary { align-self:start; position:sticky; top:20px; padding:22px; border:1px solid #e8e2d3; border-radius:10px; background:#fff; }
#bookingModal .booking-live-summary h3 { font-size:1.25rem; margin:8px 0 16px; }
#bookingModal .booking-summary-help { font-size:.8rem; line-height:1.6; color:#706b60; margin-top:18px; }
#bookingModal .booking-live-summary .summary-row { display:flex; justify-content:space-between; padding:12px 0; font-size:.85rem; }
#bookingModal .booking-live-summary .summary-row:last-child strong { color:#826817; }
#bookingModal .booking-result-visible .booking-step,#bookingModal .booking-result-visible .booking-actions { display:none; }
@media(max-width:800px) { #bookingModal .booking-main { grid-template-columns:minmax(0,1fr); } #bookingModal .booking-live-summary { position:static; margin-top:24px; } }
#bookingModal .booking-title-row h2 { font-size:1.8rem; font-weight:500; }
#bookingModal .booking-title-row p { font-size:.9rem; color:#706b60; }
#bookingModal .booking-progress-wrap { margin:18px 0 12px; }
#bookingModal .progress { height:3px; background:#e3dcc8; }
#bookingModal .progress span { background:var(--booking-gold); }
#bookingModal .booking-stepper { display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); gap:4px; overflow:visible; margin-bottom:24px; }
#bookingModal .booking-step-pill { display:flex; flex-direction:column; align-items:center; gap:7px; padding:0; border:0; background:none; color:#706b60; font-size:.69rem; box-shadow:none; }
#bookingModal .booking-step-pill::before { content:''; width:9px; height:9px; border-radius:50%; background:#e3dcc8; }
#bookingModal .booking-step-pill.active,#bookingModal .booking-step-pill.done { color:#826817; }
#bookingModal .booking-step-pill.active::before,#bookingModal .booking-step-pill.done::before { background:var(--booking-gold); }
#bookingModal .booking-step { padding:0; border:0; border-radius:0; background:transparent; box-shadow:none; }
#bookingModal .booking-step-count { display:none; }
#bookingModal .booking-step h3 { font-size:1.45rem; font-weight:500; }
#bookingModal .booking-help { color:#706b60; font-size:.9rem; line-height:1.6; }
#bookingModal .booking-control { border:1px solid #dcd5c2; border-radius:6px; background:#fff; min-height:48px; font-size:1rem; }
#bookingModal .booking-control:focus { border-color:#a8871e; box-shadow:0 0 0 3px rgb(212 175 55 / 18%); }
#bookingModal .booking-branch-grid { grid-template-columns:1fr; }
#bookingModal .booking-choice-card span { min-height:0; border-radius:10px; padding:16px; background:#fff; }
#bookingModal .booking-choice-card input:checked + span { border-color:#a8871e; background:#fbf7ec; box-shadow:0 0 0 1px #a8871e; }
#bookingModal .booking-calendar-card { padding:16px; border:1px solid #e8e2d3; border-radius:10px; background:#fff; min-width:0; }
#bookingModal .booking-calendar-head { flex-wrap:wrap; }
#bookingModal .booking-calendar-head strong { font-size:1.1rem; }
#bookingModal .booking-calendar-nav { display:flex; gap:8px; }
#bookingModal .booking-calendar-nav button { width:40px; height:40px; border:1px solid #dcd5c2; border-radius:6px; color:#826817; background:#fff; cursor:pointer; }
#bookingModal .booking-date-chip { flex-basis:58px; border:0; background:transparent; border-radius:28px; min-height:88px; }
#bookingModal .booking-date-chip.active { background:var(--booking-gold); color:#0b0b0b; }
#bookingModal .booking-date-chip.active span,#bookingModal .booking-date-chip.active em { color:#0b0b0b; }
#bookingModal .booking-time-list { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:8px; }
#bookingModal .booking-time-chip { border-radius:6px; padding:10px 4px; font-size:.88rem; }
#bookingModal .booking-time-chip.active { background:var(--booking-gold); border-color:var(--booking-gold); color:#0b0b0b; }
#bookingModal .availability-note { background:#fbf7ec; border:1px dashed #a8871e; border-radius:10px; color:#625122; }
#bookingModal .booking-payment-review,#bookingModal .booking-summary-card { background:#fff; border:1px solid #e8e2d3; color:#0b0b0b; border-radius:10px; padding:18px; }
#bookingModal .summary-row { gap:16px; border-bottom:1px dashed #dcd5c2; }
#bookingModal .summary-row span { color:#706b60; }
#bookingModal .summary-row strong { color:#242118; overflow-wrap:anywhere; text-align:right; }
#bookingModal .booking-payment-review .summary-row:nth-child(2) strong { color:#826817; font-size:1.1rem; }
#bookingModal .payment-method-grid { grid-template-columns:1fr; gap:8px; }
#bookingModal .payment-method-card { min-height:0; padding:14px 44px 14px 14px; border-radius:10px; display:flex; align-items:center; gap:12px; background:#fff; }
#bookingModal .payment-method-card:has(input:checked) { background:#fbf7ec; border-color:#a8871e; box-shadow:none; }
#bookingModal .payment-method-icon { font-size:.65rem; }
#bookingModal .mobile-money-input { background:#fbf7ec; border-radius:10px; }
#bookingModal .premium-booking-actions { position:sticky; bottom:-24px; margin-top:24px; padding:18px 0; background:var(--booking-ivory); border-top:1px solid #e8e2d3; z-index:2; }
#bookingModal .premium-booking-actions .btn { min-height:48px; border-radius:6px; }
#bookingModal .btn-gold { background:linear-gradient(180deg,#e6c766,#d4af37); color:#0b0b0b; box-shadow:0 6px 20px rgb(212 175 55 / 15%); }
#bookingModal button:focus-visible { outline:3px solid #a8871e; outline-offset:3px; }
@media(max-width:640px) {
  #bookingModal .booking-shell { width:100%; height:100dvh; max-height:100dvh; border:0; border-radius:0; }
  #bookingModal .booking-main { padding:20px 16px; }
  #bookingModal .booking-aside { padding:18px 16px; }
  #bookingModal .booking-form-grid { grid-template-columns:1fr; }
  #bookingModal .premium-booking-actions { bottom:-20px; padding-bottom:calc(16px + env(safe-area-inset-bottom)); }
}
