/* The booking is a native three-step form within the brochure. */
.booking-page{display:grid;grid-template-columns:.72fr 1.28fr;gap:7%;padding-block:52px 64px;align-items:start}
.booking-intro{position:sticky;top:130px}.booking-intro h2{font-size:clamp(45px,4.4vw,70px)}.booking-intro .lead{margin-top:28px;color:#fff}
.booking-intro-note{margin-top:42px;padding-top:26px;border-top:1px solid var(--line)}.booking-intro-note strong{font-size:28px;color:var(--yellow)}.booking-intro-note p{margin-top:3px;font-size:18px}.booking-assistance{font-size:16px;margin-top:36px}.booking-assistance a{display:inline-block;color:#fff;margin-top:5px;border-bottom:1px solid var(--line)}
.booking-surface{min-width:0;border-top:2px solid var(--yellow);background:#222633;padding:30px 36px 36px}
.booking-steps{list-style:none;display:grid;grid-template-columns:1fr .75fr 1.25fr;gap:14px;padding:0 0 24px;margin:0 0 28px;border-bottom:1px solid var(--line)}.booking-steps li{font-size:14px;line-height:1.4;color:var(--muted)}.booking-steps li span{display:block;font-weight:900;font-size:22px;margin-bottom:4px}.booking-steps [aria-current]{color:var(--yellow)}
 .booking-page fieldset{border:0;padding:0;margin:0;min-width:0}.booking-surface legend{font-size:26px;font-weight:800;margin-bottom:24px;line-height:1.25}
.form-required{font-size:14px;margin-bottom:16px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:22px 20px}.field-wide{grid-column:1/-1}
.form-field{display:flex;flex-direction:column;gap:9px;font-size:16px;font-weight:700;min-width:0}.required{color:var(--yellow)}
.form-field small,.name-fieldset small{font-weight:400;font-size:14px;color:var(--muted)}
.form-field input,.form-field select{width:100%;min-width:0;border:1px solid #ffffff45;background:#191c27;color:white;font:400 17px 'Nunito Sans',Arial,sans-serif;padding:13px 14px;min-height:52px;border-radius:0;box-shadow:none;color-scheme:dark}
.form-field input:focus,.form-field select:focus{outline:2px solid var(--yellow);outline-offset:2px}.form-field input[aria-invalid=true],.form-field select[aria-invalid=true]{border-color:#ff9b8c}
.name-fieldset legend{font-size:16px;font-weight:700;margin-bottom:12px}.name-fieldset .form-field>span{font-size:14px;font-weight:400}
.form-actions{display:flex;align-items:center;justify-content:space-between;gap:18px;margin-top:32px;padding-top:26px;border-top:1px solid var(--line)}.form-actions .button{margin-left:auto}.form-actions .text-link{background:none;border-top:0;border-inline:0}
.form-error{padding:15px 18px;border:1px solid #ff9b8c;background:#552e2a55;color:#ffcdc5;margin-bottom:22px;font-size:16px}
.booking-review{display:flex;flex-wrap:wrap;gap:18px 32px;border:1px solid var(--line);padding:18px;margin-bottom:24px}.booking-review small,.booking-review strong{display:block}.booking-review small{font-size:14px;color:var(--muted);margin-bottom:4px}.booking-review strong{font-size:17px}.booking-review button{background:none;border:0;margin-left:auto;align-self:end;padding:0;font-size:14px}
.agreement-terms{padding:22px;background:var(--navy);border-left:2px solid var(--yellow)}.agreement-terms h4{font-size:18px;margin:22px 0 10px;letter-spacing:0}.agreement-terms h4:first-child{margin-top:0}.agreement-terms p{font-size:16px;margin-top:12px}.agreement-terms a{color:var(--yellow);text-decoration:underline}
.acceptance{display:flex;align-items:center;gap:13px;margin:24px 0 30px;font-size:17px;font-weight:800}.acceptance input{width:22px;height:22px;accent-color:var(--yellow);flex-shrink:0}
.field-help{font-size:14px;margin-bottom:14px}.signature-field{margin:28px 0}.signature-label{display:flex;align-items:center;justify-content:space-between;gap:15px;font-size:16px;font-weight:700;margin-bottom:8px}.signature-label button{font-size:14px;background:none;border:0;color:var(--yellow);text-decoration:underline;padding:5px}
#signature-canvas{width:100%;height:160px;display:block;background:#fff;touch-action:none;cursor:crosshair;border:2px solid transparent}#signature-canvas:focus-visible{border-color:var(--yellow);outline:2px solid var(--yellow);outline-offset:3px}
.signature-upload{display:flex;flex-wrap:wrap;align-items:center;gap:9px 16px;margin-top:12px;font-size:14px}.signature-upload input{font:inherit;max-width:100%;min-width:0;color:var(--muted)}
.submission-note{font-size:14px;margin-top:24px}.bot-field{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}
#booking-success{padding:28px 0}#booking-success h3{font-size:54px;letter-spacing:-.04em;margin-bottom:24px}#booking-success dl{border-block:1px solid var(--line);padding:22px 0;margin:24px 0}#booking-success dt{font-size:14px;color:var(--muted);margin-top:18px}#booking-success dt:first-child{margin-top:0}#booking-success dd{margin:4px 0 0;font-size:20px;font-weight:800;overflow-wrap:anywhere}#booking-success .button{margin-top:28px}#booking-success p a{color:var(--yellow)}

.contact-booking{margin-top:28px}.booking-surface{scroll-margin-top:110px}.booking-intro .contact-date{display:flex;align-items:center;gap:14px;font-size:22px;margin-top:30px;color:white}.booking-intro .contact-date .icon{color:var(--yellow);flex-shrink:0}.booking-review strong{white-space:pre-line}.booking-page[hidden]{display:none!important}
@media(min-width:801px) and (max-width:1200px){.site-header nav{gap:12px}.site-header nav a{font-size:13px}.site-header .nav-enquire{padding:12px}.booking-page{gap:4%;grid-template-columns:.65fr 1fr}.booking-surface{padding:26px}.booking-intro h2{font-size:44px}}
@media(max-width:800px){.booking-page{grid-template-columns:1fr;gap:28px;padding-top:32px}.booking-intro{position:static}.booking-intro h2{font-size:42px}.booking-intro .contact-date{margin-top:18px;font-size:18px}.booking-intro-note,.booking-assistance{display:none}.booking-surface{padding:26px;scroll-margin-top:95px}}
@media(max-width:520px){.booking-page{padding-inline:16px}.booking-intro{padding-inline:6px}.booking-intro h2{font-size:38px}.booking-surface{padding:24px 18px}.booking-steps{gap:8px}.booking-steps li{font-size:14px}.booking-steps li span{font-size:20px}.booking-surface legend{font-size:23px}.form-grid{grid-template-columns:1fr}.name-fieldset legend{font-size:16px}.name-fieldset .form-grid{grid-template-columns:1fr 1fr;gap:12px}.form-actions .button{font-size:14px;gap:10px;padding-inline:14px}.agreement-terms{padding:18px}.booking-review{display:grid;grid-template-columns:1fr;gap:12px}.booking-review button{margin-left:0;justify-self:start}.team-count select{font-size:18px}}
@media print{#booking{display:none!important}}

.booking-total{display:flex;align-items:center;justify-content:space-between;gap:18px;border-top:1px solid var(--line);padding-top:20px}.booking-total small{display:block;color:var(--muted);font-size:14px}.booking-total strong{display:block;color:var(--yellow);font-size:28px;line-height:1.25;margin-top:6px}.booking-total>span{font-size:14px;color:var(--muted)}
.booking-page .booking-deposit{font-size:16px;margin-top:20px;max-width:340px}.booking-page h2{font-size:clamp(42px,4vw,66px)}.booking-page .contact-date{font-size:20px}.booking-page .eyebrow{line-height:1.5}
.booking-page [hidden]{display:none!important}.booking-surface .text-link{color:var(--yellow)}.booking-surface .button{border:0;cursor:pointer}.booking-surface .button:disabled{cursor:wait;opacity:.6}.booking-page .form-actions .text-link{color:#fff}.booking-page input[type=checkbox]{flex:none}
@media(min-width:1051px){.booking-page{align-items:center;padding-block:44px}.booking-intro{position:static}.booking-surface{max-width:820px}.booking-intro .booking-assistance{margin-top:32px}}
@media(max-width:800px){.booking-page .booking-intro h2{font-size:42px}.booking-page .contact-date{font-size:18px}.booking-page .booking-steps{margin-bottom:24px}}
@media(max-width:520px){.booking-page .booking-intro h2{font-size:38px}.booking-page .contact-date{font-size:16px}.booking-page .form-actions{flex-wrap:wrap}.booking-page .name-fieldset .form-grid{grid-template-columns:1fr}.booking-page .form-actions>.button{max-width:100%}}
/* Keep the first form step comfortably within a desktop brochure page. */
@media(min-width:1051px){
 .booking-surface{padding:24px 32px 28px}
 .booking-steps{padding-bottom:18px;margin-bottom:18px}
 .booking-steps li span{font-size:20px;margin-bottom:2px}
 .booking-surface legend{font-size:24px;margin-bottom:18px}
 .booking-surface .name-fieldset>legend{font-size:16px;margin-bottom:8px}
 .booking-page .form-required{margin-bottom:12px}
 .booking-page .form-grid{gap:16px 20px}
 .booking-page .form-field{gap:6px}
 .booking-page .form-field input,.booking-page .form-field select{min-height:48px;padding:10px 13px}
 .booking-total{padding-top:14px}
 .booking-total strong{font-size:25px}
 .booking-page .form-actions{margin-top:20px;padding-top:18px}
 .booking-page .form-actions .button{min-height:50px;padding-block:13px}
}
