:root{--abc-type-hero:clamp(2.44125rem,5.3vw,4.768125rem);--abc-type-h1:clamp(2.44125rem,4.25vw,3.815rem);--abc-type-h2:clamp(1.953125rem,3.4vw,3.051875rem);--abc-type-h3:clamp(1.5625rem,2.2vw,1.953125rem);--abc-type-body:1rem;--abc-space-1:.25rem;--abc-space-2:.5rem;--abc-space-3:.75rem;--abc-space-4:1rem;--abc-space-5:1.25rem;--abc-space-6:1.5rem;--abc-space-8:2rem;--abc-space-10:2.5rem;--abc-space-12:3rem;--abc-space-16:4rem;--abc-space-20:5rem;--abc-space-24:6rem;--abc-gutter:1.25rem;--abc-content-max:80rem;--abc-prose-max:37.5rem;--abc-target:44px}
@media(min-width:768px){:root{--abc-gutter:2rem}}
@media(min-width:1024px){:root{--abc-type-body:1.125rem}}
@media(min-width:1200px){:root{--abc-gutter:2.5rem}}
html body :is(h1,h2,h3,p,label,small,button,a,summary)>.cms-editable-text{font:inherit;letter-spacing:inherit}

:root{--abc-header-offset:96px;--abc-header-height:var(--abc-header-offset)}
body.fixedNavigation .topbar,body.fixedNavigation .topbar.solid{height:var(--abc-header-offset);box-sizing:border-box;padding:0 var(--abc-gutter,40px);gap:var(--abc-space-4,16px)}
body .topbar .brand{display:inline-flex;align-items:center;min-height:var(--abc-target,44px);flex-shrink:0;line-height:1.2}
body .topbar .navlinks{gap:var(--abc-space-3,12px);font-size:14px;line-height:20px;font-weight:500;letter-spacing:.04em}
body .topbar .navlinks>a{display:inline-flex;align-items:center;justify-content:center;box-sizing:border-box;min-width:var(--abc-target,44px);min-height:var(--abc-target,44px);white-space:nowrap}
body .topbar .navlinks>a.book{padding:var(--abc-space-3,12px) var(--abc-space-4,16px)}
body .topbar>.abcLangSwitch{box-sizing:border-box;flex-shrink:0;gap:0;padding:2px;margin:0}
body .topbar>.abcLangSwitch>a{box-sizing:border-box;display:inline-flex;align-items:center;justify-content:center;min-width:var(--abc-target,44px);min-height:var(--abc-target,44px);padding:var(--abc-space-2,8px);font-size:14px;line-height:20px;font-weight:600;letter-spacing:.02em}
body.fixedNavigation .topbar .menuBtn{display:none;box-sizing:border-box;align-items:center;justify-content:center;flex-shrink:0;width:var(--abc-target,44px);min-width:var(--abc-target,44px);height:var(--abc-target,44px);min-height:var(--abc-target,44px);padding:0;line-height:1}
body .mobileMenu{box-sizing:border-box;padding:var(--abc-space-6,24px) var(--abc-gutter,20px) max(var(--abc-space-6,24px),env(safe-area-inset-bottom))}
body .mobileMenu>.close{box-sizing:border-box;display:inline-flex;align-items:center;justify-content:center;width:var(--abc-target,44px);min-width:var(--abc-target,44px);height:var(--abc-target,44px);min-height:var(--abc-target,44px);padding:0;line-height:1}
body .mobileMenu nav{gap:var(--abc-space-2,8px);padding-top:var(--abc-space-4,16px);font-family:var(--font-sans,Inter,Arial,sans-serif);font-size:20px;line-height:28px}
body .mobileMenu nav>a{box-sizing:border-box;display:flex;align-items:center;min-height:var(--abc-target,44px);max-width:100%;padding:var(--abc-space-2,8px) 0;font-size:20px;line-height:28px;font-weight:400;white-space:normal;overflow-wrap:anywhere}
body .mobileMenu nav>a.book{width:auto;min-height:48px;padding:var(--abc-space-3,12px) var(--abc-space-4,16px);font-family:var(--font-sans,Inter,Arial,sans-serif);font-size:20px;line-height:28px;letter-spacing:.02em}
body .mobileMenu .mobileLangSwitch{flex-wrap:wrap;gap:var(--abc-space-2,8px);margin:var(--abc-space-4,16px) 0 0;padding:0}
body .mobileMenu .mobileLangSwitch>a{box-sizing:border-box;display:inline-flex;align-items:center;justify-content:center;min-width:var(--abc-target,44px);min-height:var(--abc-target,44px);padding:var(--abc-space-2,8px);font-size:14px;line-height:20px;font-weight:500;letter-spacing:.02em}
body .footerBottom{flex-wrap:wrap;align-items:center;gap:var(--abc-space-3,12px) var(--abc-space-6,24px)}
body .footerBottom>a{box-sizing:border-box;display:inline-flex;align-items:center;min-width:0;min-height:var(--abc-target,44px);max-width:100%;padding:var(--abc-space-2,8px) 0;white-space:normal;overflow-wrap:anywhere}
body .bookingHelpLink,body .bookingTrust .textLink{box-sizing:border-box;display:inline-flex;align-items:center;min-height:var(--abc-target,44px);max-width:100%;padding:var(--abc-space-2,8px) 0;white-space:normal;overflow-wrap:anywhere}
body .faq details{padding:var(--abc-space-3,12px) 0}
body .faq details>summary{box-sizing:border-box;min-height:48px;max-width:100%;padding:var(--abc-space-3,12px) 0;overflow-wrap:break-word}
body .field label,body .bookingBox label,body .contactForm label,body.homeRefined .homeHeroBooking .field label{font-size:14px;line-height:21px;font-weight:500;letter-spacing:.02em}
body .field label{margin-bottom:var(--abc-space-2,8px)}
body .field input,body .field select{font-family:var(--font-sans,Inter,Arial,sans-serif);font-size:16px;line-height:24px}
body.homeRefined .homeHeroBooking .field label{margin:0}
body.homeRefined .homeHeroBooking .field input,body.homeRefined .homeHeroBooking .field select{font-size:16px;line-height:24px}
body.homeRefined .homeBookingValue{font-size:16px;line-height:24px}
body.homeRefined .homeHeroBooking .bookingForm>button{font-size:16px;line-height:20px;font-weight:600;letter-spacing:.03em;white-space:normal;overflow-wrap:break-word}
body .contactForm{min-width:0;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--abc-space-6,24px)}
body .contactForm label{min-width:0}
body .contactForm input:not([type="checkbox"]):not([type="radio"]):not([type="hidden"]),body .contactForm select,body .contactForm textarea{box-sizing:border-box;width:100%;min-width:0;max-width:100%;min-height:52px;margin-top:var(--abc-space-2,8px);padding:var(--abc-space-3,12px);font-family:var(--font-sans,Inter,Arial,sans-serif);font-size:16px;line-height:24px;font-weight:400;letter-spacing:normal;text-transform:none}
body .contactForm textarea{min-height:180px}
body .contactForm .privacyAck{min-height:var(--abc-target,44px);font-size:16px;line-height:25.6px;font-weight:400;letter-spacing:normal;text-transform:none}
body .contactForm button{box-sizing:border-box;grid-column:1/-1;min-height:48px;max-width:100%;padding:var(--abc-space-3,12px) var(--abc-space-5,20px);font-family:var(--font-sans,Inter,Arial,sans-serif);font-size:16px;line-height:20px;font-weight:600;letter-spacing:.03em;white-space:normal;overflow-wrap:anywhere}
body .bookingBox{box-sizing:border-box;min-width:0;max-width:100%;padding:var(--abc-space-6,24px)}
body .bookingBox>h2{margin-bottom:var(--abc-space-6,24px)}
body .bookingBox>label{margin:var(--abc-space-6,24px) 0 var(--abc-space-2,8px)}
body .bookingBox>h2+label{margin-top:0}
body .bookingBox input:not([type="hidden"]),body .bookingBox select,body .bookingBox.hasBookingCalendar .flatpickr-input[readonly]{box-sizing:border-box;width:100%;min-width:0;max-width:100%;min-height:52px;padding:var(--abc-space-3,12px);font-family:var(--font-sans,Inter,Arial,sans-serif);font-size:16px;line-height:24px;font-weight:400;letter-spacing:normal;text-transform:none}
body .bookingBox>button{box-sizing:border-box;min-height:48px;margin-top:var(--abc-space-6,24px);padding:var(--abc-space-3,12px) var(--abc-space-5,20px);font-size:16px;line-height:20px;font-weight:600;letter-spacing:.03em;white-space:normal;overflow-wrap:anywhere}
body .prototypeNote,body .notice,body .bookingResult .status,body .bookingCalendarNote,body .bookingCalendarStatus,body .bookingQuoteMessage,body .abcBookingCalendar .bookingCalendarNote,body.homeRefined .homeHeroBooking .bookingCalendarNote,body.homeRefined .homeHeroBooking .bookingCalendarStatus,body.homeRefined .homeHeroBooking .bookingNote{font-size:16px;line-height:25.6px;font-weight:400}
body .notice{padding:var(--abc-space-4,16px)}
/* This single-month dialog keeps the original picker nodes and event handlers.
   Seven 44px columns require 308px; its border and padding fit a 320px screen. */
