.ssb-booking {
  --ssb-bg: #121212;
  --ssb-panel: #1a1a1a;
  --ssb-card: #202020;
  --ssb-text: #f7f3ed;
  --ssb-muted: #c7c2bb;
  --ssb-copper: #c57b32;
  --ssb-border: rgba(255,255,255,.14);
  width: 100%;
  padding: 72px 24px;
  background: var(--ssb-bg);
  color: var(--ssb-text);
  font-family: "Montserrat", Arial, sans-serif;
}
.ssb-booking, .ssb-booking * { box-sizing: border-box; }
.ssb-booking__shell { width: min(100%, 1200px); margin: 0 auto; }
.ssb-booking__header { max-width: 760px; margin-bottom: 42px; }
.ssb-booking__eyebrow { margin: 0 0 13px; color: var(--ssb-copper); font-size: 12px; font-weight: 700; letter-spacing: .15em; text-transform: uppercase; }
.ssb-booking h1 { margin: 0; color: #fff; font-family: "Cormorant Garamond", Georgia, serif; font-size: clamp(44px, 6vw, 72px); font-weight: 500; line-height: .98; }
.ssb-booking__header > p:last-child { margin: 22px 0 0; color: var(--ssb-muted); font-size: 17px; line-height: 1.7; }
.ssb-booking__panel { display: grid; grid-template-columns: minmax(0,.9fr) minmax(0,1.1fr); border: 1px solid var(--ssb-border); background: var(--ssb-panel); box-shadow: 0 25px 70px rgba(0,0,0,.28); }
.ssb-booking__calendar-column, .ssb-booking__form { padding: clamp(25px,4vw,48px); }
.ssb-booking__calendar-column { border-right: 1px solid var(--ssb-border); background: #161616; }
.ssb-calendar__nav { display: grid; grid-template-columns: 42px 1fr 42px; align-items: center; gap: 12px; }
.ssb-calendar__nav button { width: 42px; height: 42px; border: 1px solid var(--ssb-border); background: transparent; color: #fff; cursor: pointer; }
.ssb-calendar__nav button:disabled { opacity: .25; cursor: not-allowed; }
.ssb-calendar__month { margin: 0; color: #fff; font-family: "Cormorant Garamond", Georgia, serif; font-size: 30px; font-weight: 500; text-align: center; }
.ssb-calendar__weekdays, .ssb-calendar__days { display: grid; grid-template-columns: repeat(7,1fr); gap: 6px; }
.ssb-calendar__weekdays { margin: 28px 0 8px; color: #8e8b86; font-size: 11px; text-align: center; text-transform: uppercase; }
.ssb-calendar__day { aspect-ratio: 1; min-width: 0; border: 1px solid transparent; background: var(--ssb-card); color: #fff; font: inherit; cursor: pointer; transition: border-color .18s, background .18s; }
.ssb-calendar__day:hover:not(:disabled), .ssb-calendar__day:focus-visible, .ssb-calendar__day.is-selected { border-color: var(--ssb-copper); background: rgba(197,123,50,.18); outline: 0; }
.ssb-calendar__day:disabled { color: #555; background: #181818; cursor: not-allowed; }
.ssb-booking__times { margin-top: 36px; }
.ssb-booking__times h3 { margin: 0; color: #fff; font-family: "Cormorant Garamond", Georgia, serif; font-size: 29px; font-weight: 500; }
.ssb-booking__time-help { margin: 9px 0 15px; color: var(--ssb-muted); font-size: 13px; }
.ssb-booking__time-grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 8px; }
.ssb-booking__time { padding: 10px 8px; border: 1px solid var(--ssb-border); background: transparent; color: #fff; cursor: pointer; }
.ssb-booking__time:hover, .ssb-booking__time:focus-visible, .ssb-booking__time.is-selected { border-color: var(--ssb-copper); background: var(--ssb-copper); outline: 0; }
.ssb-booking__selection { margin-bottom: 24px; padding: 15px 17px; border-left: 3px solid var(--ssb-copper); background: rgba(197,123,50,.08); color: #fff; font-size: 14px; }
.ssb-booking__fields { display: grid; grid-template-columns: 1fr 1fr; gap: 18px; }
.ssb-booking label span { display: block; margin-bottom: 8px; color: #e8e3dc; font-size: 13px; font-weight: 600; }
.ssb-booking input, .ssb-booking select, .ssb-booking textarea { width: 100%; min-height: 48px; padding: 12px 13px; border: 1px solid var(--ssb-border); border-radius: 0; background: #111; color: #fff; font: inherit; }
.ssb-booking textarea { min-height: 112px; resize: vertical; }
.ssb-booking input:focus, .ssb-booking select:focus, .ssb-booking textarea:focus { border-color: var(--ssb-copper); outline: 2px solid rgba(197,123,50,.2); }
.ssb-booking__wide { grid-column: 1/-1; }
.ssb-booking__consent { display: grid; grid-template-columns: 20px 1fr; gap: 11px; align-items: start; margin: 22px 0; }
.ssb-booking__consent input { width: 18px; min-height: 18px; margin: 2px 0 0; accent-color: var(--ssb-copper); }
.ssb-booking__consent span { margin: 0 !important; color: var(--ssb-muted) !important; font-weight: 400 !important; line-height: 1.5; }
.ssb-booking__consent a { color: #fff; text-underline-offset: 3px; }
.ssb-booking__submit { width: 100%; min-height: 50px; border: 1px solid var(--ssb-copper); background: var(--ssb-copper); color: #fff; font-weight: 700; cursor: pointer; }
.ssb-booking__submit:hover { background: #a96125; }
.ssb-booking__submit:disabled { opacity: .65; cursor: wait; }
.ssb-booking__message { margin-top: 16px; padding: 0; font-size: 14px; line-height: 1.5; }
.ssb-booking__message.is-success, .ssb-booking__message.is-error { padding: 13px 15px; }
.ssb-booking__message.is-success { border: 1px solid #5d9768; background: rgba(93,151,104,.12); }
.ssb-booking__message.is-error { border: 1px solid #b75a50; background: rgba(183,90,80,.12); }
.ssb-booking__honeypot { position: absolute !important; left: -10000px !important; width: 1px !important; height: 1px !important; overflow: hidden !important; }
@media (max-width: 900px) {
  .ssb-booking { padding: 58px 20px; }
  .ssb-booking__panel { grid-template-columns: 1fr; }
  .ssb-booking__calendar-column { border-right: 0; border-bottom: 1px solid var(--ssb-border); }
}
@media (max-width: 560px) {
  .ssb-booking { padding: 45px 14px; }
  .ssb-booking__calendar-column, .ssb-booking__form { padding: 22px 16px; }
  .ssb-booking__fields { grid-template-columns: 1fr; }
  .ssb-booking__wide { grid-column: auto; }
  .ssb-booking__time-grid { grid-template-columns: repeat(2,1fr); }
  .ssb-calendar__weekdays, .ssb-calendar__days { gap: 3px; }
  .ssb-calendar__day { font-size: 13px; }
}
@media (prefers-reduced-motion: reduce) {
  .ssb-calendar__day { transition: none; }
}
