/* View Spa — booking widget styles. Использует токены из shared.css (--gold и т.п.). */

.bk-wrap { max-width: 720px; margin: 0 auto; padding: 40px 20px 80px; }

/* ── BOOKING INTRO ── */
.bk-intro { text-align: center; margin-bottom: 28px; }
.bk-intro-title { font-family: 'Montserrat', sans-serif; font-size: 38px; font-weight: 900; color: var(--dark); margin: 0 0 8px; letter-spacing: 2px; text-transform: uppercase; }
.bk-intro-sub { font-size: 14px; color: #777; margin: 0 0 14px; }
.bk-trust-strip { display: flex; align-items: center; justify-content: center; gap: 8px; flex-wrap: wrap; font-size: 12px; font-weight: 700; letter-spacing: .5px; text-transform: uppercase; color: var(--gold-accessible); }
.bk-trust-dot { color: #ccc; font-weight: 400; }

/* ── SPECIALIST CARDS ── */
.bk-specialists { display: grid; grid-template-columns: repeat(3, 1fr); gap: 12px; margin-bottom: 28px; }
.bk-spec-card { display: flex; align-items: center; gap: 12px; padding: 14px 16px; background: var(--beige); border: 1px solid var(--border); border-radius: 8px; }
.bk-spec-photo { width: 52px; height: 52px; border-radius: 50%; object-fit: cover; flex-shrink: 0; }
.bk-spec-body { display: flex; flex-direction: column; gap: 2px; }
.bk-spec-name { font-size: 15px; font-weight: 700; color: var(--dark); }
.bk-spec-role { font-size: 11px; color: #888; }
.bk-spec-avail { font-size: 11px; font-weight: 700; color: var(--gold-accessible); }

@media (max-width: 600px) {
  .bk-intro-title { font-size: 28px; }
  .bk-specialists { grid-template-columns: 1fr; }
  .bk-spec-card { padding: 12px; }
}

/* progress */
.bk-progress { display: flex; align-items: center; justify-content: center; gap: 6px; margin-bottom: 26px; flex-wrap: wrap; }
.bk-pstep { font-size: 10px; font-weight: 700; letter-spacing: 1.5px; text-transform: uppercase; color: #bbb; }
.bk-pstep.on { color: var(--gold-accessible); }
.bk-pline { width: 16px; height: 1px; background: #ddd; }

/* card */
.bk-card { background: var(--white); border: 1px solid var(--border); border-radius: 10px; padding: 34px 30px; box-shadow: 0 10px 40px rgba(0,0,0,.05); position: relative; }
.bk-title { font-size: 30px; margin: 6px 0 6px; }
.bk-sub { color: #777; font-size: 14px; margin-bottom: 22px; }
.bk-body { margin-top: 8px; }
.bk-back { position: absolute; top: 18px; right: 20px; background: none; border: none; color: var(--gold-accessible); font-weight: 700; font-size: 13px; cursor: pointer; padding: 6px; }
.bk-back:hover { color: var(--gold-dk); }

/* tiles grid (category/subcategory) */
.bk-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
.bk-tile { display: flex; flex-direction: column; align-items: flex-start; gap: 8px; padding: 26px 22px; background: var(--beige); border: 1px solid var(--border); border-radius: 8px; cursor: pointer; text-align: left; transition: border-color .2s, transform .2s, box-shadow .2s; }
.bk-tile:hover { border-color: var(--gold); transform: translateY(-2px); box-shadow: 0 8px 24px rgba(0,0,0,.06); }
.bk-tile-name { font-family: 'Cormorant Garamond', serif; font-size: 24px; color: var(--dark); }
.bk-tile-meta { font-size: 11px; font-weight: 700; letter-spacing: 1px; text-transform: uppercase; color: var(--gold-accessible); }

/* service / master lists */
.bk-list { display: flex; flex-direction: column; gap: 10px; }
.bk-svc, .bk-master { display: flex; align-items: center; gap: 14px; width: 100%; padding: 16px 18px; background: var(--white); border: 1px solid var(--border); border-radius: 8px; cursor: pointer; text-align: left; transition: border-color .2s, background .2s; }
.bk-svc:hover, .bk-master:hover { border-color: var(--gold); background: var(--beige); }
.bk-svc-main { display: flex; flex-direction: column; gap: 4px; flex: 1; }
.bk-svc-name { font-size: 16px; font-weight: 700; color: var(--dark); }
.bk-svc-dur { font-size: 12px; color: #888; }
.bk-svc-price { font-family: 'Cormorant Garamond', serif; font-size: 20px; color: var(--gold-dk); white-space: nowrap; }

.bk-master-av { width: 46px; height: 46px; border-radius: 50%; background: linear-gradient(135deg, var(--gold), var(--gold-dk)); color: #fff; display: flex; align-items: center; justify-content: center; font-family: 'Cormorant Garamond', serif; font-size: 20px; flex-shrink: 0; }
.bk-master-body { display: flex; flex-direction: column; gap: 3px; flex: 1; }
.bk-master-name { font-size: 16px; font-weight: 700; color: var(--dark); }
.bk-master-role { font-size: 11px; color: #999; letter-spacing: .3px; }
.bk-master-price { font-family: 'Cormorant Garamond', serif; font-size: 18px; color: var(--gold-dk); white-space: nowrap; }
.bk-master-any .bk-master-av { background: var(--dark); }

/* days + slots */
.bk-days { display: flex; gap: 8px; overflow-x: auto; padding-bottom: 10px; margin-bottom: 16px; -webkit-overflow-scrolling: touch; }
.bk-day { flex: 0 0 auto; padding: 10px 14px; border: 1px solid var(--border); border-radius: 999px; background: var(--white); cursor: pointer; font-size: 13px; font-weight: 700; color: #555; white-space: nowrap; }
.bk-day.on { background: var(--gold); border-color: var(--gold); color: #fff; }
.bk-slots { display: grid; grid-template-columns: repeat(auto-fill, minmax(96px, 1fr)); gap: 10px; }
.bk-slot { padding: 12px 6px; border: 1px solid var(--border); border-radius: 8px; background: var(--white); cursor: pointer; font-size: 14px; font-weight: 700; color: var(--dark); display: flex; flex-direction: column; gap: 2px; align-items: center; transition: border-color .2s, background .2s; }
.bk-slot:hover { border-color: var(--gold); background: var(--beige); }
.bk-slot-who { font-size: 10px; font-weight: 700; letter-spacing: .5px; text-transform: uppercase; color: var(--gold-accessible); }

/* summary + form */
.bk-summary { background: var(--beige); border: 1px solid var(--border); border-radius: 8px; padding: 16px 18px; display: flex; flex-direction: column; gap: 6px; font-size: 14px; color: #444; margin-bottom: 20px; }
.bk-summary b { font-size: 16px; color: var(--dark); }
.bk-summary-done { border-color: var(--gold); }
.bk-form { display: flex; flex-direction: column; gap: 14px; }
.bk-form label { display: flex; flex-direction: column; gap: 6px; font-size: 12px; font-weight: 700; letter-spacing: .5px; text-transform: uppercase; color: #666; }
.bk-form input, .bk-form textarea { padding: 12px 14px; border: 1px solid var(--border); border-radius: 8px; font-family: 'Lato', sans-serif; font-size: 15px; color: var(--dark); }
.bk-form input:focus, .bk-form textarea:focus { outline: none; border-color: var(--gold); }
.bk-submit { margin-top: 6px; }

/* states */
.bk-loading { text-align: center; color: #888; padding: 40px 0; }
.bk-error { background: #fdf3f3; border: 1px solid #f0c9c9; color: #a33; padding: 14px 16px; border-radius: 8px; font-size: 14px; }

@media (max-width: 560px) {
  .bk-card { padding: 26px 18px; }
  .bk-title { font-size: 25px; }
  .bk-grid { grid-template-columns: 1fr; }
}

/* ── BOOKING FALLBACK ── */
.bk-fallback {
  display: none;
  margin-top: 24px;
  padding: 24px;
  background: #FFFCF5;
  border: 1px solid var(--gold);
  border-radius: 8px;
  text-align: center;
}
.bk-fallback.visible { display: block; }
.bk-fallback-title {
  font-family: 'Lato', sans-serif;
  font-size: 13px;
  font-weight: 700;
  color: var(--dark);
  margin-bottom: 16px;
}
.bk-fallback-actions {
  display: flex;
  gap: 12px;
  justify-content: center;
  flex-wrap: wrap;
  margin-bottom: 12px;
}
.bk-fallback-note {
  font-size: 12px;
  color: var(--mid);
}
.btn-outline-d {
  border: 1.5px solid var(--dark);
  color: var(--dark);
  background: transparent;
  padding: 10px 20px;
  border-radius: 4px;
  font-family: 'Lato', sans-serif;
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 1px;
  text-transform: uppercase;
  text-decoration: none;
  transition: background .2s, color .2s;
}
.btn-outline-d:hover { background: var(--dark); color: #fff; }
