/* Public booking enquiry: no live booking or payment operations. */
.booking-page{background:#441b0d;color:#fff2e7}
.booking-page main{overflow:hidden}
.booking-hero{padding-top:clamp(70px,9vw,132px);padding-bottom:clamp(48px,7vw,90px)}
.booking-hero .section-number,.booking-step .section-number,.booking-summary .section-number{color:#edae76;letter-spacing:.19em}
.booking-hero h1{font:400 clamp(48px,7vw,104px)/1.05 var(--serif);letter-spacing:-.055em;max-width:850px;margin:22px 0}
.booking-hero h1 em,.booking-step h2 em,.booking-summary h2 em{color:#edb277}
.booking-hero>p{font-size:clamp(15px,1.5vw,18px);line-height:1.7;max-width:700px;color:#f2d8c8}
.booking-hero .booking-caution{font-size:14px;max-width:780px;margin-top:32px;border-left:3px solid #edb277;padding:16px 22px;background:#6c321e}
.booking-caution strong{color:#fff2e7}
.booking-layout{display:grid;grid-template-columns:minmax(0,1.65fr) minmax(285px,.85fr);gap:clamp(24px,4vw,70px);align-items:start;padding-bottom:clamp(80px,10vw,135px)}
.visit-enquiry{min-width:0}
.booking-step{padding:clamp(26px,3.5vw,48px);background:#582716;border:1px solid #ad6d4b;margin-bottom:18px}
.booking-step h2,.booking-summary h2{font:400 clamp(29px,3vw,43px)/1.14 var(--serif);letter-spacing:-.035em;margin:16px 0 18px}
.booking-step>p,.led-choices>p,.opening-note{font-size:14px;line-height:1.65;color:#efd5c1}
.choice-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin:22px 0}
.choice-card{display:flex;gap:12px;align-items:flex-start;padding:18px 16px;background:#6c321e;border:1px solid #9e6345;cursor:pointer;transition:border-color .2s ease,background .2s ease,transform .2s ease}
.choice-card:hover,.choice-card:focus-within{border-color:#f2c79a;background:#713821;transform:translateY(-2px)}
.choice-card:has(input:checked){border-color:#f6c18b;background:#76391e}
.choice-card input,.confirm-line input{accent-color:#e7a36d;width:19px;height:19px;flex:0 0 auto;margin:2px 0}
.choice-card input:disabled{cursor:not-allowed}
.choice-card:has(input:disabled){opacity:.6;cursor:not-allowed}
.choice-card strong{font:400 19px/1.25 var(--serif);display:block;color:#fff0e3}
.choice-card small{display:block;margin-top:9px;color:#e9c9b5;line-height:1.5;font-size:12px}
.led-choices{border:0;padding:0;margin:34px 0 22px;min-width:0}
.led-choices legend{font:400 25px/1.3 var(--serif);padding:0;color:#fff0e3}
.led-choices>p{margin:10px 0}
.led-choices .choice-card strong{font-size:17px}
.vns-choice{margin-top:10px}
.booking-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;margin:24px 0}
.booking-fields label{display:flex;flex-direction:column;gap:9px;color:#f4dbcb;font-size:13px;font-weight:600}
.booking-fields label span{font-size:12px;font-weight:400}
.booking-fields .full-width{grid-column:1/-1}
.booking-fields input,.booking-fields textarea{width:100%;box-sizing:border-box;background:#f8eadd;color:#381d14;border:1px solid #dda975;border-radius:2px;padding:13px 14px;min-height:48px;font:16px/1.4 'DM Sans',sans-serif}
.booking-fields textarea{min-height:110px;resize:vertical}
.booking-fields input:focus-visible,.booking-fields textarea:focus-visible{outline:3px solid #ffb879;outline-offset:2px}
.confirm-line{display:flex;gap:14px;font-size:13px;line-height:1.6;color:#f1d2be;margin:24px 0}
.booking-step .button{border:0;cursor:pointer;min-height:48px}
.booking-step .button:disabled{opacity:.55;cursor:not-allowed}
.booking-step a:not(.button){color:#ffe0ba;text-underline-offset:3px}
.field-feedback{min-height:1.5em;font-size:13px;color:#ffce98;line-height:1.5}
.booking-summary{position:sticky;top:24px;background:#eac7a5;color:#422014;padding:clamp(25px,3vw,40px);box-shadow:0 18px 45px #210b0666}
.booking-summary .section-number{color:#814423}
.booking-summary h2{color:#482216}
.booking-summary h2 em{color:#8b4c29}
#booking-summary-lines{border-top:1px solid #a36e4e;padding-top:14px;line-height:1.5;font-size:14px}
#booking-summary-lines p{margin:8px 0}
.summary-totals{border-top:1px solid #a36e4e;margin-top:20px;padding-top:8px}
.summary-totals p{display:flex;justify-content:space-between;gap:10px;font-size:13px;align-items:baseline}
.summary-totals strong{font:400 22px var(--serif);white-space:nowrap}
.booking-summary .summary-note,.booking-summary .summary-time{font-size:12px;line-height:1.6;color:#633920}
.booking-summary .summary-time{font-weight:700}
@media(max-width:900px){.booking-layout{grid-template-columns:1fr}.booking-summary{position:static;grid-row:1}.booking-hero{padding-top:65px}}
@media(max-width:620px){.booking-hero{padding-top:48px}.booking-step{padding:22px}.choice-grid,.booking-fields{grid-template-columns:1fr}.booking-fields .full-width{grid-column:auto}}
@media(prefers-reduced-motion:reduce){.choice-card{transition:none}.choice-card:hover,.choice-card:focus-within{transform:none}}
