.booking-motion{--booking-ease:cubic-bezier(.2,.7,.25,1);--booking-accent:#a98047}.booking-entry.booking-motion{isolation:isolate;background:#fffdf8;border-color:#d4cfbf;position:sticky}.booking-entry.booking-motion:before{content:"";pointer-events:none;border:1px solid var(--booking-accent);opacity:.75;z-index:2;position:absolute;inset:-1px}.booking-entry.booking-motion[data-motion-reduced=false]:before{animation:booking-border-draw 1.2s .2s var(--booking-ease) both}.booking-entry.booking-motion.will-reveal:not(.is-revealed):before{clip-path:inset(0 100% 100% 0);animation:none}.booking-entry.booking-motion>.eyebrow{color:#86653b;letter-spacing:.16em;font-size:10px}.booking-motion .booking-entry-intro,.booking-motion .step-description,.booking-motion .booking-disclaimer,.booking-motion .success-next p,.booking-motion .payment-summary>p:last-child,.booking-motion .reservation-success>p:not(.eyebrow){color:#5e6d73;font-size:14px;line-height:1.85}.booking-entry.booking-motion .booking-disclaimer{font-size:13px;line-height:1.85}.booking-motion .field,.booking-motion .date-pair>label{position:relative}.booking-motion .field:after,.booking-motion .date-pair>label:after{content:"";background:var(--booking-accent);transform-origin:0;pointer-events:none;height:2px;transition:transform .5s var(--booking-ease);position:absolute;bottom:0;left:0;right:0;transform:scaleX(0)}.booking-motion .field:focus-within:after,.booking-motion .date-pair>label:focus-within:after{transform:scaleX(1)}.booking-motion .field>span,.booking-motion .date-pair label>span{color:#5a6a72;letter-spacing:.1em;font-size:10px;transition:color .3s}.booking-motion .field:focus-within>span,.booking-motion .date-pair label:focus-within>span{color:var(--navy)}.booking-motion .field input,.booking-motion .field select,.booking-motion .field textarea,.booking-motion .date-pair input{min-height:51px;font-size:14px;transition:background .4s,border-color .35s,box-shadow .4s}.booking-motion .field input:focus,.booking-motion .field select:focus,.booking-motion .field textarea:focus,.booking-motion .date-pair input:focus{background:#fff;border-color:#b49463;box-shadow:0 0 0 3px #b1874d0c}.booking-motion .date-pair input{font-size:13px}.booking-motion .night-count{color:#617071;gap:10px;min-height:36px;margin-top:19px;padding-top:14px;font-size:14px;line-height:1.8;position:relative}.booking-motion .night-count:before{content:"";transform-origin:0;background:#b1874d4d;height:1px;position:absolute;top:0;left:0;right:0}.booking-motion .night-count>svg{color:var(--booking-accent);flex-shrink:0}.booking-motion .night-count strong,.booking-motion .booking-night-number{color:var(--navy);font-variant-numeric:tabular-nums;font-size:16px;font-weight:600}.booking-motion[data-motion-reduced=false] .night-count{animation:booking-count-enter .55s var(--booking-ease) both}.booking-motion[data-motion-reduced=false] .night-count:before{animation:booking-line-draw .7s var(--booking-ease) both}.booking-motion .button{isolation:isolate;min-height:50px;font-size:12px;position:relative;overflow:hidden}.booking-motion .button:after{content:"";pointer-events:none;transition:transform .7s var(--booking-ease);background:linear-gradient(105deg,#0000 35%,#ffffff18 50%,#0000 65%);position:absolute;inset:0;transform:translate(-120%)}.booking-motion .button:hover:after{transform:translate(120%)}.booking-motion .button:focus-visible:after{transform:translate(120%)}.booking-motion .button svg,.booking-motion .back-button svg{transition:transform .35s var(--booking-ease);flex-shrink:0}.booking-motion .button:hover>svg{transform:translate(3px,-2px)}.booking-motion .back-button:hover>svg{transform:translate(-3px)}.booking-motion .back-button{min-height:44px;font-size:12px}.booking-motion .form-error{border-left:2px solid #a44f43;padding-left:13px;font-size:14px;line-height:1.8}.booking-motion[data-motion-reduced=false] .form-error{animation:.32s ease-out both booking-count-enter}.booking-motion .reservation-panel{border-color:#d4cfbf;position:relative;overflow:hidden;box-shadow:0 17px 55px #112d4906}.booking-motion .reservation-steps{isolation:isolate;position:relative}.booking-motion .reservation-steps li:not(.booking-step-progress){font-size:11px;transition:color .35s}.booking-motion .reservation-steps li>span{width:26px;height:26px;font-size:10px;transition:background .4s,color .4s,border-color .4s,box-shadow .4s}.booking-motion .reservation-steps li.active>span{box-shadow:0 0 0 5px #112d4908}.booking-motion .reservation-steps .booking-step-progress{width:var(--booking-progress,33.333%);background:var(--booking-accent);height:2px;transition:width .65s var(--booking-ease);pointer-events:none;border:0;margin:0;padding:0;display:block;position:absolute;bottom:-1px;left:0;right:auto}.booking-motion .booking-fields-lock{border:0;width:100%;min-width:0;margin:0;padding:0}.booking-motion .reservation-step-body{--booking-in:16px;--booking-out:-12px;will-change:auto}.booking-motion .reservation-step-body[data-direction=backward]{--booking-in:-16px;--booking-out:12px}.booking-motion[data-motion-reduced=false] .booking-step-exit{pointer-events:none;animation:.22s ease-in both booking-step-out}.booking-motion[data-motion-reduced=false] .booking-step-enter{animation:booking-step-in .45s var(--booking-ease) both}.booking-motion .field-note,.booking-motion .availability-note,.booking-motion .availability-error{font-size:13px;line-height:1.8}.booking-motion .availability-note{border-color:#d8d5c9;padding:14px;transition:background .4s,color .4s,border-color .4s;position:relative;overflow:hidden}.booking-motion .consent-field{gap:12px;min-height:44px;font-size:14px;line-height:1.8}.booking-motion .consent-field input{width:21px;height:21px;accent-color:var(--navy);flex-shrink:0;margin-top:4px}.booking-motion .request-summary{font-size:14px;line-height:1.8}.booking-motion .request-summary dt{color:#647275;font-size:12px}.booking-motion .payment-summary{background:#f6f2e8;border:1px solid #ded8c8;position:relative}.booking-motion .payment-summary:before{content:"";background:var(--booking-accent);width:1px;height:22px;position:absolute;top:24px;left:0}.booking-motion .reservation-preview{border:1px solid #dcd6c7;overflow:hidden;box-shadow:0 14px 44px #112d4906}.booking-motion .reservation-preview-image{isolation:isolate}.booking-motion[data-motion-reduced=false] .reservation-preview-image{animation:booking-photo-open .8s var(--booking-ease) both}.booking-motion[data-motion-reduced=false] .reservation-preview-image>img{animation:booking-photo-settle 1.2s var(--booking-ease) both}.booking-motion .preview-details h3{color:var(--navy)}.booking-motion .preview-details p{flex-wrap:wrap;gap:8px;font-size:14px;line-height:1.8}.booking-motion .preview-details .text-link{min-height:44px;font-size:12px}.booking-motion[data-motion-reduced=false] .booking-night-number{animation:booking-count-enter .4s var(--booking-ease) both;display:inline-block}.booking-motion .request-note p{color:#637074;font-size:13px;line-height:1.85}.booking-motion .request-note>span{color:#8d683e;font-size:9px;line-height:1.8}.reservation-success.booking-receipt{isolation:isolate;background:#fffdf8;border:1px solid #d9d2c1;padding:55px 48px;position:relative;overflow:hidden}.booking-receipt:before{content:"";transform-origin:0;pointer-events:none;background:linear-gradient(90deg,#876238,#d6bc89,#876238);height:4px;position:absolute;top:0;left:0;right:0}.booking-receipt .success-icon{isolation:isolate;color:#9a7540;background:#faf5e8;border:1px solid #b1874d6b;width:74px;height:74px;position:relative}.booking-receipt .success-icon:before,.booking-receipt .success-icon:after{content:"";pointer-events:none;border:1px solid #b1874d35;border-radius:50%;position:absolute;inset:-8px}.booking-receipt .success-icon:after{border-color:#b1874d15;inset:-17px}.booking-receipt>p:not(.eyebrow){color:#637074;font-size:14px;line-height:1.85}.booking-receipt .request-reference{background:#f5f0e4;border-top:1px solid #dbceb4;border-bottom:1px solid #dbceb4;margin-top:30px;padding:24px 20px;position:relative}.booking-receipt .request-reference>span{letter-spacing:.14em;color:#7e6f55;font-size:10px}.booking-receipt .request-reference strong{color:var(--navy);font-variant-numeric:tabular-nums;letter-spacing:.1em;font-size:19px}.booking-receipt .success-next{background:0 0;border-top:1px solid #ded9cc;margin-top:29px;padding-top:24px}.booking-receipt .success-next h3{font-size:32px}.booking-receipt .button{margin-top:30px}.booking-receipt[data-motion-reduced=false]:before{animation:booking-line-draw .85s var(--booking-ease) both}.booking-receipt[data-motion-reduced=false] .success-icon{animation:booking-halo-enter .75s var(--booking-ease) both}.booking-receipt[data-motion-reduced=false] .success-icon:before,.booking-receipt[data-motion-reduced=false] .success-icon:after{animation:booking-halo-enter 1.05s .12s var(--booking-ease) both}.booking-receipt[data-motion-reduced=false] .success-icon svg path,.booking-receipt[data-motion-reduced=false] .success-icon svg polyline{stroke-dasharray:60;stroke-dashoffset:60px;animation:booking-check-draw .95s .15s var(--booking-ease) forwards}.booking-receipt[data-motion-reduced=false]>.eyebrow{animation:.55s .15s both booking-receipt-copy}.booking-receipt[data-motion-reduced=false]>h2{animation:.65s .23s both booking-receipt-copy}.booking-receipt[data-motion-reduced=false]>p:not(.eyebrow){animation:.65s .32s both booking-receipt-copy}.booking-receipt[data-motion-reduced=false] .request-reference{animation:booking-receipt-unfold .85s .38s var(--booking-ease) both}.booking-receipt[data-motion-reduced=false] .success-next{animation:.7s .6s both booking-receipt-copy}.booking-receipt[data-motion-reduced=false]>.button{animation:.65s .78s both booking-receipt-copy}.booking-motion[data-motion-reduced=true] *,.booking-motion[data-motion-reduced=true] :before,.booking-motion[data-motion-reduced=true] :after,.booking-motion[data-motion-reduced=true]:before{transition:none!important;animation:none!important}.booking-motion[data-motion-reduced=true] .button:hover>svg,.booking-motion[data-motion-reduced=true] .back-button:hover>svg{transform:none}@keyframes booking-border-draw{0%{clip-path:inset(0 100% 100% 0)}to{clip-path:inset(0)}}@keyframes booking-line-draw{0%{transform:scaleX(0)}to{transform:scaleX(1)}}@keyframes booking-count-enter{0%{opacity:0;translate:0 7px}to{opacity:1;translate:0}}@keyframes booking-step-out{0%{opacity:1;clip-path:inset(0);translate:0}to{opacity:0;translate:0 var(--booking-out);clip-path:inset(0 0 8%)}}@keyframes booking-step-in{0%{opacity:0;translate:0 var(--booking-in);clip-path:inset(0 0 8%)}to{opacity:1;clip-path:inset(0);translate:0}}@keyframes booking-photo-open{0%{clip-path:inset(0 100% 0 0)}to{clip-path:inset(0)}}@keyframes booking-photo-settle{0%{transform:scale(1.065)}to{transform:scale(1)}}@keyframes booking-halo-enter{0%{opacity:0;transform:scale(.72)}to{opacity:1;transform:scale(1)}}@keyframes booking-check-draw{to{stroke-dashoffset:0}}@keyframes booking-receipt-copy{0%{opacity:0;clip-path:inset(0 0 25%)}to{opacity:1;clip-path:inset(0)}}@keyframes booking-receipt-unfold{0%{opacity:0;clip-path:inset(0 0 100%);translate:0 13px}to{opacity:1;clip-path:inset(0);translate:0}}@media (max-width:1000px){.booking-motion .reservation-steps li:not(.booking-step-progress){font-size:10px}.booking-motion .reservation-steps{gap:9px;padding-inline:18px}.booking-motion .reservation-steps li>span{width:24px;height:24px}}@media (max-width:760px){.booking-entry.booking-motion{padding:30px 24px;position:relative;top:auto}.booking-motion .field input,.booking-motion .field select,.booking-motion .field textarea{min-height:52px;font-size:16px}.booking-motion .date-pair input{min-height:52px;font-size:14px}.booking-motion .step-fields{gap:23px}.booking-motion .reservation-steps{gap:8px;padding:21px 17px}.booking-motion .reservation-steps li:not(.booking-step-progress){gap:6px;font-size:10px}.booking-motion .reservation-steps li>span{width:24px;height:24px}.booking-motion .reservation-step-body{padding:33px 24px 30px}.booking-motion .step-actions{gap:15px;margin-top:29px}.booking-motion .request-note p{font-size:13px}.booking-motion .preview-details p{gap:6px;font-size:13px}.booking-motion .reservation-preview-image{height:155px}.booking-motion .preview-details{padding-inline:19px}.booking-motion .request-note{padding:16px 19px}.reservation-success.booking-receipt{padding:40px 24px}.booking-receipt .success-icon{width:66px;height:66px;margin-bottom:35px}.booking-receipt .request-reference{padding:22px 14px}.booking-receipt .request-reference strong{font-size:17px}.booking-receipt .success-next{margin-top:25px}.booking-receipt .success-next h3{font-size:29px}.booking-motion .consent-field,.booking-motion .booking-disclaimer{font-size:14px}}@media (max-width:370px){.booking-motion .reservation-steps{gap:6px;padding-inline:12px}.booking-motion .reservation-steps li:not(.booking-step-progress){gap:5px;font-size:9px}.booking-motion .reservation-step-body{padding-inline:20px}.booking-receipt .request-reference strong{letter-spacing:.08em;font-size:15px}}
