.sami-booking{
  --sb-accent:#6d28d9;
  --sb-accent-soft:#f1ebff;
  --sb-ink:#141414;
  --sb-muted:#6b6b76;
  --sb-line:#e7e5ee;
  --sb-bg:#ffffff;
  --sb-radius:16px;
  max-width:860px;margin:0 auto;padding:28px;border:1px solid var(--sb-line);border-radius:22px;background:var(--sb-bg);
  color:var(--sb-ink);font-size:16px;line-height:1.5;box-shadow:0 18px 50px -28px rgba(20,20,40,.35);box-sizing:border-box
}
.sami-booking *{box-sizing:border-box}
.sami-booking button{font:inherit;cursor:pointer}
.sb-head{margin-bottom:20px}
.sb-title{margin:0 0 4px;font-size:1.5rem;line-height:1.2}
.sb-sub,.sb-muted{margin:0;color:var(--sb-muted);font-size:.92rem}

.sb-types{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:12px;margin-bottom:22px}
.sb-type{display:flex;flex-direction:column;gap:6px;text-align:left;padding:16px 18px;border-radius:var(--sb-radius);border:2px solid var(--sb-line);background:#fff;color:inherit;transition:border-color .15s,background .15s}
.sb-type:hover{border-color:#c9b8f5}
.sb-type.is-on{border-color:var(--sb-accent);background:var(--sb-accent-soft)}
.sb-type-top{display:flex;justify-content:space-between;align-items:center;gap:10px}
.sb-type-desc{color:var(--sb-muted);font-size:.9rem}
.sb-price{font-weight:700;color:var(--sb-accent);white-space:nowrap}
.sb-price.is-free{color:#059669}

.sb-pick{display:grid;grid-template-columns:1.1fr .9fr;gap:22px}
.sb-cal-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px}
.sb-nav{width:36px;height:36px;border-radius:10px;border:1px solid var(--sb-line);background:#fff;color:inherit;font-size:1.2rem;line-height:1}
.sb-nav:disabled{opacity:.35;cursor:default}
.sb-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:4px;text-align:center}
.sb-dow{font-size:.78rem;font-weight:700;color:var(--sb-muted);padding:4px 0}
.sb-day{aspect-ratio:1;border-radius:12px;border:0;background:transparent;color:#b5b3bd;font-weight:600}
.sb-day.has{background:var(--sb-accent-soft);color:var(--sb-accent)}
.sb-day.has:hover{background:#e3d6ff}
.sb-day.is-on{background:var(--sb-accent);color:#fff}
.sb-day:disabled{cursor:default}

.sb-times-head{display:block;margin-bottom:10px}
.sb-time-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(96px,1fr));gap:8px;max-height:320px;overflow:auto;padding-right:2px}
.sb-time{padding:10px 8px;border-radius:12px;border:1.5px solid var(--sb-accent);background:#fff;color:var(--sb-accent);font-weight:700}
.sb-time:hover{background:var(--sb-accent-soft)}
.sb-time.is-on{background:var(--sb-accent);color:#fff}

.sb-form{display:grid;gap:12px;margin-top:24px;padding-top:22px;border-top:1px solid var(--sb-line)}
.sb-summary{display:flex;flex-wrap:wrap;justify-content:space-between;gap:6px 14px;padding:12px 16px;border-radius:12px;background:var(--sb-accent-soft)}
.sb-form label{display:grid;gap:6px;font-weight:600;font-size:.92rem}
.sb-form input,.sb-form textarea{width:100%;padding:11px 13px;border-radius:12px;border:1px solid #d6d3df;font:inherit;font-weight:400;background:#fff;color:inherit}
.sb-form input:focus,.sb-form textarea:focus{outline:2px solid var(--sb-accent);outline-offset:1px;border-color:transparent}
.sb-hp{position:absolute!important;left:-9999px!important;width:1px;height:1px;overflow:hidden}
.sb-submit{padding:14px 20px;border-radius:999px;border:0;background:var(--sb-accent);color:#fff;font-weight:700;font-size:1rem}
.sb-submit:disabled{opacity:.6;cursor:wait}

.sb-error{padding:10px 14px;border-radius:12px;background:#fef2f2;color:#b91c1c;border:1px solid #fecaca;font-size:.92rem}
.sb-loading,.sb-empty{padding:28px;text-align:center;color:var(--sb-muted);border:1px dashed var(--sb-line);border-radius:var(--sb-radius)}

.sb-done{text-align:center;padding:20px 6px}
.sb-done h3{margin:10px 0 6px;font-size:1.5rem}
.sb-done p{margin:4px 0}
.sb-check{width:64px;height:64px;margin:0 auto;border-radius:50%;background:#d1fae5;color:#059669;display:grid;place-items:center;font-size:2rem;font-weight:800}

@media (max-width:680px){
  .sami-booking{padding:18px;border-radius:18px}
  .sb-pick{grid-template-columns:1fr}
  .sb-time-list{max-height:none}
}

/* Dark theme (home page section). Colors follow the site's #se palette. */
.sami-booking.sb-dark{
  --sb-accent:#7c5cff;
  --sb-accent-soft:rgba(124,92,255,.16);
  --sb-ink:#f2f4f8;
  --sb-muted:#9aa3b5;
  --sb-line:#252a36;
  --sb-bg:#151821;
  --sb-ok:#3ddc84;
  box-shadow:0 30px 80px -40px rgba(124,92,255,.45);
}
.sb-dark .sb-type,.sb-dark .sb-nav,.sb-dark .sb-time,.sb-dark .sb-form input,.sb-dark .sb-form textarea{background:#111319;color:var(--sb-ink)}
.sb-dark .sb-type{border-color:var(--sb-line)}
.sb-dark .sb-type:hover{border-color:#4a3fa0}
.sb-dark .sb-price.is-free{color:var(--sb-ok)}
.sb-dark .sb-day{color:#4b5263}
.sb-dark .sb-day.has{color:#c9bcff}
.sb-dark .sb-day.has:hover{background:rgba(124,92,255,.3)}
.sb-dark .sb-day.is-on,.sb-dark .sb-time.is-on{background:var(--sb-accent);color:#fff}
.sb-dark .sb-time{border-color:#4a3fa0;color:#c9bcff}
.sb-dark .sb-time:hover{background:var(--sb-accent-soft)}
.sb-dark .sb-form input,.sb-dark .sb-form textarea{border-color:#2d3341}
.sb-dark .sb-submit{background:var(--sb-ok);color:#0a0b0f}
.sb-dark .sb-error{background:rgba(255,92,138,.12);border-color:rgba(255,92,138,.35);color:#ff9ab6}
.sb-dark .sb-check{background:rgba(61,220,132,.15);color:var(--sb-ok)}
.sb-dark a{color:#c9bcff}

/* Right-to-left (Arabic) */
.sami-booking.sb-rtl{direction:rtl;text-align:right}
.sb-rtl .sb-type{text-align:right}
.sb-rtl .sb-time-list{padding-right:0;padding-left:2px}
.sb-rtl input[dir="ltr"]{text-align:right}

/* Home page section wrapper */
#se-booking .se-head{margin-bottom:28px}
#se-booking .sb-home-text{color:#9aa3b5;max-width:640px;margin:10px 0 0}
#se-booking .sami-booking{max-width:none}
.sb-dark .sb-time-list{scrollbar-color:#3a3360 transparent;scrollbar-width:thin}

/* Shield the widget's buttons from theme button styles (e.g. Astra's padding). */
.sami-booking button{margin:0;text-transform:none;letter-spacing:normal;line-height:1.3;box-shadow:none;min-height:0;font-size:inherit}
.sami-booking .sb-type{padding:16px 18px}
.sami-booking .sb-nav{padding:0;width:36px;height:36px}
.sami-booking .sb-day{padding:0;aspect-ratio:auto;height:40px;width:100%;font-size:.95rem}
.sami-booking .sb-time{padding:10px 8px}
.sami-booking .sb-submit{padding:14px 20px;font-size:1rem}
.sami-booking .sb-cal{max-width:440px;width:100%}
