@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Manrope:wght@400;500;600;700;800&display=swap');
.discount-code{margin:1rem 0;font-size:.9rem}.discount-code summary{cursor:pointer;text-decoration:underline}.discount-code label{display:block;margin:.75rem 0 .3rem}.discount-code input{width:100%;padding:.65rem;border:1px solid #cbdde2;border-radius:.5rem}.discount-code button{margin-top:.5rem;padding:.65rem 1rem}.discount-code p{line-height:1.5}
:root{--navy:#123749;--ink:#173645;--muted:#526a77;--blue:#12637b;--bright:#127e99;--line:#dce6eb;--pale:#eef5f7;--green:#dceee8;--white:#fff;--shadow:0 14px 40px #1736450b;font-family:'DM Sans',sans-serif;color:var(--ink);background:#fff;font-size:16px}*{box-sizing:border-box}body{margin:0}button,input,select{font:inherit}button,a,input,select{-webkit-tap-highlight-color:transparent}button{cursor:pointer}button:disabled{cursor:not-allowed}a{color:inherit}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid #eeab43;outline-offset:3px}button{color:inherit}h1,h2,h3{font-family:'Manrope',sans-serif;margin:0;font-weight:700;letter-spacing:-.04em}h1{font-size:clamp(1.6rem,2.8vw,2.5rem);line-height:1.2}h2{font-size:1.65rem;line-height:1.3}h3{font-size:1.1rem}p{line-height:1.65;margin:0}.eyebrow{font-size:.75rem;font-weight:700;letter-spacing:.14em;color:var(--blue);margin-bottom:9px}main{max-width:1440px;margin:auto}.site-header{height:94px;padding:15px max(5%,calc((100vw - 1296px)/2));display:flex;align-items:center;gap:26px;border-bottom:1px solid var(--line)}.site-header img{width:150px;height:62px;object-fit:contain}.site-header nav{display:flex;gap:30px;margin-left:auto;font-size:.875rem}.site-header nav a{text-decoration:none}.site-header nav a:hover{text-decoration:underline}.language{border:0;background:var(--pale);border-radius:50%;width:38px;height:38px;font-size:.875rem;font-weight:700}.header-book{background:var(--navy);color:white;text-decoration:none;padding:12px 19px;font-size:.875rem;border-radius:7px;font-weight:600}.property-intro{padding:36px 5% 24px;display:flex;justify-content:space-between;align-items:center;gap:25px}.property-facts{font-size:.9375rem;color:var(--muted);margin-top:12px}.direct-benefit{display:flex;gap:12px;align-items:center;flex-shrink:0}.direct-benefit strong,.direct-benefit span:not(.benefit-icon){display:block;font-size:.875rem}.direct-benefit span:not(.benefit-icon){color:var(--muted);margin-top:5px}.benefit-icon{font-family:Manrope;font-weight:800;font-size:1.2rem;padding:17px 10px;background:var(--green);border-radius:50%;color:#246553}.photo-grid{margin:0 5%;height:260px;display:grid;grid-template-columns:1.8fr 1fr 1fr;gap:9px;border-radius:12px;overflow:hidden}.photo{position:relative;padding:0;border:0;background:#e1eaed;overflow:hidden}.photo img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .35s}.photo:hover img{transform:scale(1.025)}.photo-main span{position:absolute;bottom:17px;left:18px;background:#fffffff2;border-radius:6px;padding:9px 14px;font-weight:600;font-size:.875rem}.booking-layout{padding:36px 5% 60px;display:grid;grid-template-columns:minmax(0,1.65fr) minmax(300px,1fr);gap:44px;scroll-margin-top:20px}.section-heading{display:flex;justify-content:space-between;align-items:center;gap:15px}.guest-select{display:flex;align-items:center;gap:14px;border:1px solid var(--line);border-radius:7px;padding:8px 12px;font-size:.875rem}.guest-select select{border:0;background:white;padding:4px 8px;font-weight:700}.calendar-toolbar{display:flex;justify-content:space-between;align-items:center;margin:20px 0 16px;gap:12px}.calendar-toolbar p{color:var(--muted);font-size:.875rem}.calendar-toolbar>div{display:flex;gap:8px}.icon-button{border:1px solid var(--line);background:white;border-radius:50%;height:35px;width:35px;font-size:1.6rem;line-height:1}.icon-button:disabled{opacity:.35}.calendars{display:grid;grid-template-columns:1fr 1fr;gap:24px;min-height:290px}.month h3{font-size:1rem;margin-bottom:18px;letter-spacing:0;font-weight:700}.weekdays,.month-days{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:3px}.weekdays span{color:var(--muted);font-size:.75rem;text-align:center;margin-bottom:12px}.day{min-width:0;height:45px;border:1px solid transparent;border-radius:5px;background:#f0f7f4;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;position:relative}.day .day-number{font-size:.875rem;font-weight:600}.day .day-price{font-size:.625rem;color:#476c5e;letter-spacing:-.03em}.day:not(:disabled):hover{border-color:var(--bright);background:#e2f0eb}.day.unavailable{background:#f2f3f4;color:#657580}.day.unavailable .day-number{text-decoration:line-through}.day.unavailable .day-price{color:#73828b}.day.past{background:white;color:#aab6bc}.day.selected{background:var(--navy)!important;color:white}.day.selected .day-price{color:#d5e9ee}.day.in-range{background:#d5e8ee}.day.in-range .day-price{color:#325f70}.day.checkout{background:linear-gradient(135deg,#d5e8ee 50%,#f2f3f4 50%)}.day.unknown{background:#f2f3f4;color:#7a8890}.calendar-foot{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-top:20px;padding-top:18px;border-top:1px solid var(--line)}.legend{display:flex;gap:17px;font-size:.75rem}.legend>span{display:flex;gap:6px;align-items:center}.legend i{width:11px;height:11px;border-radius:2px;display:inline-block}.available-key{background:var(--green)}.unavailable-key{background:#e6e8eb}.selected-key{background:var(--navy)}.text-button{border:0;background:transparent;padding:6px 0;text-decoration:underline;text-underline-offset:3px;font-size:.8125rem}.calendar-note{font-size:.75rem;color:var(--muted);margin-top:14px;max-width:540px}.calendar-status{font-size:.875rem;color:var(--muted)}.calendar-status:not(:empty){padding:14px;background:var(--pale);border-radius:7px;margin-bottom:16px}.booking-assurance{display:grid;grid-template-columns:1fr 1fr;gap:24px;margin-top:27px;padding-top:25px;border-top:1px solid var(--line)}.booking-assurance span{color:var(--bright);display:block;font-size:1.4rem;margin-bottom:8px}.booking-assurance strong{font-size:.875rem}.booking-assurance p{font-size:.8125rem;color:var(--muted);margin-top:5px}.quote-panel{align-self:start;position:sticky;top:20px;border:1px solid var(--line);box-shadow:var(--shadow);border-radius:12px;padding:25px;background:white}.quote-top h2{font-size:1.3rem}.discount-pill{display:inline-block;font-size:.75rem;font-weight:600;padding:7px 11px;background:var(--green);color:#28604e;border-radius:5px;margin-top:14px}.date-summary{display:grid;grid-template-columns:1fr 1fr;margin-top:24px;border:1px solid var(--line);border-radius:7px}.date-summary>div{padding:12px}.date-summary>div+div{border-left:1px solid var(--line)}.date-summary span{font-size:.625rem;font-weight:700;letter-spacing:.12em;display:block;color:var(--muted);margin-bottom:7px}.date-summary strong{font-size:.9375rem}.stay-length{font-size:.8125rem;color:var(--muted);margin-top:13px}.quote-empty{padding:25px 0;text-align:center}.quote-empty>span{font-size:2rem;color:var(--bright)}.quote-empty p{font-size:.875rem;color:var(--muted);margin-top:8px}.quote-lines{margin:20px 0}.price-row{display:flex;justify-content:space-between;gap:14px;margin:10px 0;font-size:.875rem}.price-row.discount{color:#28604e}.price-row.total{border-top:1px solid var(--line);padding-top:16px;margin-top:18px;font-size:1.12rem;font-weight:700}.payment-due{padding:14px;background:var(--pale);border-radius:7px;margin-top:18px;font-size:.8125rem}.payment-due strong{display:block;font-size:.9375rem;margin-bottom:5px}.primary-button{width:100%;border:0;background:var(--blue);color:white;font-weight:700;border-radius:7px;padding:15px 20px;font-size:.9375rem}.primary-button:hover:not(:disabled){background:#0c4c61}.primary-button:disabled{background:#dce6eb;color:#6b808b}.small-note{font-size:.75rem;color:var(--muted);text-align:center;margin-top:12px}.payment-methods{display:flex;gap:10px;justify-content:center;font-size:.8125rem;color:var(--muted);padding-top:17px;margin-top:17px;border-top:1px solid var(--line)}.inline-error{background:#fff3e8;color:#8b421f;border:1px solid #f1d6be;border-radius:7px;padding:13px;font-size:.875rem;margin:14px 0}.house-section{background:var(--pale);padding:48px 5%;display:grid;grid-template-columns:1fr 1.1fr;gap:60px}.house-copy h2{font-size:2rem;margin-bottom:20px}.house-copy>p:not(.eyebrow){color:var(--muted);font-size:.9375rem}.amenities{display:grid;grid-template-columns:1fr 1fr;gap:17px;margin:24px 0;font-size:.875rem}.amenities span:before{content:'✓';color:var(--blue);padding-right:9px}.text-link{font-size:.875rem;font-weight:600;text-underline-offset:5px}.detail-photos{display:grid;grid-template-columns:1.25fr 1fr;gap:12px;min-height:290px}.detail-photos button{border-radius:9px}.how-section{padding:54px 5%}.steps{display:grid;grid-template-columns:repeat(3,1fr);gap:40px;margin-top:30px}.steps article{border-top:1px solid var(--line);padding-top:22px}.steps article>span{font-family:Manrope;font-size:.875rem;color:var(--bright);display:block;margin-bottom:16px}.steps h3{margin-bottom:10px}.steps p{font-size:.875rem;color:var(--muted)}footer{padding:32px 5%;background:var(--navy);color:white;display:flex;align-items:center;justify-content:space-between;gap:20px;font-size:.875rem}footer img{width:150px}footer p{color:#cfdee5;font-size:.8125rem;margin-bottom:5px}footer a{text-underline-offset:4px}dialog{border:0;padding:0;box-shadow:0 25px 90px #081e3280;border-radius:14px}dialog::backdrop{background:#082b3bd9;backdrop-filter:blur(4px)}.dialog-close{position:absolute;top:12px;right:12px;width:36px;height:36px;border:0;border-radius:50%;background:white;box-shadow:0 2px 8px #12374922;font-size:1.5rem;z-index:2}.gallery-dialog{max-width:1000px;width:90vw;background:var(--navy);color:white}.gallery-dialog>img{width:100%;max-height:75vh;object-fit:contain;display:block}.gallery-controls{padding:15px 20px;display:flex;justify-content:space-between;align-items:center;gap:15px}.gallery-controls button{background:transparent;border:1px solid #c3dde560;color:white;border-radius:50%;width:38px;height:38px;font-size:1.5rem}.gallery-controls p{font-size:.875rem}.booking-dialog{width:min(620px,94vw);padding:32px;max-height:92vh;overflow:auto}.booking-dialog h2{padding-right:22px}.modal-summary{padding:16px;background:var(--pale);border-radius:7px;margin:20px 0;font-size:.875rem}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}.form-grid label{font-size:.875rem;display:flex;flex-direction:column;gap:8px}.form-grid input,.form-grid select{border:1px solid #b9cbd4;border-radius:6px;padding:12px;width:100%;background:white}.payment-choices{border:0;margin:24px 0;padding:0}.payment-choices legend{font-weight:700;font-size:.9375rem;margin-bottom:12px}.payment-choices label{display:flex;gap:12px;align-items:flex-start;padding:15px;border:1px solid var(--line);border-radius:7px;margin:9px 0}.payment-choices label:has(input:checked){border-color:var(--blue);background:var(--pale)}.payment-choices strong{font-size:.9375rem}.payment-choices span{display:block;font-size:.8125rem;color:var(--muted);line-height:1.5;margin-top:5px}input[type=radio],input[type=checkbox]{accent-color:var(--blue);flex-shrink:0;width:17px;height:17px}.consent{display:flex;align-items:flex-start;gap:10px;font-size:.8125rem;line-height:1.6;margin:18px 0 24px}.honeypot{position:absolute;left:-9999px}.preview-banner{background:#fdf0d7;color:#62490d;text-align:center;padding:9px 20px;font-size:.8125rem;border-bottom:1px solid #e3cc96}.result-link{display:block;text-align:center;text-decoration:none;margin-top:18px}.calendar-skeleton{height:290px;background:linear-gradient(90deg,#f3f6f8,#e7eef2,#f3f6f8);background-size:200% 100%;border-radius:8px;animation:loading 1.4s infinite}@keyframes loading{to{background-position:-200% 0}}[hidden]{display:none!important}@media(min-width:1450px){.site-header{padding-left:calc((100vw - 1296px)/2);padding-right:calc((100vw - 1296px)/2)}}@media(max-width:1050px){.direct-benefit{display:none}.booking-layout{gap:25px;grid-template-columns:minmax(0,1.6fr) minmax(285px,1fr)}.calendars{gap:12px}.day{height:42px}.day .day-price{font-size:.625rem}.quote-panel{padding:20px}.site-header nav{gap:18px}.house-section{gap:30px}}@media(max-width:800px){.site-header{height:75px;padding:10px 5%;gap:15px}.site-header img{width:125px;height:50px}.site-header nav{display:none}.language{margin-left:auto}.header-book{font-size:.8125rem;padding:11px 13px}.property-intro{padding-top:25px}.property-facts{font-size:.8125rem}.photo-grid{height:215px;grid-template-columns:1.7fr 1fr}.photo-grid>.photo:last-child{display:none}.booking-layout{grid-template-columns:1fr;padding-top:28px;gap:28px}.quote-panel{position:static}.calendars{gap:24px}.day{height:47px}.day .day-price{font-size:.6875rem}.house-section{grid-template-columns:1fr;gap:28px}.detail-photos{min-height:230px}.steps{gap:20px}.how-section h2{font-size:1.45rem}footer{flex-wrap:wrap}footer img{width:120px}}@media(max-width:480px){.photo-grid{height:190px}.photo-main span{font-size:.75rem;bottom:12px;left:12px}.property-intro h1{font-size:1.7rem}.calendars{grid-template-columns:1fr;gap:25px}.month:nth-child(2){border-top:1px solid var(--line);padding-top:25px}.day{height:49px}.day .day-price{font-size:.6875rem}.calendar-toolbar p{font-size:.8125rem}.legend{gap:10px;font-size:.6875rem}.calendar-foot{align-items:flex-start}.steps{grid-template-columns:1fr;gap:25px}.booking-dialog{padding:26px 20px}.form-grid{grid-template-columns:1fr}.house-copy h2{font-size:1.7rem}.booking-assurance{gap:18px}.amenities{font-size:.8125rem}.detail-photos{min-height:210px}.calendar-note{font-size:.75rem}}@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
.quote-property-photo{width:100%;height:140px;object-fit:cover;border-radius:7px;margin-bottom:20px}.booking-layout{padding-top:10px}.photo-grid{margin-bottom:40px}.property-intro{padding-bottom:28px}@media(max-width:800px){.quote-property-photo{height:170px}.booking-layout{padding-top:8px}.photo-grid{margin-bottom:28px}}
.day{min-height:3.1rem;height:auto;padding:5px 0}.day .day-price{font-size:.75rem}.weekdays span,.eyebrow,.small-note,.calendar-note,.legend{font-size:.8125rem}.date-summary span{font-size:.75rem}
.preview-banner{position:sticky;top:0;z-index:20}
.day.selected .day-number{text-decoration:none}
.day.unknown{background:white;border:1px dashed #d3dfe5;color:#788993}.unverified-key{background:white;border:1px dashed #9fb2bd}

/* Lead with the property, then its live booking calendar. */
.hero-photos{margin:24px 5% 0;height:clamp(360px,39vw,510px);grid-template-columns:2fr 1fr;grid-template-rows:1fr 1fr;gap:12px}.hero-photos .photo-main{grid-row:1 / 3}.hero-photos .photo-main img{object-position:right center}.property-intro{padding-top:30px;padding-bottom:36px;align-items:flex-start}.property-intro>div:first-child{max-width:760px}.property-intro h1{font-size:clamp(1.9rem,3.5vw,3rem);line-height:1.15}.hero-description{color:var(--muted);margin-top:16px;max-width:660px}.hero-book{display:inline-block;margin-top:18px}.direct-benefit{margin-top:12px}.booking-layout{border-top:1px solid var(--line);margin:0 5%;padding:32px 0 60px}.hero-photos .photo:last-child{display:block}@media(max-width:800px){.hero-photos{height:400px;grid-template-columns:1.65fr 1fr;gap:8px;margin-top:18px}.hero-description{font-size:.9375rem}.property-intro{padding-top:24px;padding-bottom:28px}.booking-layout{padding-top:28px}}@media(max-width:480px){.hero-photos{height:370px;grid-template-columns:1fr 1fr;grid-template-rows:240px 122px;gap:8px}.hero-photos .photo-main{grid-column:1 / 3;grid-row:1}.property-intro h1{font-size:2rem}.hero-description{font-size:.875rem}}

.booking-layout>*{min-width:0}.legend{flex-wrap:wrap}@media(max-width:800px){.booking-layout{grid-template-columns:minmax(0,1fr)}}

.modal-payment{padding:18px;background:var(--pale);border-radius:8px;margin:0 0 24px}.modal-payment h3{font-size:1rem;margin-bottom:14px}.modal-payment p{font-size:.8125rem;color:var(--muted);margin-top:12px}.modal-payment .price-row{align-items:baseline}.modal-payment .price-row strong{white-space:nowrap}.modal-payment .booking-next-step{padding-top:12px;border-top:1px solid var(--line)}

.checkout-steps{font-weight:700;color:#17667c}.checkout-timeout{position:sticky;top:0;z-index:2;padding:12px;background:#fff2d5;border-radius:10px;font-weight:700}.checkout-agreement{display:block;width:100%;height:540px;border:1px solid #d5e4e8;border-radius:12px;background:white}.checkout-bank{display:grid;grid-template-columns:auto 1fr;gap:12px;padding:20px;background:#edf5f7;border-radius:12px}.checkout-bank dd{margin:0;overflow-wrap:anywhere;font-weight:600}.checkout-pet-choice{display:grid;gap:8px;margin:18px 0}.checkout-pet-choice select{max-width:160px}.checkout-pet-choice small{color:#57717d}#booking-result .text-link{display:block;margin:18px 0}#booking-result .consent{margin:20px 0}@media(max-width:600px){.checkout-bank{grid-template-columns:1fr;gap:8px}.checkout-agreement{height:460px}.calendar-heading{flex-wrap:wrap}}

.checkout-party{border:1px solid var(--line);border-radius:12px;padding:18px;margin:20px 0}.checkout-party legend{font-weight:700;padding:0 6px}.assistance-details{border-top:1px solid var(--line);padding-top:14px}.assistance-details summary{cursor:pointer;font-weight:600}.assistance-details p{margin:12px 0}.assistance-details .consent input{flex-shrink:0}.assistance-details .consent{align-items:flex-start}

.checkout-party>label{display:inline-grid;width:calc(50% - 12px);vertical-align:top;margin-right:8px}.checkout-party select{width:100%;padding:12px;border:1px solid var(--line);border-radius:8px;background:white;color:var(--ink);font:inherit}.assistance-details .checkout-pet-choice{max-width:200px}@media(max-width:500px){.checkout-party>label{width:100%;margin-right:0}}

.calendar-retry{margin:0 0 20px;padding:12px 0;font-weight:700}

/* Keep checkout as the only scroll area while its dialog is open. */
html:has(#booking-dialog[open]),body:has(#booking-dialog[open]){overflow:hidden}.booking-dialog{overscroll-behavior:contain;scrollbar-gutter:stable}.booking-dialog .dialog-close{position:sticky;top:0;float:right;margin:-20px -20px 0 0;right:auto;z-index:3}.checkout-agreement{overflow:hidden}
.checkout-party-summary{margin:18px 0;color:var(--muted)}
