.booking-widget{width:var(--page);border:1px solid color-mix(in srgb, var(--ink) 24%, transparent);background:var(--white);color:var(--ink);margin-inline:auto;padding:clamp(1.25rem,2.2vw,2rem);box-shadow:0 22px 70px #18201b1f}.booking-heading{gap:.35rem;margin-bottom:1.5rem;display:grid}.booking-heading p{color:var(--pool-dark);letter-spacing:.15em;text-transform:uppercase;margin:0;font-size:.68rem;font-weight:760}.booking-heading h2{margin:0;font-size:clamp(2rem,3.7vw,3.7rem)}.booking-heading strong{color:var(--pool-dark);font-size:1rem;font-weight:680;line-height:1.4}.direct-exception-contact{border-left:4px solid var(--timber);background:var(--paper);margin-bottom:.75rem;font-size:.78rem;line-height:1.45}.direct-exception-contact summary{cursor:pointer;align-items:center;min-height:2.75rem;padding:.55rem .8rem;font-weight:740;list-style-position:inside;display:flex}.direct-exception-contact>div{border-top:1px solid color-mix(in srgb, var(--ink) 12%, transparent);flex-wrap:wrap;gap:.5rem 1.25rem;padding:.4rem .8rem .7rem;display:flex}.direct-exception-contact span{align-items:center;gap:.4rem;display:flex}.direct-exception-contact a{min-width:2.75rem;min-height:2.75rem;color:var(--pool-dark);justify-content:center;align-items:center;font-weight:750;display:inline-flex}.booking-state{min-height:13rem;color:color-mix(in srgb, var(--ink) 65%, transparent);justify-content:center;align-items:center;gap:.75rem;display:flex}.pulse{background:var(--pool);width:.65rem;height:.65rem;animation:1.1s ease-in-out infinite alternate pulse}@keyframes pulse{to{opacity:.25;transform:scale(.75)}}.booking-error{border-left:4px solid var(--timber);background:var(--paper);padding:1.25rem}.booking-error>strong{font-family:var(--font-display);font-size:1.5rem}.booking-error button{cursor:pointer;background:0 0;border:0;border-bottom:1px solid;align-items:center;min-width:2.8rem;min-height:2.8rem;padding:0;font-weight:720;display:inline-flex}.calendar-toolbar{border-block:1px solid var(--linen);grid-template-columns:2.8rem 1fr 2.8rem;align-items:center;gap:.5rem;margin-bottom:1.25rem;padding-block:.7rem;display:grid}.calendar-toolbar p{text-align:center;margin:0;font-size:.78rem;font-weight:680}.calendar-toolbar button,.calendar-days button{cursor:pointer;touch-action:manipulation;transition:border-color var(--motion-fast) ease, background-color var(--motion-fast) ease, color var(--motion-fast) ease, transform var(--motion-fast) var(--ease-out)}.calendar-toolbar button{border:1px solid var(--concrete);width:2.8rem;height:2.8rem;color:var(--ink);background:0 0;place-items:center;display:grid}.calendar-toolbar button:hover:not(:disabled){border-color:var(--pool-dark);background:var(--pool-dark);color:var(--white)}.calendar-toolbar button:active:not(:disabled){transform:scale(.94)}.calendar-toolbar button:disabled{cursor:not-allowed;opacity:.28}.calendar-pair{gap:2rem;display:grid}.calendar-month:nth-child(2){display:none}.calendar-month h3{font-family:var(--font-display);text-align:center;text-transform:capitalize;margin:0 0 1rem;font-size:1.2rem;font-weight:520}.calendar-instruction,.calendar-month,.date-value{animation:calendar-content-enter .22s var(--ease-out) both}.weekdays,.calendar-days{grid-template-columns:repeat(7,1fr);display:grid}.weekdays span{color:#656a65;text-align:center;text-transform:uppercase;padding:.4rem 0;font-size:.62rem;font-weight:720}.calendar-days{gap:.16rem}.calendar-days button,.calendar-empty{aspect-ratio:1}.calendar-days button{min-width:0;color:var(--ink);background:0 0;border:1px solid #0000;font-size:.76rem;font-weight:650;position:relative}.calendar-days button:hover:not(:disabled),.calendar-days button[aria-pressed=true]{border-color:var(--pool-dark);background:var(--pool-dark);color:var(--white)}.calendar-days button.in-range{color:var(--ink);background:#d6e6e1}.calendar-days button:active:not(:disabled){transform:scale(.9)}.calendar-days button:disabled{color:color-mix(in srgb, var(--ink) 26%, transparent);cursor:not-allowed}.calendar-days button.blocked:after{content:"";background:currentColor;height:1px;position:absolute;top:50%;left:20%;right:20%;transform:rotate(-35deg)}.date-summary{border-top:1px solid var(--linen);grid-template-columns:1fr auto 1fr;align-items:center;gap:1rem;margin-top:1.5rem;padding-top:1rem;display:grid}.date-summary span{gap:.25rem;display:grid}.date-summary span:last-child{text-align:right}.date-summary small{color:#656a65;letter-spacing:.1em;text-transform:uppercase;font-size:.62rem;font-weight:720}.date-summary strong{font-size:.82rem}.minimum-stay-message{color:var(--pool-dark);text-align:center;margin:.9rem 0 0;font-size:.78rem;font-weight:700}.enquiry-form{border-top:1px solid var(--ink);animation:booking-content-enter var(--motion-base) var(--ease-out) both;gap:1.2rem;margin-top:1.5rem;padding-top:1.5rem;display:grid}.guest-fields{gap:.75rem;display:grid}.guest-fields label{gap:.45rem;font-size:.72rem;font-weight:680;display:grid}.guest-fields input{border:1px solid var(--concrete);background:var(--white);width:100%;color:var(--ink);transition:border-color var(--motion-fast) ease, box-shadow var(--motion-fast) ease;border-radius:0;padding:.8rem}.guest-fields input:focus{border-color:var(--pool-dark);box-shadow:0 0 0 3px color-mix(in srgb, var(--pool) 20%, transparent)}.checkbox-field{align-items:flex-start;gap:.7rem;min-height:2.8rem;font-size:.78rem;display:flex}.checkbox-field input{width:1.15rem;height:1.15rem;accent-color:var(--pool-dark);margin-top:.15rem}.field-error{color:var(--danger);margin:-.5rem 0 0;font-size:.72rem}.booking-submit{border:1px solid var(--pool-dark);background:var(--pool-dark);min-height:3.4rem;color:var(--white);cursor:pointer;transition:background-color var(--motion-fast) ease, transform var(--motion-fast) var(--ease-out), opacity var(--motion-fast) ease;padding:.85rem 1.2rem;font-weight:730}.booking-submit:hover{background:var(--ink)}.booking-submit:disabled{cursor:wait;opacity:.6}.booking-submit:active:not(:disabled){transform:scale(.985)}.booking-submit.is-checking{animation:.7s ease-in-out infinite alternate booking-progress}.booking-result{border-left:4px solid var(--pool);background:var(--paper);animation:booking-content-enter var(--motion-base) var(--ease-out) both;margin-top:1.5rem;padding:1.25rem}.booking-result.contact_required,.booking-result.error{border-left-color:var(--timber)}.booking-result>strong{max-width:47rem;font-family:var(--font-display);font-size:1.45rem;font-weight:520;line-height:1.2;display:block}.booking-selection-summary{border:1px solid var(--concrete);background:var(--paper);justify-content:space-between;align-items:center;gap:1rem;padding:.9rem 1rem;display:flex}.booking-selection-summary>div{gap:.25rem;display:grid}.booking-selection-summary strong{font-family:var(--font-display);font-size:1.25rem;font-weight:560}.booking-selection-summary span{color:#656a65;font-size:.78rem}.booking-selection-summary button{min-height:2.75rem;color:var(--pool-dark);cursor:pointer;background:0 0;border:0;border-bottom:1px solid;font-weight:740}.booking-checkout-step .calendar-toolbar,.booking-checkout-step .calendar-pair,.booking-checkout-step .minimum-stay-message,.booking-checkout-step .date-summary,.booking-checkout-step .enquiry-form,.booking-checkout-step .booking-footer{display:none}.booking-checkout-step .booking-heading{margin-bottom:.65rem}.quote-reasons{gap:.65rem;display:grid}.quote-reasons strong{font-family:var(--font-display);font-size:1.35rem;font-weight:520;line-height:1.25}.quote-breakdown>p{font-family:var(--font-display);margin:0 0 1rem;font-size:1.25rem}.quote-breakdown dl{gap:.65rem;margin:0;display:grid}.quote-breakdown dl>div{justify-content:space-between;gap:1rem;display:flex}.quote-breakdown dt,.quote-breakdown dd{margin:0}.quote-breakdown dd{flex:none;font-weight:720}.quote-breakdown .quote-total{border-top:1px solid var(--concrete);margin-top:.3rem;padding-top:.8rem;font-size:1.15rem}.quote-breakdown>small{color:#656a65;margin-top:1rem;line-height:1.5;display:block}.direct-checkout-form{border-top:1px solid var(--concrete);gap:1.5rem;min-width:0;margin-top:1.5rem;padding-top:1.5rem;display:grid}.direct-checkout-form header{gap:.45rem;display:grid}.direct-checkout-form header h2,.checkout-return h2{font-family:var(--font-display);margin:0;font-size:clamp(1.8rem,3vw,2.8rem);font-weight:520;line-height:1.05}.direct-checkout-form header p{color:#5c625d;margin:0;line-height:1.55}.direct-checkout-form fieldset{border:0;gap:1rem;min-width:0;margin:0;padding:0;display:grid}.direct-checkout-form fieldset:disabled{opacity:.68}.direct-checkout-form legend{border-bottom:1px solid var(--ink);width:100%;font-family:var(--font-display);margin-bottom:.9rem;padding-bottom:.55rem;font-size:1.25rem;font-weight:520}.checkout-contact-fields{gap:.85rem;display:grid}.checkout-contact-fields label,.checkout-note{gap:.4rem;min-width:0;font-size:.72rem;font-weight:680;display:grid}.checkout-contact-fields input,.checkout-note textarea{border:1px solid var(--concrete);background:var(--white);width:100%;min-height:2.8rem;color:var(--ink);font:inherit;border-radius:0;padding:.75rem;font-size:1rem}.checkout-note textarea{resize:vertical;min-height:7rem}.checkout-note small{color:#656a65;font-weight:520;line-height:1.4}.checkout-contact-fields input:focus,.checkout-note textarea:focus{border-color:var(--pool-dark);box-shadow:0 0 0 3px color-mix(in srgb, var(--pool) 20%, transparent);outline:0}.checkout-declarations{gap:0!important}.legal-acceptance{border-top:1px solid var(--linen)}.legal-acceptance details summary{cursor:pointer;min-height:2.8rem;color:var(--pool-dark);align-items:center;padding-block:.7rem;font-size:.78rem;font-weight:730;display:flex}.legal-acceptance details p{border-left:3px solid var(--pool);background:var(--white);white-space:pre-line;margin:0;padding:1rem;font-size:.78rem;line-height:1.65}.checkout-checkbox{cursor:pointer;grid-template-columns:1.25rem minmax(0,1fr);align-items:start;gap:.7rem;min-height:2.8rem;padding-block:.75rem;display:grid}.checkout-checkbox input{width:1.15rem;height:1.15rem;accent-color:var(--pool-dark);margin:.1rem 0 0}.checkout-checkbox span,.checkout-checkbox small{line-height:1.45;display:block}.checkout-checkbox strong{font-size:.78rem}.checkout-checkbox small{color:#656a65;margin-top:.25rem}.checkout-field-error{color:#8a2f28;margin:-.4rem 0 0;font-size:.75rem;font-weight:700;line-height:1.5}.checkout-error,.checkout-content-state,.checkout-return-cancelled{border-left:4px solid var(--timber);background:var(--white);margin:0;padding:1rem;font-size:.78rem;font-weight:680;line-height:1.5}.checkout-content-state{margin-top:1.5rem}.checkout-content-state>p{margin:0}.checkout-recovery .contact-options{margin-top:0}.turnstile-challenge:empty{display:none}.checkout-submit{width:100%}.checkout-return{align-content:center;gap:1.25rem;max-width:52rem;min-height:20rem;margin-inline:auto;padding-block:clamp(1rem,4vw,3rem);display:grid}.checkout-return header{gap:.35rem;display:grid}.checkout-return .eyebrow{color:var(--pool-dark);letter-spacing:.15em;text-transform:uppercase;margin:0;font-size:.68rem;font-weight:760}.checkout-return>p,.checkout-return-recovery>p{max-width:44rem;margin:0;line-height:1.6}.checkout-return-recovery{gap:1rem;display:grid}.checkout-return-recovery>button,.checkout-return-stripe{border:1px solid var(--pool-dark);background:var(--pool-dark);width:fit-content;min-height:2.8rem;color:var(--white);cursor:pointer;font:inherit;justify-content:center;align-items:center;padding:.75rem 1rem;font-weight:730;text-decoration:none;display:inline-flex}.checkout-return-stripe{color:var(--pool-dark);background:0 0}.contact-options{margin-top:1.5rem}.contact-options h3{font-size:1.3rem}.contact-grid{gap:.6rem;display:grid}.contact-grid article{border:1px solid var(--concrete);background:var(--white);transition:border-color var(--motion-fast) ease, transform var(--motion-fast) var(--ease-out);gap:.15rem;padding:1rem;display:grid}.contact-grid article:hover{border-color:var(--pool-dark);transform:translateY(-2px)}.contact-grid article>strong{font-family:var(--font-display);font-size:1.35rem;font-weight:520}.contact-grid article>span{color:#696e69;overflow-wrap:anywhere;font-size:.75rem}.contact-grid article div{gap:1rem;margin-top:.8rem;display:flex}.contact-grid a{min-width:2.8rem;min-height:2.8rem;color:var(--pool-dark);align-items:center;font-size:.75rem;font-weight:750;display:inline-flex}.booking-footer{color:#666a66;flex-wrap:wrap;justify-content:space-between;gap:.5rem 1.5rem;margin-top:1.4rem;font-size:.63rem;display:flex}.booking-footer a{min-width:2.8rem;min-height:2.8rem;color:var(--ink);align-items:center;font-weight:720;display:inline-flex}@keyframes calendar-content-enter{0%{opacity:0;transform:translateY(6px)}}@keyframes booking-content-enter{0%{opacity:0;transform:translateY(12px)}}@keyframes booking-progress{to{opacity:.72}}@media (width>=52rem){.booking-heading{grid-template-columns:1fr auto;align-items:end}.booking-heading p{grid-column:1/-1}.booking-heading strong{align-self:end;padding-bottom:.45rem}.calendar-pair{grid-template-columns:1fr 1fr;gap:3rem}.calendar-days button,.calendar-empty{aspect-ratio:auto;min-height:2.75rem}.calendar-month:nth-child(2){display:block}.date-summary{max-width:34rem;margin-inline:auto}.enquiry-form{grid-template-columns:minmax(23rem,.9fr) minmax(18rem,1fr);align-items:end}.guest-fields{grid-column:1/-1;grid-template-columns:repeat(3,minmax(0,1fr))}.checkbox-field{grid-column:1/-1}.field-error{grid-column:1}.booking-submit{grid-column:1/-1}.contact-grid,.checkout-contact-fields{grid-template-columns:1fr 1fr}.checkout-contact-fields label:first-child{grid-column:1/-1}.contact-options.compact .contact-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}@media (width<=40rem){.booking-selection-summary{flex-direction:column;align-items:flex-start}}@media (width<=25rem){.booking-widget{width:100%;padding-inline:1rem}}@media (width<=22rem){.booking-widget{padding-inline:.25rem}.calendar-days{gap:0}}@media (width>=70rem){.booking-widget{width:min(82vw,78rem)}.calendar-days button{font-size:.82rem}}@media (width>=64rem){.direct-checkout-result{grid-template-columns:minmax(17rem,.72fr) minmax(0,1.28fr);align-items:start;gap:clamp(2rem,4vw,4rem);padding:clamp(1.5rem,3vw,2.5rem);display:grid}.direct-checkout-result .quote-breakdown{position:sticky;top:1.25rem}.direct-checkout-result .direct-checkout-form,.direct-checkout-result .checkout-content-state{border-top:0;margin-top:0;padding-top:0}}@media (prefers-reduced-motion:reduce){.pulse,.calendar-instruction,.calendar-month,.date-value,.enquiry-form,.booking-result,.booking-submit.is-checking{animation:none}}
