:root {
  --lh-booking-accent: var(--lh-teal-2, #5e9b99);
  --c-booking-form-bg: var(--c-form-bg, #ffffff);
  --c-booking-form-text: var(--c-form-text, var(--lh-booking-text, #132325));
  --c-booking-form-muted: var(--c-form-muted, var(--lh-booking-muted, #49605e));
  --c-booking-form-line: var(--c-form-line, var(--lh-booking-line, rgba(12,32,34,.14)));
  --c-booking-form-radius-field: var(--c-form-radius-field, 12px 6px 6px 6px);
  --c-booking-form-radius-button: var(--c-form-radius-button, 14px 6px 6px 6px);
  --c-booking-form-focus-ring: var(--c-form-focus-ring, 0 0 0 3px rgba(94,155,153,.12));
  --lh-booking-accent-strong: var(--lh-teal-3, #1f5d5f);
  --lh-booking-free-hover: #dff7e7;
  --lh-booking-free-border: #2f9e5b;
  --lh-booking-bg: #ffffff;
  --lh-booking-soft: #f7f4f1;
  --lh-booking-text: var(--lh-text, #132325);
  --lh-booking-muted: var(--lh-muted, #49605e);
  --lh-booking-line: var(--lh-border, rgba(12,32,34,.14));
  --lh-booking-shadow: 0 18px 50px rgba(11,28,30,.18);
  --lh-booking-radius-lg: 22px 8px 8px 8px;
  --lh-booking-radius-md: 16px 6px 6px 6px;
}
body.c-booking-modal-open { overflow: hidden; }
#c-booking-root { position: relative; z-index: 999999; }
.c-booking-primary-cta,
[data-lh-booking-trigger="1"],
.c-booking-trigger-shortcode {
  appearance:none; border:1px solid var(--lh-booking-accent-strong); background:linear-gradient(180deg, var(--lh-booking-accent) 0%, var(--lh-booking-accent-strong) 100%);
  color:#fff; border-radius:14px 6px 6px 6px; padding:12px 16px; font-weight:700; cursor:pointer; text-decoration:none; line-height:1.1;
}
.c-booking-primary-cta { margin-left:auto; min-height:44px; }
.c-booking-overlay { position: fixed; inset: 0; display: none; }
.c-booking-overlay.is-open { display: block; }
.c-booking-backdrop { position:absolute; inset:0; background:rgba(11,28,30,.56); backdrop-filter: blur(4px); }
.c-booking-shell {
  position:relative; z-index:1; width:100%; height:100%; margin:0; background:var(--lh-booking-soft); color:var(--lh-booking-text);
  display:grid; grid-template-rows:auto 1fr;
}
.c-booking-modal-header {
  display:flex; align-items:flex-start; justify-content:space-between; gap:16px; padding:18px 16px 16px; background:#fff; border-bottom:1px solid var(--lh-booking-line);
}
.c-booking-modal-copy { display:grid; gap:6px; }
.c-booking-modal-kicker { font-size:12px; font-weight:700; letter-spacing:.08em; text-transform:uppercase; color:var(--lh-booking-accent-strong); }
.c-booking-modal-copy h2 { margin:0; font-family:var(--lh-font-heading, Georgia, serif); font-size:clamp(24px, 5vw, 36px); line-height:1.05; color:var(--lh-booking-text); }
.c-booking-modal-copy p { margin:0; color:var(--lh-booking-muted); font-size:14px; line-height:1.55; max-width:62ch; }
.c-booking-close {
  appearance:none; border:1px solid var(--lh-booking-line); background:#fff; color:var(--lh-booking-text); width:44px; height:44px; border-radius:14px 6px 6px 6px;
  font-size:28px; line-height:1; cursor:pointer; flex:0 0 auto;
}
.c-booking-modal-body { min-height:0; overflow:auto; padding:16px; }
.c-booking-panel-inner { display:grid; grid-template-columns:1fr; gap:16px; align-items:start; }
.c-booking-side-column { display:grid; grid-template-columns:1fr; gap:16px; align-items:start; }
.c-booking-card, .c-booking-slots, .c-booking-request-card {
  background: var(--lh-booking-bg); border: 1px solid var(--lh-booking-line); box-shadow: 0 10px 24px rgba(11,28,30,.08);
  border-radius: var(--lh-booking-radius-lg); padding: 16px; min-width: 0;
}
.c-booking-intro { display: flex; justify-content: space-between; align-items: flex-start; gap: 16px; margin-bottom: 16px; }
.c-booking-intro-copy h3 { margin: 0 0 6px; color: var(--lh-booking-text); font-family: var(--lh-font-heading, Georgia, serif); font-weight: 600; font-size: clamp(22px, 1.7vw, 30px); line-height: 1.08; }
.c-booking-intro-copy p { margin: 0; color: var(--lh-booking-muted); font-size: 14px; line-height: 1.6; max-width: 58ch; }
.c-booking-badge { display:inline-flex; align-items:center; min-height:36px; padding:.5rem .8rem; border-radius:999px; background:rgba(94,155,153,.12); color:var(--lh-booking-accent-strong); border:1px solid rgba(94,155,153,.20); font-size:12px; font-weight:700; letter-spacing:.03em; white-space:nowrap; }
.c-booking-month-head { display:flex; align-items:center; justify-content:space-between; gap:10px; margin-bottom:14px; }
.c-booking-month-label { color:var(--lh-booking-text); font-family:var(--lh-font-heading, Georgia, serif); font-size:21px; line-height:1.1; font-weight:700; }
.c-booking-nav-prev, .c-booking-nav-next {
  appearance:none; border:1px solid var(--lh-booking-line); background:#fff; color:var(--lh-booking-text);
  border-radius:12px 6px 6px 6px; padding:10px 12px; cursor:pointer; box-shadow:0 4px 10px rgba(11,28,30,.05);
}
.c-booking-nav-prev:disabled, .c-booking-nav-next:disabled { opacity:.42; cursor:not-allowed; box-shadow:none; }
.c-booking-grid { display:grid; grid-template-columns: repeat(7, minmax(0, 1fr)); gap:var(--lh-booking-calendar-grid-gap, 6px); }

.c-booking-grid-days {
  grid-template-rows: repeat(6, var(--lh-booking-calendar-cell-height, 42px));
  grid-auto-rows: var(--lh-booking-calendar-cell-height, 42px);
  min-height: calc((var(--lh-booking-calendar-cell-height) * 6) + (var(--lh-booking-calendar-grid-gap) * 5));
}

.c-booking-grid-viewport {
  --lh-booking-calendar-cell-height: 42px;
  --lh-booking-calendar-grid-gap: 6px;
  position: relative;
  overflow: hidden;
  height: calc((var(--lh-booking-calendar-cell-height) * 6) + (var(--lh-booking-calendar-grid-gap) * 5));
  min-height: calc((var(--lh-booking-calendar-cell-height) * 6) + (var(--lh-booking-calendar-grid-gap) * 5));
  touch-action: pan-y;
}

.c-booking-grid-viewport > .c-booking-grid-days {
  position: relative;
  height: 100%;
}

.c-booking-grid-viewport.is-animating {
  height: calc((var(--lh-booking-calendar-cell-height) * 6) + (var(--lh-booking-calendar-grid-gap) * 5));
  min-height: calc((var(--lh-booking-calendar-cell-height) * 6) + (var(--lh-booking-calendar-grid-gap) * 5));
}

.c-booking-grid-viewport.is-animating > .c-booking-grid-days {
  position: absolute;
  inset: 0;
  width: 100%;
}

.c-booking-grid-days.is-transition-pane {
  will-change: transform;
}

.c-booking-grid-days.is-entering.from-next {
  transform: translateX(100%);
}

.c-booking-grid-days.is-entering.from-prev {
  transform: translateX(-100%);
}

.c-booking-grid-days.is-exiting.to-left,
.c-booking-grid-days.is-exiting.to-right {
  transform: translateX(0);
}

.c-booking-grid-days.is-entering.is-active,
.c-booking-grid-days.is-exiting.is-active {
  transition: transform 260ms ease;
}

.c-booking-grid-days.is-entering.from-next.is-active,
.c-booking-grid-days.is-entering.from-prev.is-active {
  transform: translateX(0);
}

.c-booking-grid-days.is-exiting.to-left.is-active {
  transform: translateX(-100%);
}

.c-booking-grid-days.is-exiting.to-right.is-active {
  transform: translateX(100%);
}

@media (prefers-reduced-motion: reduce) {
  .c-booking-grid-viewport,
  .c-booking-grid-viewport.is-animating {
    height: calc((var(--lh-booking-calendar-cell-height) * 6) + (var(--lh-booking-calendar-grid-gap) * 5));
    min-height: calc((var(--lh-booking-calendar-cell-height) * 6) + (var(--lh-booking-calendar-grid-gap) * 5));
  }

  .c-booking-grid-viewport.is-animating > .c-booking-grid-days,
  .c-booking-grid-days.is-transition-pane {
    position: relative;
    inset: auto;
    width: auto;
    transform: none !important;
    transition: none !important;
  }
}

@media (max-width: 900px) {
  .c-booking-grid-viewport,
  .c-booking-grid-viewport.is-animating {
    --lh-booking-calendar-cell-height: 37px;
    height: calc((var(--lh-booking-calendar-cell-height) * 6) + (var(--lh-booking-calendar-grid-gap) * 5));
    min-height: calc((var(--lh-booking-calendar-cell-height) * 6) + (var(--lh-booking-calendar-grid-gap) * 5));
  }
}

.c-booking-dow { font-size:12px; color:var(--lh-booking-muted); text-align:center; padding-bottom:2px; text-transform:uppercase; letter-spacing:.05em; font-weight:700; }
.c-booking-day, .c-booking-empty { min-height:var(--lh-booking-calendar-cell-height, 42px); height:100%; border-radius:12px 6px 6px 6px; display:flex; align-items:center; justify-content:center; }
.c-booking-day { border:1px solid var(--lh-booking-line); background:#fff; cursor:pointer; color:var(--lh-booking-text); font-weight:700; font-size:15px; }
.c-booking-day:hover, .c-booking-day:focus-visible, .c-booking-nav-prev:hover, .c-booking-nav-next:hover, .c-booking-nav-prev:focus-visible, .c-booking-nav-next:focus-visible, .c-booking-close:hover, .c-booking-close:focus-visible { border-color:var(--lh-booking-accent); outline:none; box-shadow:0 0 0 3px rgba(94,155,153,.12); }
.c-booking-day.is-selected { background:linear-gradient(180deg, var(--lh-booking-accent) 0%, var(--lh-booking-accent-strong) 100%); border-color:var(--lh-booking-accent-strong); color:#fff; }
.c-booking-day.is-blocked, .c-booking-day:disabled { background:#f2f0ef; color:#95a09f; border-color:#e0dedd; cursor:not-allowed; box-shadow:none; }
.c-booking-day.is-outside-month {
  background: rgba(242,240,239,.5);
  color: rgba(71,84,82,.46);
  border-color: rgba(201,196,193,.55);
  opacity: .82;
}
.c-booking-day.is-outside-month.is-weekend { opacity: .68; }
.c-booking-day.is-outside-month:hover,
.c-booking-day.is-outside-month:focus-visible,
.c-booking-day.is-outside-month:disabled {
  background: rgba(242,240,239,.5);
  color: rgba(71,84,82,.46);
  border-color: rgba(201,196,193,.55);
  box-shadow: none;
}
.c-booking-day.is-fully-booked { background:#f8e3e3; color:#7a3e3e; border-color:#d9a8a8; }
.c-booking-day.is-fully-booked:hover, .c-booking-day.is-fully-booked:focus-visible { background:#f5d8d8; border-color:#cb8f8f; box-shadow:0 0 0 3px rgba(203,143,143,.18); }
.c-booking-day.is-nearly-full { background:#fff4cc; color:#7a5a00; border-color:#e5cf80; }
.c-booking-day.is-nearly-full:hover, .c-booking-day.is-nearly-full:focus-visible { background:#ffefba; border-color:#d6bd63; box-shadow:0 0 0 3px rgba(214,189,99,.18); }
.c-booking-day.is-weekend { opacity:.72; }
.c-booking-slots-header { display:grid; gap:10px; margin-bottom:14px; }
.c-booking-slots-title { display:grid; gap:2px; }
.c-booking-slots-title strong { font-family:var(--lh-font-heading, Georgia, serif); font-size:19px; color:var(--lh-booking-text); line-height:1.15; }
.c-booking-slots-title span, .c-booking-empty-state { color:var(--lh-booking-muted); font-size:14px; line-height:1.55; }
.c-booking-slots-grid { display:grid; grid-template-columns: 1fr; gap:8px; }
.c-booking-slots.is-loading .c-booking-slots-grid { opacity: 1; }
.c-booking-loading-state {
  display:flex; align-items:center; gap:10px; min-height:52px;
  padding:12px 14px; border:1px solid rgba(12,32,34,.10);
  border-radius:12px 6px 6px 6px; background:linear-gradient(180deg, rgba(255,255,255,.96), rgba(247,244,241,.92));
  color:var(--lh-booking-muted); font-size:14px; line-height:1.45;
}
.c-booking-spinner {
  width:16px; height:16px; border-radius:999px; flex:0 0 16px;
  border:2px solid rgba(31,93,95,.20); border-top-color: var(--lh-booking-accent-strong);
  animation: c-booking-spin .75s linear infinite;
}
.c-booking-loading-text { display:inline-block; }
@keyframes c-booking-spin {
  from { transform: rotate(0deg); }
  to { transform: rotate(360deg); }
}
@media (prefers-reduced-motion: reduce) {
  .c-booking-spinner { animation: none; }
}
.c-booking-slot {
  appearance:none; width:100%; text-align:left; display:grid; gap:4px; align-content:start;
  border-radius:12px 6px 6px 6px; border:1px solid var(--lh-booking-line); background:#fff; padding:10px 12px;
  transition: background-color 160ms ease, border-color 160ms ease, box-shadow 160ms ease, transform 160ms ease;
}
.c-booking-slot strong { color:var(--lh-booking-text); font-size:20px; line-height:1.05; font-weight:700; }
.c-booking-slot span { color:var(--lh-booking-muted); font-size:14px; font-weight:600; }
.c-booking-slot.is-free { cursor:pointer; }
.c-booking-slot.is-free:hover, .c-booking-slot.is-free:focus-visible { background: linear-gradient(180deg, #e9fbef 0%, #d8f5e2 100%); border-color: var(--lh-booking-free-border); box-shadow: 0 0 0 3px rgba(47,158,91,.22); transform: translateY(-1px); outline:none; }
.c-booking-slot.is-selected { background:linear-gradient(180deg, rgba(94,155,153,.18), rgba(94,155,153,.10)); border-color:var(--lh-booking-accent-strong); box-shadow:0 0 0 3px rgba(94,155,153,.15); }
.c-booking-slot.is-reserved { background:linear-gradient(180deg, #fff8dc 0%, #fff1bf 100%); border-color:#d2b24c; cursor:not-allowed; }
.c-booking-slot.is-reserved strong, .c-booking-slot.is-reserved span { color:#7a5a00; }
.c-booking-slot.is-confirmed, .c-booking-slot.is-booked { background:#f2f0ef; border-color:#ddd7d3; cursor:not-allowed; }
.c-booking-slot.is-confirmed strong, .c-booking-slot.is-confirmed span, .c-booking-slot.is-booked strong, .c-booking-slot.is-booked span { color:#66707a; }
.c-booking-form-head { margin-bottom:12px; }
.c-booking-form-head strong { display:block; font-family:var(--lh-font-heading, Georgia, serif); font-size:20px; color:var(--lh-booking-text); margin-bottom:4px; }
.c-booking-form-head span { color:var(--lh-booking-muted); font-size:14px; line-height:1.55; }
.c-booking-selected-slot { display:grid; gap:4px; margin-bottom:14px; padding:12px 14px; border:1px solid rgba(94,155,153,.20); background:rgba(94,155,153,.08); border-radius:14px 6px 6px 6px; }
.c-booking-selected-slot span { color:var(--lh-booking-muted); font-size:12px; text-transform:uppercase; letter-spacing:.04em; }
.c-booking-selected-slot strong { color:var(--lh-booking-text); font-size:15px; }
.c-booking-form { display:grid; gap:10px; }
.c-booking-form label { display:grid; gap:6px; }
.c-booking-form label span { color:var(--lh-booking-text); font-size:13px; font-weight:600; }
.c-booking-form input, .c-booking-form textarea { width:100%; border:1px solid var(--lh-booking-line); border-radius:12px 6px 6px 6px; background:#fff; color:var(--lh-booking-text); padding:12px 12px; font:inherit; }
.c-booking-form input:focus, .c-booking-form textarea:focus { outline:none; border-color:var(--lh-booking-accent); box-shadow:0 0 0 3px rgba(94,155,153,.12); }
.c-booking-form.is-locked label span { color:#97a3a2; }
.c-booking-form.is-locked input:disabled, .c-booking-form.is-locked textarea:disabled { background:#f4f2f1; color:#8a9594; border-color:#e2ddda; cursor:not-allowed; }
.c-booking-form.is-locked .c-booking-checkbox { opacity:.72; }
.c-booking-checkbox { grid-template-columns: 18px 1fr; align-items:flex-start; gap:10px !important; }
.c-booking-checkbox input { margin-top:3px; }
.c-booking-checkbox span { font-size:13px !important; font-weight:400 !important; line-height:1.5; color:var(--lh-booking-muted) !important; }
.c-booking-form-actions { display:grid; gap:10px; }
.c-booking-submit { appearance:none; border:1px solid var(--lh-booking-accent-strong); background:linear-gradient(180deg, var(--lh-booking-accent) 0%, var(--lh-booking-accent-strong) 100%); color:#fff; border-radius:14px 6px 6px 6px; padding:12px 16px; font-weight:700; cursor:pointer; }
.c-booking-submit:hover, .c-booking-submit:focus-visible { outline:none; filter:brightness(.98); box-shadow:0 0 0 3px rgba(94,155,153,.15); }
.c-booking-submit:disabled { opacity:.45; cursor:not-allowed; filter:grayscale(.15); }
.c-booking-form-status { min-height:20px; font-size:13px; line-height:1.4; }
.c-booking-form-status.is-pending { color:var(--lh-booking-muted); }
.c-booking-form-status.is-success { color:#17663f; }
.c-booking-form-status.is-error { color:#9b2c2c; }
@media (min-width: 760px) {
  .c-booking-shell { width:min(100% - 32px, 1240px); height:min(100% - 32px, 920px); margin:16px auto; border-radius:28px 10px 10px 10px; overflow:hidden; box-shadow:var(--lh-booking-shadow); }
  .c-booking-modal-header { padding:22px 24px 20px; }
  .c-booking-modal-body { padding:24px; }
}
@media (min-width: 980px) {
  .c-booking-panel-inner { grid-template-columns: minmax(360px, .95fr) minmax(420px, 1.05fr); }
}




/* 1.0.4 desktop balance refinement */
.c-booking-panel-inner,
.c-booking-side-column {
  align-items: start;
}

.c-booking-card,
.c-booking-slots,
.c-booking-request-card {
  align-self: start;
}

.c-booking-slots {
  display: grid;
  align-content: start;
  gap: 12px;
}

.c-booking-request-card {
  display: grid;
  align-content: start;
}

.c-booking-slots-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 10px;
}

.c-booking-slot {
  min-height: 78px;
}

@media (min-width: 980px) {
  .c-booking-shell {
    width: min(100% - 40px, 1380px);
    height: min(100% - 40px, 920px);
  }

  .c-booking-panel-inner {
    grid-template-columns: minmax(340px, 0.9fr) minmax(300px, 0.72fr) minmax(360px, 0.95fr);
    gap: 18px;
  }

  .c-booking-slots-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    align-content: start;
  }

  .c-booking-slots {
    max-height: none;
  }

  .c-booking-modal-copy p {
    max-width: 72ch;
  }
}

@media (min-width: 1180px) {
  .c-booking-panel-inner {
    grid-template-columns: minmax(360px, 0.92fr) minmax(340px, 0.82fr) minmax(380px, 0.98fr);
    gap: 20px;
  }

  .c-booking-slots-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 10px;
  }

  .c-booking-slot {
    min-height: 82px;
    padding: 12px 14px;
  }

  .c-booking-slot strong {
    font-size: 18px;
  }

  .c-booking-slot span {
    font-size: 13px;
  }
}

@media (min-width: 1440px) {
  .c-booking-panel-inner {
    grid-template-columns: minmax(380px, 0.95fr) minmax(380px, 0.9fr) minmax(400px, 1fr);
  }

  .c-booking-slots-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}



/* 1.0.5 fullscreen overlay and fixed form footer */
.c-booking-shell {
  width: 100%;
  height: 100%;
  margin: 0;
  border-radius: 0;
}

.c-booking-modal-body {
  padding-bottom: 128px;
}

.c-booking-request-card {
  position: relative;
  display: grid;
  align-content: start;
  min-height: 100%;
}

.c-booking-form {
  display: grid;
  align-content: start;
  gap: 14px;
  min-height: 100%;
}

.c-booking-form-fields {
  display: grid;
  gap: 12px;
  padding-bottom: 8px;
}

.c-booking-form-field-full {
  grid-column: 1 / -1;
}

.c-booking-form-footer {
  position: fixed;
  left: 16px;
  right: 16px;
  bottom: 16px;
  z-index: 6;
  display: grid;
  gap: 10px;
  padding: 14px 16px;
  border: 1px solid var(--lh-booking-line);
  border-radius: 18px 8px 8px 8px;
  background: rgba(255,255,255,.98);
  backdrop-filter: blur(10px);
  box-shadow: 0 -8px 24px rgba(11,28,30,.10);
}

.c-booking-form-actions {
  display: grid;
  gap: 10px;
}

.c-booking-form-status {
  order: 1;
}

.c-booking-submit {
  width: 100%;
  min-height: 52px;
  order: 2;
}

.c-booking-checkbox {
  display: grid;
  grid-template-columns: auto 1fr;
  align-items: start;
  gap: 10px;
  opacity: 1;
}

@media (min-width: 760px) {
  .c-booking-shell {
    width: min(100% - 32px, 100vw - 32px);
    height: min(100% - 32px, 100vh - 32px);
    margin: 16px auto;
    border-radius: 28px 10px 10px 10px;
    overflow: hidden;
  }

  .c-booking-modal-body {
    padding: 24px 24px 160px;
  }

  .c-booking-form-footer {
    left: 40px;
    right: 40px;
    bottom: 16px;
    padding: 16px 18px;
  }
}

@media (min-width: 980px) {
  .c-booking-shell {
    width: min(100% - 40px, 100vw - 40px);
    height: min(100% - 40px, 100vh - 40px);
    margin: 20px auto;
  }

  .c-booking-modal-body {
    padding: 24px 24px 170px;
  }

  .c-booking-panel-inner {
    grid-template-columns: minmax(340px, 0.9fr) minmax(320px, 0.8fr) minmax(400px, 1fr);
    gap: 18px;
  }

  .c-booking-form-fields {
    grid-template-columns: 1fr 1fr;
    gap: 12px 14px;
  }

  .c-booking-form-footer {
    left: 44px;
    right: 44px;
    bottom: 20px;
    grid-template-columns: minmax(0, 1.25fr) minmax(280px, .75fr);
    align-items: center;
    gap: 18px;
  }

  .c-booking-form-actions {
    align-items: end;
  }

  .c-booking-form-status {
    min-height: 1.4em;
  }
}

@media (min-width: 1320px) {
  .c-booking-shell {
    width: min(100% - 48px, 100vw - 48px);
    height: min(100% - 48px, 100vh - 48px);
    margin: 24px auto;
  }

  .c-booking-modal-body {
    padding-bottom: 182px;
  }

  .c-booking-form-footer {
    left: 48px;
    right: 48px;
    bottom: 24px;
  }
}


/* 1.0.6 date and time always stacked */
.c-booking-date-time-stack {
  display: grid;
  grid-template-columns: 1fr;
  gap: 16px;
  align-content: start;
  min-width: 0;
}

.c-booking-panel-inner {
  grid-template-columns: 1fr;
  align-items: start;
}

.c-booking-date-time-stack > .c-booking-card,
.c-booking-date-time-stack > .c-booking-slots,
.c-booking-request-card {
  min-width: 0;
}

@media (min-width: 980px) {
  .c-booking-panel-inner {
    grid-template-columns: minmax(420px, 0.95fr) minmax(400px, 1fr);
    gap: 18px;
  }

  .c-booking-date-time-stack {
    gap: 18px;
  }

  .c-booking-slots-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (min-width: 1320px) {
  .c-booking-panel-inner {
    grid-template-columns: minmax(460px, 0.98fr) minmax(420px, 1fr);
    gap: 20px;
  }

  .c-booking-slots-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}


/* 1.0.7 remove fixed footer, keep natural form flow */
.c-booking-modal-body {
  padding-bottom: 24px;
}

.c-booking-request-card {
  position: relative;
  display: block;
  min-height: 0;
}

.c-booking-form {
  display: grid;
  align-content: start;
  gap: 14px;
  min-height: 0;
}

.c-booking-form-fields {
  display: grid;
  gap: 12px;
  padding-bottom: 0;
}

.c-booking-form-field-full {
  grid-column: 1 / -1;
}

.c-booking-form-footer {
  position: static;
  left: auto;
  right: auto;
  bottom: auto;
  z-index: auto;
  display: block;
  gap: 0;
  padding: 0;
  border: 0;
  border-radius: 0;
  background: transparent;
  backdrop-filter: none;
  box-shadow: none;
}

.c-booking-form-actions {
  display: grid;
  gap: 10px;
}

.c-booking-submit {
  width: 100%;
  min-height: 48px;
}

.c-booking-checkbox {
  display: grid;
  grid-template-columns: auto 1fr;
  align-items: start;
  gap: 10px;
  opacity: 1;
}

.c-booking-form-status {
  min-height: 1.4em;
}

@media (min-width: 760px) {
  .c-booking-modal-body {
    padding: 24px;
  }
}

@media (min-width: 980px) {
  .c-booking-modal-body {
    padding: 24px;
  }

  .c-booking-form-fields {
    grid-template-columns: 1fr 1fr;
    gap: 12px 14px;
  }
}

@media (min-width: 1320px) {
  .c-booking-modal-body {
    padding-bottom: 24px;
  }
}


/* 1.0.9 success banner above header / top of page */
.c-banner-region {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  z-index: 1000001;
  pointer-events: none;
}

.c-banner {
  pointer-events: auto;
  background: linear-gradient(180deg, #3ca66b 0%, #257f4e 100%);
  color: #fff;
  box-shadow: 0 10px 28px rgba(11,28,30,.18);
}

.c-banner.is-info {
  background: linear-gradient(180deg, #3b7ea1 0%, #275b79 100%);
}

.c-banner__inner {
  width: min(100% - 24px, 1320px);
  margin: 0 auto;
  min-height: 52px;
  display: grid;
  grid-template-columns: auto 1fr auto;
  align-items: center;
  gap: 12px;
  padding: 12px 16px;
}

.c-banner__inner strong {
  font-size: 14px;
  line-height: 1.1;
}

.c-banner__inner span {
  font-size: 14px;
  line-height: 1.4;
}

.c-banner__close {
  appearance: none;
  border: 1px solid rgba(255,255,255,.28);
  background: rgba(255,255,255,.08);
  color: #fff;
  border-radius: 12px 6px 6px 6px;
  width: 40px;
  height: 40px;
  cursor: pointer;
  font-size: 24px;
  line-height: 1;
}

@media (max-width: 759px) {
  .c-banner__inner {
    width: 100%;
    grid-template-columns: 1fr auto;
    align-items: start;
    gap: 10px;
    padding: 10px 12px;
  }

  .c-banner__inner strong {
    grid-column: 1 / -1;
  }

  .c-banner__inner span {
    font-size: 13px;
  }

  .c-banner__close {
    width: 36px;
    height: 36px;
  }
}


/* 1.0.10 legend + calendar colors */
:root {
  --lh-booking-holiday-bg: #d8c2a0;
  --lh-booking-holiday-border: #b28d5c;
  --lh-booking-weekend-bg: #9fb8a0;
  --lh-booking-weekend-border: #6f8d71;
  --lh-booking-free-day-bg: #edf8ee;
  --lh-booking-free-day-border: #9dc8a0;
  --lh-booking-free-slot-bg: #dff7e7;
  --lh-booking-free-slot-border: #2f9e5b;
  --lh-booking-full-bg: #eef1f3;
  --lh-booking-full-border: #97a6ae;
}

.c-booking-legend {
  display: grid;
  grid-template-columns: 1fr;
  gap: 8px;
  margin-top: 14px;
  padding-top: 14px;
  border-top: 1px solid var(--lh-booking-line);
}

.c-booking-legend-item {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  color: var(--lh-booking-muted);
  font-size: 13px;
  line-height: 1.4;
}

.c-booking-legend-swatch {
  width: 16px;
  height: 16px;
  border-radius: 6px 4px 4px 4px;
  border: 1px solid var(--lh-booking-line);
  flex: 0 0 auto;
}

.c-booking-legend-swatch.is-free-day {
  background: var(--lh-booking-free-day-bg);
  border-color: var(--lh-booking-free-day-border);
}
.c-booking-legend-swatch.is-free-slot-day {
  background: var(--lh-booking-free-slot-bg);
  border-color: var(--lh-booking-free-slot-border);
}
.c-booking-legend-swatch.is-fully-booked-day {
  background: var(--lh-booking-full-bg);
  border-color: var(--lh-booking-full-border);
}
.c-booking-legend-swatch.is-holiday-day {
  background: var(--lh-booking-holiday-bg);
  border-color: var(--lh-booking-holiday-border);
}
.c-booking-legend-swatch.is-weekend-day {
  background: var(--lh-booking-weekend-bg);
  border-color: var(--lh-booking-weekend-border);
}

.c-booking-day.is-holiday,
.c-booking-day.is-holiday[disabled] {
  background: var(--lh-booking-holiday-bg);
  border-color: var(--lh-booking-holiday-border);
  color: #3c2c18;
}

.c-booking-day.is-weekend:not(.is-blocked):not(.is-holiday) {
  background: var(--lh-booking-weekend-bg);
  border-color: var(--lh-booking-weekend-border);
  color: #173222;
}

.c-booking-day.is-free-day:not(.is-selected):not(.is-blocked):not(.is-holiday) {
  background: var(--lh-booking-free-day-bg);
  border-color: var(--lh-booking-free-day-border);
}

.c-booking-day.has-free-slots:not(.is-selected):not(.is-blocked):not(.is-holiday) {
  background: var(--lh-booking-free-slot-bg);
  border-color: var(--lh-booking-free-slot-border);
  box-shadow: inset 0 0 0 1px rgba(47,158,91,.08);
}

.c-booking-day.is-fully-booked:not(.is-selected):not(.is-blocked):not(.is-holiday) {
  background: var(--lh-booking-full-bg);
  border-color: var(--lh-booking-full-border);
  color: var(--lh-booking-muted);
}

@media (min-width: 760px) {
  .c-booking-legend {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 10px 14px;
  }
}
@media (min-width: 1180px) {
  .c-booking-legend {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}


/* 1.0.11 blocked-state color correction */
.c-booking-legend-swatch.is-free-day {
  display: none;
}

.c-booking-day.is-free-day:not(.is-selected):not(.is-blocked):not(.is-holiday) {
  background: #fff;
  border-color: var(--lh-booking-line);
  color: var(--lh-booking-text);
  box-shadow: none;
}

.c-booking-day:not(.is-blocked):not(.is-selected):not(.has-free-slots):not(.is-fully-booked):not(.is-holiday) {
  background: #fff;
  border-color: var(--lh-booking-line);
  color: var(--lh-booking-text);
  box-shadow: none;
}

.c-booking-day.is-weekend.is-blocked:not(.is-holiday),
.c-booking-day.is-weekend.is-blocked[disabled]:not(.is-holiday) {
  background: var(--lh-booking-weekend-bg);
  border-color: var(--lh-booking-weekend-border);
  color: #173222;
  opacity: 1;
}

.c-booking-day.is-holiday.is-blocked,
.c-booking-day.is-holiday.is-blocked[disabled] {
  background: var(--lh-booking-holiday-bg);
  border-color: var(--lh-booking-holiday-border);
  color: #3c2c18;
  opacity: 1;
}

.c-booking-day.is-blocked:not(.is-weekend):not(.is-holiday)[disabled] {
  opacity: .55;
}


/* 1.0.12 content-width booking overlay */
@media (min-width: 760px) {
  .c-booking-shell {
    width: min(100% - 32px, 1180px);
    height: min(100% - 32px, 920px);
    margin: 16px auto;
  }
}

@media (min-width: 980px) {
  .c-booking-shell {
    width: min(100% - 48px, 1240px);
    height: min(100% - 40px, 920px);
    margin: 20px auto;
  }
}

@media (min-width: 1320px) {
  .c-booking-shell {
    width: min(100% - 64px, 1280px);
    height: min(100% - 48px, 920px);
    margin: 24px auto;
  }
}


/* 1.0.13 almost full height, date+time beside each other, form full width below */
.c-booking-panel-inner {
  display: grid;
  grid-template-columns: 1fr;
  gap: 16px;
  align-items: start;
}

.c-booking-top-row {
  display: grid;
  grid-template-columns: 1fr;
  gap: 16px;
  align-items: start;
  min-width: 0;
}

.c-booking-request-card {
  width: 100%;
  min-width: 0;
}

@media (min-width: 760px) {
  .c-booking-shell {
    width: min(100% - 32px, 1180px);
    height: min(100% - 24px, 980px);
    margin: 12px auto;
  }
}

@media (min-width: 980px) {
  .c-booking-top-row {
    grid-template-columns: minmax(360px, 0.95fr) minmax(360px, 1.05fr);
    gap: 18px;
  }

  .c-booking-panel-inner {
    grid-template-columns: 1fr;
    gap: 18px;
  }

  .c-booking-shell {
    width: min(100% - 48px, 1240px);
    height: min(100% - 28px, 980px);
    margin: 14px auto;
  }

  .c-booking-slots-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (min-width: 1320px) {
  .c-booking-top-row {
    grid-template-columns: minmax(390px, 0.95fr) minmax(420px, 1.05fr);
    gap: 20px;
  }

  .c-booking-shell {
    width: min(100% - 64px, 1280px);
    height: min(100% - 32px, 1000px);
    margin: 16px auto;
  }

  .c-booking-slots-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}


/* 1.0.14 equal top block heights + almost full height overlay */
.c-booking-top-row,
.c-booking-top-row > .c-booking-card,
.c-booking-top-row > .c-booking-slots {
  min-width: 0;
}

@media (min-width: 980px) {
  .c-booking-shell {
    width: min(100% - 48px, 1240px);
    height: calc(100dvh - 32px);
    max-height: calc(100dvh - 32px);
    margin: 16px auto;
  }

  .c-booking-modal-body {
    min-height: 0;
  }

  .c-booking-panel-inner {
    min-height: 100%;
    align-content: start;
  }

  .c-booking-top-row {
    display: grid;
    grid-template-columns: minmax(360px, 0.95fr) minmax(360px, 1.05fr);
    gap: 18px;
    align-items: stretch;
  }

  .c-booking-top-row > .c-booking-card,
  .c-booking-top-row > .c-booking-slots {
    height: 100%;
    display: flex;
    flex-direction: column;
  }

  .c-booking-top-row > .c-booking-card .c-booking-grid-days,
  .c-booking-top-row > .c-booking-slots .c-booking-slots-grid {
    flex: 1 1 auto;
    align-content: start;
  }

  .c-booking-top-row > .c-booking-slots {
    min-height: 100%;
  }
}

@media (min-width: 1320px) {
  .c-booking-shell {
    width: min(100% - 64px, 1280px);
    height: calc(100dvh - 40px);
    max-height: calc(100dvh - 40px);
    margin: 20px auto;
  }

  .c-booking-top-row {
    grid-template-columns: minmax(390px, 0.95fr) minmax(420px, 1.05fr);
    gap: 20px;
  }
}

@media (max-width: 979px) {
  .c-booking-shell {
    height: calc(100dvh - 24px);
    max-height: calc(100dvh - 24px);
    margin: 12px auto;
  }
}


/* 1.0.15 refined legend + calendar state logic */
:root {
  --lh-booking-holiday-bg: #d8c2a0;
  --lh-booking-holiday-border: #b28d5c;
  --lh-booking-weekend-bg: #d2d7da;
  --lh-booking-weekend-border: #a4adb3;
  --lh-booking-one-slot-bg: #f2e4a8;
  --lh-booking-one-slot-border: #d1b24d;
  --lh-booking-full-bg: #f5e7e7;
  --lh-booking-full-border: #d3a4a4;
}

.c-booking-legend-swatch.is-free-day {
  display: inline-block;
  background: #fff;
  border-color: var(--lh-booking-line);
}
.c-booking-legend-swatch.is-one-slot-day {
  background: var(--lh-booking-one-slot-bg);
  border-color: var(--lh-booking-one-slot-border);
}
.c-booking-legend-swatch.is-fully-booked-day {
  background: var(--lh-booking-full-bg);
  border-color: var(--lh-booking-full-border);
}
.c-booking-legend-swatch.is-holiday-day {
  background: var(--lh-booking-holiday-bg);
  border-color: var(--lh-booking-holiday-border);
}
.c-booking-legend-swatch.is-weekend-day {
  background: var(--lh-booking-weekend-bg);
  border-color: var(--lh-booking-weekend-border);
}

.c-booking-day:not(.is-blocked):not(.is-selected):not(.has-one-slot):not(.is-fully-booked):not(.is-holiday) {
  background: #fff;
  border-color: var(--lh-booking-line);
  color: var(--lh-booking-text);
  box-shadow: none;
}

.c-booking-day.has-free-slots:not(.is-selected):not(.is-blocked):not(.is-holiday) {
  background: #fff;
  border-color: var(--lh-booking-line);
  color: var(--lh-booking-text);
  box-shadow: none;
}

.c-booking-day.has-one-slot:not(.is-selected):not(.is-blocked):not(.is-holiday) {
  background: var(--lh-booking-one-slot-bg);
  border-color: var(--lh-booking-one-slot-border);
  color: #5a4712;
}

.c-booking-day.is-fully-booked:not(.is-selected),
.c-booking-day.is-fully-booked[disabled] {
  background: var(--lh-booking-full-bg);
  border-color: var(--lh-booking-full-border);
  color: #7a4d4d;
  opacity: 1;
  cursor: not-allowed;
}

.c-booking-day.is-weekend.is-blocked:not(.is-holiday),
.c-booking-day.is-weekend.is-blocked[disabled]:not(.is-holiday) {
  background: var(--lh-booking-weekend-bg);
  border-color: var(--lh-booking-weekend-border);
  color: #485057;
  opacity: 1;
}

.c-booking-day.is-holiday.is-blocked,
.c-booking-day.is-holiday.is-blocked[disabled] {
  background: var(--lh-booking-holiday-bg);
  border-color: var(--lh-booking-holiday-border);
  color: #3c2c18;
  opacity: 1;
}


/* 1.0.16 calendar state specificity + IBM Plex in calendar UI */
.c-booking-dow,
.c-booking-day,
.c-booking-month-label,
.c-booking-nav-prev,
.c-booking-nav-next,
.c-booking-badge,
.c-booking-slot,
.c-booking-slot strong,
.c-booking-slot span,
.c-booking-slots-title strong,
.c-booking-selected-date {
  font-family: var(--lh-font-ui, var(--font-ui, 'IBM Plex Sans', system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif));
}

.c-booking-day,
.c-booking-day:disabled,
.c-booking-day.is-blocked,
.c-booking-day.is-holiday,
.c-booking-day.is-holiday[disabled],
.c-booking-day.is-weekend.is-blocked,
.c-booking-day.is-weekend.is-blocked[disabled],
.c-booking-day.is-fully-booked,
.c-booking-day.is-fully-booked[disabled],
.c-booking-day.has-one-slot {
  opacity: 1;
}

.c-booking-day:not(.is-blocked):not(.is-selected):not(.has-one-slot):not(.is-fully-booked):not(.is-holiday) {
  background: #fff;
  border-color: var(--lh-booking-line);
  color: var(--lh-booking-text);
  box-shadow: none;
}

.c-booking-day.has-one-slot:not(.is-selected):not(.is-blocked):not(.is-holiday),
.c-booking-day.has-one-slot:focus-visible:not(.is-selected):not(.is-blocked):not(.is-holiday),
.c-booking-grid-days .c-booking-day.has-one-slot:not(.is-selected):not(.is-blocked):not(.is-holiday) {
  background: var(--lh-booking-one-slot-bg) !important;
  border-color: var(--lh-booking-one-slot-border) !important;
  color: #5a4712 !important;
  box-shadow: inset 0 0 0 1px rgba(209,178,77,.15);
}

.c-booking-day.is-fully-booked:not(.is-selected),
.c-booking-day.is-fully-booked[disabled],
.c-booking-grid-days .c-booking-day.is-fully-booked:not(.is-selected),
.c-booking-grid-days .c-booking-day.is-fully-booked[disabled] {
  background: var(--lh-booking-full-bg) !important;
  border-color: var(--lh-booking-full-border) !important;
  color: #7a4d4d !important;
  cursor: not-allowed;
  box-shadow: none;
}

.c-booking-day.is-weekend.is-blocked:not(.is-holiday),
.c-booking-day.is-weekend.is-blocked[disabled]:not(.is-holiday),
.c-booking-grid-days .c-booking-day.is-weekend.is-blocked:not(.is-holiday),
.c-booking-grid-days .c-booking-day.is-weekend.is-blocked[disabled]:not(.is-holiday) {
  background: var(--lh-booking-weekend-bg) !important;
  border-color: var(--lh-booking-weekend-border) !important;
  color: #485057 !important;
  cursor: not-allowed;
  box-shadow: none;
}

.c-booking-day.is-holiday,
.c-booking-day.is-holiday[disabled],
.c-booking-day.is-holiday.is-blocked,
.c-booking-day.is-holiday.is-blocked[disabled],
.c-booking-grid-days .c-booking-day.is-holiday,
.c-booking-grid-days .c-booking-day.is-holiday[disabled],
.c-booking-grid-days .c-booking-day.is-holiday.is-blocked,
.c-booking-grid-days .c-booking-day.is-holiday.is-blocked[disabled] {
  background: var(--lh-booking-holiday-bg) !important;
  border-color: var(--lh-booking-holiday-border) !important;
  color: #3c2c18 !important;
  cursor: not-allowed;
  box-shadow: none;
}

.c-booking-day:disabled:not(.is-holiday):not(.is-weekend):not(.is-fully-booked) {
  background: #f2f0ef;
  color: #95a09f;
  border-color: #e0dedd;
  cursor: not-allowed;
}


/* 1.0.17 holiday disabled color priority fix */
.c-booking-grid-days .c-booking-day.is-holiday,
.c-booking-grid-days .c-booking-day.is-holiday[disabled],
.c-booking-grid-days .c-booking-day.is-holiday.is-blocked,
.c-booking-grid-days .c-booking-day.is-holiday.is-blocked[disabled],
.c-booking-grid-days .c-booking-day.is-holiday:disabled,
.c-booking-grid-days .c-booking-day.is-holiday.is-blocked:disabled {
  background: var(--lh-booking-holiday-bg) !important;
  border-color: var(--lh-booking-holiday-border) !important;
  color: #3c2c18 !important;
  -webkit-text-fill-color: #3c2c18 !important;
  opacity: 1 !important;
  cursor: not-allowed;
  box-shadow: none !important;
  filter: none !important;
}

.c-booking-grid-days .c-booking-day.is-holiday:hover,
.c-booking-grid-days .c-booking-day.is-holiday[disabled]:hover,
.c-booking-grid-days .c-booking-day.is-holiday:focus,
.c-booking-grid-days .c-booking-day.is-holiday:focus-visible {
  background: var(--lh-booking-holiday-bg) !important;
  border-color: var(--lh-booking-holiday-border) !important;
  color: #3c2c18 !important;
}

.c-booking-grid-days .c-booking-day:disabled:not(.is-holiday):not(.is-weekend):not(.is-fully-booked) {
  background: #f2f0ef;
  color: #95a09f;
  border-color: #e0dedd;
}


/* 1.0.41 week teaser */
.c-booking-week-teaser {
  position: relative;
  display: grid;
  gap: 14px;
  padding: 18px 18px 16px;
  border-radius: 26px 10px 10px 10px;
  background: rgba(255,255,255,.94);
  border: 1px solid rgba(94,155,153,.16);
  box-shadow: 0 28px 70px rgba(18,34,33,.14);
  backdrop-filter: blur(8px);
  max-width: 667px;
}

.c-booking-week-teaser__head {
  display: grid;
  gap: 6px;
}

.c-booking-week-teaser__eyebrow {
  font-size: 12px;
  font-weight: 700;
  letter-spacing: .08em;
  text-transform: uppercase;
  color: var(--lh-booking-accent-strong);
}

.c-booking-week-teaser__head h3 {
  margin: 0;
  font-family: var(--lh-font-heading, Georgia, serif);
  font-size: clamp(22px, 1.8vw, 28px);
  line-height: 1.08;
  color: var(--lh-booking-text);
}

.c-booking-week-teaser__head p {
  margin: 0;
  color: var(--lh-booking-muted);
  font-size: 14px;
  line-height: 1.55;
}

.c-booking-week-teaser__days {
  display: grid;
  grid-template-columns: repeat(7, minmax(0, 1fr));
  gap: 8px;
}

.c-booking-week-teaser__day {
  appearance: none;
  display: grid;
  justify-items: center;
  align-content: start;
  gap: 2px;
  min-height: 96px;
  padding: 10px 8px;
  border-radius: 18px 8px 8px 8px;
  border: 1px solid var(--lh-booking-line);
  background: #fff;
  color: var(--lh-booking-text);
  text-align: center;
  transition: transform 160ms ease, box-shadow 160ms ease, border-color 160ms ease, background-color 160ms ease;
}

.c-booking-week-teaser__day.is-available {
  cursor: pointer;
}

.c-booking-week-teaser__day.is-available:hover,
.c-booking-week-teaser__day.is-available:focus-visible {
  transform: translateY(-2px);
  border-color: var(--lh-booking-accent-strong);
  box-shadow: 0 0 0 3px rgba(94,155,153,.14);
  outline: none;
}

.c-booking-week-teaser__day.is-unavailable {
  opacity: .72;
  background: #f5f3f2;
  color: #7f8a89;
}

.c-booking-week-teaser__weekday {
  font-size: 11px;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: .08em;
  color: var(--lh-booking-muted);
}

.c-booking-week-teaser__daynum {
  font-size: 24px;
  line-height: 1;
  font-weight: 800;
  color: inherit;
}

.c-booking-week-teaser__month {
  font-size: 12px;
  font-weight: 700;
  color: inherit;
}


@media (max-width: 900px) {
  .c-booking-week-teaser {
    padding: 16px;
    max-width: none;
  }

  .c-booking-week-teaser__days {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .c-booking-week-teaser__day {
    min-height: 92px;
  }
}


/* hero teaser placement */
.c-hero-booking-teaser {
  position: relative;
  z-index: 3;
  width: min(100%, 667px);
  margin: 18px 0 0;
}

.c-booking-week-teaser--hero {
  position: relative;
}

@media (min-width: 980px) {
  .c-hero-booking-teaser {
    align-self: end;
    margin: 28px 0 -13px;
    margin-left: 203px;
  }

  .c-booking-week-teaser--hero {
    box-shadow: 0 20px 50px rgba(11, 28, 30, .18);
    backdrop-filter: blur(3px);
  }
}

@media (max-width: 979px) {
  .c-hero-booking-teaser {
    width: 100%;
    max-width: 540px;
  }
}


/* 1.0.40 global form standard bridge */
.c-booking-form .c-form-label{color:var(--c-booking-form-text);}
.c-booking-form .c-form-control{border-color:var(--c-booking-form-line);border-radius:var(--c-booking-form-radius-field);background:var(--c-booking-form-bg);color:var(--c-booking-form-text);}
.c-booking-form .c-form-control:focus,.c-booking-form .c-form-control:focus-visible{border-color:var(--lh-booking-accent);box-shadow:var(--c-booking-form-focus-ring);}
.c-booking-form.is-locked .c-form-label{color:#97a3a2;}
.c-booking-form.is-locked .c-form-control:disabled{background:#f4f2f1;color:#8a9594;border-color:#e2ddda;}
.c-booking-checkbox.c-form-check span{color:var(--c-booking-form-muted)!important;}
.c-booking-submit.c-form-submit{border-color:var(--lh-booking-accent-strong);background:linear-gradient(180deg, var(--lh-booking-accent) 0%, var(--lh-booking-accent-strong) 100%);color:#fff;box-shadow:none;}
.c-booking-submit.c-form-submit:hover,.c-booking-submit.c-form-submit:focus-visible{box-shadow:0 0 0 3px rgba(94,155,153,.15);filter:brightness(.98);}

.c-booking-slot-hint{display:block;margin-top:2px;font-size:11px;line-height:1.2;opacity:.72;white-space:normal;}
.c-booking-slot.is-free .c-booking-slot-hint{display:none;}


/* 2.0.1 visual refinement */
.c-booking-slot{
  text-align:left;
  justify-items:start;
  align-content:start;
}
.c-booking-slot strong,
.c-booking-slot span,
.c-booking-slot .c-booking-slot-hint{
  width:100%;
  text-align:left;
  justify-self:start;
}
.c-booking-form input,
.c-booking-form textarea{
  border:1px solid var(--c-booking-form-line) !important;
  border-radius:var(--c-booking-form-radius-field) !important;
  background:var(--c-booking-form-bg) !important;
  color:var(--c-booking-form-text) !important;
  padding:12px 14px !important;
  box-shadow:none !important;
}
.c-booking-form input:focus,
.c-booking-form textarea:focus{
  border-color:var(--lh-booking-accent) !important;
  box-shadow:var(--c-booking-form-focus-ring) !important;
}


/* 2.0.6 outside-month visual priority fix */
.c-booking-grid-days .c-booking-day.is-outside-month,
.c-booking-grid-days .c-booking-day.is-outside-month:disabled,
.c-booking-grid-days .c-booking-day.is-outside-month.is-blocked,
.c-booking-grid-days .c-booking-day.is-outside-month.is-blocked:disabled,
.c-booking-grid-days .c-booking-day.is-outside-month.is-weekend,
.c-booking-grid-days .c-booking-day.is-outside-month.is-weekend:disabled,
.c-booking-grid-days .c-booking-day.is-outside-month.is-weekend.is-blocked,
.c-booking-grid-days .c-booking-day.is-outside-month.is-weekend.is-blocked:disabled,
.c-booking-grid-days .c-booking-day.is-outside-month.is-holiday,
.c-booking-grid-days .c-booking-day.is-outside-month.is-holiday:disabled,
.c-booking-grid-days .c-booking-day.is-outside-month.is-holiday.is-blocked,
.c-booking-grid-days .c-booking-day.is-outside-month.is-holiday.is-blocked:disabled {
  background: rgba(242,240,239,.5) !important;
  color: rgba(71,84,82,.46) !important;
  -webkit-text-fill-color: rgba(71,84,82,.46) !important;
  border-color: rgba(201,196,193,.55) !important;
  box-shadow: none !important;
  opacity: .82 !important;
  cursor: default !important;
  filter: none !important;
}

.c-booking-grid-days .c-booking-day.is-outside-month.is-weekend,
.c-booking-grid-days .c-booking-day.is-outside-month.is-weekend:disabled,
.c-booking-grid-days .c-booking-day.is-outside-month.is-weekend.is-blocked,
.c-booking-grid-days .c-booking-day.is-outside-month.is-weekend.is-blocked:disabled {
  opacity: .72 !important;
}

.c-booking-grid-days .c-booking-day.is-outside-month:hover,
.c-booking-grid-days .c-booking-day.is-outside-month:focus,
.c-booking-grid-days .c-booking-day.is-outside-month:focus-visible,
.c-booking-grid-days .c-booking-day.is-outside-month:active {
  background: rgba(242,240,239,.5) !important;
  color: rgba(71,84,82,.46) !important;
  -webkit-text-fill-color: rgba(71,84,82,.46) !important;
  border-color: rgba(201,196,193,.55) !important;
  box-shadow: none !important;
}
