.booking-layout { display:grid; grid-template-columns:minmax(0,1.4fr) minmax(280px,.6fr); gap:18px; align-items:start; }
.booking-form { padding:30px; border:1px solid rgba(255,255,255,.07); border-radius:26px; background:linear-gradient(145deg,#171513,#121110); display:grid; gap:17px; }
.submit-button { justify-self:start; border:0; }
.booking-side { display:grid; gap:14px; }
.booking-side-card { min-height:170px; padding:26px; border:1px solid rgba(255,255,255,.07); border-radius:22px; background:rgba(22,20,19,.88); }
.booking-side-card h2 { margin:28px 0 8px; font-family:Georgia,"Times New Roman",serif; font-weight:500; }
.booking-side-card p, .booking-side-card a { margin:0; color:var(--muted); line-height:1.65; word-break:break-word; }
.booking-side-card a:hover { color:#fff; }
.payment-method-hint { color:var(--muted); font-size:12px; font-weight:500; line-height:1.45; }

.booking-popup-open { overflow:hidden; }
.booking-rule-overlay {
  position:fixed;
  inset:0;
  z-index:1000;
  display:grid;
  place-items:center;
  padding:20px;
  background:rgba(5,5,5,.72);
  backdrop-filter:blur(7px);
  opacity:0;
  transition:opacity .18s ease;
}
.booking-rule-overlay[hidden] { display:none; }
.booking-rule-overlay.is-visible { opacity:1; }
.booking-rule-popup {
  width:min(440px,100%);
  padding:28px;
  border:1px solid rgba(183,169,145,.38);
  border-radius:24px;
  background:linear-gradient(145deg,#1b1816,#11100f 70%);
  box-shadow:0 24px 80px rgba(0,0,0,.52), inset 0 1px 0 rgba(255,255,255,.04);
  transform:translateY(10px) scale(.985);
  transition:transform .18s ease;
}
.booking-rule-overlay.is-visible .booking-rule-popup { transform:translateY(0) scale(1); }
.booking-rule-eyebrow {
  display:block;
  margin-bottom:8px;
  color:#b7a991;
  font-size:11px;
  font-weight:700;
  letter-spacing:.14em;
  text-transform:uppercase;
}
.booking-rule-popup h2 {
  margin:0 0 12px;
  color:#fff;
  font-family:Georgia,"Times New Roman",serif;
  font-size:30px;
  font-weight:500;
}
.booking-rule-text {
  margin:0;
  color:var(--muted);
  font-size:14px;
  line-height:1.65;
}
.booking-rule-date {
  display:grid;
  gap:5px;
  margin:20px 0;
  padding:15px 17px;
  border:1px solid rgba(255,255,255,.08);
  border-radius:15px;
  background:rgba(255,255,255,.025);
}
.booking-rule-date span {
  color:#9c958c;
  font-size:11px;
  font-weight:700;
  letter-spacing:.08em;
  text-transform:uppercase;
}
.booking-rule-date strong {
  color:#f5efe6;
  font-size:16px;
  font-weight:600;
}
.booking-rule-close { border:0; }

@media (max-width:700px) {
  .booking-rule-overlay { padding:14px; align-items:end; }
  .booking-rule-popup { padding:24px 20px; border-radius:22px; }
  .booking-rule-popup h2 { font-size:26px; }
}

.booking-items-section {
  display:grid;
  gap:14px;
  padding:20px;
  border:1px solid rgba(255,255,255,.07);
  border-radius:20px;
  background:#11100f;
}
.booking-items-head { display:block; }
.booking-section-label { display:block; margin-bottom:5px; color:var(--primary); font-size:11px; font-weight:700; letter-spacing:.12em; text-transform:uppercase; }
.booking-items-head h2 { margin:0; font-family:Georgia,"Times New Roman",serif; font-size:24px; font-weight:500; }
.booking-items-list { display:grid; gap:8px; }
.booking-items-loading { padding:14px; border:1px solid rgba(255,255,255,.05); border-radius:12px; color:var(--muted); background:#151412; }
.booking-item-row {
  display:grid;
  grid-template-columns:minmax(0,1fr) auto 88px;
  gap:14px;
  align-items:center;
  padding:12px 14px;
  border:1px solid rgba(255,255,255,.055);
  border-radius:14px;
  background:#171513;
}
.booking-item-info { min-width:0; display:grid; gap:4px; }
.booking-item-info strong { color:#f4efe9; font-size:14px; }
.booking-item-info span { color:var(--muted); font-size:11px; line-height:1.45; overflow-wrap:anywhere; }
.booking-quantity { display:grid; grid-template-columns:34px 48px 34px; align-items:center; overflow:hidden; border:1px solid rgba(255,255,255,.08); border-radius:12px; background:#11100f; }
.booking-quantity input { width:48px; min-height:36px; padding:0; border:0; border-left:1px solid rgba(255,255,255,.06); border-right:1px solid rgba(255,255,255,.06); border-radius:0; background:transparent; color:#fff; text-align:center; font:inherit; appearance:textfield; }
.booking-quantity input::-webkit-outer-spin-button,.booking-quantity input::-webkit-inner-spin-button { margin:0; appearance:none; }
.booking-qty-button { width:34px; height:36px; border:0; background:transparent; color:#f0e8df; font-size:20px; line-height:1; cursor:pointer; }
.booking-qty-button:hover { background:rgba(183,169,145,.1); }
.booking-line-price { min-width:88px; display:grid; justify-items:end; gap:3px; }
.booking-line-total { color:#f2d47a; font-size:14px; text-align:right; white-space:nowrap; }
.booking-line-discount { color:#b9d8fb; font-size:11px; font-weight:700; text-align:right; white-space:nowrap; }
.booking-line-discount[hidden] { display:none; }
.booking-price-summary { display:grid; gap:8px; padding:17px 18px; border:1px solid rgba(183,169,145,.2); border-radius:17px; background:linear-gradient(145deg,rgba(183,169,145,.06),#11100f 62%); }
.booking-price-summary > div { display:flex; justify-content:space-between; align-items:center; gap:20px; color:var(--muted); font-size:13px; }
.booking-price-summary strong { color:#f1ece5; font-size:14px; }
.booking-price-summary #mixedSaving { color:#b9d8fb; }
.booking-price-summary #shippingCostRow.is-inactive span,
.booking-price-summary #shippingCostRow.is-inactive strong { color:#6f6a64; }
.booking-price-summary #tenPlusSaving,
.booking-price-summary #discountCodeSaving { color:#b9d8fb; }
.booking-discount-code { display:grid !important; gap:8px !important; align-items:stretch !important; padding:12px 0 4px; border-top:1px solid rgba(255,255,255,.06); }
.booking-discount-code > label { color:#e8e0d7; font-size:12px; font-weight:700; }
.booking-discount-code-controls { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:8px; }
.booking-discount-code-controls input { min-width:0; }
.booking-discount-code-controls .button { min-height:42px; padding:9px 18px; white-space:nowrap; }
.booking-discount-code-status { min-height:16px; color:var(--muted); font-size:11px; line-height:1.45; }
.booking-total-row { margin-top:4px; padding-top:12px; border-top:1px solid rgba(255,255,255,.07); }
.booking-total-row span { color:#fff8ef; font-weight:700; }
.booking-total-row strong { color:#f2d47a; font-family:Georgia,"Times New Roman",serif; font-size:23px; font-weight:500; text-align:right; }

@media (max-width:760px) {
  .booking-item-row { grid-template-columns:minmax(0,1fr) auto; }
  .booking-line-price { grid-column:2; }
}
@media (max-width:520px) {
  .booking-items-section { padding:14px; }
  .booking-discount-code-controls { grid-template-columns:1fr; }
  .booking-discount-code-controls .button { width:100%; }
  .booking-item-row { grid-template-columns:1fr; gap:10px; }
  .booking-quantity { justify-self:start; }
  .booking-line-price { grid-column:1; justify-self:end; margin-top:-40px; }
  .booking-total-row { align-items:flex-end !important; }
  .booking-total-row strong { max-width:55%; font-size:20px; }
}

.booking-turnstile { margin-top:2px; width:100%; }

#preferredDate { color-scheme:dark; }
#preferredDate::-webkit-calendar-picker-indicator { cursor:pointer; opacity:.82; filter:invert(1) sepia(.12) saturate(.4) brightness(1.15); }
#preferredDate::-webkit-calendar-picker-indicator:hover { opacity:1; }

.booking-quote-button { width:100%; margin-top:20px; min-height:49px; color:#0f0d09 !important; font-size:15px; }
