.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,3vw,3rem);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);gap:.8rem;margin-bottom:1.25rem;padding:1rem;font-size:.78rem;line-height:1.45;display:grid}.direct-exception-contact>div{flex-wrap:wrap;gap:.5rem 1.25rem;display:flex}.direct-exception-contact span{align-items:center;gap:.4rem;display:flex}.direct-exception-contact a{min-height:2.75rem;color:var(--pool-dark);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,.note-field{gap:.45rem;font-size:.72rem;font-weight:680;display:grid}.guest-fields input,.note-field textarea{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,.note-field textarea: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}.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}.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;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-widget{margin-top:-4rem}.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-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;grid-template-columns:repeat(3,minmax(0,1fr))}.checkbox-field{grid-column:1}.note-field{grid-area:1/2/3}.field-error{grid-column:1}.booking-submit{grid-column:1/-1}.contact-grid{grid-template-columns:1fr 1fr}}@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 (prefers-reduced-motion:reduce){.pulse,.calendar-instruction,.calendar-month,.date-value,.enquiry-form,.booking-result,.booking-submit.is-checking{animation:none}}.gallery{margin-top:4rem;position:relative}.gallery-grid{grid-template-columns:1fr 1fr;gap:.5rem;display:grid}.gallery-tile{background:var(--linen);cursor:zoom-in;border:0;min-height:11rem;padding:0;position:relative;overflow:hidden}.gallery-tile img{object-fit:cover;will-change:transform;width:100%;height:100%;transition:transform .45s cubic-bezier(.2,.7,.2,1)}.gallery-tile:hover img{transform:scale(1.018)}.gallery-tile:active img{transform:scale(1.005)}.gallery-tile-1{aspect-ratio:16/10;grid-column:1/-1}.gallery-tile-6,.gallery-tile-7{display:none}.gallery-open{border:1px solid var(--ink);width:100%;color:var(--ink);cursor:pointer;text-align:left;transition:background-color var(--motion-fast) ease, color var(--motion-fast) ease;background:0 0;border-top:0;justify-content:space-between;align-items:center;padding:1rem 1.25rem;font-weight:710;display:flex}.gallery-open strong{background:var(--ink);width:2.15rem;height:2.15rem;color:var(--white);transition:background-color var(--motion-fast) ease, color var(--motion-fast) ease, transform var(--motion-fast) var(--ease-out);place-items:center;font-size:.7rem;display:grid}.gallery-open:hover{background:var(--ink);color:var(--white)}.gallery-open:hover strong{background:var(--white);color:var(--ink);transform:rotate(4deg)}.lightbox{background:var(--ink);width:100vw;max-width:none;height:100dvh;max-height:none;color:var(--white);border:0;padding:0}.lightbox[open]{animation:lightbox-enter .24s var(--ease-out) both}.lightbox::backdrop{background:var(--ink);animation:.18s ease-out both lightbox-backdrop-enter}.lightbox-inner{grid-template-rows:auto 1fr auto;height:100%;padding:1rem;display:grid}.lightbox-top,.lightbox-nav{justify-content:space-between;align-items:center;gap:1rem;display:flex}.lightbox-top{letter-spacing:.08em;padding-bottom:.75rem;font-size:.75rem}.lightbox-top button{border:1px solid color-mix(in srgb, var(--white) 35%, transparent);width:2.8rem;height:2.8rem;color:var(--white);cursor:pointer;background:0 0;place-items:center;font-size:1.7rem;display:grid}.lightbox-photo{object-fit:contain;touch-action:pan-y pinch-zoom;width:100%;height:100%;min-height:0;transition:transform var(--motion-fast) var(--ease-out), opacity var(--motion-fast) ease;user-select:none;will-change:transform, opacity}.lightbox-photo.next{animation:lightbox-photo-next .24s var(--ease-out) both}.lightbox-photo.previous{animation:lightbox-photo-previous .24s var(--ease-out) both}.lightbox-nav{padding-top:.75rem}.lightbox-nav button{min-width:2.8rem;min-height:2.8rem;color:var(--white);cursor:pointer;transition:color var(--motion-fast) ease, transform var(--motion-fast) var(--ease-out);background:0 0;border:0;padding:.75rem .5rem;font-weight:680}.lightbox-nav button:hover,.lightbox-top button:hover{color:#a9d8d0}.lightbox-nav button:active,.lightbox-top button:active{transform:scale(.96)}.lightbox-nav span{display:none}@keyframes lightbox-enter{0%{opacity:0;transform:scale(.99)}}@keyframes lightbox-backdrop-enter{0%{opacity:0}}@keyframes lightbox-photo-next{0%{opacity:0;transform:translate(12px)scale(.995)}}@keyframes lightbox-photo-previous{0%{opacity:0;transform:translate(-12px)scale(.995)}}@media (width>=48rem){.gallery-grid{grid-template-rows:repeat(2,minmax(15rem,1fr));grid-template-columns:1.2fr .8fr .8fr;gap:.7rem}.gallery-tile-1{aspect-ratio:auto;grid-area:1/1/3}.gallery-tile-2,.gallery-tile-3,.gallery-tile-4,.gallery-tile-5{display:block}.gallery-tile-6,.gallery-tile-7{display:none}.lightbox-inner{padding:1.5rem 2rem}.lightbox-nav span{display:inline}}@media (width>=76rem){.gallery-grid{grid-template-columns:1.25fr .75fr .75fr .75fr}.gallery-tile-6,.gallery-tile-7{display:block}}@media (prefers-reduced-motion:reduce){.gallery-tile img,.gallery-open strong,.lightbox,.lightbox::backdrop,.lightbox-photo{transition:none;animation:none}}
