/* Shared booking/voucher presentation. The existing Essence palette and hero stay intact. */
:is([data-booking-app],.voucher-page) [hidden]{display:none!important}
.booking-panel,.booking-summary,.voucher-form-panel{min-width:0}
.booking-step{padding-block:24px}
.booking-form,.voucher-form{gap:20px}
.booking-field,.booking-form>label,.voucher-field{gap:9px}
.booking-field>span{color:#edd8b9;font-size:.82rem;letter-spacing:.07em}
.booking-form>label>span,.booking-form legend,.booking-tip-custom label span,.voucher-field>span,.voucher-field legend{color:#513b29;font-size:.82rem;font-weight:600;letter-spacing:.055em;line-height:1.45}
.booking-field select,.booking-field input,.booking-form input:not([type=radio]):not([type=checkbox]),.booking-form select,.booking-date-trigger,.voucher-field select,.voucher-field input[type=email],.voucher-field input[type=tel],.voucher-field textarea{min-height:52px;border-color:#978674;font-size:1rem;line-height:1.4}
.booking-field :is(input,select,button):focus-visible,.booking-form :is(input,select,button):focus-visible,.voucher-form :is(input,select,textarea,button):focus-visible{outline:2px solid #987039;outline-offset:3px}
.booking-form .booking-terms>span{font-size:.88rem;line-height:1.6;text-transform:none;letter-spacing:0;font-weight:400;color:#46392e}
.booking-privacy,.voucher-note,.booking-voucher-status{font-size:.88rem;line-height:1.55;color:#514439}
.booking-voucher-status.error{color:#873a2b}
.booking-terms input{margin-top:3px;accent-color:#75512e}
.booking-payment-choice,.voucher-options{gap:9px}
.booking-payment-choice label,.voucher-options label{min-height:54px;align-items:center;padding:13px;cursor:pointer;border-color:#9d8e7c;transition:background .15s,border-color .15s}
.booking-payment-choice label span,.voucher-options label{white-space:normal;font-size:.94rem;line-height:1.45;color:#392b21}
.booking-payment-choice label:has(input:checked),.voucher-options label:has(input:checked){background:#f7f1e8;border-color:#75512e;box-shadow:inset 3px 0 #75512e}
.booking-payment-choice label:has(input:disabled),.voucher-options label:has(input:disabled){opacity:.55;cursor:not-allowed}
.booking-payment-choice input,.voucher-options input{flex:0 0 auto;width:17px;height:17px}
.booking-submit,.voucher-submit{min-height:54px;padding:15px 18px;font-size:.8rem;letter-spacing:.09em;line-height:1.4}
.booking-summary-list{margin-bottom:25px}
.booking-summary-list dt{font-size:.88rem;line-height:1.45;color:#594a3e}
.booking-summary-list dd{font-size:.94rem;line-height:1.45}
.booking-summary-list .booking-total-row{align-items:center;padding-block:18px;border-bottom:2px solid #a68a64;margin-top:5px}
.booking-total-row dt,.voucher-price span{font-size:.88rem;font-weight:600;color:inherit}
.booking-total-row dd,.voucher-price strong{font-size:1.45rem;font-weight:600;line-height:1.2}
.booking-addon-disclosure summary{display:flex;align-items:center;justify-content:space-between;gap:12px;cursor:pointer;list-style:none;min-height:48px}
.booking-addon-disclosure summary::-webkit-details-marker{display:none}
.booking-addon-disclosure summary::after{content:'+';font-size:1.5rem;color:#e8c89b}
.booking-addon-disclosure[open] summary::after{content:'−'}
.booking-addon-disclosure summary:focus-visible{outline:2px solid #cda66f;outline-offset:5px}
.booking-addon-disclosure .booking-step-heading{margin:0;flex:1}
.booking-addon-count{color:#e8c89b;font-size:.82rem;white-space:nowrap}
.booking-addon-disclosure .booking-addon-grid{margin-top:16px}
.booking-addon-choice{min-height:60px}
.booking-addon-choice strong{font-size:.9rem;line-height:1.4}
.booking-addon-choice small{font-size:.82rem}
.booking-slot-grid{display:grid;gap:20px;max-height:none;overflow:visible;padding:20px 0 0}
.booking-time-group{min-width:0}
.booking-time-group h4{margin:0 0 10px;color:#edd8b9;font:500 .9rem/1.4 var(--sans)}
.booking-time-options{display:grid;grid-template-columns:repeat(auto-fill,minmax(76px,1fr));gap:8px}
.booking-choice{min-height:48px;font-size:.85rem;letter-spacing:.015em;line-height:1.3}
.booking-choice.active{box-shadow:inset 0 0 0 2px #efd3a9;font-weight:600}
.booking-choice:focus-visible{outline:2px solid #efd3a9;outline-offset:3px}
.booking-slot{min-width:0}
.booking-confirmation,.voucher-success-wrap{padding:30px}
.booking-confirmation h2,.voucher-success-heading h2{margin:0 0 18px;font:500 clamp(2rem,3.7vw,3.15rem)/1.1 var(--serif);letter-spacing:-.025em}
.booking-confirmation-card,.voucher-success-details{padding:20px;background:#f4ede3}
.voucher-success-heading>p:last-child,.voucher-success-note{font-size:.94rem;line-height:1.6;overflow-wrap:anywhere}
.booking-victory-list>div,.voucher-success-details>div{grid-template-columns:minmax(105px,.75fr) minmax(0,1.25fr);gap:12px;padding-block:13px}
.booking-victory-list dt,.voucher-success-details dt{color:#71523b;font-size:.78rem;letter-spacing:.06em;line-height:1.5}
.booking-victory-list dd,.voucher-success-details dd{font-size:1rem;line-height:1.5;overflow-wrap:anywhere}
.booking-victory-payment dd.booking-payment-nowrap{white-space:normal;font-size:1rem}
.booking-confirmation-actions,.voucher-success-actions{display:flex;flex-wrap:wrap;align-items:center;gap:16px;margin-top:24px}
.booking-confirmation-actions a,.voucher-success-actions a{min-height:48px;display:inline-flex;align-items:center;font-size:.78rem;line-height:1.4}
@media(max-width:620px){
  .booking-panel,.booking-summary,.voucher-form-panel,.booking-confirmation,.voucher-success-wrap{padding:22px 17px}
  .booking-step{padding-block:20px}
  .booking-addon-count{font-size:.76rem}
  .booking-addon-disclosure .booking-step-heading p{font-size:.78rem}
  .booking-variant-grid{display:grid;grid-template-columns:1fr}
  .booking-calendar-day{min-height:40px}
  .booking-summary-list div{gap:12px}
  .booking-confirmation-card,.voucher-success-details{padding:16px}
  .booking-victory-list>div,.voucher-success-details>div{grid-template-columns:1fr;gap:4px}
  .booking-victory-list dd,.voucher-success-details dd,.booking-victory-payment dd.booking-payment-nowrap{font-size:1rem}
  .booking-confirmation-actions,.voucher-success-actions{align-items:stretch;flex-direction:column}
  .booking-confirmation-actions a,.voucher-success-actions a{justify-content:center;text-align:center;white-space:normal}
  .booking-payment-choice{grid-template-columns:1fr}
}