body .abcBookingCalendar{box-sizing:border-box;width:326px;padding:8px;font-size:16px;line-height:24px}
body .abcBookingCalendar.open{max-width:100vw}
body .abcBookingCalendar .flatpickr-rContainer,body .abcBookingCalendar .flatpickr-weekdays,body .abcBookingCalendar .flatpickr-days,body .abcBookingCalendar .dayContainer{box-sizing:border-box;width:308px;min-width:308px;max-width:308px}
body .abcBookingCalendar .dayContainer{display:grid;grid-template-columns:repeat(7,44px);grid-auto-rows:44px;justify-content:start;gap:0;padding:0}
body .abcBookingCalendar .flatpickr-day{box-sizing:border-box;width:44px;min-width:44px;max-width:44px;height:44px;min-height:44px;line-height:42px;font-size:16px;flex-basis:44px}
body .abcBookingCalendar .flatpickr-weekdays{height:32px}
body .abcBookingCalendar .flatpickr-weekdaycontainer{display:grid;grid-template-columns:repeat(7,44px);width:308px}
body .abcBookingCalendar .flatpickr-weekday{font-size:14px;line-height:20px;font-weight:500}
body .abcBookingCalendar .flatpickr-months{position:relative;height:88px}
body .abcBookingCalendar .flatpickr-months .flatpickr-month{height:88px;overflow:visible}
body .abcBookingCalendar .flatpickr-months .flatpickr-prev-month,body .abcBookingCalendar .flatpickr-months .flatpickr-next-month{box-sizing:border-box;width:44px;min-width:44px;height:44px;min-height:44px;padding:0}
body .abcBookingCalendar .flatpickr-months .flatpickr-prev-month:not(.flatpickr-disabled),body .abcBookingCalendar .flatpickr-months .flatpickr-next-month:not(.flatpickr-disabled){display:flex;align-items:center;justify-content:center}
body .abcBookingCalendar .flatpickr-current-month{position:static;display:flex;flex-direction:column;align-items:center;width:100%;height:88px;padding:0;font-size:16px;line-height:24px;transform:none}
body .abcBookingCalendar .flatpickr-current-month span.cur-month{box-sizing:border-box;display:flex;align-items:center;justify-content:center;width:100%;height:44px;margin:0;padding:0 44px;font-size:16px;line-height:24px}
body .abcBookingCalendar .flatpickr-current-month .numInputWrapper{display:grid;grid-template-columns:44px 64px 44px;gap:8px;align-items:center;width:auto;height:44px}
body .abcBookingCalendar .flatpickr-current-month input.cur-year{box-sizing:border-box;grid-column:2;grid-row:1;width:64px;min-width:44px;height:44px;min-height:44px;padding:8px;margin:0;font-size:16px;line-height:24px;text-align:center}
body .abcBookingCalendar .numInputWrapper span.arrowUp,body .abcBookingCalendar .numInputWrapper span.arrowDown{box-sizing:border-box;position:relative;grid-row:1;top:auto;right:auto;width:44px;min-width:44px;height:44px;min-height:44px;padding:0;opacity:1;border:1px solid var(--line,#dad6ca)}
body .abcBookingCalendar .numInputWrapper span.arrowUp{grid-column:3}
body .abcBookingCalendar .numInputWrapper span.arrowDown{grid-column:1}
body .abcBookingCalendar .numInputWrapper span.arrowUp::after,body .abcBookingCalendar .numInputWrapper span.arrowDown::after{top:50%;left:50%;transform:translate(-50%,-50%)}
body .abcBookingCalendar .abcCalendarFooter p{font-size:16px;line-height:25.6px}
body .abcBookingCalendar .abcCalendarFooter button{box-sizing:border-box;min-width:44px;min-height:44px;max-width:100%;padding:10px 12px;font-size:16px;line-height:24px;white-space:normal;overflow-wrap:anywhere}
body .topbar .brand>.cms-editable-text,body .topbar .navlinks a>.cms-editable-text,body .topbar>.abcLangSwitch a>.cms-editable-text,body .topbar .menuBtn>.cms-editable-text,body .mobileMenu nav>a>.cms-editable-text,body .mobileMenu .mobileLangSwitch>a>.cms-editable-text,body .footerBottom>a>.cms-editable-text,body .field label>.cms-editable-text,body .bookingBox label>.cms-editable-text,body .contactForm label>.cms-editable-text,body .contactForm button>.cms-editable-text,body .bookingForm>button>.cms-editable-text,body .bookingBox>button>.cms-editable-text,body .faq details>summary>.cms-editable-text,body .prototypeNote>.cms-editable-text,body .notice>.cms-editable-text,body .bookingCalendarStatus>.cms-editable-text{font:inherit;letter-spacing:inherit;color:inherit;text-transform:inherit;min-width:0}
@media(max-width:1200px){
 :root{--abc-header-offset:88px}
 /* navigation.css and the old homepage tablet rule use !important here. */
 body.fixedNavigation .topbar{padding-left:var(--abc-gutter,20px)!important;padding-right:var(--abc-gutter,20px)!important;gap:var(--abc-space-2,8px)!important}
 body.fixedNavigation .topbar .navlinks{display:none!important}
 body.fixedNavigation .topbar .menuBtn{display:inline-flex!important}
}
@media(max-width:600px){
 body.fixedNavigation .topbar .brand{font-size:21px;letter-spacing:.07em}
 body.fixedNavigation .topbar>.abcLangSwitch{padding:0}
 body.homeRefined .homeHeroBooking .bookingForm,body.homeRefined .homeHeroBooking .bookingForm.hasBookingCalendar{grid-template-columns:repeat(2,minmax(0,1fr))}
 body.homeRefined .homeHeroBooking .field,body.homeRefined .homeHeroBooking .bookingVillaField{min-height:72px;padding:var(--abc-space-2,8px) var(--abc-space-3,12px);gap:var(--abc-space-2,8px);border-right:0;border-bottom:1px solid var(--home-line)}
 body.homeRefined .homeHeroBooking .field:nth-of-type(odd){border-right:1px solid var(--home-line)}
 body.homeRefined .homeHeroBooking .field label{white-space:normal}
 body.homeRefined .homeHeroBooking .bookingForm>button{grid-column:1/-1;min-height:48px;max-width:100%;margin-top:var(--abc-space-2,8px);padding:var(--abc-space-3,12px) var(--abc-space-5,20px);font-size:16px;line-height:20px}
 body.homeRefined .homeHeroBooking .bookingForm>button::before,body.homeRefined .homeHeroBooking .bookingForm>button::after{display:none}
 body .contactForm{grid-template-columns:minmax(0,1fr)}
 body .contactForm .full,body .contactForm button{grid-column:1/-1}
 body .bookingBox{padding:var(--abc-space-5,20px)}
}
@media(max-width:374px){
 :root{--abc-header-offset:112px}
 body.fixedNavigation .topbar{display:grid;grid-template-columns:minmax(0,1fr) var(--abc-target,44px);grid-template-rows:44px 46px;align-content:center;padding-top:var(--abc-space-2,8px);padding-bottom:var(--abc-space-2,8px);gap:var(--abc-space-1,4px) var(--abc-space-2,8px)!important}
 body.fixedNavigation .topbar .brand{grid-column:1;grid-row:1;margin:0}
 body.fixedNavigation .topbar>.abcLangSwitch{grid-column:1/-1;grid-row:2;justify-self:center;margin:0}
 body.fixedNavigation .topbar .menuBtn{grid-column:2;grid-row:1}
}
@media(max-width:325px){
 body .abcBookingCalendar{width:100vw;padding-left:calc((100vw - 310px)/2);padding-right:calc((100vw - 310px)/2)}
 /* Override only the original dialog's fixed !important left position. */
 body .abcBookingCalendar.open{left:0!important;transform:translateY(-50%)}
}

.homeRefined .heroCopy>h1{font-size:var(--abc-type-hero);line-height:1.10;letter-spacing:-.015em;margin-bottom:var(--abc-space-6)}
.homeRefined .heroCopy>p{font-size:1rem;line-height:1.65;letter-spacing:normal}
.homeRefined .heroCopy>.eyebrow,.homeRefined .sectionHead>small,.homeRefined .homeServices .sectionLabel,.homeRefined .locationCopy>.eyebrow{font-size:.75rem;line-height:1.4;font-weight:600;letter-spacing:.10em}
.homeRefined .heroCopy>.eyebrow{margin-bottom:var(--abc-space-4)}
.homeRefined .heroCopy>.primary{margin-top:var(--abc-space-6);min-height:48px;padding:var(--abc-space-3) var(--abc-space-5);font:600 1rem/1.25 var(--font-sans);letter-spacing:.03em}
/* Full-width wrappers follow the hero gutter; only text lines are capped. */
.homeRefined .homeHeroContentArea{max-width:none;margin-inline:0}
.homeRefined .homeHeroBooking{max-width:none;margin-inline:0}
.homeRefined :is(.homeIntroHeading,.sectionHead h2,.homeServices .expHeader h2){font-size:var(--abc-type-h2);line-height:1.12;letter-spacing:-.01em}
.homeRefined .homeIntroHeading{margin:0;max-width:24ch}
.homeRefined .homeIntroCopy{gap:var(--abc-space-4);margin-bottom:var(--abc-space-6)}
.homeRefined .homeIntroText,.homeRefined .homeWellnessGallery .wellnessDescription{font-size:var(--abc-type-body);line-height:1.65;max-width:var(--abc-prose-max);letter-spacing:normal}
.homeRefined .homeStatsLabel{font-size:.875rem;line-height:1.5;font-weight:500;letter-spacing:.02em;margin-top:var(--abc-space-2)}
.homeRefined .homeStatsGrid{margin-bottom:var(--abc-space-6)}
.homeRefined .villasGrid.homeVillasColumns{padding-inline:var(--abc-gutter);column-gap:var(--abc-space-6);padding-top:var(--abc-space-8);padding-bottom:var(--abc-space-12)}
.homeRefined .homeVillasColumns .cardInfo{padding:var(--abc-space-6);gap:var(--abc-space-4)}
.homeRefined .homeVillasColumns .cardInfo h3{font-size:var(--abc-type-h3);line-height:1.2;letter-spacing:-.01em;margin-bottom:var(--abc-space-2)}
.homeRefined .homeVillasColumns .cardInfo p{font-size:1rem;line-height:1.65;letter-spacing:normal}
.homeRefined .homeVillasColumns .cardInfo .textLink{font-size:.875rem;line-height:1.5;letter-spacing:.02em;min-height:44px}
.homeRefined .editorial.homeWellnessGallery{padding:var(--abc-space-4) var(--abc-gutter) var(--abc-space-16)}
.homeRefined .homeWellnessGallery .sectionHead{max-width:none;margin-bottom:var(--abc-space-6)}
.homeRefined .homeWellnessGallery .wellnessDescription{margin-top:var(--abc-space-4)}
.homeRefined .homeWellnessGallery .wellnessVillaTabs{margin-bottom:var(--abc-space-6)}
.homeRefined .homeWellnessGallery .wellnessThumbnails{gap:var(--abc-space-4);margin-top:var(--abc-space-3)}
.homeRefined .homeWellnessGallery .wellnessThumb,.homeRefined .homeWellnessGallery .wellnessCaption,.homeRefined .homeWellnessGallery .wellnessControls{font-size:.875rem;line-height:1.5}
.homeRefined .homeWellnessGallery .wellnessControls{gap:var(--abc-space-2)}
.homeRefined .homeServices{width:100%;max-width:none;margin-inline:0;padding:var(--abc-space-12) var(--abc-gutter);column-gap:var(--abc-space-8)}
.homeRefined .homeServices .expHeader h2{margin:var(--abc-space-3) 0 var(--abc-space-4)}
.homeRefined .homeServices .expHeader>p{font-size:1rem;line-height:1.65}
.homeRefined .homeServices .expTabs button{font-size:.875rem;line-height:1.5;min-height:48px;padding:var(--abc-space-3) var(--abc-space-4);white-space:normal;overflow-wrap:anywhere}
.homeRefined .homeServices .expTabs button span{font-size:inherit;line-height:inherit;letter-spacing:.02em}
.homeRefined .homeServices .expPanel{margin-top:var(--abc-space-6)}
.homeRefined .homeServices .expCards{gap:var(--abc-space-4)}
.homeRefined .homeServices [data-exp-panel="trips"] .homeServiceCard>h3{font:500 1.25rem/1.3 var(--font-sans);min-height:64px;padding:var(--abc-space-4) 56px var(--abc-space-4) var(--abc-space-5)}
.homeRefined .homeServices [data-exp-panel="trips"] .homeServiceItem .expDetail p{font-size:1rem;line-height:1.65;font-weight:400;overflow-wrap:anywhere}
.homeRefined .homeServices :is(.expContact,.expServiceNotice,.expFooter p){font-size:.875rem;line-height:1.5;letter-spacing:normal}
.homeRefined .homeServices .expServiceNotice{max-width:var(--abc-prose-max);margin-top:var(--abc-space-4)}
.homeRefined .homeServices .expFooter{margin-top:var(--abc-space-1)}
.homeRefined .homeServices .expFooter p{max-width:var(--abc-prose-max)}
.homeRefined .locationCopy{left:var(--abc-gutter);max-width:calc(100% - 2 * var(--abc-gutter))}
.homeRefined .locationCopy h2{line-height:1.12;letter-spacing:-.01em}
.homeRefined .locationCopy p{font-size:1rem;line-height:1.65;max-width:23.125rem}
.homeRefined .locationCopy .textLink{font-size:.875rem;line-height:1.5;letter-spacing:.03em}
.homeRefined .footer{padding-inline:var(--abc-gutter)}
.homeRefined .footerBottom{font-size:.875rem;line-height:1.5;gap:var(--abc-space-3) var(--abc-space-6)}
.homeRefined :is(.heroCopy>h1,.heroCopy>p,.heroCopy>.eyebrow,.heroCopy>.primary,.homeIntroHeading,.homeIntroText,.homeStatsLabel,.homeVillasColumns .cardInfo h3,.homeVillasColumns .cardInfo p,.homeVillasColumns .cardInfo .textLink,.sectionHead>small,.sectionHead h2,.homeWellnessGallery .wellnessDescription,.homeServices .sectionLabel,.homeServices .expHeader h2,.homeServices .expHeader>p,.homeServices [data-exp-panel="trips"] .homeServiceCard>h3,.homeServices [data-exp-panel="trips"] .expDetail p,.homeServices .expContact,.homeServices .expServiceNotice,.homeServices .expFooter p,.locationCopy>.eyebrow,.locationCopy h2,.locationCopy p,.locationCopy .textLink,.footerBottom>span)>.cms-editable-text{font:inherit;letter-spacing:inherit;color:inherit}
.homeRefined .heroCopy>.primary .cms-editable-text{font:inherit;letter-spacing:inherit;color:inherit}
@media(min-width:951px){.homeRefined .hero{padding-inline:var(--abc-gutter)}}
@media(max-width:950px){
 .homeRefined .hero[data-home-hero="video"]{padding-top:var(--abc-header-offset,var(--abc-header-height,72px))}
 .homeRefined .hero[data-home-hero="video"]:not([data-home-hero-mobile-layout="custom"])>.homeHeroContentArea{padding:var(--abc-space-8) var(--abc-gutter)}
 .homeRefined .heroCopy>h1{line-height:1.12;letter-spacing:-.01em}
 .homeRefined .homeServices .expTabs{margin-top:var(--abc-space-5)}
}
@media(max-width:620px){
 .homeRefined .villasGrid.homeVillasColumns{row-gap:var(--abc-space-8);padding-top:var(--abc-space-6);padding-bottom:var(--abc-space-12)}
 .homeRefined .homeVillasColumns .cardInfo{padding:var(--abc-space-5)}
 .homeRefined .editorial.homeWellnessGallery{padding-top:var(--abc-space-3);padding-bottom:var(--abc-space-12)}
 .homeRefined .homeWellnessGallery .wellnessThumbnails{gap:var(--abc-space-2)}
 .homeRefined .homeServices{padding-block:var(--abc-space-12);column-gap:0}
 .homeRefined .homeServices .expCards{gap:var(--abc-space-3)}
 .homeRefined .homeServices .expTabs{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));width:100%}
 .homeRefined .locationCopy{bottom:var(--abc-space-3)}
 .homeRefined .locationCopy h2{font-size:1.375rem}
 .homeRefined .locationCopy .textLink{margin-top:var(--abc-space-1)}
}

