.booking-page, .staff-page { min-height:100vh; background:#eee7de; color:var(--ink); }
.booking-page .site-header, .staff-page .site-header { position:relative; background:transparent; }
.booking-main { display:grid; grid-template-columns:.85fr 1.15fr; gap:clamp(3rem,8vw,9rem); padding:5.5rem 0 7rem; align-items:start; }
.booking-intro h1, .staff-heading h1 { margin:.2rem 0 1.6rem; font:600 clamp(3.8rem,7vw,6.8rem)/.86 var(--display); letter-spacing:-.06em; }
.booking-intro h1 em { color:var(--wine); font-weight:500; }
.booking-intro > p:not(.eyebrow) { max-width:370px; font-size:1.05rem; }
.booking-service-note { display:flex; flex-direction:column; gap:.3rem; max-width:380px; margin-top:3rem; padding:1rem 1.1rem; border-left:2px solid var(--timber); font-size:.73rem; color:rgba(16,17,19,.72); }
.booking-service-note strong { color:var(--wine); text-transform:uppercase; font-size:.6rem; letter-spacing:.12em; }
.booking-service-note a { text-decoration:underline; }
.booking-form-card { background:var(--paper); padding:clamp(1.5rem,4vw,3rem); box-shadow:0 1rem 4rem rgba(55,38,32,.09); }
.booking-form-card h2, .booking-success h2, .empty-board h2 { margin:0 0 2rem; font:600 clamp(2.4rem,4vw,3.6rem)/.92 var(--display); letter-spacing:-.045em; }
.form-grid { display:grid; grid-template-columns:1fr 1fr; gap:1.25rem; }
.form-grid label { display:block; font-size:.67rem; font-weight:700; letter-spacing:.07em; text-transform:uppercase; }
.form-grid input, .form-grid select, .form-grid textarea { display:block; width:100%; appearance:none; border:1px solid rgba(16,17,19,.22); border-radius:0; background:#fff; color:var(--ink); margin-top:.45rem; padding:.78rem; font:400 .88rem var(--sans); letter-spacing:0; text-transform:none; }
.form-grid input:focus, .form-grid select:focus, .form-grid textarea:focus { outline:2px solid var(--aqua); outline-offset:1px; }
.form-grid [aria-invalid="true"] { border-color:#9b2622; box-shadow:0 0 0 1px #9b2622; }
.form-grid select:disabled, .form-grid input:disabled { background:#f1eee9; color:rgba(16,17,19,.5); }
.span-two { grid-column:span 2; }
.optional { color:rgba(16,17,19,.45); font-weight:400; letter-spacing:0; text-transform:none; }
.booking-form-card hr { margin:1.7rem 0; border:0; border-top:1px solid var(--line); }
.booking-form-card .button { margin-top:1.8rem; }
.booking-form-card .button:disabled { opacity:.55; cursor:wait; }
.form-privacy { margin:1rem 0 0; color:rgba(16,17,19,.55); font-size:.67rem; }
.turnstile-mount { margin-top:1.5rem; min-height:1px; }
.form-message, .staff-message { margin:1rem 0 0; padding:.75rem .9rem; background:#eee7de; font-size:.76rem; }
.form-message-error, .staff-message-error { color:#7b1d1a; border-left:3px solid #9b2622; }
.form-message-notice { border-left:3px solid var(--timber); }
.booking-success { padding:.5rem 0 1rem; }
.booking-success:focus { outline:0; }
.booking-success p:not(.eyebrow) { max-width:430px; }
.staff-main { padding:5.5rem 0 7rem; }
.staff-heading { display:flex; justify-content:space-between; align-items:end; gap:2rem; }
.staff-info { max-width:610px; margin:0 0 2.2rem; }
.staff-toolbar { display:flex; margin-bottom:1.2rem; }
.staff-toolbar label, .booking-status-actions label { color:rgba(16,17,19,.65); font-size:.64rem; font-weight:700; letter-spacing:.08em; text-transform:uppercase; }
.staff-toolbar input, .booking-status-actions select { display:block; min-width:190px; margin-top:.4rem; padding:.65rem .75rem; border:1px solid rgba(16,17,19,.22); background:white; color:var(--ink); font:500 .78rem var(--sans); }
.staff-message { margin:0 0 1rem; }
.booking-board { display:grid; gap:.8rem; }
.booking-record { display:grid; grid-template-columns:1fr 1fr auto; gap:2rem; padding:1.6rem; background:var(--paper); border-left:4px solid var(--wine); }
.booking-record-confirmed { border-left-color:#1e4a32; }
.booking-record-declined { border-left-color:#888; opacity:.7; }
.booking-record h2 { margin:.1rem 0 .35rem; font:600 2rem/.9 var(--display); }
.booking-record p { margin:.25rem 0; font-size:.8rem; }
.booking-status { color:var(--wine); text-transform:uppercase; font-size:.62rem !important; font-weight:700; letter-spacing:.1em; }
.booking-contact, .booking-status-actions { align-self:center; color:rgba(16,17,19,.7); }
.empty-board { padding:3rem; background:var(--paper); text-align:center; }
.empty-board h2 { margin-bottom:.8rem; }
.empty-board p { max-width:430px; margin:0 auto 1.5rem; }
@media (max-width:760px) {
  .booking-main { grid-template-columns:1fr; padding:3.5rem 0 5rem; gap:2.5rem; }
  .booking-intro h1, .staff-heading h1 { font-size:4.1rem; }
  .form-grid, .booking-record { grid-template-columns:1fr; }
  .span-two { grid-column:span 1; }
  .staff-heading { align-items:start; flex-direction:column; gap:.7rem; }
  .booking-form-card { padding:1.4rem; }
  .booking-status-actions select { width:100%; }
  .turnstile-mount { overflow:hidden; }
}
