/* ZERYON Booking Widget — dark / premium */
.zb-widget{
  --zb-accent: var(--zb-primary, #2e7bff);
  --zb-deep: color-mix(in srgb, var(--zb-accent) 78%, #000);
  --zb-ink:#eaf0ff; --zb-muted:#9fb0d0; --zb-line:rgba(255,255,255,.10); --zb-line2:rgba(255,255,255,.16);
  --zb-surface:#0e1526; --zb-soft:rgba(255,255,255,.04);
  font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Inter,Roboto,Helvetica,Arial,sans-serif;
  max-width:760px;margin:0 auto;color:var(--zb-ink);
  background:linear-gradient(180deg,#0e1526,#0b101e);
  border:1px solid var(--zb-line);border-radius:22px;padding:34px 34px 30px;
  box-shadow:0 30px 80px rgba(0,0,0,.5);-webkit-font-smoothing:antialiased}
@media(max-width:560px){.zb-widget{padding:22px 18px;border-radius:18px}}
.zb-section{margin-bottom:30px}
.zb-section:last-child{margin-bottom:0}
.zb-step-title{font-size:18px;font-weight:800;letter-spacing:-.01em;color:var(--zb-ink);margin:0 0 18px;display:flex;align-items:center;gap:12px}
.zb-step-num{background:var(--zb-accent);color:#fff;border-radius:50%;width:28px;height:28px;display:inline-flex;align-items:center;justify-content:center;font-size:13px;font-weight:700;flex-shrink:0;box-shadow:0 0 0 4px color-mix(in srgb,var(--zb-accent) 18%,transparent),0 6px 16px color-mix(in srgb,var(--zb-accent) 45%,transparent)}
/* Services */
.zb-services-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:14px}
.zb-service-card{position:relative;border:1px solid var(--zb-line);border-radius:16px;overflow:hidden;cursor:pointer;background:rgba(255,255,255,.03);transition:transform .18s cubic-bezier(.2,.7,.2,1),box-shadow .18s,border-color .18s,background .18s}
.zb-service-card:hover{transform:translateY(-3px);background:rgba(255,255,255,.05);border-color:color-mix(in srgb,var(--service-color,var(--zb-accent)) 55%,var(--zb-line));box-shadow:0 16px 34px rgba(0,0,0,.45)}
.zb-service-card.zb-selected{border-color:var(--service-color,var(--zb-accent));background:color-mix(in srgb,var(--service-color,var(--zb-accent)) 12%,#0e1526);box-shadow:0 0 0 3px color-mix(in srgb,var(--service-color,var(--zb-accent)) 28%,transparent)}
.zb-service-color{height:4px;background:var(--service-color,var(--zb-accent))}
.zb-service-body{padding:16px 18px}
.zb-service-body h4{margin:0 0 6px;font-size:16px;font-weight:800;letter-spacing:-.01em;color:var(--zb-ink)}
.zb-service-body p{margin:0 0 12px;font-size:13.5px;color:var(--zb-muted);line-height:1.55}
.zb-service-meta{display:flex;gap:8px;font-size:12px;flex-wrap:wrap}
.zb-service-meta span{background:rgba(255,255,255,.06);color:#cfd8ec;padding:4px 10px;border-radius:999px;font-weight:600;border:1px solid var(--zb-line)}
/* Calendar */
.zb-calendar{background:rgba(255,255,255,.03);border:1px solid var(--zb-line);border-radius:16px;padding:20px}
.zb-cal-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px}
.zb-cal-header h4{margin:0;font-size:16px;font-weight:800;letter-spacing:-.01em;color:var(--zb-ink)}
.zb-cal-nav{background:rgba(255,255,255,.04);border:1px solid var(--zb-line2);border-radius:9px;width:34px;height:34px;cursor:pointer;font-size:16px;color:var(--zb-ink);transition:.15s;display:inline-flex;align-items:center;justify-content:center}
.zb-cal-nav:hover{background:var(--zb-accent);border-color:var(--zb-accent);color:#fff}
.zb-cal-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:5px;text-align:center}
.zb-cal-day-name{font-size:11px;color:#7e8aa6;font-weight:700;text-transform:uppercase;letter-spacing:.04em;padding:4px 0}
.zb-cal-day{padding:9px 4px;border-radius:10px;cursor:pointer;font-size:14px;font-weight:600;transition:.14s;border:1px solid transparent;background:rgba(255,255,255,.02);color:var(--zb-ink)}
.zb-cal-day:hover:not(.zb-day-disabled){background:color-mix(in srgb,var(--zb-accent) 18%,transparent);border-color:color-mix(in srgb,var(--zb-accent) 50%,transparent)}
.zb-cal-day.zb-day-selected{background:var(--zb-accent);color:#fff;border-color:var(--zb-accent);box-shadow:0 6px 18px color-mix(in srgb,var(--zb-accent) 50%,transparent)}
.zb-cal-day.zb-day-disabled{color:#3a455c;cursor:not-allowed;background:transparent}
.zb-cal-day.zb-day-empty{visibility:hidden}
/* Slots */
.zb-slots{display:grid;grid-template-columns:repeat(auto-fill,minmax(96px,1fr));gap:10px}
.zb-slot{padding:11px 8px;text-align:center;border:1px solid var(--zb-line2);border-radius:12px;cursor:pointer;font-size:14px;font-weight:700;transition:.14s;background:rgba(255,255,255,.03);color:var(--zb-ink)}
.zb-slot:hover:not(.zb-slot-taken){border-color:var(--zb-accent);background:color-mix(in srgb,var(--zb-accent) 16%,transparent);transform:translateY(-2px)}
.zb-slot.zb-slot-selected{background:var(--zb-accent);border-color:var(--zb-accent);color:#fff;box-shadow:0 6px 18px color-mix(in srgb,var(--zb-accent) 50%,transparent)}
.zb-slot.zb-slot-taken{background:rgba(255,255,255,.02);color:#3a455c;cursor:not-allowed;border-color:var(--zb-line)}
.zb-slot-end{font-size:11px;opacity:.7;display:block;font-weight:500}
.zb-loading{color:var(--zb-muted);font-size:14px;padding:28px;text-align:center}
/* Summary */
.zb-selected-summary{background:color-mix(in srgb,var(--zb-accent) 14%,transparent);border:1px solid color-mix(in srgb,var(--zb-accent) 40%,transparent);border-radius:12px;padding:14px 18px;margin-bottom:22px;font-size:14px;color:#dbe4f7;font-weight:600}
/* Form */
.zb-form-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-bottom:14px}
.zb-field{display:flex;flex-direction:column;gap:6px}
.zb-field-full{grid-column:1/-1;margin-bottom:14px}
.zb-field label{font-size:11px;font-weight:700;color:var(--zb-muted);text-transform:uppercase;letter-spacing:.08em}
.zb-field input,.zb-field textarea,.zb-field select{padding:12px 13px;border:1px solid var(--zb-line2);border-radius:11px;font-size:14.5px;outline:none;transition:.15s;font-family:inherit;background:rgba(8,12,22,.6);color:var(--zb-ink)}
.zb-field input::placeholder,.zb-field textarea::placeholder{color:#5d6b88}
.zb-field input:focus,.zb-field textarea:focus,.zb-field select:focus{border-color:var(--zb-accent);box-shadow:0 0 0 3px color-mix(in srgb,var(--zb-accent) 22%,transparent)}
.zb-privacy-check{margin:4px 0 18px;font-size:13px;color:#a9b4cc;line-height:1.5}
.zb-privacy-check a{color:var(--zb-accent);font-weight:600}
.zb-privacy-check input{margin-right:8px;accent-color:var(--zb-accent);width:16px;height:16px;vertical-align:-2px}
/* Buttons */
.zb-btn-book{width:100%;background:linear-gradient(135deg,var(--zb-accent),var(--zb-deep));color:#fff;border:none;border-radius:13px;padding:15px 24px;font-size:16px;font-weight:800;letter-spacing:.01em;cursor:pointer;transition:.18s;box-shadow:0 12px 30px color-mix(in srgb,var(--zb-accent) 42%,transparent)}
.zb-btn-book:hover{filter:brightness(1.08);transform:translateY(-2px);box-shadow:0 16px 38px color-mix(in srgb,var(--zb-accent) 52%,transparent)}
.zb-btn-book:disabled{background:#243049;box-shadow:none;cursor:not-allowed;transform:none;color:#7e8aa6}
.zb-btn-back{background:rgba(255,255,255,.04);border:1px solid var(--zb-line2);border-radius:11px;padding:10px 18px;color:#cfd8ec;cursor:pointer;font-size:14px;font-weight:600;transition:.15s}
.zb-btn-back:hover{background:rgba(255,255,255,.08);color:#fff}
.zb-btn-secondary{background:rgba(255,255,255,.04);border:1px solid var(--zb-line2);border-radius:11px;padding:11px 20px;color:#cfd8ec;cursor:pointer;font-size:14px;font-weight:700;margin-top:12px;transition:.15s}
.zb-btn-secondary:hover{background:rgba(255,255,255,.08)}
.zb-nav{margin-top:18px}
/* Success */
.zb-success{text-align:center;padding:34px 20px}
.zb-success-icon{font-size:54px;margin-bottom:12px;line-height:1}
.zb-success h3{font-size:23px;font-weight:800;color:#27d39a;margin:0 0 8px;letter-spacing:-.01em}
.zb-success p{color:var(--zb-muted)}
.zb-success-details{background:color-mix(in srgb,#27d39a 12%,transparent);border:1px solid color-mix(in srgb,#27d39a 34%,transparent);border-radius:14px;padding:18px;margin:18px 0;text-align:left;font-size:14px;line-height:1.85;color:#d6fff0}
.zb-success-details a{color:#7fe9c6}
.zb-secure{font-size:12px;color:#7e8aa6;text-align:center;margin-top:10px}
@media(max-width:560px){.zb-services-grid,.zb-form-grid{grid-template-columns:1fr}.zb-slots{grid-template-columns:repeat(3,1fr)}}
