#booking {
  --black: #121212;
  --gold: #daaf37;
  --gold-light: #f0d784;
  --ink: #202020;
  --muted: #666;
  --line: #e4e2dc;
  --paper: #f7f7f5;
  width: min(980px, calc(100% - 32px));
  max-height: 90dvh;
  border: 0;
  border-top: 5px solid var(--gold);
  border-radius: 10px;
  padding: 28px;
  color: var(--ink);
  background: #fff;
  overflow: auto;
  direction: rtl;
  unicode-bidi: isolate;
  text-align: right;
  font-family: Tahoma, "Segoe UI", Arial, sans-serif;
  font-size: 16px;
  line-height: 1.8;
  z-index: 20000;
}
#booking::backdrop {
  background: #000b;
  backdrop-filter: blur(4px);
}
#booking.hide-prices .total,
#booking.hide-prices .booking-promo-block,
#booking.hide-prices .price-hint,
#booking.hide-prices .price-copy {
  display: none;
}
#booking * { box-sizing: border-box; }
#booking h2 { font-size: 25px; margin: 0 0 10px; letter-spacing: -.8px; color: var(--ink); }
#booking h3 { font-size: 18px; margin: 0 0 9px; color: var(--ink); }
#booking p { color: var(--muted); margin: 0 0 18px; }
#booking a { color: inherit; }
#booking button, #booking input, #booking select, #booking textarea { font: inherit; }
#booking label { display: block; font-size: 14px; font-weight: bold; margin-bottom: 7px; color: var(--ink); }
#booking label small { font-weight: normal; color: var(--muted); }
#booking input:not([type=checkbox]),
#booking select,
#booking textarea {
  width: 100%;
  padding: 11px 13px;
  min-height: 47px;
  border: 1px solid #ccc;
  border-radius: 6px;
  background: white;
  font-size: 16px;
  color: var(--ink);
  margin-bottom: 17px;
  direction: rtl;
  text-align: right;
}
#booking input[dir="ltr"],
#booking input[type="date"] {
  direction: ltr;
  text-align: left;
  unicode-bidi: isolate;
}
#booking textarea { resize: vertical; }
#booking .eyebrow { color: #947016; font-size: 12px; font-weight: bold; display: block; margin-bottom: 2px; }
#booking .booking-heading { display: flex; justify-content: space-between; align-items: start; gap: 15px; }
#booking .booking-heading h2 { font-size: 25px; margin: 0; }
#booking .close {
  font-size: 28px; line-height: 1; width: 42px; height: 42px;
  border: 1px solid var(--line); background: white; border-radius: 6px; cursor: pointer; color: var(--ink);
}
#booking .steps {
  list-style: none; display: flex; gap: 15px; margin: 23px 0 26px; padding: 0; counter-reset: booking;
}
#booking .steps li {
  flex: 1; font-size: 12px; color: var(--muted); border-bottom: 2px solid var(--line);
  padding-bottom: 11px; counter-increment: booking;
}
#booking .steps li::before {
  content: counter(booking); display: inline-grid; place-items: center;
  width: 25px; height: 25px; border-radius: 50%; background: #eee; margin-inline-end: 7px;
}
#booking .steps li.current { color: var(--ink); border-color: var(--gold); font-weight: bold; }
#booking.booking-extra .steps li[data-step="2"],
#booking.booking-extra .steps li[data-step="3"] { display: none; }
#booking .steps li.current::before { background: var(--gold); }
#booking .booking-layout { display: grid; grid-template-columns: minmax(0, 1fr) 280px; gap: 30px; min-width: 0; overflow: visible; }
#booking .booking-summary {
  background: var(--paper); border: 1px solid var(--line); border-radius: 8px; padding: 20px; align-self: start;
}
#booking .booking-summary h3 { font-size: 18px; }
#booking .booking-summary p { font-size: 13px; }
#booking .total {
  border-top: 1px solid #d6cfbf; border-bottom: 1px solid #d6cfbf; padding: 14px 0; margin: 18px 0;
  display: flex; justify-content: space-between; gap: 15px; align-items: center;
}
#booking .total > span { font-size: 12px; }
#booking .total strong { font-size: 23px; color: #806019; line-height: 1.5; }
#booking .summary-foot { font-size: 12px; border-top: 1px solid var(--line); padding-top: 14px; color: var(--muted); }
#booking .notice { font-size: 13px; color: #655226; background: #fff9e9; border-inline-start: 3px solid var(--gold); padding: 11px 13px; }
#booking .booking-step details { padding: 12px 0; margin: 0 0 10px; border-bottom: 1px solid var(--line); }
#booking .booking-step summary { font-size: 15px; font-weight: bold; cursor: pointer; color: var(--ink); }
#booking .booking-step ul { font-size: 13px; padding-inline-start: 20px; color: var(--muted); }
#booking .booking-step li { margin-bottom: 8px; }
#booking form { min-width: 0; max-width: 100%; overflow: visible; }
#booking .booking-step { overflow: visible; }
#booking .field-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; }
#booking .field-grid > * { min-width: 0; max-width: 100%; }
#booking .check {
  display: flex; align-items: start; gap: 10px; font-size: 13px; font-weight: normal;
  margin: 12px 0 18px; cursor: pointer;
}
#booking .check input { margin: 6px 0 0; width: 18px; height: 18px; flex-shrink: 0; accent-color: #a8842a; }
#booking .terms-wrap { margin-top: 16px; padding-top: 14px; border-top: 1px solid var(--line); }
#booking .terms-wrap .check { margin: 0; }
#booking .booking-actions {
  display: flex; justify-content: space-between; gap: 15px;
  border-top: 1px solid var(--line); padding-top: 18px; margin-top: 20px;
}
#booking .booking-actions .button:last-child { margin-inline-start: auto; }
#booking .error { color: #a22; font-size: 14px; margin-top: 13px; }
#booking .policy-link { font-size: 13px; text-decoration: underline; }
#booking dl { font-size: 14px; margin: 0; }
#booking dl > div {
  display: grid; grid-template-columns: 100px minmax(0, 1fr); gap: 15px;
  border-bottom: 1px solid var(--line); padding: 10px 0;
}
#booking dt { color: var(--muted); }
#booking dd { margin: 0; overflow-wrap: anywhere; color: var(--ink); }
#booking .result-mark {
  display: grid; place-items: center; width: 60px; height: 60px; border-radius: 50%;
  background: #fff6db; color: #806019; font-size: 28px; margin-bottom: 18px;
}
#booking #booking-result p { font-size: 14px; }
#booking .button {
  display: inline-flex; align-items: center; justify-content: center; min-height: 48px;
  padding: 12px 24px; background: var(--gold); color: var(--black); border: 1px solid var(--gold);
  border-radius: 6px; font-size: 14px; font-weight: bold; cursor: pointer; text-decoration: none;
}
#booking .button:hover { background: var(--gold-light); border-color: var(--gold-light); }
#booking .button:disabled { opacity: .55; cursor: wait; }
#booking .button.secondary { background: white; color: var(--ink); border-color: var(--line); }
#booking .booking-date-wrap { position: relative; overflow: visible; margin-bottom: 17px; z-index: 40; }
#booking .booking-date-wrap #preferred-date { margin-bottom: 0; cursor: pointer; }
#booking .booking-address-map {
  margin-bottom: 17px;
  width: 100%;
  max-width: none;
}
#booking .booking-address-map #address { margin-bottom: 10px; }
#booking #booking-map,
#booking .booking-notes-block {
  width: calc(100% + 310px);
  max-width: none;
  margin-inline-end: -310px;
}
#booking #booking-map {
  height: 420px;
  min-height: 420px;
  margin-top: 0;
  margin-bottom: 0;
  border: 1px solid #ccc;
  border-radius: 8px;
  background: #e8eee8;
  overflow: hidden;
  z-index: 1;
}
#booking .booking-notes-block { margin-bottom: 17px; }
#booking .booking-media-block { margin-bottom: 17px; }
#booking .booking-media-block input[type=file] { width: 100%; }
#booking .booking-media-list { margin: 8px 0 0; padding-inline-start: 18px; font-size: 13px; }
#booking.is-uploading { overflow: hidden; }
#booking .booking-heading { position: relative; z-index: 32; background: #fff; }
#booking .booking-upload-loader {
  position: absolute;
  inset: 0;
  z-index: 30;
  display: flex;
  align-items: center;
  justify-content: center;
  background: rgba(255, 255, 255, .9);
}
#booking .booking-upload-loader[hidden] { display: none !important; }
#booking .booking-upload-card {
  background: #fff;
  border: 1px solid var(--gold);
  border-radius: 10px;
  padding: 22px 28px;
  text-align: center;
  box-shadow: 0 8px 30px rgba(0, 0, 0, .12);
}
#booking .booking-upload-card p { margin: 12px 0 0; color: var(--ink); font-weight: bold; }
#booking .booking-spinner {
  width: 36px;
  height: 36px;
  border: 3px solid #eee;
  border-top-color: var(--gold);
  border-radius: 50%;
  display: inline-block;
  animation: booking-upload-spin .8s linear infinite;
}
@keyframes booking-upload-spin { to { transform: rotate(360deg); } }
@media (prefers-reduced-motion: reduce) {
  #booking .booking-spinner { animation: none; }
}
#booking .booking-notes-block #customer-notes { margin-bottom: 0; }
#booking .booking-map-pin { font-size: 13px; line-height: 1.45; text-align: right; max-width: 240px; }
#booking #booking-location-hint { margin: 10px 0 0; }
#booking #booking-location-hint.error { color: #a22; background: #fff4f4; border-inline-start-color: #c45; }
.pac-container { z-index: 30000 !important; }
#booking .booking-location-search-wrap { position: relative; }
#booking #booking-location-suggest {
  list-style: none; margin: -10px 0 12px; padding: 0;
  border: 1px solid #ccc; border-radius: 6px; background: #fff;
  max-height: 180px; overflow: auto; z-index: 40; position: relative;
}
#booking #booking-location-suggest li {
  padding: 8px 12px; cursor: pointer; font-size: 13px; color: #202020;
  border-bottom: 1px solid #eee; text-align: right;
}
#booking #booking-location-suggest li:last-child { border-bottom: 0; }
#booking #booking-location-suggest li:hover { background: #fff9e9; }
#booking .datepicker,
#booking .datepicker-dropdown {
  position: absolute !important;
  left: 0 !important;
  right: auto !important;
  width: min(264px, 100%) !important;
  max-width: 100% !important;
  z-index: 30 !important;
  background: #fff !important;
  color: #202020 !important;
  border: 1px solid #ccc !important;
  border-radius: 8px;
  padding: 8px;
  line-height: 1.2;
  font-size: 13px;
  box-shadow: 0 8px 24px rgba(0,0,0,.12);
}
#booking .datepicker table { width: 100%; max-width: 100%; }
#booking .datepicker table tr td,
#booking .datepicker table tr th {
  color: #202020 !important;
  width: 32px;
  height: 32px;
  line-height: 32px;
  padding: 0;
  font-size: 13px;
}
#booking .datepicker table tr td.day:hover { background: #fff6db !important; }
#booking .datepicker table tr td.active,
#booking .datepicker table tr td.active:hover,
#booking .datepicker table tr td.today {
  background: #daaf37 !important;
  color: #121212 !important;
}
#booking .select2-container { width: 100% !important; max-width: 100% !important; margin-bottom: 17px; }
#booking .select2-container .select2-selection--single {
  min-height: 47px !important;
  height: auto !important;
  border: 1px solid #ccc !important;
  border-radius: 6px !important;
  background: #fff !important;
  overflow: hidden !important;
}
#booking .select2-container .select2-selection--single .select2-selection__rendered {
  line-height: 45px !important;
  padding-right: 12px !important;
  padding-left: 32px !important;
  color: #202020 !important;
  font-size: 16px !important;
  overflow: hidden !important;
  text-overflow: ellipsis !important;
  white-space: nowrap !important;
  background: transparent !important;
}
#booking .select2-container .select2-selection--single .select2-selection__arrow {
  height: 45px !important;
  width: 28px !important;
  left: 0 !important;
  right: auto !important;
}
#booking .select2-container .select2-selection--single .select2-selection__arrow b {
  border-top-color: #202020 !important;
}
.select2-dropdown.fixo-booking-select2,
#booking .select2-dropdown {
  z-index: 21000;
  border: 1px solid #ccc !important;
  background: #fff !important;
  color: #202020 !important;
  font-family: Tahoma, "Segoe UI", Arial, sans-serif;
}
#booking .select2-container--default .select2-results__option {
  color: #202020 !important;
  background: #fff !important;
}
#booking .select2-container--default .select2-results__option--highlighted[aria-selected] {
  background: #daaf37 !important;
  color: #121212 !important;
}
#booking .select2-container--default .select2-results__option[aria-selected=true],
.select2-dropdown.fixo-booking-select2 .select2-results__option[aria-selected=true] {
  background: #fff9e9 !important;
  color: #202020 !important;
}
.select2-dropdown.fixo-booking-select2 {
  background: #fff !important;
  color: #202020 !important;
  border: 1px solid #ccc !important;
}
.select2-dropdown.fixo-booking-select2 .select2-results__option {
  color: #202020 !important;
  background: #fff !important;
}
.select2-dropdown.fixo-booking-select2 .select2-results__option--highlighted[aria-selected] {
  background: #daaf37 !important;
  color: #121212 !important;
}
body.modal-open { overflow: hidden; }
@media (max-width: 1000px) {
  #booking .booking-layout { grid-template-columns: minmax(0, 1fr) 245px; gap: 22px; }
  #booking #booking-map,
  #booking .booking-notes-block {
    width: calc(100% + 267px);
    margin-inline-end: -267px;
  }
}
@media (max-width: 700px) {
  #booking { padding: 19px 16px; width: calc(100% - 20px); max-height: 94dvh; }
  #booking .booking-heading h2 { font-size: 22px; }
  #booking .steps { gap: 7px; margin: 18px 0; }
  #booking .steps li { font-size: 11px; }
  #booking .steps li::before { display: grid; margin: 0 0 5px; }
  #booking .booking-layout { grid-template-columns: 1fr; gap: 15px; }
  #booking .booking-summary { order: -1; padding: 14px; }
  #booking .booking-summary .eyebrow,
  #booking .summary-foot { display: none; }
  #booking .field-grid { gap: 12px; }
  #booking #booking-map,
  #booking .booking-notes-block {
    width: 100%;
    margin-inline-end: 0;
  }
  #booking #booking-map {
    height: 300px;
    min-height: 300px;
  }
  #booking .booking-actions { position: sticky; bottom: -19px; background: white; padding-bottom: 10px; z-index: 2; }
  #booking dl > div { grid-template-columns: 80px 1fr; font-size: 13px; }
}
