.booking-widget *{box-sizing:border-box;margin:0;padding:0}.booking-widget{--clr-surface:#fff;--clr-green:var(--brand-cta,#5fa85f);--clr-green-hover:var(--brand-cta-hover,#4e9249);--clr-green-light:color-mix(in srgb, var(--brand-cta,#5fa85f) 10%, white);--clr-dark:var(--brand-headline,#2b2b2b);--clr-navy:var(--brand-headline,#1e3a4f);--clr-text:#333;--clr-text-muted:#777;--clr-border:#e2e0db;--clr-error:#c44b4b;--clr-error-bg:#fdf0f0;--radius-sm:6px;--radius-md:10px;--radius-lg:14px;--shadow-card:0 8px 30px #00000014, 0 2px 6px #0000000a;--font:var(--brand-font-body,-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif);--font-accent:Georgia, "Times New Roman", serif;--transition:.2s ease;font-family:var(--font);color:var(--clr-text);-webkit-font-smoothing:antialiased;max-width:540px;margin:0 auto;padding:0 16px;line-height:1.6}.booking-widget .widget-card{background:var(--clr-surface);border-radius:var(--radius-lg);box-shadow:var(--shadow-card);border:1px solid var(--clr-border);overflow:hidden}.booking-widget .widget-header{border-bottom:1px solid var(--clr-border);padding:28px 28px 24px}.booking-widget .widget-header h1{font-family:var(--font);color:var(--clr-dark);letter-spacing:-.02em;margin-bottom:4px;font-size:1.5rem;font-weight:800;line-height:1.25}.booking-widget .widget-header .subtitle{font-family:var(--font-accent);color:var(--clr-text-muted);margin-bottom:16px;font-size:.95rem;font-style:italic}.booking-widget .widget-header .description{color:var(--clr-text);margin-bottom:16px;font-size:.85rem;line-height:1.7}.booking-widget .widget-header .description strong{font-weight:700}.booking-widget .feature-list{margin-bottom:16px;list-style:none}.booking-widget .feature-list li{color:var(--clr-text);padding:3px 0 3px 22px;font-size:.82rem;line-height:1.5;position:relative}.booking-widget .feature-list li:before{content:"✓";color:var(--clr-green);font-size:.85rem;font-weight:700;position:absolute;left:0}.booking-widget .header-meta{flex-wrap:wrap;gap:16px;display:flex}.booking-widget .meta-tag{background:var(--clr-green-light);color:var(--clr-green-hover);letter-spacing:.03em;text-transform:uppercase;border-radius:20px;align-items:center;gap:5px;padding:5px 11px;font-size:.75rem;font-weight:700;display:inline-flex}.booking-widget .meta-tag.price,.booking-widget .meta-tag.deposit{color:#8a6d2b;background:#fff8e8}.booking-widget .steps-bar{gap:6px;padding:16px 28px 0;display:flex}.booking-widget .step-pill{background:var(--clr-border);height:4px;transition:background var(--transition);border-radius:4px;flex:1}.booking-widget .step-pill.active{background:var(--clr-green)}.booking-widget .step-pill.completed{background:var(--clr-navy)}.booking-widget .widget-body{padding:24px 28px 28px}.booking-widget .step-section{animation:.3s bwFadeIn;display:none}.booking-widget .step-section.active{display:block}@keyframes bwFadeIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.booking-widget .loading-container{text-align:center;padding:40px 0}.booking-widget .spinner{border:3px solid var(--clr-border);border-top-color:var(--clr-green);border-radius:50%;width:32px;height:32px;margin:0 auto 14px;animation:.8s linear infinite bwSpin}@keyframes bwSpin{to{transform:rotate(360deg)}}.booking-widget .loading-container p{color:var(--clr-text-muted);font-size:.85rem}.booking-widget .section-label{font-family:var(--font);text-transform:uppercase;letter-spacing:.08em;color:var(--clr-text-muted);margin-bottom:12px;font-size:.75rem;font-weight:700}.booking-widget .dates-list{flex-direction:column;gap:8px;max-height:320px;margin-bottom:28px;display:flex;overflow-y:auto}.booking-widget .date-card{border:2px solid var(--clr-border);border-radius:var(--radius-md);background:var(--clr-surface);font-family:var(--font);cursor:pointer;transition:all var(--transition);justify-content:space-between;align-items:center;padding:14px 16px;display:flex}.booking-widget .date-card:hover{border-color:var(--clr-green);background:var(--clr-green-light)}.booking-widget .date-card.selected{border-color:var(--clr-green);background:var(--clr-green);color:#fff;box-shadow:0 2px 8px #5fa85f4d}.booking-widget .date-card .date-info{flex-direction:column;display:flex}.booking-widget .date-card .date-day{font-size:.95rem;font-weight:600}.booking-widget .date-card .date-full{opacity:.7;font-size:.78rem}.booking-widget .date-card .slot-count{white-space:nowrap;background:#0000000f;border-radius:12px;padding:3px 10px;font-size:.75rem;font-weight:600}.booking-widget .date-card.selected .slot-count{background:#fff3}.booking-widget .selected-date-bar{background:var(--clr-green-light);border-radius:var(--radius-sm);border:1px solid #5fa85f33;justify-content:space-between;align-items:center;margin-bottom:16px;padding:10px 14px;display:flex}.booking-widget .selected-date-bar .date-text{color:var(--clr-green-hover);font-size:.88rem;font-weight:600}.booking-widget .selected-date-bar .change-btn{color:var(--clr-green-hover);font-family:var(--font);cursor:pointer;text-underline-offset:2px;background:0 0;border:none;font-size:.8rem;font-weight:600;text-decoration:underline}.booking-widget .slots-grid{grid-template-columns:repeat(auto-fill,minmax(80px,1fr));gap:8px;margin-bottom:28px;display:grid}.booking-widget .slot-btn{border:2px solid var(--clr-border);border-radius:var(--radius-md);background:var(--clr-surface);font-family:var(--font);color:var(--clr-text);cursor:pointer;transition:all var(--transition);justify-content:center;align-items:center;padding:12px 8px;font-size:.9rem;font-weight:600;display:flex;position:relative}.booking-widget .slot-btn:hover{border-color:var(--clr-green);background:var(--clr-green-light);color:var(--clr-green-hover)}.booking-widget .slot-btn.selected{border-color:var(--clr-green);background:var(--clr-green);color:#fff;box-shadow:0 2px 8px #5fa85f4d}.booking-widget .slot-btn.selected:after{content:"✓";background:var(--clr-dark);color:#fff;border-radius:50%;justify-content:center;align-items:center;width:18px;height:18px;font-size:.55rem;font-weight:700;display:flex;position:absolute;top:-6px;right:-6px}.booking-widget .no-slots{text-align:center;color:var(--clr-text-muted);padding:32px 16px;font-size:.9rem;line-height:1.6}.booking-widget .no-slots .icon{margin-bottom:12px;font-size:2rem;display:block}.booking-widget .form-group{margin-bottom:14px}.booking-widget .form-group label{font-family:var(--font);text-transform:uppercase;letter-spacing:.06em;color:var(--clr-text-muted);margin-bottom:5px;font-size:.72rem;font-weight:700;display:block}.booking-widget .form-group input[type=text],.booking-widget .form-group input[type=email],.booking-widget .form-group input[type=tel]{border:2px solid var(--clr-border);border-radius:var(--radius-sm);width:100%;font-family:var(--font);color:var(--clr-text);transition:border-color var(--transition);background:var(--clr-surface);outline:none;padding:12px 14px;font-size:.9rem}.booking-widget .form-group input:focus{border-color:var(--clr-green)}.booking-widget .form-group input.error{border-color:var(--clr-error);background:var(--clr-error-bg)}.booking-widget .form-row{grid-template-columns:1fr 1fr;gap:12px;display:grid}.booking-widget .consent-group{color:var(--clr-text-muted);margin:4px 0 16px;font-size:.78rem;line-height:1.5}.booking-widget .consent-group label{cursor:pointer;text-transform:none;letter-spacing:0;color:var(--clr-text);align-items:flex-start;gap:8px;font-size:.78rem;font-weight:500;display:flex}.booking-widget .consent-group input[type=checkbox]{flex-shrink:0;margin-top:3px}.booking-widget .consent-group .consent-statement{margin-top:6px}.booking-widget .selected-slot-summary{background:var(--clr-green-light);border-radius:var(--radius-sm);border:1px solid #5fa85f33;align-items:center;gap:10px;margin-bottom:20px;padding:12px 14px;display:flex}.booking-widget .selected-slot-summary .time-icon{background:var(--clr-green);color:#fff;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:36px;height:36px;font-size:.85rem;display:flex}.booking-widget .selected-slot-summary .slot-info{font-size:.85rem;line-height:1.4}.booking-widget .selected-slot-summary .slot-info strong{color:var(--clr-green-hover);font-weight:700;display:block}.booking-widget .selected-slot-summary .change-btn{color:var(--clr-green-hover);font-family:var(--font);cursor:pointer;text-underline-offset:2px;background:0 0;border:none;margin-left:auto;font-size:.8rem;font-weight:600;text-decoration:underline}.booking-widget .btn-primary{background:var(--clr-green);color:#fff;border-radius:var(--radius-md);width:100%;font-family:var(--font);cursor:pointer;transition:all var(--transition);border:none;padding:16px 24px;font-size:1rem;font-weight:700;position:relative;overflow:hidden}.booking-widget .btn-primary:hover{background:var(--clr-green-hover);transform:translateY(-1px);box-shadow:0 4px 14px #5fa85f59}.booking-widget .btn-primary:active{transform:translateY(0)}.booking-widget .btn-primary:disabled{opacity:.45;cursor:not-allowed;box-shadow:none;transform:none}.booking-widget .btn-primary.loading{color:#0000}.booking-widget .btn-primary.loading:after{content:"";border:2px solid #ffffff4d;border-top-color:#fff;border-radius:50%;width:20px;height:20px;margin:-10px 0 0 -10px;animation:.6s linear infinite bwSpin;position:absolute;top:50%;left:50%}.booking-widget .pay-note{text-align:center;color:#777;margin-top:8px;font-size:.75rem}.booking-widget .message-banner{border-radius:var(--radius-sm);margin-bottom:16px;padding:12px 14px;font-size:.85rem;line-height:1.5}.booking-widget .message-banner.error{background:var(--clr-error-bg);color:var(--clr-error);border:1px solid #c44b4b26}.booking-widget .widget-footer{border-top:1px solid var(--clr-border);text-align:center;padding:14px 28px 18px}.booking-widget .widget-footer p{color:var(--clr-text-muted);font-size:.72rem;line-height:1.6}.booking-widget .widget-footer a{color:var(--clr-green-hover);font-weight:600;text-decoration:none}@media (width<=480px){.booking-widget{max-width:100%;padding:0 12px}.booking-widget .widget-header{padding:22px 20px 20px}.booking-widget .widget-header h1{font-size:1.3rem}.booking-widget .widget-body{padding:20px}.booking-widget .steps-bar{padding:14px 20px 0}.booking-widget .form-row{grid-template-columns:1fr}.booking-widget .slots-grid{grid-template-columns:repeat(auto-fill,minmax(70px,1fr))}.booking-widget .header-meta{gap:8px}}
