/* Booking page. Real classes rather than inline styles: unlike the landing
   page this markup is authored here, not converted from the design canvas. */
/* The `hidden` attribute is applied by script to switch steps, but the UA rule
   [hidden]{display:none} loses to an inline display on the same element — and
   these sections carry one. Without this, every step of the flow renders at
   once. */
[hidden]{display:none!important}

.bd-card{background:var(--white);border:1px solid var(--border-card);border-radius:var(--radius-card);
  padding:26px 28px;box-sizing:border-box;display:grid;gap:16px;align-content:start}
.bd-h{margin:0;font:700 17px var(--font-sans);letter-spacing:-.01em;color:var(--text-heading)}
.bd-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
.bd-l{display:grid;gap:6px;font:600 11px var(--font-sans);letter-spacing:.06em;
  text-transform:uppercase;color:var(--text-muted);min-width:0}
.bd-lg{font:600 11px var(--font-sans);letter-spacing:.06em;text-transform:uppercase;color:var(--text-muted)}
/* The required marker leads the label, so no left margin; --palette-error is
   the palette's true red, and reads at 6.04:1 on the card. */
/* One grid item holding both the marker and the words. Without it the label
   is display:grid, every child becomes its own row, and the asterisk drops
   onto a line above the field name. */
.bd-lab{display:block}
.bd-req{color:var(--palette-error);font-weight:700}
.bd-note{margin:-6px 0 2px;font:400 12px var(--font-sans);color:var(--text-muted);
  text-transform:none;letter-spacing:normal}
.bd-i{width:100%;box-sizing:border-box;height:42px;padding:0 12px;border:1px solid var(--border-input);
  border-radius:var(--radius-inset);background:var(--white);font:400 13.5px var(--font-sans);
  color:var(--text-strong);text-transform:none;letter-spacing:normal;outline:none;
  transition:border-color 140ms cubic-bezier(.23,1,.32,1),box-shadow 140ms cubic-bezier(.23,1,.32,1)}
textarea.bd-i{height:auto}
.bd-i:focus-visible{border-color:var(--green-deep);box-shadow:0 0 0 2px var(--chartreuse)}
.bd-i[aria-invalid="true"]{border-color:var(--status-heightened-bar)}

.bd-chip{display:inline-flex;align-items:center;height:34px;padding:0 14px;box-sizing:border-box;
  border-radius:var(--radius-pill);cursor:pointer;font:400 12.5px var(--font-sans);
  border:1px solid var(--border-control);background:var(--white);color:var(--text-strong);
  transition:background 140ms cubic-bezier(.23,1,.32,1),border-color 140ms cubic-bezier(.23,1,.32,1)}
.bd-chip:hover{border-color:var(--border-emphasis)}
.bd-chip[aria-pressed="true"]{border-color:var(--green-deep);background:var(--tint-selected);color:var(--green-deep)}
.bd-chip:focus-visible{outline:2px solid var(--chartreuse);outline-offset:2px}

.bd-cal{grid-template-columns:minmax(0,1fr) minmax(0,260px);gap:26px}
.bd-wd{text-align:center;font:600 10px var(--font-sans);letter-spacing:.08em;
  text-transform:uppercase;color:var(--text-subtle)}
.bd-day{height:40px;display:flex;align-items:center;justify-content:center;
  border-radius:var(--radius-button,8px);font:400 13px var(--font-sans);
  border:1px solid var(--border-card);background:var(--white);color:var(--text-strong);cursor:pointer;
  transition:background 140ms cubic-bezier(.23,1,.32,1),border-color 140ms cubic-bezier(.23,1,.32,1)}
.bd-day:hover:not(:disabled){border-color:var(--green-support)}
.bd-day:disabled{border-color:transparent;background:none;color:var(--text-subtle);cursor:default}
.bd-day[aria-pressed="true"]{border-color:var(--green-deep);background:var(--green-deep);color:#FFF;
  box-shadow:0 0 0 1.5px var(--chartreuse)}
.bd-day.is-blank{border:none;background:none;cursor:default}
.bd-day:focus-visible{outline:2px solid var(--chartreuse);outline-offset:2px}

