/* Booking wizard — theme fonts/radius, soft surfaces, capped Jalali calendar */
.bw-wrap {
  --bw-ink: var(--text-color, #1e293b);
  --bw-muted: color-mix(in srgb, var(--bw-ink) 52%, #94a3b8);
  --bw-line: color-mix(in srgb, var(--bw-ink) 9%, transparent);
  --bw-accent: var(--primary, #0d9488);
  --bw-accent-soft: var(--accent, var(--primary, #14b8a6));
  --bw-accent-2: color-mix(in srgb, var(--primary, #0d9488) 72%, #0f172a);
  --bw-soft: color-mix(in srgb, var(--primary, #0d9488) 14%, #fff);
  --bw-soft-2: color-mix(in srgb, var(--accent, #14b8a6) 10%, #fff);
  --bw-surface: #fff;
  --bw-radius: max(22px, var(--radius, 16px));
  --bw-radius-sm: max(14px, calc(var(--radius, 16px) - 2px));
  --bw-radius-lg: max(28px, calc(var(--radius, 16px) + 10px));
  --bw-page: color-mix(in srgb, var(--body-bg, #f8fafc) 82%, var(--primary, #0d9488) 18%);
  --bw-shadow: 0 18px 44px color-mix(in srgb, var(--bw-ink) 7%, transparent);
  --bw-shadow-soft: 0 8px 24px color-mix(in srgb, var(--bw-ink) 5%, transparent);
  width: 100%;
  max-width: min(1080px, 100%);
  margin: 0 auto;
  padding: 1.5rem 1.1rem 5.75rem;
  background:
    radial-gradient(920px 460px at 8% -8%, color-mix(in srgb, var(--bw-accent) 22%, transparent), transparent 62%),
    radial-gradient(720px 400px at 100% 0%, color-mix(in srgb, var(--bw-accent-soft) 16%, transparent), transparent 58%),
    linear-gradient(165deg, var(--bw-page) 0%, color-mix(in srgb, var(--body-bg, #fff) 92%, #e2e8f0) 100%);
  border-radius: 0 0 var(--bw-radius-lg) var(--bw-radius-lg);
  min-height: 68vh;
  font-family: inherit;
  color: var(--bw-ink);
  -webkit-font-smoothing: antialiased;
  overflow-x: hidden;
  box-sizing: border-box;
}
.bw-wrap,
.bw-wrap button,
.bw-wrap input,
.bw-wrap select,
.bw-wrap textarea {
  font-family: 'Vazirmatn', var(--font-family, Tahoma), Tahoma, sans-serif;
}
.bw-wrap h1,
.bw-wrap h2,
.bw-wrap h3 {
  font-family: 'Vazirmatn', var(--font-family, Tahoma), Tahoma, sans-serif;
  letter-spacing: -.015em;
}
.bw-wrap .is-hidden,
.bw-wrap.is-hidden { display: none !important; }

.bw-flash {
  border-radius: var(--bw-radius-sm);
  padding: .9rem 1.1rem;
  margin-bottom: 1rem;
  font-size: .9rem;
  font-weight: 600;
}
.bw-flash--warn { background: #fffbeb; border: 1px solid #fcd34d; color: #92400e; }
.bw-flash--err { background: #fef2f2; border: 1px solid #fca5a5; color: #991b1b; }

.bw-success {
  text-align: center;
  background: linear-gradient(180deg, #fff 0%, var(--bw-soft) 140%);
  border: 1px solid color-mix(in srgb, var(--bw-accent) 16%, transparent);
  border-radius: var(--bw-radius-lg);
  padding: 2.35rem 1.4rem;
  margin-bottom: 1.1rem;
  box-shadow: var(--bw-shadow);
  animation: bwIn .5s cubic-bezier(.22, 1, .36, 1) both;
}
.bw-success__icon {
  width: 78px; height: 78px; margin: 0 auto 1rem; border-radius: 50%;
  display: grid; place-items: center; font-size: 2.1rem; color: #fff;
  background: linear-gradient(145deg, var(--bw-accent), var(--bw-accent-2));
  box-shadow: 0 14px 28px color-mix(in srgb, var(--bw-accent) 35%, transparent);
}
.bw-success__title { margin: 0 0 .55rem; font-size: 1.4rem; font-weight: 900; }
.bw-success__lead { margin: 0 auto 1.35rem; max-width: 28rem; color: var(--bw-muted); line-height: 1.8; }
.bw-success__actions { display: flex; flex-wrap: wrap; gap: .6rem; justify-content: center; }

.bw-hero { text-align: center; margin-bottom: 1.65rem; }
.bw-eyebrow {
  display: inline-block;
  font-size: .74rem;
  letter-spacing: .14em;
  color: var(--bw-accent);
  font-weight: 800;
  margin-bottom: .45rem;
  padding: .28rem .7rem;
  border-radius: 999px;
  background: color-mix(in srgb, var(--bw-accent) 10%, #fff);
}
.bw-title {
  font-size: clamp(1.65rem, 3.2vw, 2.25rem);
  font-weight: 900;
  color: var(--bw-ink);
  margin: 0 0 .55rem;
  line-height: 1.3;
}
.bw-lead {
  color: var(--bw-muted);
  max-width: 34rem;
  margin: 0 auto 1.25rem;
  line-height: 1.8;
  font-size: .95rem;
}

.bw-stepper {
  list-style: none; margin: 0; padding: 0;
  display: flex; justify-content: center; flex-wrap: wrap; gap: .5rem;
}
.bw-stepper li {
  display: inline-flex; align-items: center; gap: .42rem;
  font-size: .8rem; padding: .42rem .85rem;
  border-radius: 999px;
  background: color-mix(in srgb, #fff 88%, transparent);
  border: 1px solid var(--bw-line);
  color: var(--bw-muted);
  font-weight: 700;
  transition: .22s ease;
  backdrop-filter: blur(6px);
}
.bw-stepper__n {
  width: 1.45rem; height: 1.45rem; border-radius: 50%;
  display: grid; place-items: center;
  background: color-mix(in srgb, var(--bw-ink) 7%, #fff);
  font-size: .72rem;
}
.bw-stepper li.is-active {
  background: linear-gradient(135deg, var(--bw-accent), var(--bw-accent-2));
  color: #fff; border-color: transparent;
  box-shadow: 0 10px 22px color-mix(in srgb, var(--bw-accent) 32%, transparent);
}
.bw-stepper li.is-active .bw-stepper__n { background: rgba(255,255,255,.22); color: #fff; }
.bw-stepper li.is-done {
  background: var(--bw-soft);
  color: var(--bw-accent-2);
  border-color: transparent;
}

.bw-layout {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 300px;
  gap: 1.25rem;
  align-items: start;
  max-width: 100%;
  overflow: hidden;
}
.bw-main { min-width: 0; max-width: 100%; overflow: hidden; }
.bw-aside { position: relative; min-width: 0; }
.bw-sticky {
  position: sticky; top: 1rem;
  background: linear-gradient(180deg, #fff 0%, color-mix(in srgb, var(--bw-soft) 55%, #fff) 100%);
  border: 1px solid color-mix(in srgb, var(--bw-accent) 12%, var(--bw-line));
  border-radius: var(--bw-radius-lg);
  padding: 1.15rem 1.2rem;
  box-shadow: var(--bw-shadow-soft);
}
.bw-sticky__title { margin: 0 0 .85rem; font-size: 1rem; font-weight: 900; }
.bw-sticky__list { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: .65rem; }
.bw-sticky__list li {
  display: flex; justify-content: space-between; gap: .75rem;
  font-size: .84rem; padding-bottom: .5rem;
  border-bottom: 1px dashed var(--bw-line);
}
.bw-sticky__list li span { color: var(--bw-muted); }
.bw-sticky__list li strong { font-weight: 800; text-align: left; }
.bw-sticky__list li.is-muted { color: var(--bw-muted); border: 0; display: block; }
.bw-sticky__price { margin-top: .95rem; font-size: 1.25rem; font-weight: 900; color: var(--bw-accent); }
.bw-sticky__price small { font-size: .78rem; font-weight: 700; }
.bw-sticky__note { margin-top: .85rem; font-size: .82rem; color: var(--bw-muted); font-weight: 700; }

.bw-panel {
  min-width: 0;
  max-width: 100%;
  animation: bwIn .42s cubic-bezier(.22, 1, .36, 1) both;
}
.bw-panel[hidden] { display: none !important; }
@keyframes bwIn {
  from { opacity: 0; transform: translateY(14px); }
  to { opacity: 1; transform: none; }
}

.bw-toolbar {
  display: flex; align-items: center; justify-content: space-between;
  gap: .75rem; margin-bottom: .95rem; flex-wrap: wrap;
}
.bw-board-hint, .bw-step-hint {
  color: var(--bw-muted); font-size: .88rem; margin: 0 0 1.05rem; font-weight: 600;
}
.bw-back {
  border: 0; background: transparent; color: var(--bw-accent);
  font-weight: 700; margin: 0; padding: .3rem 0; cursor: pointer;
  font-family: inherit; font-size: .9rem;
}

.bw-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(178px, 1fr));
  gap: 1rem;
}
.bw-grid--services { grid-template-columns: repeat(auto-fill, minmax(190px, 1fr)); }

.bw-card {
  text-align: right;
  border: 1px solid color-mix(in srgb, var(--bw-accent) 10%, var(--bw-line));
  background: var(--bw-surface);
  border-radius: var(--bw-radius);
  padding: 0; overflow: hidden; cursor: pointer;
  transition: transform .22s ease, box-shadow .22s ease, border-color .22s ease;
  box-shadow: var(--bw-shadow-soft);
  display: flex; flex-direction: column;
  font: inherit; color: inherit;
}
.bw-card:hover, .bw-card.is-selected {
  transform: translateY(-4px);
  border-color: color-mix(in srgb, var(--bw-accent) 42%, transparent);
  box-shadow: 0 18px 34px color-mix(in srgb, var(--bw-accent) 16%, transparent);
}
.bw-card__media {
  height: 5.1rem;
  background:
    radial-gradient(circle at 20% 20%, color-mix(in srgb, #fff 55%, transparent), transparent 45%),
    linear-gradient(145deg, var(--bw-soft), var(--bw-soft-2));
  display: flex; align-items: center; justify-content: center;
  color: var(--bw-accent); font-size: 1.65rem;
}
.bw-card__body { padding: 1rem 1.05rem 1.1rem; display: flex; flex-direction: column; gap: .25rem; flex: 1; }
.bw-card__label { font-weight: 800; font-size: .98rem; line-height: 1.45; }
.bw-card__meta { font-size: .8rem; color: var(--bw-muted); }
.bw-card__price { font-size: .86rem; font-weight: 800; color: var(--bw-accent); margin-top: .2rem; }
.bw-card__price--free { color: var(--bw-muted); font-weight: 700; }
.bw-card__channels {
  font-size: .72rem; font-weight: 700; color: var(--bw-accent-2);
  line-height: 1.4; margin-top: .15rem;
}
.bw-card__cta { font-size: .76rem; font-weight: 800; color: var(--bw-accent-2); margin-top: .5rem; }

.bw-channels {
  border: 1px solid color-mix(in srgb, var(--bw-accent) 14%, var(--bw-line));
  border-radius: var(--bw-radius);
  background: linear-gradient(180deg, #fff, color-mix(in srgb, var(--bw-soft) 45%, #fff));
  padding: 1rem 1.05rem;
  margin: 0 0 1.1rem;
}
.bw-channels[hidden] { display: none !important; }
.bw-channels__title {
  font-size: .95rem; font-weight: 900; margin: 0 0 .25rem; padding: 0;
}
.bw-channels__hint {
  margin: 0 0 .75rem; font-size: .8rem; color: var(--bw-muted); font-weight: 600;
}
.bw-channels__grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(148px, 1fr));
  gap: .55rem;
}
.bw-channel {
  display: flex; align-items: center; gap: .45rem;
  border: 1px solid var(--bw-line);
  background: #fff;
  border-radius: var(--bw-radius-sm);
  padding: .7rem .8rem;
  cursor: pointer;
  font: inherit;
  font-weight: 800;
  font-size: .84rem;
  color: inherit;
  text-align: right;
  transition: .15s ease;
}
.bw-channel i { color: var(--bw-accent); font-size: 1.05rem; }
.bw-channel:hover {
  border-color: color-mix(in srgb, var(--bw-accent) 40%, transparent);
  background: var(--bw-soft);
}
.bw-channel.is-selected {
  background: linear-gradient(135deg, var(--bw-accent), var(--bw-accent-2));
  color: #fff;
  border-color: transparent;
  box-shadow: 0 8px 16px color-mix(in srgb, var(--bw-accent) 28%, transparent);
}
.bw-channel.is-selected i { color: #fff; }

.bw-staff { margin-bottom: 1rem; }
.bw-label { display: block; font-size: .82rem; font-weight: 700; margin-bottom: .4rem; color: var(--bw-muted); }
.bw-select, .bw-input {
  width: 100%;
  border: 1px solid var(--bw-line);
  border-radius: var(--bw-radius-sm);
  padding: .78rem .95rem;
  background: var(--bw-surface);
  font: inherit;
  color: inherit;
}
.bw-select:focus, .bw-input:focus {
  outline: none;
  border-color: color-mix(in srgb, var(--bw-accent) 55%, transparent);
  box-shadow: 0 0 0 4px color-mix(in srgb, var(--bw-accent) 16%, transparent);
}

/* Compact Jalali date + grouped time — scroll stays inside panes */
.bw-when {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: .85rem;
  background: var(--bw-surface);
  border: 1px solid color-mix(in srgb, var(--bw-accent) 10%, var(--bw-line));
  border-radius: var(--bw-radius-lg);
  padding: .85rem .75rem .95rem;
  box-shadow: var(--bw-shadow-soft);
  min-width: 0;
  max-width: 100%;
  width: 100%;
  box-sizing: border-box;
  overflow: hidden;
}
.bw-when__date,
.bw-when__time {
  min-width: 0;
  max-width: 100%;
  overflow: hidden;
}
.bw-when__bar {
  display: flex; align-items: center; justify-content: space-between;
  gap: .5rem; margin-bottom: .55rem;
}
.bw-when__label { font-size: .8rem; font-weight: 800; color: var(--bw-muted); }

.bw-week {
  display: flex;
  flex-wrap: nowrap;
  gap: .35rem;
  margin: 0 -.15rem .35rem;
  padding: .1rem .15rem .35rem;
  overflow-x: auto;
  overflow-y: hidden;
  -webkit-overflow-scrolling: touch;
  scrollbar-width: thin;
  overscroll-behavior-x: contain;
  max-width: 100%;
}
.bw-week__day {
  flex: 0 0 3.45rem;
  width: 3.45rem;
  max-width: 3.45rem;
  box-sizing: border-box;
  border: 1px solid var(--bw-line);
  background: color-mix(in srgb, var(--bw-soft) 40%, #f8fafc);
  border-radius: 14px;
  padding: .4rem .1rem;
  cursor: pointer;
  font: inherit;
  color: inherit;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: .08rem;
  transition: .16s ease;
  overflow: hidden;
}
.bw-week__day:hover { border-color: color-mix(in srgb, var(--bw-accent) 40%, transparent); }
.bw-week__day.is-selected {
  background: linear-gradient(145deg, var(--bw-accent), var(--bw-accent-2));
  color: #fff;
  border-color: transparent;
  box-shadow: 0 8px 16px color-mix(in srgb, var(--bw-accent) 28%, transparent);
}
.bw-week__rel,
.bw-week__mon {
  font-size: .55rem;
  font-weight: 700;
  opacity: .9;
  white-space: nowrap;
  max-width: 100%;
  overflow: hidden;
  text-overflow: ellipsis;
}
.bw-week__num { font-size: .95rem; font-weight: 900; line-height: 1.1; }

.bw-cal {
  width: 100%;
  max-width: 300px;
  margin: .55rem auto 0;
  padding-top: .55rem;
  border-top: 1px dashed var(--bw-line);
}
.bw-cal[hidden], .bw-cal.is-collapsed { display: none !important; }
.bw-cal__head {
  display: flex; align-items: center; justify-content: space-between;
  margin-bottom: .5rem; gap: .5rem;
}
.bw-cal__title {
  font-weight: 900; font-size: .9rem; text-align: center; flex: 1; min-width: 0;
}
.bw-cal__nav {
  width: 34px; height: 34px; flex: 0 0 34px;
  border-radius: 12px;
  border: 1px solid var(--bw-line);
  background: color-mix(in srgb, var(--bw-soft) 50%, #fff);
  cursor: pointer;
  display: grid; place-items: center;
  color: var(--bw-ink);
  font-family: inherit;
}
.bw-cal__nav:hover {
  background: var(--bw-soft);
  color: var(--bw-accent);
}
.bw-cal__dow {
  display: grid;
  grid-template-columns: repeat(7, minmax(0, 1fr));
  gap: .15rem;
  margin-bottom: .3rem;
  text-align: center;
  font-size: .68rem;
  font-weight: 800;
  color: var(--bw-muted);
}
.bw-cal__grid {
  display: grid;
  grid-template-columns: repeat(7, minmax(0, 1fr));
  gap: .2rem;
  width: 100%;
}
.bw-cal__cell {
  width: 100%;
  max-width: 36px;
  aspect-ratio: 1;
  max-height: 36px;
  margin: 0 auto;
  border: 0;
  border-radius: 10px;
  background: transparent;
  cursor: pointer;
  font: inherit;
  font-weight: 700;
  font-size: .78rem;
  color: var(--bw-ink);
  display: grid;
  place-items: center;
  padding: 0;
  transition: .12s ease;
  line-height: 1;
}
.bw-cal__cell:not(.is-empty):not(.is-disabled):hover {
  background: var(--bw-soft);
  color: var(--bw-accent);
}
.bw-cal__cell.is-empty { pointer-events: none; visibility: hidden; }
.bw-cal__cell.is-disabled { opacity: .28; cursor: not-allowed; }
.bw-cal__cell.is-today {
  box-shadow: inset 0 0 0 1.5px color-mix(in srgb, var(--bw-accent) 55%, transparent);
}
.bw-cal__cell.is-selected {
  background: linear-gradient(145deg, var(--bw-accent), var(--bw-accent-2));
  color: #fff;
  box-shadow: 0 6px 14px color-mix(in srgb, var(--bw-accent) 32%, transparent);
}

.bw-slots-head {
  display: flex; align-items: center; justify-content: space-between;
  gap: .5rem; margin-bottom: .55rem;
}
.bw-slots-head strong { font-size: .88rem; font-weight: 900; }
.bw-link-btn {
  border: 0; background: transparent; color: var(--bw-accent);
  font-weight: 800; font-size: .78rem; cursor: pointer; padding: 0;
  font-family: inherit;
}
.bw-slots {
  max-height: min(280px, 38vh);
  overflow-x: hidden;
  overflow-y: auto;
  overscroll-behavior: contain;
  padding: .15rem 0 .25rem;
  display: flex;
  flex-direction: column;
  gap: .7rem;
  -webkit-overflow-scrolling: touch;
  scrollbar-width: thin;
  min-width: 0;
  max-width: 100%;
}
.bw-time-group { min-width: 0; max-width: 100%; }
.bw-time-group__label {
  font-size: .72rem;
  font-weight: 800;
  color: var(--bw-muted);
  margin-bottom: .4rem;
}
.bw-time-group__grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: .4rem;
  width: 100%;
  max-width: 100%;
  box-sizing: border-box;
}
.bw-slot {
  border: 1px solid var(--bw-line);
  background: color-mix(in srgb, var(--bw-soft) 35%, #f8fafc);
  border-radius: 14px;
  padding: .55rem .2rem;
  font-size: .84rem;
  font-weight: 800;
  cursor: pointer;
  font-family: inherit;
  transition: .15s ease;
  color: inherit;
  display: grid;
  place-items: center;
  min-width: 0;
  width: 100%;
  max-width: 100%;
  box-sizing: border-box;
}
.bw-slot__t { direction: ltr; font-variant-numeric: tabular-nums; }
.bw-slot:hover { border-color: color-mix(in srgb, var(--bw-accent) 45%, transparent); }
.bw-slot.is-selected {
  background: linear-gradient(135deg, var(--bw-accent), var(--bw-accent-2));
  color: #fff;
  border-color: transparent;
  box-shadow: 0 8px 16px color-mix(in srgb, var(--bw-accent) 28%, transparent);
}

/* Instant booking — high-attention red offer */
.bw-instant {
  position: relative;
  margin: 0 0 1.15rem;
  border-radius: var(--bw-radius-lg);
  padding: 1.1rem 1.15rem;
  overflow: hidden;
  color: #fff;
  background: linear-gradient(135deg, #b91c1c 0%, #dc2626 45%, #9f1239 100%);
  border: 1px solid rgba(255, 255, 255, .18);
  box-shadow: 0 16px 36px rgba(185, 28, 28, .35);
}
.bw-instant__glow {
  position: absolute; inset: -40% auto auto -20%;
  width: 220px; height: 220px; border-radius: 50%;
  background: radial-gradient(circle, rgba(255,255,255,.22), transparent 70%);
  pointer-events: none;
}
.bw-instant__row {
  position: relative;
  display: flex; flex-wrap: wrap; align-items: center;
  justify-content: space-between; gap: 1rem;
}
.bw-instant__badge {
  display: inline-flex; align-items: center; gap: .3rem;
  font-size: .72rem; font-weight: 900; letter-spacing: .06em;
  background: rgba(0,0,0,.22); padding: .28rem .65rem; border-radius: 999px;
  margin-bottom: .45rem;
}
.bw-instant__title {
  margin: 0 0 .35rem; font-size: 1.2rem; font-weight: 900; color: #fff;
}
.bw-instant__lead {
  margin: 0 0 .65rem; font-size: .86rem; line-height: 1.7;
  color: rgba(255,255,255,.9); max-width: 34rem;
}
.bw-instant__price {
  display: flex; align-items: baseline; gap: .35rem;
  font-weight: 900;
}
.bw-instant__price strong { font-size: 1.35rem; }
.bw-instant__price span { font-size: .8rem; opacity: .9; }
.bw-instant__cta {
  border: 0; cursor: pointer; font: inherit; font-weight: 900;
  border-radius: 999px; padding: .85rem 1.35rem;
  background: #fff; color: #b91c1c;
  box-shadow: 0 10px 22px rgba(0,0,0,.18);
  transition: transform .15s ease;
  white-space: nowrap;
}
.bw-instant__cta:hover { transform: translateY(-2px); }
.bw-instant--hero {
  margin: 0 0 1rem;
}
.bw-instant-alt {
  margin-top: 1rem;
  padding-top: 1rem;
  border-top: 1px dashed color-mix(in srgb, #dc2626 25%, var(--bw-line));
  text-align: center;
}
.bw-instant-alt .bw-btn { width: 100%; max-width: 22rem; }
.bw-instant-panel {
  background: #fff;
  border: 1px solid color-mix(in srgb, #dc2626 28%, var(--bw-line));
  border-radius: var(--bw-radius-lg);
  padding: 1.15rem 1.1rem 1.25rem;
  margin-bottom: 1rem;
  box-shadow: 0 14px 32px rgba(185, 28, 28, .12);
  animation: bwIn .4s cubic-bezier(.22, 1, .36, 1) both;
}
.bw-instant-panel.is-hidden,
.bw-instant-panel[hidden] { display: none !important; }
.bw-instant-panel__title {
  margin: .35rem 0 .4rem; font-size: 1.2rem; font-weight: 900; color: #991b1b;
}
.bw-instant-panel__lead {
  margin: 0 0 1rem; color: var(--bw-muted); font-size: .9rem; line-height: 1.7;
}
.bw-instant-panel__sum {
  display: flex; justify-content: space-between; align-items: center;
  gap: .75rem; padding: .85rem 1rem; margin-bottom: 1rem;
  border-radius: var(--bw-radius-sm);
  background: #fef2f2; border: 1px solid #fecaca;
  font-weight: 800;
}
.bw-instant-panel__sum strong { color: #b91c1c; font-size: 1.1rem; }
.bw-btn--danger {
  background: linear-gradient(135deg, #dc2626, #991b1b);
  color: #fff;
  box-shadow: 0 10px 20px rgba(185, 28, 28, .3);
}
.bw-btn--danger:hover { filter: brightness(1.05); color: #fff; }

.bw-skel {
  display: inline-block; border-radius: 999px; height: 2.2rem; width: 4.4rem;
  background: linear-gradient(90deg, #e2e8f0 25%, #f1f5f9 50%, #e2e8f0 75%);
  background-size: 200% 100%; animation: bwShimmer 1.1s linear infinite;
}
.bw-skel--slot { margin: 0; }
.bw-skel--card {
  height: 9.5rem; width: 100%; border-radius: var(--bw-radius); display: block;
}
@keyframes bwShimmer {
  0% { background-position: 200% 0; }
  100% { background-position: -200% 0; }
}

.bw-empty {
  width: 100%; text-align: center; padding: 1.75rem .85rem; color: var(--bw-muted);
}
.bw-empty i { font-size: 1.9rem; display: block; margin-bottom: .45rem; color: var(--bw-accent); opacity: .75; }
.bw-empty p { margin: 0 0 .3rem; font-weight: 800; color: var(--bw-ink); }
.bw-empty span { font-size: .82rem; }
.bw-empty--err i { color: #dc2626; }
.bw-empty--services { grid-column: 1 / -1; }

.bw-summary {
  background: linear-gradient(135deg, var(--bw-soft), var(--bw-soft-2));
  border-radius: var(--bw-radius);
  padding: 1rem 1.1rem;
  margin-bottom: 1.1rem;
  border: 1px solid color-mix(in srgb, var(--bw-accent) 16%, transparent);
}
.bw-summary__row {
  display: flex; justify-content: space-between; gap: .75rem;
  padding: .4rem 0; font-size: .9rem;
  border-bottom: 1px dashed color-mix(in srgb, var(--bw-accent) 14%, transparent);
}
.bw-summary__row:last-child { border: 0; }
.bw-summary__row span { color: var(--bw-muted); font-weight: 600; }
.bw-summary__row strong { font-weight: 900; }

.bw-fields {
  display: grid; grid-template-columns: 1fr 1fr; gap: .85rem; margin-bottom: .85rem;
}
.bw-field { display: flex; flex-direction: column; gap: .35rem; font-size: .82rem; font-weight: 700; color: var(--bw-muted); }
.bw-field--full { grid-column: 1 / -1; }
.bw-trust {
  display: flex; align-items: center; gap: .45rem;
  font-size: .8rem; color: var(--bw-muted); margin: 0 0 1.1rem; font-weight: 600;
}
.bw-trust i { color: var(--bw-accent); font-size: 1rem; }
.bw-alt { text-align: center; margin: 1.1rem 0 0; }
.bw-alt-link { color: var(--bw-accent-2); font-size: .9rem; text-decoration: none; font-weight: 700; }
.bw-alt-link:hover { text-decoration: underline; }

.bw-btn {
  display: inline-flex; align-items: center; justify-content: center; gap: .4rem;
  border-radius: 999px;
  padding: .78rem 1.25rem;
  font-weight: 800;
  font-size: .92rem;
  text-decoration: none;
  border: 0;
  cursor: pointer;
  font-family: inherit;
  transition: .16s ease;
}
.bw-btn:hover { transform: translateY(-1px); }
.bw-btn--primary {
  background: linear-gradient(135deg, var(--bw-accent), var(--bw-accent-2));
  color: #fff;
  box-shadow: 0 10px 20px color-mix(in srgb, var(--bw-accent) 28%, transparent);
}
.bw-btn--primary:disabled { opacity: .45; cursor: not-allowed; transform: none; box-shadow: none; }
.bw-btn--ghost {
  background: #fff;
  color: var(--bw-accent);
  border: 1px solid color-mix(in srgb, var(--bw-accent) 28%, transparent);
}
.bw-btn--soft { background: var(--bw-soft); color: var(--bw-accent); }

.bw-dock {
  display: flex; gap: .6rem; margin-top: 1.2rem;
  position: sticky; bottom: .85rem; z-index: 5;
  background: color-mix(in srgb, #fff 78%, var(--bw-page));
  backdrop-filter: blur(12px);
  padding: .6rem;
  border-radius: 999px;
  border: 1px solid color-mix(in srgb, var(--bw-accent) 12%, var(--bw-line));
  box-shadow: 0 14px 34px color-mix(in srgb, var(--bw-ink) 12%, transparent);
}
.bw-dock .bw-btn { flex: 1; }

@media (max-width: 980px) {
  .bw-layout { grid-template-columns: 1fr; }
  .bw-aside { order: -1; }
  .bw-sticky {
    position: relative; top: 0;
    display: grid;
    grid-template-columns: 1fr auto;
    gap: .55rem 1rem;
    align-items: start;
    border-radius: var(--bw-radius);
  }
  .bw-sticky__title { grid-column: 1 / -1; margin-bottom: 0; }
  .bw-sticky__list {
    grid-column: 1 / -1;
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: .45rem .85rem;
  }
  .bw-sticky__list li { border: 0; padding: 0; flex-direction: column; gap: .1rem; }
  .bw-sticky__foot { grid-column: 1 / -1; }
}

@media (max-width: 640px) {
  .bw-wrap { padding: 1.1rem .85rem 6.25rem; border-radius: 0; }
  .bw-grid, .bw-grid--services { grid-template-columns: 1fr 1fr; gap: .7rem; }
  .bw-fields { grid-template-columns: 1fr; }
  .bw-stepper__t { display: none; }
  .bw-stepper li.is-active .bw-stepper__t { display: inline; }
  .bw-sticky__list { grid-template-columns: 1fr; }
  .bw-when { padding: .75rem .65rem .85rem; }
  .bw-week__day { flex-basis: 3.25rem; width: 3.25rem; max-width: 3.25rem; }
  .bw-cal { max-width: 100%; }
  .bw-cal__cell {
    max-width: 34px;
    max-height: 34px;
    font-size: .76rem;
    border-radius: 10px;
  }
  .bw-slots { max-height: min(240px, 34vh); }
  .bw-time-group__grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .bw-card__media { height: 4.4rem; font-size: 1.35rem; }
  .bw-card__body { padding: .8rem .75rem .9rem; }
  .bw-card__label { font-size: .88rem; }
}

@media (min-width: 641px) {
  .bw-time-group__grid { grid-template-columns: repeat(4, minmax(0, 1fr)); }
}

@media (max-width: 380px) {
  .bw-grid, .bw-grid--services { grid-template-columns: 1fr; }
  .bw-cal__cell { max-width: 36px; max-height: 36px; font-size: .76rem; }
  .bw-time-group__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .bw-week__day { flex-basis: 3.1rem; width: 3.1rem; max-width: 3.1rem; }
}

@media (prefers-reduced-motion: reduce) {
  .bw-panel, .bw-success, .bw-skel, .bw-card:hover, .bw-btn:hover {
    animation: none !important; transition: none !important;
  }
}

@supports not (background: color-mix(in srgb, red 50%, blue)) {
  .bw-wrap {
    --bw-soft: #ecfeff;
    --bw-soft-2: #f0fdfa;
    --bw-muted: #5b6b7c;
    --bw-line: rgba(15, 23, 42, .08);
    --bw-page: #f8fafc;
    --bw-radius: 22px;
    --bw-radius-sm: 14px;
    --bw-radius-lg: 28px;
  }
}