body:not(.homeRefined) .faqWrap,body:not(.homeRefined) .contactWrap,body:not(.homeRefined) .bookingPage,body:not(.homeRefined) .privacyPage{width:100%;max-width:none;margin-inline:0;padding:var(--abc-space-10,40px) var(--abc-gutter,20px) var(--abc-space-24,96px);box-sizing:border-box}
body:not(.homeRefined) .simpleHead{max-width:100%;margin-bottom:var(--abc-space-12,48px)}
body:not(.homeRefined) .simpleHead h1,body:not(.homeRefined) .privacyPage h1{font-size:var(--abc-type-h1);line-height:1.1;letter-spacing:-.015em;margin:0 0 var(--abc-space-6,24px);overflow-wrap:break-word}
body:not(.homeRefined) .simpleHead>p{max-width:var(--abc-prose-max,37.5rem);font-size:var(--abc-type-body,1rem);line-height:1.65;letter-spacing:normal;margin:0}
body:not(.homeRefined) .simpleHead>.sectionLabel,body:not(.homeRefined) .privacyPage>.sectionLabel{margin-bottom:var(--abc-space-4,16px)}
.pageHero[data-villa-hero]>.heroInner{width:100%;padding-inline:var(--abc-gutter,20px);text-align:left;box-sizing:border-box}
.pageHero[data-villa-hero]>.heroInner>h1{font-size:var(--abc-type-h1);line-height:1.1;letter-spacing:-.015em;margin:0 0 var(--abc-space-4,16px)}
.pageHero[data-villa-hero]>.heroInner>p{font-size:16px;line-height:1.65;letter-spacing:normal;max-width:var(--abc-prose-max,37.5rem)}
.locationPageHero[data-location-layout]>.heroInner>h1{font-size:var(--abc-type-h1);line-height:1.1;letter-spacing:-.015em;margin-bottom:var(--abc-space-4,16px)}
.locationPageHero[data-location-layout]>.heroInner>p{font-size:16px;line-height:1.65;letter-spacing:normal;max-width:var(--abc-prose-max,37.5rem)}
.detailIntro[data-villa-detail-layout]{max-width:none;margin-inline:0;padding:var(--abc-space-20,80px) var(--abc-gutter,20px);column-gap:var(--abc-space-16,64px)}
.detailIntro[data-villa-detail-layout]>h2{font-size:var(--abc-type-h2);line-height:1.12;letter-spacing:-.01em}
.detailIntro[data-villa-detail-layout]>div>p:first-child{max-width:var(--abc-prose-max,37.5rem);font-size:var(--abc-type-body,1rem);line-height:1.65;letter-spacing:normal}
.detailIntro[data-villa-detail-layout] .featureList{column-gap:var(--abc-space-6,24px)}
.detailIntro[data-villa-detail-layout] .featureList>div{min-height:80px;padding:var(--abc-space-4,16px) 0;font-size:16px;line-height:1.65;letter-spacing:normal;overflow-wrap:anywhere}
/* The existing34/-18 and24/-8 grid/margin pairs already create a16px note gap. */
.detailIntro[data-villa-detail-layout] .privateUseNote{font-size:16px;line-height:1.65;letter-spacing:normal}
.facts .fact{min-width:0}
.facts .fact>small{font-size:14px;line-height:21px;font-weight:500;letter-spacing:.02em;overflow-wrap:anywhere}
.facts .fact>span{overflow-wrap:anywhere}
body:not(.homeRefined) .gallerySection{padding:var(--abc-space-24,96px) var(--abc-gutter,20px);box-sizing:border-box}
body:not(.homeRefined) .galleryHead{gap:var(--abc-space-10,40px);margin-bottom:var(--abc-space-8,32px)}
body:not(.homeRefined) .galleryHead h2{font-size:var(--abc-type-h2);line-height:1.12;letter-spacing:-.01em}
body:not(.homeRefined) .galleryHead p{font-size:14px;line-height:21px;letter-spacing:normal}
.locationIntro,.intro.locationBottomIntro{width:100%;max-width:none;margin-inline:0;padding:var(--abc-space-24,96px) var(--abc-gutter,20px);gap:var(--abc-space-16,64px);box-sizing:border-box}
.locationIntro>*,.intro.locationBottomIntro>*{min-width:0}
.locationIntro h2,.intro.locationBottomIntro>h2,.villaMaps .mapIntro h2{font-size:var(--abc-type-h2);line-height:1.12;letter-spacing:-.01em;margin:0}
.locationIntro>p,.intro.locationBottomIntro .introText>p,.villaMaps .mapIntro>p{max-width:var(--abc-prose-max,37.5rem);font-size:var(--abc-type-body,1rem);line-height:1.65;letter-spacing:normal;margin:0}
.intro.locationBottomIntro .introText>p+p{margin-top:var(--abc-space-4,16px)}
.distanceGrid{max-width:none;margin-inline:0;padding:0 var(--abc-gutter,20px) var(--abc-space-24,96px);gap:var(--abc-space-4,16px);box-sizing:border-box}
.distanceGrid .distanceCard{padding:var(--abc-space-8,32px);min-width:0}
.distanceGrid .distanceCard small{font-size:14px;line-height:21px;font-weight:500;letter-spacing:.02em;overflow-wrap:anywhere}
.distanceGrid .distanceCard strong{line-height:1.12;margin:var(--abc-space-4,16px) 0 var(--abc-space-2,8px)}
.distanceGrid .distanceCard span{font-size:14px;line-height:21px;letter-spacing:normal}
.villaMaps{padding:var(--abc-space-24,96px) var(--abc-gutter,20px);box-sizing:border-box}
.villaMaps .mapIntro{gap:var(--abc-space-16,64px);margin-bottom:var(--abc-space-10,40px)}
.villaMaps .mapIntro>div{min-width:0}
.villaMaps .mapIntro .eyebrow{margin-bottom:var(--abc-space-4,16px)}
.villaMaps .mapGrid{gap:var(--abc-space-6,24px)}
.villaMaps .mapMeta{padding:var(--abc-space-6,24px);gap:var(--abc-space-6,24px)}
.villaMaps .mapMeta small{font-size:var(--abc-type-h3);line-height:1.2;letter-spacing:normal}
.villaMaps .mapMeta .mapFullAddress{font-size:16px;line-height:1.65;letter-spacing:normal;margin-top:var(--abc-space-3,12px)}
body:not(.homeRefined) .privacyPage{max-width:none}
body:not(.homeRefined) .privacyPage section{max-width:var(--abc-prose-max,37.5rem)}
body:not(.homeRefined) .privacyPage h2{font-size:var(--abc-type-h3);line-height:1.25;letter-spacing:-.01em;margin:var(--abc-space-10,40px) 0 var(--abc-space-3,12px)}
body:not(.homeRefined) .privacyPage p,body:not(.homeRefined) .privacyPage li{max-width:var(--abc-prose-max,37.5rem);font-size:var(--abc-type-body,1rem);line-height:1.65;letter-spacing:normal;overflow-wrap:break-word}
body:not(.homeRefined) .privacyPage p{margin:0 0 var(--abc-space-4,16px)}
body:not(.homeRefined) .privacyPage li+li{margin-top:var(--abc-space-2,8px)}
body:not(.homeRefined) .privacyPage .updated{font-size:14px;line-height:21px;letter-spacing:normal;margin-bottom:var(--abc-space-8,32px)}
body:not(.homeRefined) .bookingBox h2{font-size:var(--abc-type-h3);line-height:1.2;letter-spacing:-.01em}
body:not(.homeRefined) .bookingPanel{width:100%;max-width:none;grid-template-columns:minmax(0,.78fr) minmax(0,1.22fr);gap:var(--abc-space-8,32px)}
body:not(.homeRefined) .bookingPanel>*{min-width:0}
body:not(.homeRefined) .bookingTrust h3{font-size:var(--abc-type-h3);line-height:1.2;letter-spacing:-.01em}
body:not(.homeRefined) .bookingTrust .meta,body:not(.homeRefined) .bookingTrust p:not(.bookingQuotePrice){max-width:var(--abc-prose-max,37.5rem);font-size:16px;line-height:1.65;letter-spacing:normal}
body:not(.homeRefined) .faq{max-width:800px}
body:not(.homeRefined) .faq summary{font-size:25px;line-height:1.25;font-weight:400;letter-spacing:-.01em}
body:not(.homeRefined) .faq p{max-width:var(--abc-prose-max,37.5rem);font-size:16px;line-height:1.65;letter-spacing:normal}
body:not(.homeRefined) .contactGrid{grid-template-columns:minmax(0,.75fr) minmax(0,1.25fr);gap:var(--abc-space-16,64px)}
.contactMeta.contactRefined{gap:var(--abc-space-8,32px)}
.contactMeta.contactRefined .contactCompanyName{font-size:var(--abc-type-h3);line-height:1.2;letter-spacing:normal}
.contactMeta.contactRefined .contactBlockLabel,.contactMeta.contactRefined small{font-size:14px;line-height:21px;font-weight:500;letter-spacing:.02em;margin-bottom:var(--abc-space-4,16px)}
.contactMeta.contactRefined .contactVillaEntry+.contactVillaEntry{margin-top:var(--abc-space-4,16px)}
body:not(.homeRefined) .footer{padding:var(--abc-space-16,64px) var(--abc-gutter,20px) var(--abc-space-10,40px)}
body:not(.homeRefined) .footer h2{font-size:var(--abc-type-h2);line-height:1.12;letter-spacing:-.01em}
body:not(.homeRefined) .footerTop{gap:var(--abc-space-16,64px);padding-bottom:var(--abc-space-12,48px)}
body:not(.homeRefined) .footerBottom{gap:var(--abc-space-6,24px);padding-top:var(--abc-space-6,24px);font-size:14px;line-height:21px;letter-spacing:.02em}
/* CMS-bound text keeps the typography of its specific semantic parent. */
body:not(.homeRefined) .simpleHead h1>.cms-editable-text,body:not(.homeRefined) .simpleHead>p>.cms-editable-text,body:not(.homeRefined) .privacyPage h1>.cms-editable-text,body:not(.homeRefined) .privacyPage h2>.cms-editable-text,body:not(.homeRefined) .privacyPage p>.cms-editable-text,body:not(.homeRefined) .privacyPage li>.cms-editable-text,
.pageHero[data-villa-hero]>.heroInner>h1>.cms-editable-text,.pageHero[data-villa-hero]>.heroInner>p>.cms-editable-text,.locationPageHero[data-location-layout]>.heroInner>h1>.cms-editable-text,.locationPageHero[data-location-layout]>.heroInner>p>.cms-editable-text,
.detailIntro[data-villa-detail-layout]>h2>.cms-editable-text,.detailIntro[data-villa-detail-layout]>div>p:first-child>.cms-editable-text,.detailIntro[data-villa-detail-layout] .featureList>div>.cms-editable-text,.detailIntro[data-villa-detail-layout] .privateUseNote>.cms-editable-text,.facts .fact>small>.cms-editable-text,.facts .fact>span>.cms-editable-text,
body:not(.homeRefined) .galleryHead h2>.cms-editable-text,body:not(.homeRefined) .galleryHead p>.cms-editable-text,.locationIntro h2>.cms-editable-text,.locationIntro>p>.cms-editable-text,.intro.locationBottomIntro>h2>.cms-editable-text,.intro.locationBottomIntro .introText>p>.cms-editable-text,
.distanceGrid .distanceCard small>.cms-editable-text,.distanceGrid .distanceCard strong>.cms-editable-text,.distanceGrid .distanceCard span>.cms-editable-text,.villaMaps .mapIntro h2>.cms-editable-text,.villaMaps .mapIntro>p>.cms-editable-text,.villaMaps .mapMeta small>.cms-editable-text,.villaMaps .mapMeta .mapFullAddress>.cms-editable-text,
body:not(.homeRefined) .bookingBox h2>.cms-editable-text,body:not(.homeRefined) .bookingTrust h3>.cms-editable-text,body:not(.homeRefined) .bookingTrust .meta>.cms-editable-text,body:not(.homeRefined) .bookingTrust p>.cms-editable-text,body:not(.homeRefined) .faq summary>.cms-editable-text,body:not(.homeRefined) .faq p>.cms-editable-text,
.contactMeta.contactRefined .contactCompanyName>.cms-editable-text,.contactMeta.contactRefined .contactBlockLabel>.cms-editable-text,.contactMeta.contactRefined small>.cms-editable-text,body:not(.homeRefined) .footer h2>.cms-editable-text{font:inherit;letter-spacing:inherit;color:inherit}
@media(max-width:950px){
 .pageHero[data-villa-hero]{padding-top:var(--abc-header-offset,var(--abc-header-height,80px))}
 .pageHero[data-villa-hero]>.heroInner{padding:var(--abc-space-8,32px) var(--abc-gutter,20px)}
 .locationPageHero[data-location-layout]>.heroInner{padding:var(--abc-space-8,32px) var(--abc-gutter,20px) 0}
 .pageHero[data-villa-hero]>.heroInner>h1,.locationPageHero[data-location-layout]>.heroInner>h1,body:not(.homeRefined) .simpleHead h1,body:not(.homeRefined) .privacyPage h1{line-height:1.12;letter-spacing:-.01em}
 .detailIntro[data-villa-detail-layout]{padding:var(--abc-space-16,64px) var(--abc-gutter,20px)}
 .locationIntro,.intro.locationBottomIntro{grid-template-columns:minmax(0,1fr);gap:var(--abc-space-5,20px);padding-block:var(--abc-space-16,64px)}
 .villaMaps{padding-block:var(--abc-space-16,64px)}
 .villaMaps .mapIntro{gap:var(--abc-space-5,20px);margin-bottom:var(--abc-space-8,32px)}
 .distanceGrid{padding-bottom:var(--abc-space-16,64px)}
 body:not(.homeRefined) .contactGrid,body:not(.homeRefined) .bookingPanel{grid-template-columns:minmax(0,1fr);gap:var(--abc-space-8,32px)}
 .contactMeta.contactRefined{gap:var(--abc-space-6,24px)}
 body:not(.homeRefined) .footerTop{gap:var(--abc-space-8,32px);padding-bottom:var(--abc-space-8,32px)}
}
@media(max-width:600px){
 body:not(.homeRefined) .gallerySection{padding-block:var(--abc-space-12,48px) var(--abc-space-16,64px)}
 body:not(.homeRefined) .footer{padding-block:var(--abc-space-12,48px) var(--abc-space-8,32px)}
 .distanceGrid .distanceCard{padding:var(--abc-space-6,24px)}
}

.detailIntro[data-villa-detail-layout]{grid-template-columns:minmax(0,1fr);column-gap:0;row-gap:32px;padding-block:72px;text-align:left}
.detailIntro[data-villa-detail-layout]>h2{grid-column:1/-1;grid-row:auto;max-width:26ch;margin:0;font-size:44px;line-height:1.12;font-weight:400;letter-spacing:-.01em;text-align:left;text-wrap:pretty}
.detailIntro[data-villa-detail-layout]>div>p:first-child{grid-column:1/-1;grid-row:auto;max-width:700px;margin:0;font-size:18px;line-height:1.65;text-align:left}
.detailIntro[data-villa-detail-layout] .privateUseNote{margin-top:-16px}
@media(max-width:950px){
 .detailIntro[data-villa-detail-layout]{padding-block:40px;row-gap:24px}
 .detailIntro[data-villa-detail-layout]>h2{font-size:32px;line-height:1.12;max-width:26ch}
 .detailIntro[data-villa-detail-layout]>div>p:first-child{font-size:16px;line-height:1.65}
 .detailIntro[data-villa-detail-layout] .privateUseNote{margin-top:-8px}
}
