/* Shared public-site controls and booking contrast. */
html body .tp-select .tp-select-trigger { padding: 12px 16px !important; gap: 14px; }
html body .tp-select-trigger::after {
  flex: 0 0 8px; width: 8px; height: 8px; margin: -4px 3px 0 4px;
  border-width: 0 1.5px 1.5px 0; border-color: currentColor; opacity: .8;
}
html body .tp-select-trigger[aria-expanded=true]::after { transform: translateY(3px) rotate(225deg); }
html body :is(.tp-arrow-before,.tp-arrow-after) {
  display: inline-flex !important; align-items: center; justify-content: center; gap: 12px !important;
}
html body .tp-arrow-before::before, html body .tp-arrow-after::after {
  content: ''; display: block; width: 20px; height: 20px; flex: 0 0 20px;
  background: currentColor;
  -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M19 12H5m7-7-7 7 7 7' fill='none' stroke='black' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center/contain no-repeat;
  mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M19 12H5m7-7-7 7 7 7' fill='none' stroke='black' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center/contain no-repeat;
}
html body .tp-arrow-after::after { transform: rotate(180deg); }
html body.noir-site #onepage-booking-ui #booking :is(.step-summary,.tp-order-card) {
  background: #252422 !important; color: #f5f2ed !important;
  border: 1px solid #62594c !important; border-radius: 16px !important;
}
html body.noir-site #onepage-booking-ui #booking :is(.tp-order-route,.tp-order-route span,.tp-order-grid,.tp-order-grid div) {
  color: #f5f2ed !important; opacity: 1 !important; overflow-wrap: anywhere;
}
html body.noir-site #onepage-booking-ui #booking :is(.tp-order-heading,.tp-order-route strong,.tp-order-grid b) {
  color: #d8c4a6 !important; opacity: 1 !important;
}
html body.noir-site #onepage-booking-ui #booking .tp-order-total {
  background: #ddc6a5 !important; border: 0 !important; color: #211b14 !important;
}
html body.noir-site #onepage-booking-ui #booking .tp-order-total :is(span,strong) { color: #211b14 !important; opacity: 1 !important; }
html body.noir-site #onepage-booking-ui #booking .payment-methods label {
  background: #292827 !important; border: 1px solid #68625a !important;
  color: #f5f2ed !important; box-shadow: none !important;
}
html body.noir-site #onepage-booking-ui #booking .payment-methods label:has(input:checked) {
  background: #35302a !important; border-color: #ddc6a5 !important;
}
html body.noir-site #onepage-booking-ui #booking .payment-methods .tp-payment-copy strong { color: #f5f2ed !important; opacity: 1 !important; }
html body.noir-site #onepage-booking-ui #booking .payment-methods .tp-payment-copy small { color: #d1cbc3 !important; opacity: 1 !important; }
html body.noir-site #onepage-booking-ui #booking :is(.main-button,.tp-binding-order) {
  background: #ddc6a5 !important; color: #211b14 !important; border-color: #ddc6a5 !important;
  font-weight: 650 !important; min-height: 50px; letter-spacing: .01em !important;
}
html body.noir-site #onepage-booking-ui #booking .secondary-step { color: #eee8df !important; min-height: 50px; padding: 14px 20px !important; }
html body.noir-site #onepage-booking-ui #booking .phone-combo { display: grid !important; grid-template-columns: 108px minmax(0,1fr) !important; gap: 10px; }
html body.noir-site #onepage-booking-ui #booking .phone-combo .tp-select-trigger { font-size: 16px !important; font-variant-numeric: tabular-nums; padding: 12px !important; gap: 8px; }
html body.noir-site #onepage-booking-ui #booking .phone-combo .tp-select-value { text-overflow: clip; }
html body.noir-site #onepage-booking-ui #booking #invoiceFields { margin: 16px 0 24px; }
html body.noir-site #onepage-booking-ui #booking #invoiceFields[hidden] { display: none !important; }
html body.noir-site #onepage-booking-ui #booking .tp-billing-choice { margin: 20px 0; }
html body.noir-site #onepage-booking-ui #booking .tp-billing-reseller { display: flex; align-items: flex-start; gap: 12px; }
html body.noir-site #onepage-booking-ui #booking .tp-billing-reseller input { flex: 0 0 20px; width: 20px; height: 20px; margin: 2px 0 0; }
html body.noir-site #onepage-booking-ui #booking .tp-billing-reseller span { line-height: 1.5; color: #e5dfd6; }
@media(max-width: 420px) {
  html body.noir-site #onepage-booking-ui #booking .phone-combo { grid-template-columns: 102px minmax(0,1fr) !important; }
}

/* Server-controlled test state and final reservation receipt. */
.tp-test-notice{padding:16px 20px;border:1px solid #bda47a;border-radius:12px;background:#27241d;color:#f5eedf;line-height:1.6;margin:0 0 24px}
html body .payment-methods label[hidden],.tp-confirm-email[hidden]{display:none!important}
.tp-confirm-hero{display:flex!important;flex-direction:column;align-items:center;text-align:center;gap:20px}
.tp-confirm-copy{display:contents}
#confirmationTitle{order:0;margin:0}
.tp-confirm-icon{order:1}
#confirmationEyebrow{order:2;margin:0;color:inherit;letter-spacing:.06em}
#confirmationIntro{order:3;margin:0;max-width:55ch}
