.booking-page{background:var(--mist)}.booking-header{width:min(1120px,calc(100% - 44px));min-height:92px;margin:auto;display:flex;align-items:center;justify-content:space-between;gap:24px}.back-link{color:var(--aubergine);border-bottom:1px solid var(--lavender);padding-bottom:5px;font-size:13px}.booking-main{width:min(920px,calc(100% - 44px));margin:auto;padding:64px 0 100px}.booking-intro{max-width:760px;margin-bottom:58px}.booking-intro h1{font-size:clamp(48px,7vw,76px);line-height:1.02}.booking-intro>p:not(.kicker){max-width:680px;margin:28px 0;color:var(--muted);font:18px/1.7 Georgia,serif}.booking-facts{display:flex;flex-wrap:wrap;gap:10px}.booking-facts span{padding:9px 14px;border-radius:999px;background:white;color:var(--plum);font-size:12px}.booking-form{display:grid;gap:22px}.booking-step{padding:42px;border:1px solid rgba(104,66,118,.12);background:rgba(255,255,255,.86)}.step-heading{display:flex;gap:22px;align-items:start;margin-bottom:32px}.step-heading>span{color:var(--lavender);font:italic 14px Georgia,serif;padding-top:5px}.step-heading .kicker{margin-bottom:10px}.step-heading h2{font-size:clamp(31px,4vw,44px)}.booking-step label,.slots legend{display:block;margin:20px 0 8px;color:var(--aubergine);font-size:13px;font-weight:700}.booking-step input:not([type=checkbox]):not([type=radio]),.booking-step select,.booking-step textarea{width:100%;border:1px solid var(--lilac);border-radius:0;padding:14px 15px;background:white;color:var(--ink);font:inherit}.booking-step input:focus,.booking-step select:focus,.booking-step textarea:focus,.booking-step button:focus-visible{outline:3px solid rgba(163,139,186,.35);outline-offset:2px;border-color:var(--plum)}.field-grid{display:grid;grid-template-columns:1fr 1fr;gap:22px}.addon-option{display:flex!important;align-items:start;gap:13px;padding:18px;border:1px solid var(--lilac);background:var(--mist);cursor:pointer}.addon-option input{width:19px;height:19px;margin:2px 0 0;accent-color:var(--aubergine)}.addon-option span,.addon-option small{display:block}.addon-option small{margin-top:5px;color:var(--muted);font-weight:400;line-height:1.5}.field-note{margin:16px 0 0;color:var(--muted);font-size:12px;line-height:1.65}.field-note a{color:var(--aubergine);text-decoration:underline;text-underline-offset:3px}.price-summary{margin-top:22px;padding:20px;background:#f0eaf2;color:var(--muted)}.price-summary div{display:flex;justify-content:space-between;gap:20px;color:var(--aubergine)}.price-summary strong{font:24px Georgia,serif}.price-summary p{margin:8px 0 0;font-size:13px}#check-availability{margin-top:20px;border:0;cursor:pointer}.slots{margin:25px 0 0;padding:0;border:0}.slot-options{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}.slot-option{margin:0!important;cursor:pointer}.slot-option input{position:absolute;opacity:0;pointer-events:none}.slot-option span{display:block;padding:13px 8px;border:1px solid var(--lilac);text-align:center;background:white}.slot-option input:checked+span{border-color:var(--aubergine);background:var(--aubergine);color:white}.slot-option input:focus-visible+span{outline:3px solid rgba(163,139,186,.4);outline-offset:2px}.form-message{margin-top:18px;padding:0;color:var(--muted);font-size:13px;line-height:1.6}.form-message:empty{display:none}.form-message.error,.form-message.notice,.form-message.success{padding:14px 16px;border-left:3px solid}.form-message.error{background:#f8eaea;border-color:#a84b55;color:#75323a}.form-message.notice{background:#f7f1e4;border-color:#b38b41;color:#705822}.form-message.success{background:#edf3ea;border-color:var(--sage);color:#43533c}.optional{color:var(--muted);font-weight:400}.submit-button{margin-top:26px;border:0;cursor:pointer}.button:disabled{cursor:wait;opacity:.62;transform:none}.booking-footer{width:min(920px,calc(100% - 44px));margin:auto;padding:30px 0;border-top:1px solid var(--lilac);display:flex;justify-content:space-between;gap:20px;color:var(--muted);font-size:11px}@media(max-width:680px){.booking-header{min-height:78px}.booking-header .brand span:last-child{display:none}.booking-main{padding-top:42px}.booking-step{padding:30px 22px}.field-grid{grid-template-columns:1fr;gap:0}.slot-options{grid-template-columns:repeat(3,1fr)}.price-summary div{align-items:flex-start;flex-direction:column;gap:5px}.booking-footer{flex-direction:column}}
.step-heading>span{color:var(--plum)!important}
.review-summary{padding:20px;background:var(--mist)}.review-summary p{margin:0;color:var(--muted)}.review-summary dl{display:grid;grid-template-columns:1fr 1fr;gap:15px;margin:0}.review-summary dt{color:var(--muted);font-size:11px;text-transform:uppercase;letter-spacing:.06em}.review-summary dd{margin:4px 0 0;overflow-wrap:anywhere}.booking-step>input:not([type=checkbox]):not([type=radio]){width:100%;border:1px solid var(--lilac);padding:14px 15px;background:white;color:var(--ink);font:inherit}@media(max-width:680px){.review-summary dl{grid-template-columns:1fr}}
.postcode-lookup{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;align-items:stretch}.postcode-lookup input{min-width:0}.lookup-button{border:0;padding:0 24px;cursor:pointer}.manual-address-button{margin-top:14px;border:0;background:transparent;color:var(--aubergine);padding:4px 0;text-decoration:underline;text-underline-offset:4px;cursor:pointer;font:inherit;font-size:13px;font-weight:700}#address-results-wrap{margin-top:14px}@media(max-width:480px){.postcode-lookup{grid-template-columns:1fr}.lookup-button{min-height:48px}}
#manual-address-fields{display:grid;gap:10px;margin-top:8px}#manual-address-fields[hidden],#address-lookup-fields[hidden]{display:none}.manual-address-button:focus-visible{outline:3px solid #f0c76a;outline-offset:4px;border-radius:4px}
.price-summary{padding:24px;border-left:4px solid var(--aubergine)}.price-summary h3{margin:0 0 16px;color:var(--aubergine);font:24px Georgia,serif}.price-summary dl{margin:0}.price-summary dl div{display:flex;justify-content:space-between;gap:20px;padding:7px 0;color:var(--ink);border-bottom:1px solid rgba(104,66,118,.12)}.price-summary dt{font-weight:700}.price-summary dd{margin:0;text-align:right}.price-summary .price-total{padding-top:13px;color:var(--aubergine);font-size:18px}.price-summary p{margin:16px 0 0;line-height:1.6}.price-summary a{color:var(--aubergine);text-decoration:underline;text-underline-offset:3px}.price-summary .location-unconfirmed{color:#75323a;font-weight:700}
[hidden]{display:none!important}
.confirmation-screen{max-width:760px;margin:0 auto;padding:clamp(30px,6vw,58px);border-radius:28px;background:linear-gradient(145deg,rgba(255,255,255,.98),rgba(242,235,245,.96));box-shadow:0 24px 70px rgba(77,39,95,.14);text-align:center}.confirmation-mark{width:68px;height:68px;margin:0 auto 24px;border-radius:50%;display:grid;place-items:center;background:#e7efe2;color:#496044;font-size:32px}.confirmation-screen h2{font:clamp(40px,7vw,62px)/1.05 Georgia,serif;color:var(--aubergine)}.confirmation-intro{max-width:560px;margin:18px auto 30px;color:var(--muted);font-size:17px;line-height:1.65}.confirmation-screen .details{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:0;text-align:left}.confirmation-screen .details div{min-width:0;padding:17px;background:rgba(255,255,255,.75);border:1px solid var(--lilac)}.confirmation-screen .details dt{color:var(--muted);font-size:11px;text-transform:uppercase;letter-spacing:.08em}.confirmation-screen .details dd{margin:5px 0 0;color:var(--aubergine);overflow-wrap:anywhere}.confirmation-next{margin-top:28px;padding:24px;text-align:left;background:#edf3ea;border-left:4px solid var(--sage)}.confirmation-next h3{margin:0 0 8px;color:var(--aubergine);font:25px Georgia,serif}.confirmation-next p{margin:0;color:#43533c;line-height:1.65}.confirmation-screen .actions{display:flex;justify-content:center;flex-wrap:wrap;gap:12px;margin-top:28px}.confirmation-screen .actions .button{min-height:44px}.confirmation-screen:focus{outline:none}@media(max-width:680px){.confirmation-screen{padding:32px 20px;border-radius:20px}.confirmation-screen .details{grid-template-columns:1fr}.confirmation-screen .actions{display:grid}.confirmation-screen .actions .button{width:100%}}
@supports(-webkit-touch-callout:none){@media(max-width:600px){.booking-form,.booking-step,.booking-form fieldset,.booking-form label,.booking-form input,.booking-form select,.booking-form textarea{box-sizing:border-box;min-width:0;max-width:100%}.booking-form input,.booking-form select,.booking-form textarea{width:100%;font-size:16px}.booking-shell,.booking-form{width:100%;overflow-x:clip}}}