.bd-slot{height:38px;display:flex;align-items:center;justify-content:center;
  border-radius:var(--radius-button,8px);font:400 12.5px var(--font-sans);cursor:pointer;
  border:1px solid var(--border-card);background:var(--white);color:var(--text-strong);
  transition:background 140ms cubic-bezier(.23,1,.32,1),border-color 140ms cubic-bezier(.23,1,.32,1)}
.bd-slot:hover{border-color:var(--green-support)}
.bd-slot[aria-pressed="true"]{border-color:var(--green-deep);background:var(--green-deep);color:#FFF}
.bd-slot:focus-visible{outline:2px solid var(--chartreuse);outline-offset:2px}

.bd-nav{width:34px;height:34px;border-radius:var(--radius-pill);border:1px solid var(--border-control);
  background:var(--white);color:var(--text-strong);cursor:pointer;font-size:14px;line-height:1}
.bd-nav:hover:not(:disabled){border-color:var(--border-emphasis)}
.bd-nav:disabled{opacity:.4;cursor:default}
.bd-nav:focus-visible{outline:2px solid var(--chartreuse);outline-offset:2px}

.bd-btn{display:inline-flex;align-items:center;justify-content:center;gap:11px;height:50px;padding:0 26px;
  box-sizing:border-box;border:none;border-radius:25px;background:var(--action);
  box-shadow:0 0 0 1.5px var(--chartreuse);cursor:pointer;text-decoration:none;
  font:600 9px var(--font-sans);letter-spacing:.11em;text-transform:uppercase;color:#FFF;
  transition:background 140ms cubic-bezier(.23,1,.32,1),transform 140ms cubic-bezier(.23,1,.32,1)}
.bd-btn:hover{background:var(--action-hover)}
.bd-btn:active{transform:scale(.97)}
.bd-btn[disabled]{opacity:.6;cursor:default;transform:none}
.bd-btn:focus-visible{outline:2px solid var(--chartreuse);outline-offset:3px}

.bd-btn-2{display:inline-flex;align-items:center;justify-content:center;gap:9px;height:44px;padding:0 20px;
  box-sizing:border-box;border:1px solid var(--border-control);border-radius:22px;background:var(--white);
  cursor:pointer;text-decoration:none;font:600 9px var(--font-sans);letter-spacing:.11em;
  text-transform:uppercase;color:var(--text-strong);
  transition:border-color 140ms cubic-bezier(.23,1,.32,1),background 140ms cubic-bezier(.23,1,.32,1)}
.bd-btn-2:hover{border-color:var(--border-emphasis);background:var(--tint-selected)}
.bd-btn-2:focus-visible{outline:2px solid var(--chartreuse);outline-offset:2px}

.bd-step{display:flex;align-items:center;gap:11px}
.bd-step-n{flex:none;width:30px;height:30px;border-radius:50%;display:flex;align-items:center;
  justify-content:center;font:700 12px var(--font-sans);background:var(--surface-sunken);color:var(--text-subtle)}
.bd-step.is-current .bd-step-n{background:var(--charcoal);color:#FFF}
.bd-step.is-done .bd-step-n{background:var(--green-deep);color:#FFF}
.bd-step-t{font:700 12.5px/1.2 var(--font-sans);color:var(--text-subtle)}
.bd-step.is-current .bd-step-t,.bd-step.is-done .bd-step-t{color:var(--text-heading)}

.bd-row{background:var(--white);padding:10px 14px;display:grid;grid-template-columns:150px 1fr;gap:14px;
  font:400 13px var(--font-sans)}
.bd-row dt{color:var(--text-muted)}
.bd-row dd{margin:0;color:var(--text-strong)}

@media (max-width:760px){
  .bd-fields{grid-template-columns:minmax(0,1fr)}
  .bd-cal{grid-template-columns:minmax(0,1fr)}
  .bd-card{padding:20px 18px}
  .bd-row{grid-template-columns:minmax(0,1fr);gap:2px}
  #nav .bd-btn,#nav .bd-btn-2{flex:1 1 auto}
}
@media (prefers-reduced-motion:reduce){*{transition:none!important}}
