/* ============================================================
   Cosmetic Cocoon — booking page
   (loads after styles.css; reuses the same design tokens)
   ============================================================ */
.book-body{background:var(--cream)}

/* ---- slim header ---- */
.book-header{
  position:sticky;top:0;z-index:50;
  background:rgba(242,239,234,.92);backdrop-filter:blur(12px);
  border-bottom:1px solid rgba(74,42,32,.08);
}
.book-header__inner{
  max-width:var(--maxw);margin:0 auto;padding:.9rem 2rem;
  display:flex;align-items:center;justify-content:space-between;gap:1rem;
}
.book-brand{display:flex;align-items:center;gap:.7rem}
.book-brand img{width:38px;height:auto}
.book-brand b{font-family:var(--serif);font-weight:600;font-size:1.2rem;color:var(--terracotta);line-height:1}
.book-brand small{display:block;font-size:.62rem;letter-spacing:.22em;text-transform:uppercase;color:var(--muted);margin-top:.25rem}
.back-btn{
  display:inline-flex;align-items:center;gap:.5rem;
  font-size:.72rem;letter-spacing:.14em;text-transform:uppercase;font-weight:600;
  color:var(--terracotta);border:1px solid rgba(185,101,67,.4);
  padding:.6rem 1.1rem;border-radius:40px;transition:all .3s var(--ease);
}
.back-btn:hover{background:var(--terracotta);color:#fff;border-color:var(--terracotta)}
.back-btn svg{width:15px;height:15px}

/* ---- booking head ---- */
.booking{padding:3.4rem 2rem 5rem;max-width:var(--maxw);margin:0 auto}
.booking__head{text-align:center;max-width:620px;margin:0 auto 2.8rem}
.booking__head h1{font-family:var(--serif);font-weight:500;font-size:clamp(2.2rem,5vw,3.4rem);line-height:1.05;color:var(--ink)}
.booking__head h1 em{font-style:italic;color:var(--terracotta)}
.booking__head p{color:var(--muted);margin-top:.9rem;font-size:1rem}

/* ---- layout ---- */
.booking__card{
  display:grid;grid-template-columns:1.35fr 1fr;gap:1.6rem;align-items:start;
}
.book-panel{
  background:#fff;border:1px solid rgba(74,42,32,.07);border-radius:18px;
  padding:2rem 1.9rem;box-shadow:0 30px 60px -40px rgba(74,42,32,.35);
}

/* ---- steps ---- */
.bk-step{margin-bottom:2rem}
.bk-step:last-child{margin-bottom:0}
.bk-step__label{display:flex;align-items:center;gap:.7rem;
  font-size:.72rem;letter-spacing:.18em;text-transform:uppercase;font-weight:600;
  color:var(--ink);margin-bottom:1.1rem}
.bk-step__label .num{
  width:26px;height:26px;border-radius:50%;background:var(--terracotta);color:#fff;
  display:inline-flex;align-items:center;justify-content:center;font-size:.8rem;
}

/* ---- service chips ---- */
.chips{display:flex;flex-wrap:wrap;gap:.6rem}
.chip{
  font-family:var(--sans);font-size:.8rem;font-weight:500;letter-spacing:.02em;
  padding:.62rem 1.1rem;border-radius:40px;cursor:pointer;
  background:var(--cream);color:var(--ink);
  border:1px solid rgba(74,42,32,.12);transition:all .25s var(--ease);
}
.chip:hover{border-color:var(--terracotta);color:var(--terracotta)}
.chip.active{background:var(--terracotta);color:#fff;border-color:var(--terracotta);
  box-shadow:0 8px 18px -8px rgba(160,80,47,.55)}

/* ---- calendar ---- */
.cal{border:1px solid rgba(74,42,32,.09);border-radius:14px;padding:1.1rem 1.2rem;background:var(--cream)}
.cal__head{display:flex;align-items:center;justify-content:space-between;margin-bottom:.9rem}
.cal__title{font-family:var(--serif);font-size:1.2rem;font-weight:600;color:var(--ink)}
.cal__nav{width:34px;height:34px;border-radius:50%;border:1px solid rgba(74,42,32,.14);
  background:#fff;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;
  transition:all .25s var(--ease);color:var(--ink)}
.cal__nav svg{width:16px;height:16px}
.cal__nav:hover:not(:disabled){background:var(--terracotta);color:#fff;border-color:var(--terracotta)}
.cal__nav:disabled{opacity:.32;cursor:not-allowed}
.cal__dow{display:grid;grid-template-columns:repeat(7,1fr);gap:.3rem;margin-bottom:.4rem}
.cal__dow span{text-align:center;font-size:.64rem;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);font-weight:600}
.cal__grid{display:grid;grid-template-columns:repeat(7,1fr);gap:.3rem}
.cal__cell{
  aspect-ratio:1;border:none;background:transparent;border-radius:9px;cursor:pointer;
  font-family:var(--sans);font-size:.86rem;color:var(--ink);font-weight:400;
  display:flex;align-items:center;justify-content:center;transition:all .18s var(--ease);
}
.cal__cell.empty{pointer-events:none}
.cal__cell:hover:not(.disabled):not(.selected){background:#fff;box-shadow:inset 0 0 0 1px rgba(185,101,67,.4)}
.cal__cell.disabled{color:rgba(74,42,32,.25);cursor:not-allowed}
.cal__cell.today{box-shadow:inset 0 0 0 1px var(--terracotta);color:var(--terracotta);font-weight:600}
.cal__cell.selected{background:var(--terracotta);color:#fff;font-weight:600;box-shadow:0 8px 16px -8px rgba(160,80,47,.6)}

/* ---- time slots ---- */
.slots{display:grid;grid-template-columns:repeat(4,1fr);gap:.6rem}
.slots__empty{grid-column:1/-1;color:var(--muted);font-size:.9rem;font-style:italic}
.slot{
  font-family:var(--sans);font-size:.8rem;font-weight:500;
  padding:.65rem .4rem;border-radius:10px;cursor:pointer;
  background:var(--cream);color:var(--ink);border:1px solid rgba(74,42,32,.12);
  transition:all .2s var(--ease);
}
.slot:hover:not(.taken):not(.selected){border-color:var(--terracotta);color:var(--terracotta)}
.slot.selected{background:var(--terracotta);color:#fff;border-color:var(--terracotta)}
.slot.taken{opacity:.4;text-decoration:line-through;cursor:not-allowed}

/* ---- summary ---- */
.booking__summary{position:sticky;top:88px}
.booking__summary h3{font-family:var(--serif);font-weight:600;font-size:1.5rem;color:var(--ink);margin-bottom:1.2rem}
.summary-list{margin-bottom:1.4rem;border-top:1px solid rgba(74,42,32,.08)}
.summary-row{display:flex;justify-content:space-between;gap:1rem;padding:.7rem 0;
  border-bottom:1px solid rgba(74,42,32,.08);font-size:.92rem}
.summary-row span{color:var(--muted)}
.summary-row b{color:var(--muted);font-weight:400;text-align:right}
.summary-row b.set{color:var(--ink);font-weight:600}
.field{margin-bottom:.9rem}
.field-row{display:grid;grid-template-columns:1fr 1fr;gap:.8rem}
.field label{display:block;font-size:.72rem;letter-spacing:.1em;text-transform:uppercase;
  color:var(--muted);font-weight:600;margin-bottom:.4rem}
.field input,.field textarea{
  width:100%;font-family:var(--sans);font-size:.92rem;color:var(--ink);
  padding:.75rem .9rem;border-radius:10px;border:1px solid rgba(74,42,32,.15);
  background:var(--cream);transition:border-color .2s,box-shadow .2s;resize:vertical;
}
.field input:focus,.field textarea:focus{outline:none;border-color:var(--terracotta);
  box-shadow:0 0 0 3px rgba(185,101,67,.14)}
.field input::placeholder,.field textarea::placeholder{color:rgba(124,104,94,.6)}
#bookForm .btn{width:100%;text-align:center;margin-top:.4rem}
.form-note{font-size:.72rem;color:var(--muted);text-align:center;margin-top:.9rem;line-height:1.6}

/* ---- success ---- */
.booking-success{text-align:center}
.booking-success .check{width:66px;height:66px;border-radius:50%;margin:0 auto 1.3rem;
  background:var(--terracotta);color:#fff;display:flex;align-items:center;justify-content:center}
.booking-success .check svg{width:32px;height:32px}
.booking-success h3{font-family:var(--serif);font-size:2rem;color:var(--ink);margin-bottom:.6rem}
.booking-success p{color:var(--muted);max-width:420px;margin:0 auto 1.2rem}
.booking-success .ref{display:inline-block;font-size:.74rem;letter-spacing:.16em;text-transform:uppercase;
  font-weight:600;color:var(--terracotta);background:var(--cream);border:1px solid rgba(185,101,67,.3);
  padding:.5rem 1.1rem;border-radius:40px;margin-bottom:1.6rem}
.booking-success .recap{max-width:360px;margin:0 auto 1.8rem;border-top:1px solid rgba(74,42,32,.08)}

/* ---- footer ---- */
.book-footer{background:var(--brown);color:rgba(255,255,255,.6);padding:2rem;text-align:center;font-size:.8rem}
.book-footer p{max-width:var(--maxw);margin:0 auto;line-height:1.7}

/* ---- responsive ---- */
@media(max-width:860px){
  .booking__card{grid-template-columns:1fr}
  .booking__summary{position:static}
}
@media(max-width:560px){
  .booking{padding:2.4rem 1.2rem 3.5rem}
  .book-panel{padding:1.5rem 1.2rem}
  .slots{grid-template-columns:repeat(3,1fr)}
  .field-row{grid-template-columns:1fr}
  .book-brand small{display:none}
}
