/* Umów termin online — przycisk + kreator */
.ss-booking-cta{
  display:inline-flex;align-items:center;gap:8px;
  padding:8px 16px;border:1px solid rgba(255,255,255,.35);border-radius:999px;cursor:pointer;
  font-family:inherit;font-weight:800;font-size:.82rem;letter-spacing:.01em;
  color:#fff;text-decoration:none;white-space:nowrap;
  background:linear-gradient(135deg,var(--primary,#0072bc) 0%,var(--accent,#00a3c4) 100%);
  box-shadow:0 4px 16px rgba(0,114,188,.35),0 0 0 0 var(--accent-glow,rgba(0,163,196,.35));
  animation:ss-booking-pulse 2.6s ease-in-out infinite;
  transition:transform .15s ease,box-shadow .15s ease,background .15s ease;
}
.ss-booking-cta:hover{
  transform:translateY(-1px);
  background:linear-gradient(135deg,var(--primary-deep,#005a96) 0%,var(--primary,#0072bc) 100%);
  box-shadow:0 6px 22px rgba(0,114,188,.45);
}
.ss-booking-cta:focus-visible{outline:3px solid var(--accent-glow,rgba(0,163,196,.35));outline-offset:2px}
.ss-booking-cta svg{width:16px;height:16px;flex-shrink:0}
@keyframes ss-booking-pulse{
  0%,100%{box-shadow:0 4px 16px rgba(0,114,188,.35),0 0 0 0 rgba(0,163,196,.3)}
  50%{box-shadow:0 6px 22px rgba(0,114,188,.42),0 0 0 7px rgba(0,163,196,0)}
}
@media (prefers-reduced-motion:reduce){
  .ss-booking-cta{animation:none}
}
.topbar .ss-booking-cta{margin-left:2px}
.topbar .ss-booking-sep{opacity:.45;padding:0 .15rem;color:#94a3b8;user-select:none;flex-shrink:0}
@media (max-width:899px){
  .topbar .items .ss-booking-cta{display:none}
  .topbar .items .ss-booking-sep{display:none}
}
.topbar .marquee .ss-booking-cta{
  display:inline-flex;font-size:.75rem;padding:5px 12px;margin:0 6px;
  animation:none;vertical-align:middle;
}

/* Modal */
.ss-booking-overlay{
  position:fixed;inset:0;z-index:200;
  display:flex;align-items:center;justify-content:center;
  padding:max(12px,env(safe-area-inset-top)) max(12px,env(safe-area-inset-right)) max(12px,env(safe-area-inset-bottom)) max(12px,env(safe-area-inset-left));
  background:rgba(11,18,32,.62);backdrop-filter:blur(4px);
  opacity:0;visibility:hidden;transition:opacity .2s ease,visibility .2s;
}
.ss-booking-overlay.is-open{opacity:1;visibility:visible}
.ss-booking-dialog{
  width:min(560px,100%);max-height:min(92dvh,820px);overflow:hidden;
  display:flex;flex-direction:column;
  background:var(--surface,#fff);border-radius:20px;
  box-shadow:0 28px 80px rgba(15,23,42,.28);
  transform:translateY(12px) scale(.98);
  transition:transform .22s ease;
}
.ss-booking-overlay.is-open .ss-booking-dialog{transform:none}
.ss-booking-head{
  display:flex;align-items:flex-start;justify-content:space-between;gap:12px;
  padding:20px 20px 12px;border-bottom:1px solid var(--line,rgba(15,23,42,.08));
}
.ss-booking-head h2{margin:0;font-size:1.2rem;color:var(--ink,#0b1220);line-height:1.3}
.ss-booking-head p{margin:4px 0 0;font-size:.85rem;color:var(--muted,#64748b)}
.ss-booking-close{
  flex-shrink:0;width:36px;height:36px;border:none;border-radius:10px;cursor:pointer;
  background:var(--surface-3,#f1f5f9);color:var(--ink-soft,#1a2744);font-size:1.25rem;line-height:1;
}
.ss-booking-close:hover{background:#e2e8f0}

.ss-booking-progress{
  display:flex;gap:6px;padding:12px 20px 0;
}
.ss-booking-progress span{
  flex:1;height:4px;border-radius:99px;background:var(--surface-3,#e2e8f0);transition:background .2s;
}
.ss-booking-progress span.is-done,.ss-booking-progress span.is-active{background:linear-gradient(90deg,var(--primary,#0072bc),var(--accent,#00a3c4))}

.ss-booking-body{
  flex:1;overflow:auto;padding:16px 20px 8px;
}
.ss-booking-step{display:none}
.ss-booking-step.is-active{display:block}
.ss-booking-step h3{margin:0 0 12px;font-size:1rem;color:var(--ink,#0b1220)}

.ss-booking-services{display:grid;gap:8px}
.ss-booking-service{
  display:flex;align-items:center;justify-content:space-between;gap:12px;
  padding:12px 14px;border:2px solid var(--line,rgba(15,23,42,.08));border-radius:14px;
  cursor:pointer;background:var(--surface-2,#f8fafc);text-align:left;font-family:inherit;
  transition:border-color .15s,background .15s;
}
.ss-booking-service:hover{border-color:rgba(0,114,188,.35)}
.ss-booking-service.is-selected{border-color:var(--primary,#0072bc);background:var(--primary-soft,#e0f0fb)}
.ss-booking-service-name{font-weight:600;font-size:.9rem;color:var(--ink-soft,#1a2744)}
.ss-booking-service-price{font-weight:700;font-size:.88rem;color:var(--primary,#0072bc);white-space:nowrap}
.ss-booking-service-price--custom{color:var(--muted,#64748b);font-weight:600}

.ss-booking-map-wrap{border-radius:14px;overflow:hidden;border:1px solid var(--line,rgba(15,23,42,.1))}
#ssBookingMap{height:240px;background:#e2e8f0}
.ss-booking-search{
  display:flex;gap:8px;margin-bottom:10px;
}
.ss-booking-search input{
  flex:1;padding:10px 12px;border:1px solid var(--line,rgba(15,23,42,.12));border-radius:12px;
  font-family:inherit;font-size:.9rem;
}
.ss-booking-search button{
  padding:10px 14px;border:none;border-radius:12px;cursor:pointer;
  background:var(--primary,#0072bc);color:#fff;font-weight:700;font-family:inherit;
}
.ss-booking-location-label{
  margin:10px 0 0;font-size:.85rem;color:var(--muted,#64748b);min-height:1.2em;
}
.ss-booking-location-label strong{color:var(--ink-soft,#1a2744)}

.ss-booking-chips{display:flex;flex-wrap:wrap;gap:8px}
.ss-booking-chip{
  padding:8px 14px;border:2px solid var(--line,rgba(15,23,42,.1));border-radius:999px;
  background:#fff;cursor:pointer;font-family:inherit;font-size:.85rem;font-weight:600;color:var(--text,#334155);
  transition:all .15s;
}
.ss-booking-chip.is-selected{border-color:var(--primary,#0072bc);background:var(--primary-soft,#e0f0fb);color:var(--primary-deep,#005a96)}
.ss-booking-chip-group{margin-bottom:16px}
.ss-booking-chip-group > label{display:block;margin-bottom:8px;font-weight:600;font-size:.88rem;color:var(--ink-soft,#1a2744)}
.ss-booking-step-hint{display:none;margin:4px 0 0;font-size:.8rem;color:var(--primary-deep,#005a96)}
.ss-booking-step-hint.is-visible{display:block}

.ss-booking-estimate{
  background:var(--surface-2,#f8fafc);border:1px solid var(--line,rgba(15,23,42,.08));
  border-radius:14px;padding:16px;
}
.ss-booking-estimate-row{
  display:flex;justify-content:space-between;gap:12px;padding:8px 0;
  border-bottom:1px dashed rgba(15,23,42,.08);font-size:.9rem;
}
.ss-booking-estimate-row:last-child{border-bottom:none}
.ss-booking-estimate-total{
  margin-top:8px;padding-top:12px;border-top:2px solid var(--primary,#0072bc);
  font-weight:800;font-size:1.05rem;color:var(--ink,#0b1220);
}
.ss-booking-estimate-note{margin:12px 0 0;font-size:.78rem;color:var(--muted,#64748b);line-height:1.45}

.ss-booking-fields{display:grid;gap:10px}
.ss-booking-fields input{
  width:100%;padding:12px 14px;border:1px solid var(--line,rgba(15,23,42,.12));border-radius:12px;
  font-family:inherit;font-size:.95rem;
}
.ss-booking-fields input:focus{outline:2px solid var(--primary-soft,#e0f0fb);border-color:var(--primary,#0072bc)}
.ss-booking-rodo{font-size:.75rem;color:var(--muted,#64748b);margin:10px 0 0;line-height:1.4}

.ss-booking-foot{
  display:flex;gap:10px;justify-content:space-between;align-items:center;
  padding:12px 20px 20px;border-top:1px solid var(--line,rgba(15,23,42,.08));
}
.ss-booking-foot .ss-booking-back{
  padding:10px 16px;border:1px solid var(--line,rgba(15,23,42,.15));border-radius:12px;
  background:#fff;cursor:pointer;font-family:inherit;font-weight:600;color:var(--text,#334155);
}
.ss-booking-foot .ss-booking-next,
.ss-booking-foot .ss-booking-submit{
  padding:11px 20px;border:none;border-radius:12px;cursor:pointer;
  font-family:inherit;font-weight:800;font-size:.92rem;color:#fff;
  background:linear-gradient(135deg,var(--primary,#0072bc),var(--accent,#00a3c4));
}
.ss-booking-foot .ss-booking-next:disabled,.ss-booking-foot .ss-booking-submit:disabled{opacity:.45;cursor:not-allowed}
.ss-booking-foot .ss-booking-submit{
  background:linear-gradient(135deg,var(--primary,#0072bc),var(--accent,#00a3c4));
}
.ss-booking-foot .ss-booking-submit:hover{
  background:linear-gradient(135deg,var(--primary-deep,#005a96),var(--primary,#0072bc));
}
.ss-booking-status{
  margin:14px 20px 0;padding:12px 14px;border-radius:12px;font-size:.88rem;display:none;line-height:1.45;
}
.ss-booking-status.is-error{display:block;background:#fef2f2;color:#991b1b}
.ss-booking-status.is-success{display:block;background:#ecfdf5;color:#065f46}
.ss-booking-status-line{display:block}
.ss-booking-status-line--sub{margin-top:6px}
.ss-booking-success-panel{text-align:center;padding:24px 8px}
.ss-booking-success-panel svg{width:48px;height:48px;color:var(--ok,#0d9488);margin-bottom:12px}
.ss-booking-success-panel h3{margin:0 0 8px;color:var(--ink,#0b1220)}
.ss-booking-success-panel p{margin:0;color:var(--muted,#64748b);font-size:.92rem;line-height:1.5}
