:root{--ink:#243b35;--muted:#62726a;--cream:#f5f2e9;--coral:#bd634c;--line:#dedfd5}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:95px}body{margin:0;color:var(--ink);background:#fff;font-family:Arial,Helvetica,sans-serif;font-size:15px;line-height:1.65}a{color:inherit;text-decoration:none}button,input,select{font:inherit}button,a,input,select{touch-action:manipulation}button{cursor:pointer}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,summary:focus-visible{outline:3px solid #bf8c35;outline-offset:4px}.skip{position:absolute;left:-1000px}.skip:focus{left:10px;z-index:100;background:white;padding:15px}header{height:94px;display:flex;align-items:center;justify-content:space-between;padding:0 5%;background:#fff;position:sticky;top:0;z-index:10;border-bottom:1px solid #eee}.brand{font:27px Georgia,serif;letter-spacing:-1px;white-space:nowrap}.brand i{font-weight:normal;color:var(--coral)}.brand span{display:block;font:8px Arial,sans-serif;letter-spacing:3.2px;margin-top:10px}.button{display:inline-flex;align-items:center;justify-content:center;background:var(--coral);color:#fff;border:1px solid var(--coral);padding:15px 25px;font-size:13px;letter-spacing:.2px}.button:hover{background:#a94e39}.small{padding:12px 20px}nav{display:flex;gap:32px;font-size:13px}nav a:hover{color:var(--coral)}h1,h2,h3{font-family:Georgia,'Times New Roman',serif;font-weight:400;line-height:1.08;margin:0 0 24px;letter-spacing:-1.8px}h1{font-size:clamp(48px,6.4vw,90px)}h2{font-size:clamp(36px,4vw,57px)}h3{font-size:38px;letter-spacing:-1px}p{margin:0 0 24px}.eyebrow{font-size:10px;letter-spacing:2.4px;font-weight:600;margin-bottom:24px}.hero{height:640px;min-height:75vh;max-height:850px;position:relative;color:#fff;display:flex;align-items:center}.hero>img{position:absolute;width:100%;height:100%;object-fit:cover;object-position:50% 58%}.hero:after{content:'';position:absolute;inset:0;background:linear-gradient(90deg,rgba(9,35,32,.68),rgba(9,35,32,.12))}.hero-content{z-index:1;position:relative;padding:5% 7%;max-width:980px}.hero-content>p:not(.eyebrow){font-size:16px;line-height:1.8;color:#f3f5ec}.hero-link{display:inline-flex;align-items:center;gap:55px;border-bottom:1px solid #fff8;padding:10px 0}.hero-link span{font-size:23px}.hero-caption{position:absolute;bottom:28px;right:5%;z-index:1;font-size:9px;letter-spacing:2px}.intro-bar{display:flex;justify-content:space-evenly;background:var(--cream);padding:23px 5%;font-size:11px;letter-spacing:1.2px;text-transform:uppercase}.section{padding:95px 7%;max-width:1600px;margin:auto}.section-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:60px;margin-bottom:45px}.section-heading h2{margin:0}.section-heading>p{max-width:350px;color:var(--muted);margin:0}.villa-grid{display:grid;grid-template-columns:1fr 1fr;gap:35px}.villa-card{border:1px solid var(--line)}.card-image{height:330px;position:relative;overflow:hidden}.card-image img{width:100%;height:100%;object-fit:cover;transition:transform .5s}.villa-card:hover .card-image img{transform:scale(1.025)}.card-image>span{position:absolute;top:20px;left:20px;background:white;padding:8px 13px;font-size:9px;letter-spacing:1.4px}.card-body{padding:32px}.card-body .eyebrow{color:var(--coral);margin-bottom:14px}.card-body h3{margin-bottom:18px}.card-body>p:not(.eyebrow){color:var(--muted);min-height:74px}.facts{display:flex;gap:20px;flex-wrap:wrap;border-block:1px solid var(--line);padding:17px 0;font-size:12px}.card-actions{display:flex;justify-content:space-between;gap:20px;padding-top:22px;font-size:12px}.text-button{background:none;border:0;border-bottom:1px solid currentColor;padding:0 0 6px;color:var(--ink);font-size:13px}.experience{display:grid;grid-template-columns:1fr 1fr;background:var(--cream)}.experience>img{height:620px;width:100%;object-fit:cover}.experience>div{padding:75px 14%;align-self:center}.experience p:not(.eyebrow){color:var(--muted)}.amenities{display:grid;grid-template-columns:1fr 1fr;gap:18px;padding:0;margin:35px 0;list-style:none;font-size:12px}.gallery{display:grid;grid-template-columns:1.3fr 1fr 1fr;gap:18px;margin-top:35px}.gallery button{padding:0;border:0;height:270px;overflow:hidden;background:var(--cream)}.gallery img{height:100%;width:100%;object-fit:cover}.fine{font-size:11px;color:var(--muted);line-height:1.6;margin:15px 0 0}.contact{display:grid;grid-template-columns:1fr 1.25fr;gap:80px;background:var(--cream);max-width:none}.contact-copy{padding-top:30px}.contact-copy>p{color:var(--muted)}h4{font-size:12px;margin:30px 0 8px;font-weight:600}.phone{font:26px Georgia,serif}.booking-panel{background:#fff;border-radius:8px;padding:30px;box-shadow:0 8px 40px #253b3509}.panel-title{border-bottom:1px solid var(--line);padding-bottom:18px;text-align:center;font-size:16px}.calendar-controls{display:flex;align-items:center;justify-content:space-between;font-size:11px;margin-bottom:15px}.calendar-controls button{background:transparent;border:1px solid var(--line);width:34px;height:34px}.calendars{display:grid;grid-template-columns:1fr 1fr;gap:22px}.month h4{font-size:12px;text-align:center;margin:4px 0 15px;text-transform:capitalize}.days{display:grid;grid-template-columns:repeat(7,1fr);gap:2px}.days span,.days button{font-size:11px;text-align:center;padding:6px 0;border:0;background:none;color:var(--ink)}.days span{color:var(--muted);font-size:9px}.days button:hover:not(:disabled){background:var(--cream)}.days button:disabled{color:#c2c7c0;cursor:default}.days button.between{background:#edf1e8}.days button.chosen{background:var(--ink);color:white;border-radius:3px}.date-fields,.guest-fields{display:grid;grid-template-columns:1fr 1fr;gap:16px}.date-fields{margin-top:20px}label{display:block;font-size:11px;margin:15px 0 0}input,select{width:100%;border:1px solid var(--line);border-radius:3px;padding:11px;margin-top:5px;color:var(--ink);background:#fff;min-width:0}.submit{width:100%;margin-top:22px;background:var(--ink);border-color:var(--ink)}#form-error{color:#a12d20;font-size:12px;margin:12px 0 0}.location{text-align:center}.map-tabs{display:flex;justify-content:center;gap:10px;margin:30px 0}.map-tabs button{background:white;border:1px solid var(--line);padding:11px 24px;color:var(--ink)}.map-tabs .active{background:var(--ink);color:white}.map-shell{height:420px;background:#e8ece3;position:relative;border:1px solid #d7dfd1;overflow:hidden}#map-placeholder{height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;background:radial-gradient(ellipse at 20% 100%,#b8d8da 0, #b8d8da 35%,transparent 35.3%),linear-gradient(130deg,#edf0e4,#e0e7d8)}#map-placeholder>span{font-size:10px;letter-spacing:2px;margin-bottom:20px}#map-placeholder p{font-size:12px}.map-shell iframe{width:100%;height:100%;border:0}.map-caption{display:flex;justify-content:space-between;align-items:center;text-align:left;font-size:12px;margin-top:20px}.map-caption p{margin:0}.map-caption a{border-bottom:1px solid var(--ink);flex-shrink:0}.faq{padding-top:15px;max-width:1000px}.faq details{border-bottom:1px solid var(--line);padding:20px 0}.faq summary{cursor:pointer;font-size:16px}.faq details p{color:var(--muted);font-size:14px;margin:20px 0 0}footer{padding:55px 7%;background:var(--ink);color:white;display:flex;justify-content:space-between;gap:30px;align-items:flex-start}footer p{font-size:13px;margin:0}footer .fine{color:#cad3c5;font-size:10px;margin-top:15px}dialog{border:0;border-radius:7px;padding:40px;max-width:850px;width:90%;max-height:90vh;color:var(--ink)}dialog::backdrop{background:#132a25b8}.close{position:absolute;right:10px;top:4px;border:0;background:white;color:var(--ink);font-size:28px;width:38px;height:38px}dialog img{width:100%;max-height:65vh;object-fit:contain}dialog p{color:var(--muted)}dialog pre{white-space:pre-wrap;font:15px/1.8 Arial;background:var(--cream);padding:20px}dialog .button{margin-top:15px}@media(max-width:950px){nav{gap:16px}.contact{gap:35px;padding-inline:5%}.section{padding:65px 5%}.experience>div{padding:40px 8%}.experience>img{height:550px}.card-body{padding:24px}.calendars{gap:10px}.booking-panel{padding:22px}.card-actions{flex-direction:column;align-items:flex-start}}@media(max-width:680px){header{height:78px;padding:0 5%}.brand{font-size:23px}.brand span{font-size:6px;letter-spacing:2px}nav{display:none}.small{font-size:10px;padding:10px;max-width:125px;text-align:center}.hero{height:610px;min-height:0}.hero-content{padding:30px 7%}h1{font-size:51px}.hero-content>p:not(.eyebrow){font-size:14px}.hero>img{object-position:60%}.intro-bar{display:grid;grid-template-columns:1fr 1fr;gap:12px;text-align:center;font-size:9px}.section-heading{display:block}.section-heading>p{margin-top:25px}.villa-grid,.experience,.contact{grid-template-columns:1fr}.card-image{height:280px}.card-body>p:not(.eyebrow){min-height:0}.card-actions{flex-direction:row}.experience>img{height:340px}.experience>div{padding:45px 7%}.gallery{grid-template-columns:1fr 1fr;gap:10px}.gallery button{height:180px}.gallery button:first-child{grid-column:1/-1;height:250px}.contact{gap:35px}.contact-copy{padding-top:0}.booking-panel{padding:18px}.calendars{gap:12px}.days span,.days button{font-size:10px;padding:7px 0}.calendar-controls{font-size:10px}.map-caption{display:block}.map-caption a{display:inline-block;margin-top:15px}.map-shell{height:360px}.map-shell h3{font-size:30px}.map-shell p{padding:0 15px}footer{flex-direction:column;padding:40px 7%}dialog{padding:35px 22px}.facts{gap:14px}h2{font-size:38px}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important}}
.together{display:flex;align-items:center;justify-content:space-between;gap:2rem;margin-top:2rem;padding:2rem;background:#eff5f7}.together p{max-width:650px}.together h3{margin:.5rem 0}.gallery-title{margin-top:3rem}.brand>span:first-of-type{letter-spacing:.22em} @media(max-width:700px){.together{align-items:flex-start;flex-direction:column;padding:1.5rem}}
/* Refined wordmark and masthead */
html{scroll-padding-top:132px}
header{height:124px;padding:0 4%;display:grid;grid-template-columns:1fr auto 1fr;gap:28px;border-bottom:1px solid #243b3514}
.brand{display:inline-flex;flex-direction:column;align-items:center;text-align:center;width:max-content;font-family:Baskerville,"Baskerville Old Face","Palatino Linotype",Palatino,serif;font-size:44px;font-weight:400;line-height:1;letter-spacing:-1.8px}
.brand span{font-family:"Avenir Next",Avenir,"Helvetica Neue",sans-serif;font-size:12px;font-weight:500;line-height:1.25;letter-spacing:.18em;margin-top:8px}
.brand>span:first-of-type{letter-spacing:.26em}
.brand span+span{font-size:12px;letter-spacing:.12em;margin-top:6px;color:var(--muted)}
footer .brand span+span{color:#cad3c5}
header nav{gap:32px;font-family:"Avenir Next",Avenir,"Helvetica Neue",sans-serif;font-size:15px;font-weight:400;letter-spacing:.01em}
header nav a{position:relative;padding:8px 0}
header nav a:after{content:"";position:absolute;bottom:1px;left:0;width:100%;height:1px;background:var(--coral);transform:scaleX(0);transform-origin:left;transition:transform .2s}
header nav a:hover:after,header nav a:focus-visible:after{transform:scaleX(1)}
header .header-cta{justify-self:end;gap:19px;padding:9px 10px 9px 21px;min-height:52px;max-width:none;border-radius:999px;background:var(--ink);border-color:var(--ink);font-family:"Avenir Next",Avenir,"Helvetica Neue",sans-serif;font-size:14px;font-weight:500;letter-spacing:.015em;box-shadow:0 4px 12px #243b3510;transition:background .2s,box-shadow .2s}
.cta-arrow{display:grid;place-items:center;width:32px;height:32px;border-radius:50%;border:1px solid #ffffff60;font-size:20px;line-height:1}
header .header-cta:hover{background:#35554b;box-shadow:0 6px 16px #243b3520}
h1,h2,h3{font-family:Baskerville,"Baskerville Old Face","Palatino Linotype",Palatino,serif}
.villa-location{display:flex;flex-wrap:wrap;gap:4px 0;text-transform:uppercase;font-size:12px;line-height:1.8;letter-spacing:.12em}
.villa-location span{white-space:nowrap}
.villa-location span+span:before{content:"·";display:inline-block;margin:0 9px}
@media(max-width:1050px){header{gap:20px;grid-template-columns:1fr auto}header nav{display:none}}
@media(max-width:680px){html{scroll-padding-top:112px}header{height:108px;padding:0 5%;gap:12px}.brand{font-size:36px}.brand span{font-size:10px;margin-top:6px}.brand span+span{font-size:9px;letter-spacing:.08em}header .header-cta{font-size:12px;line-height:1.3;gap:9px;padding:8px 9px 8px 14px;min-height:46px;max-width:170px}.cta-arrow{width:27px;height:27px;flex-shrink:0;font-size:18px}.villa-location{font-size:11px;letter-spacing:.09em}}
.header-actions{display:flex;align-items:center;justify-self:end;gap:22px}.language-switch{display:flex;align-items:center;gap:8px;font:12px/1.5 "Avenir Next",Avenir,Arial,sans-serif;letter-spacing:.06em}.language-switch a{padding:6px 0;color:var(--muted)}.language-switch a[aria-current="page"]{color:var(--ink);border-bottom:1px solid currentColor;font-weight:600}
@media(max-width:680px){header{height:116px}.header-actions{flex-direction:column;align-items:flex-end;gap:5px}.language-switch{font-size:12px}.header-actions .header-cta{max-width:170px;font-size:11px}.brand{font-size:34px}html{scroll-padding-top:120px}}
.button.submit{gap:10px;transition:background-color .2s,border-color .2s,color .2s}.button.submit:hover,.button.submit:focus-visible{background:#25d366;border-color:#25d366;color:#123426}.whatsapp-icon{width:20px;height:20px;flex-shrink:0}
