/* Domus Bella booking palette; behaviour and widget preferences remain shared. */
.booking-wrap {
  --paper: #171717;
  --paper-soft: #222;
  --glass: #171717;
  --ink: #fff;
  --ink-strong: #fff;
  --muted: #ccc;
  --line: #444;
  color: #fff;
  color-scheme: dark;
}
.booking-wrap .fh-booking-bar,
.booking-wrap .date-popover {
  background: #171717;
  color: #fff;
  border: 1px solid #444;
}
.booking-wrap .booking-field,
.booking-wrap .field-label,
.booking-wrap .field-value,
.booking-wrap .stepper-value,
.booking-wrap .date-title,
.booking-wrap .booking-sheet-head h2,
.booking-wrap .booking-launch-title,
.booking-wrap .booking-launch-icon,
.booking-wrap .date-close {
  color: #fff;
}
.booking-wrap .booking-field { border-color: #444; }
.booking-wrap .booking-sheet-copy,
.booking-wrap .date-popover-head p,
.booking-wrap .date-weekdays span { color: #ccc; }
.booking-wrap .booking-sheet-eyebrow { color: #d1b66e; }
.booking-wrap .stepper-btn,
.booking-wrap .date-nav button,
.booking-wrap .booking-sheet-close {
  background: #252525;
  color: #fff;
  border: 1px solid #666;
}
.booking-wrap .stepper-btn:hover:not(:disabled),
.booking-wrap .date-nav button:hover { background: #393226; color: #fff; border-color: #d1b66e; }
.booking-wrap .stepper-btn:disabled { opacity: 1; color: #888; border-color: #444; background: #202020; }
.booking-wrap .booking-rooms select,
.booking-wrap .booking-infants select,
.booking-wrap .voucher-inline input {
  color: #fff;
  background: #252525;
  border-color: #666;
}
.booking-wrap .voucher-inline input::placeholder { color: #ccc; opacity: 1; }
.booking-wrap .voucher-link,
.booking-wrap .voucher-link:hover,
.booking-wrap .voucher-link[aria-expanded='true'] { color: #fff; }
.booking-wrap .booking-cta { background: #171717; }
.booking-wrap .cal-day { background: #222; color: #fff; }
.booking-wrap .cal-day:hover:not(:disabled),
.booking-wrap .cal-day:focus-visible { background: #393226; color: #fff; border-color: #d1b66e; }
.booking-wrap .cal-day.is-in-range { background: #393226; color: #fff; }
.booking-wrap .cal-day.is-start,
.booking-wrap .cal-day.is-end { background: #665021; color: #fff; border-color: #d1b66e; }
.booking-wrap .cal-day:disabled { color: #888; background: #171717; }
.booking-wrap :is(button,input,select):focus-visible { outline: 2px solid #e5c77c; outline-offset: 3px; }
.booking-wrap .booking-sheet .error { color: #fff; background: #7b211c; padding: .65rem; }
.booking-wrap .booking-launch { background: #171717; color: #fff; border: 1px solid #887955; }
@media (max-width: 960px) {
  .booking-wrap .booking-sheet-card { background: #171717; color: #fff; border-color: #444; }
}
html[data-contrast='high'] .booking-wrap,
html[data-contrast='high'] .booking-wrap .booking-sheet-card,
html[data-contrast='high'] .booking-wrap .fh-booking-bar,
html[data-contrast='high'] .booking-wrap .date-popover { background: #000; color: #fff; border-color: #fff; }
html[data-contrast='high'] .booking-wrap :is(p,small) { background: transparent; color: #fff; }
@media (max-width: 960px) {
  /* Keep the modal sheet above hero controls and the fixed header. */
  .booking-bar:has(.booking-sheet.is-open) { z-index: 110; }
  .hero .booking-bar {
    position: absolute;
    bottom: 3.5rem;
    width: calc(100% - 2rem);
    margin: 0 auto;
    text-align: center;
  }
  .booking-wrap .booking-launch {
    display: inline-flex;
    justify-content: center;
    width: auto;
    min-width: 0;
    min-height: 48px;
    padding: .75rem 1.2rem;
    gap: .75rem;
    border-radius: 6px;
    box-shadow: 0 4px 20px #0006;
  }
  .booking-wrap .booking-launch-title { font-size: .95rem; line-height: 1.4; }
  .booking-wrap .booking-launch-icon { flex: 0 0 20px; }
  .booking-wrap .booking-sheet-card { text-align: left; }
}
@media (min-width: 961px) {
  .booking-wrap .fh-booking-bar {
    grid-template-columns: minmax(11rem,1.6fr) minmax(8rem,1fr) minmax(8rem,1fr) minmax(7rem,.85fr);
  }
  .booking-wrap .booking-field { padding: .8rem .75rem; min-width: 0; }
  .booking-wrap .booking-stepper .field-icon { display: none; }
  .booking-wrap .booking-stepper .field-body { display: grid; gap: .35rem; }
  .booking-wrap .booking-submit.btn {
    grid-column: auto;
    min-width: 0;
    height: 100%;
    border-radius: 0 5px 5px 0;
    padding: .8rem .7rem;
  }
}
.booking-wrap :is(.booking-infants,.booking-rooms) label { font-size: .8rem; }
@media (min-width: 961px) {
  .booking-wrap .booking-field { padding: .5rem .65rem; min-height: 0; gap: .35rem; }
  .booking-wrap .booking-stepper .field-body { gap: .25rem; }
  .booking-wrap .field-label,
  .booking-wrap :is(.booking-infants,.booking-rooms) label { font-size: .75rem; line-height: 1.25; }
  .booking-wrap .field-value { font-size: .875rem; }
  .booking-wrap :is(.booking-infants,.booking-rooms) { flex-direction: column; align-items: stretch; justify-content: center; gap: .25rem; }
  .booking-wrap .booking-submit.btn { padding: .5rem .65rem; font-size: .875rem; }
}
