/* ============================================================
   KARIGAR PRO — booking.css
   ============================================================ */

.book-form-section { background: var(--color-pure-white); color: var(--color-near-black); }
.book-card {
  max-width: 720px; margin: 0 auto; background: #fff;
  border: 1px solid var(--color-cloud-grey); border-radius: 18px;
  padding: clamp(28px, 4vw, 48px); box-shadow: 0 20px 60px rgba(0,0,0,0.08);
}

/* PROGRESS */
.book-progress { margin-bottom: 38px; }
.book-progress__track { height: 4px; background: var(--color-cloud-grey); border-radius: 4px; overflow: hidden; }
.book-progress__fill { display: block; height: 100%; width: 33.33%; background: var(--color-racing-red); transition: width 0.4s ease; }
.book-progress__steps { display: flex; justify-content: space-between; margin-top: 14px; }
.bp-step {
  display: flex; flex-direction: column; align-items: center; gap: 4px;
  font-family: var(--font-display); font-weight: 700; font-size: 20px;
  width: 36px; height: 36px; border-radius: 50%;
  background: var(--color-cloud-grey); color: #fff; line-height: 36px; text-align: center;
  position: relative; transition: background 0.3s ease;
}
.bp-step i { position: absolute; top: 42px; font-style: normal; font-size: 13px; letter-spacing: 0.04em; color: #888; text-transform: uppercase; }
.bp-step.is-active, .bp-step.is-done { background: var(--color-racing-red); }
.bp-step.is-active i, .bp-step.is-done i { color: var(--color-near-black); }

/* STEPS */
.book-step { display: none; }
.book-step.is-active { display: block; animation: stepIn 0.4s ease; }
@keyframes stepIn { from { opacity: 0; transform: translateX(20px); } to { opacity: 1; transform: translateX(0); } }
.book-step h3 { color: var(--color-near-black); margin-bottom: 24px; }

/* FIELDS */
.field { display: block; margin-bottom: 20px; }
.field > span { display: block; font-family: var(--font-display); text-transform: uppercase; letter-spacing: 0.05em; font-size: 14px; color: #444; margin-bottom: 8px; }
.field input, .field select, .field textarea {
  width: 100%; padding: 13px 16px; font-family: var(--font-body); font-size: 15px;
  border: 1px solid var(--color-cloud-grey); border-radius: 10px; background: #fff; color: var(--color-near-black);
  transition: border-color 0.25s ease, box-shadow 0.25s ease; outline: none;
}
.field input:focus, .field select:focus, .field textarea:focus {
  border-color: var(--color-racing-red); box-shadow: 0 0 0 4px rgba(232,25,44,0.12);
}
.field input.invalid, .field select.invalid, .field textarea.invalid { border-color: var(--color-racing-red); background: rgba(232,25,44,0.04); }
.field-row { display: grid; grid-template-columns: 1fr 1fr; gap: 20px; }

.time-slots { display: flex; flex-direction: column; gap: 8px; }
.time-slots label { display: flex; align-items: center; gap: 10px; cursor: pointer; padding: 11px 14px; border: 1px solid var(--color-cloud-grey); border-radius: 10px; transition: var(--transition-smooth); font-size: 14px; }
.time-slots label:hover { border-color: var(--color-steel-blue); }
.time-slots input { width: auto; accent-color: var(--color-racing-red); }
.time-slots input:checked + span { font-weight: 600; color: var(--color-racing-red); }

/* NAV BUTTONS */
.book-nav { display: flex; justify-content: space-between; gap: 12px; margin-top: 28px; }
.book-nav .btn { flex: 0 0 auto; }
.book-nav .btn[data-next] { margin-left: auto; }

/* SUMMARY */
.summary { background: var(--color-cloud-grey); border-radius: 12px; padding: 24px; }
.summary__row { display: flex; justify-content: space-between; gap: 16px; padding: 11px 0; border-bottom: 1px solid rgba(13,13,13,0.1); }
.summary__row:last-child { border-bottom: none; }
.summary__row span { color: #555; font-size: 14px; }
.summary__row b { font-family: var(--font-display); font-weight: 600; color: var(--color-near-black); text-align: right; }

/* SUCCESS */
.book-success { display: none; text-align: center; padding: 20px 0; }
.book-success.is-shown { display: block; }
.book-success h3 { color: var(--color-near-black); margin: 18px 0 10px; }
.book-success p { color: #555; margin-bottom: 26px; }
.check-svg { width: 96px; height: 96px; }
.check-circle { fill: none; stroke: var(--color-racing-red); stroke-width: 4; stroke-dasharray: 226; stroke-dashoffset: 226; }
.check-mark { fill: none; stroke: var(--color-racing-red); stroke-width: 5; stroke-linecap: round; stroke-linejoin: round; stroke-dasharray: 70; stroke-dashoffset: 70; }

/* ALT CONTACT */
.book-alt { background: var(--color-deep-blue); color: #fff; }
.book-alt h2 { color: #fff; margin-top: 10px; }
.book-alt__nums { display: flex; gap: 16px; justify-content: center; flex-wrap: wrap; margin-top: 30px; }

@media (max-width: 560px) {
  .field-row { grid-template-columns: 1fr; }
}
