@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@300;400;500;600;700&family=Playfair+Display:ital,wght@0,400;0,500;0,600;1,400;1,500&display=swap');
:root{--ink:#1d2824;--forest:#1c2b26;--cream:#f4f2eb;--paper:#ebe9e1;--gold:#c5a777;--muted:#7d827b;--white:#fff;--line:rgba(35,47,41,.14);--serif:'Playfair Display',Georgia,serif;--sans:'DM Sans',Arial,sans-serif}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:90px}body{margin:0;background:var(--cream);color:var(--ink);font-family:var(--sans);font-size:14px;line-height:1.6}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit}button{cursor:pointer}img{display:block;max-width:100%}.container{width:min(1240px,88%);margin-inline:auto}.topbar{position:absolute;z-index:20;top:0;left:0;width:100%;height:88px;padding:0 6%;display:flex;align-items:center;justify-content:space-between;color:white;border-bottom:1px solid #ffffff30;transition:background .35s,height .35s}.topbar.scrolled{position:fixed;height:72px;background:#17231ff2;backdrop-filter:blur(16px);border:0}.logo{font:600 23px var(--serif);letter-spacing:.12em;white-space:nowrap}.logo span{font-weight:400}.nav{display:flex;align-items:center;gap:clamp(15px,2.5vw,34px)}.nav a,.lang-btn{font-size:9px;font-weight:700;letter-spacing:.18em;color:inherit;opacity:.88;transition:color .25s}.nav a:hover,.lang-btn:hover{color:var(--gold);opacity:1}.nav .nav-book{border:1px solid #ffffff8a;padding:12px 17px}.lang-btn{border:0;background:none}.menu-btn{display:none;color:white;background:none;border:0;font-size:25px}.hero{position:relative;min-height:760px;height:100svh;max-height:1020px;display:flex;align-items:flex-end;overflow:hidden;background:#1a2929;color:white}.hero-media{position:absolute;inset:0;background-position:center;background-size:cover;transform:scale(1.06);animation:heroZoom 16s ease-out forwards}.hero:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,#111e29a8 0%,#17252b42 58%,#15232212 100%),linear-gradient(0deg,#101c1b88,transparent 62%)}.hero-content{position:relative;z-index:1;width:min(760px,80%);margin:0 0 10% 8%}.eyebrow{margin:0 0 20px;color:var(--gold);font-size:9px;font-weight:700;letter-spacing:.26em;text-transform:uppercase}.hero h1{font:400 clamp(54px,7vw,100px)/.98 var(--serif);letter-spacing:-.04em;margin:0 0 26px}.hero h1 em,.display em{color:#d7c19c;font-weight:400}.hero-copy{max-width:470px;color:#eee9e0d9;font-size:14px;line-height:1.9}.actions{display:flex;align-items:center;gap:28px;margin-top:35px}.btn{display:inline-flex;align-items:center;justify-content:center;gap:20px;padding:16px 23px;border:1px solid transparent;font-size:9px;font-weight:700;letter-spacing:.16em;text-transform:uppercase;transition:transform .3s,background .3s,color .3s}.btn:hover{transform:translateY(-3px)}.btn-light{background:var(--cream);color:var(--ink)}.btn-gold{background:var(--gold);color:#1b2923}.btn-outline{border-color:#ffffff80;color:white}.quiet-link{font-size:11px;color:white}.hero-index{position:absolute;z-index:2;right:6%;bottom:44px;display:flex;align-items:center;gap:12px;font-size:8px;letter-spacing:.2em}.hero-index:before{content:"";width:35px;height:1px;background:var(--gold)}
.section{padding:120px 0}.section-paper{background:var(--paper)}.section-dark{background:var(--forest);color:var(--cream)}.eyebrow.dark{color:#9b8057}.section-title{font:400 clamp(40px,5vw,68px)/1.05 var(--serif);letter-spacing:-.035em;margin:0}.section-title em{color:#a98e64}.section-head{display:flex;justify-content:space-between;align-items:end;gap:40px;margin-bottom:48px}.section-head p{max-width:340px;color:var(--muted);font-size:12px;line-height:1.9;margin:0}.section-dark .section-head p{color:#bdc4bc}.intro-grid{display:grid;grid-template-columns:.55fr 1.1fr 1fr;gap:50px;align-items:center}.intro-no{align-self:start;color:#9b8057;font-size:9px;letter-spacing:.2em}.intro-copy p:not(.eyebrow){max-width:480px;color:#777d76;line-height:2;font-size:13px}.intro-image{height:460px;overflow:hidden}.intro-image img{width:100%;height:100%;object-fit:cover;transition:transform 1s}.intro-image:hover img{transform:scale(1.04)}.text-arrow{display:inline-flex;align-items:center;gap:22px;border-bottom:1px solid var(--gold);padding:10px 0;font-size:9px;font-weight:700;letter-spacing:.16em;margin-top:14px}
.villa-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}.villa-card{background:#f8f7f2;min-width:0;transition:transform .4s,box-shadow .4s}.villa-card:hover{transform:translateY(-8px);box-shadow:0 24px 55px #17251b18}.villa-photo{height:290px;position:relative;display:block;overflow:hidden;background:#c5c6be}.villa-photo img{width:100%;height:100%;object-fit:cover;transition:transform .9s}.villa-card:hover .villa-photo img{transform:scale(1.06)}.villa-photo:after{content:"";position:absolute;inset:35% 0 0;background:linear-gradient(transparent,#101a1740)}.photo-tag{position:absolute;z-index:1;left:18px;bottom:16px;color:white;font-size:8px;letter-spacing:.18em}.photo-arrow{position:absolute;z-index:2;right:16px;top:16px;width:36px;height:36px;background:#f7f4ec;display:grid;place-items:center}.villa-body{padding:25px}.villa-top{display:flex;justify-content:space-between;gap:12px;align-items:start}.villa-top h3{font:400 28px var(--serif);margin:0}.price{font-size:18px;white-space:nowrap}.price small{display:block;text-align:right;color:#858980;font-size:9px}.villa-desc{min-height:76px;color:#777e76;font-size:11px;line-height:1.85}.meta{display:flex;flex-wrap:wrap;gap:14px;border-block:1px solid #e5e2d9;padding:14px 0;color:#747a72;font-size:9px}.tags{display:flex;flex-wrap:wrap;gap:7px;margin:16px 0}.tags span{background:#eeede6;padding:7px 9px;color:#737970;font-size:8px}.villa-more{display:flex;justify-content:space-between;align-items:center;border:0;border-bottom:1px solid var(--gold);background:none;padding:9px 0;width:100%;text-align:left;font-size:9px;letter-spacing:.12em;font-weight:700}
.gallery-grid{display:grid;grid-template-columns:1.15fr .85fr .85fr;grid-template-rows:230px 230px;gap:12px}.gallery-item{border:0;padding:0;position:relative;overflow:hidden;background:#34413a}.gallery-item:first-child{grid-row:span 2}.gallery-item img{width:100%;height:100%;object-fit:cover;transition:transform .8s}.gallery-item:hover img{transform:scale(1.06)}.gallery-item:after{content:"↗";position:absolute;right:15px;bottom:14px;width:32px;height:32px;background:#f5f2e9;display:grid;place-items:center;color:var(--ink);opacity:0;transition:opacity .3s}.gallery-item:hover:after{opacity:1}
.experience-grid{display:grid;grid-template-columns:1fr 1fr;gap:70px;align-items:center}.experience-image{height:520px;overflow:hidden}.experience-image img{width:100%;height:100%;object-fit:cover}.experience-list{display:grid;grid-template-columns:1fr 1fr;gap:24px;margin-top:34px}.experience-list div{border-top:1px solid #ffffff35;padding-top:13px}.experience-list strong{display:block;font:400 24px var(--serif);color:#d8c29b}.experience-list span{font-size:9px;letter-spacing:.1em;color:#c0c7bf}
.booking-band{display:grid;grid-template-columns:1fr 1fr;background:#1d2b26;color:white}.booking-photo{min-height:650px;background:center/cover}.booking-copy{padding:90px clamp(35px,7vw,100px);align-self:center}.booking-copy>p:not(.eyebrow){max-width:450px;color:#c3c9c1;font-size:12px;line-height:1.9}.booking-form{display:grid;gap:16px;margin-top:30px}.booking-form label{display:grid;gap:7px}.booking-form label span{font-size:8px;color:#cbb48c;letter-spacing:.17em}.booking-form input,.booking-form select{width:100%;padding:11px 2px;color:white;background:transparent;border:0;border-bottom:1px solid #657169;border-radius:0;outline:none}.booking-form select option{color:#17231e}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:18px}.booking-form .btn{width:100%;margin-top:8px}.form-note{font-size:9px;color:#b3bcb3;line-height:1.7}.feedback{color:#e1c99e;font-size:11px;min-height:16px}
.reviews{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}.review{background:#eeece5;padding:28px;min-height:245px;display:flex;flex-direction:column}.stars{color:#a78a5e;letter-spacing:.15em}.review blockquote{font:400 19px/1.5 var(--serif);margin:20px 0 28px}.review-foot{margin-top:auto;display:flex;justify-content:space-between;gap:12px;font-size:10px}.review-foot span{color:#8b9088}
.contact-cta{background:#c4ad89;padding:70px 7%;display:flex;align-items:center;justify-content:space-between;gap:25px}.contact-cta h2{font:400 clamp(38px,5vw,60px)/1.05 var(--serif);margin:0}.contact-cta .eyebrow{color:#4b554c}
.footer{background:#15221d;color:#eeeae1;padding:55px 6% 25px}.footer-top{display:grid;grid-template-columns:1.4fr 1fr 1fr;gap:40px;padding-bottom:40px}.footer .logo{display:inline-block}.footer p,.footer a:not(.logo){font-size:10px;color:#bbc2b9}.footer h4{font-size:9px;letter-spacing:.2em;color:#c9ad7d}.footer-links{display:grid;gap:10px}.footer-bottom{border-top:1px solid #ffffff24;padding-top:20px;display:flex;justify-content:space-between;gap:15px;font-size:9px;color:#aeb6ac}.footer-bottom a{color:#d6c29d!important}
.page-hero{position:relative;min-height:540px;height:65vh;max-height:720px;display:flex;align-items:end;color:white;background:#20302b;overflow:hidden}.page-hero .hero-media{filter:brightness(.72)}.page-hero .hero-content{margin-bottom:7%;max-width:800px}.page-hero h1{font:400 clamp(52px,7vw,88px)/1 var(--serif);margin:0}.breadcrumb{font-size:9px;letter-spacing:.14em;color:#d4d7d1;margin-bottom:18px}.detail-layout{display:grid;grid-template-columns:1.4fr .8fr;gap:60px;align-items:start}.detail-main p{color:#727971;line-height:2;font-size:13px}.detail-gallery{display:grid;grid-template-columns:1.4fr .8fr;grid-template-rows:220px 220px;gap:10px}.detail-gallery button{padding:0;border:0;overflow:hidden;background:#ddd}.detail-gallery button:first-child{grid-row:span 2}.detail-gallery img{width:100%;height:100%;object-fit:cover;transition:transform .7s}.detail-gallery button:hover img{transform:scale(1.05)}.detail-side{position:sticky;top:100px;background:#ebe9e1;padding:28px}.detail-side .price{font-size:26px}.detail-side p{font-size:11px;color:#737970}.detail-facts{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin:25px 0}.detail-facts div{border-top:1px solid #d5d2c8;padding-top:10px}.detail-facts strong{display:block;font:400 22px var(--serif)}.detail-facts span{font-size:9px;color:#777e76}.amenity-list{display:grid;grid-template-columns:1fr 1fr;gap:13px;margin-top:25px}.amenity-list span{font-size:11px;color:#626a62}.detail-gallery-full{margin-top:55px}.detail-gallery-full h2{font:400 42px var(--serif)}
.policy-content{max-width:820px;margin:auto}.policy-content h2{font:400 26px var(--serif);margin-top:36px}.policy-content p,.policy-content li{font-size:13px;line-height:2;color:#6e756e}.policy-note{padding:18px;background:#ebe9e1;border-left:3px solid var(--gold);font-size:12px;color:#5e665e}
.reveal{opacity:0;transform:translateY(28px);transition:opacity .8s ease,transform .8s cubic-bezier(.2,.7,.2,1)}.reveal.visible{opacity:1;transform:none}.delay-1{transition-delay:.12s}.delay-2{transition-delay:.24s}.delay-3{transition-delay:.36s}.parallax{will-change:transform}@keyframes heroZoom{from{transform:scale(1.12)}to{transform:scale(1.02)}}@keyframes floatUp{0%{transform:translateY(12px);opacity:0}100%{transform:translateY(0);opacity:1}}
.lightbox{position:fixed;inset:0;z-index:100;background:#08100fee;display:none;align-items:center;justify-content:center;padding:5vw}.lightbox.open{display:flex}.lightbox img{max-width:92vw;max-height:86vh;object-fit:contain}.lightbox button{position:absolute;top:18px;right:30px;border:0;background:none;color:white;font-size:42px}
.cookie-banner{position:fixed;z-index:90;left:22px;bottom:20px;max-width:410px;background:#f6f3eb;color:#27332d;padding:18px 20px;box-shadow:0 15px 50px #0003;display:none}.cookie-banner.show{display:block;animation:floatUp .5s}.cookie-banner p{font-size:10px;line-height:1.7;color:#737970;margin:7px 0 12px}.cookie-actions{display:flex;gap:10px}.cookie-actions button{border:0;padding:9px 13px;background:#1d2b26;color:white;font-size:9px;letter-spacing:.1em}.cookie-actions a{font-size:9px;text-decoration:underline;align-self:center}
@media(max-width:900px){.nav{gap:14px}.nav a,.lang-btn{font-size:8px}.intro-grid{grid-template-columns:.4fr 1.2fr;gap:30px}.intro-image{grid-column:2;height:330px}.villa-grid{grid-template-columns:1fr 1fr}.booking-band{grid-template-columns:.8fr 1.2fr}.booking-photo{min-height:700px}.booking-copy{padding:65px 35px}.detail-layout{gap:30px}.detail-gallery{grid-template-rows:180px 180px}}
@media(max-width:650px){.topbar{height:70px;padding:0 6%}.logo{font-size:20px}.menu-btn{display:block}.nav{display:none;position:absolute;top:70px;left:0;width:100%;padding:25px 7%;background:#17251ff5;flex-direction:column;align-items:flex-start;gap:20px}.nav.open{display:flex}.nav a,.lang-btn{font-size:10px}.hero{min-height:700px;height:94svh}.hero-content{width:86%;margin:0 7% 27%}.hero h1{font-size:clamp(50px,13vw,70px)}.hero-index{right:7%;bottom:22px}.container{width:86%}.section{padding:80px 0}.intro-grid{display:block}.intro-no{margin-bottom:30px}.intro-image{height:290px;margin-top:30px}.section-head{display:block;margin-bottom:30px}.section-head p{margin-top:15px}.villa-grid{grid-template-columns:1fr}.villa-photo{height:270px}.villa-desc{min-height:0}.gallery-grid{grid-template-columns:1fr 1fr;grid-template-rows:180px 150px 150px;gap:8px}.gallery-item:first-child{grid-column:span 2;grid-row:auto}.experience-grid{grid-template-columns:1fr;gap:35px}.experience-image{height:300px}.experience-list{gap:15px}.booking-band{grid-template-columns:1fr}.booking-photo{min-height:280px}.booking-copy{padding:70px 7% 80px}.reviews{grid-template-columns:1fr}.contact-cta{display:block;padding:55px 7%}.contact-cta .btn{margin-top:24px}.footer-top{grid-template-columns:1fr 1fr;gap:25px}.footer-top>div:first-child{grid-column:span 2}.footer-bottom{flex-wrap:wrap}.page-hero{min-height:490px;height:60vh}.page-hero .hero-content{margin-bottom:18%}.detail-layout{grid-template-columns:1fr}.detail-side{position:static}.detail-gallery{grid-template-rows:160px 160px}.amenity-list{grid-template-columns:1fr 1fr}.form-row{gap:12px}.cookie-banner{left:12px;right:12px;bottom:12px;max-width:none}}

/* WHITE VILLAS — refined motion system */
:root{--motion-ease:cubic-bezier(.22,.68,0,1)}
html{scroll-behavior:smooth}
body{overflow-x:hidden}
#motionIntro{position:fixed;inset:0;z-index:9999;background:#17231f;display:grid;place-items:center;color:#f4f2eb;transition:opacity 1s var(--motion-ease),visibility 1s;}
#motionIntro.is-gone{opacity:0;visibility:hidden;pointer-events:none}
#motionIntro .intro-mark{font:500 clamp(25px,4vw,42px) var(--serif);letter-spacing:.24em;opacity:0;transform:translateY(18px);animation:markReveal 1.1s .15s var(--motion-ease) forwards;text-align:center}
#motionIntro .intro-mark span{display:block;font:600 8px var(--sans);letter-spacing:.42em;color:var(--gold);margin-top:17px}
#motionIntro .intro-line{width:110px;height:1px;background:#ffffff26;margin:24px auto 0;overflow:hidden}
#motionIntro .intro-line:after{content:"";display:block;width:100%;height:100%;background:var(--gold);transform:translateX(-101%);animation:lineSweep 1.1s .25s var(--motion-ease) forwards}
@keyframes markReveal{to{opacity:1;transform:translateY(0)}}@keyframes lineSweep{to{transform:translateX(0)}}
#scrollProgress{position:fixed;z-index:1001;top:0;left:0;width:0;height:2px;background:linear-gradient(90deg,#9b8057,#e4d2ae);box-shadow:0 0 12px #c5a77788}
.hero-media{will-change:transform;animation:heroZoom 18s cubic-bezier(.2,.6,.2,1) both}
.hero-content>*{opacity:0;transform:translateY(25px);animation:heroText .9s var(--motion-ease) forwards}
.hero-content>*:nth-child(1){animation-delay:.65s}.hero-content>*:nth-child(2){animation-delay:.82s}.hero-content>*:nth-child(3){animation-delay:1s}.hero-content>*:nth-child(4){animation-delay:1.16s}
@keyframes heroText{to{opacity:1;transform:translateY(0)}}
.reveal{opacity:0;transform:translateY(42px);filter:blur(4px);transition:opacity .9s var(--motion-ease),transform .9s var(--motion-ease),filter .9s var(--motion-ease)}
.reveal.visible{opacity:1;transform:translateY(0);filter:blur(0)}
.delay-1{transition-delay:.12s}.delay-2{transition-delay:.22s}
.villa-card{transition:transform .65s var(--motion-ease),box-shadow .65s var(--motion-ease)}
.villa-card:hover{transform:translateY(-9px);box-shadow:0 24px 60px #1b29231a}
.villa-photo img,.gallery-item img,.detail-gallery img{transition:transform 1.1s var(--motion-ease),filter .8s}
.villa-card:hover .villa-photo img,.gallery-item:hover img{transform:scale(1.055);filter:saturate(1.08)}
.gallery-item{overflow:hidden;cursor:zoom-in}
.btn,.villa-more,.text-arrow,.nav a{position:relative;overflow:hidden}
.btn:after{content:"";position:absolute;inset:0;background:linear-gradient(110deg,transparent 25%,#ffffff48 48%,transparent 70%);transform:translateX(-130%);transition:transform .75s var(--motion-ease)}
.btn:hover:after{transform:translateX(130%)}
.btn:active{transform:scale(.975)}
[data-lightbox]{cursor:zoom-in}
.lightbox{opacity:0;visibility:hidden;transform:scale(1.025);transition:opacity .35s,transform .5s var(--motion-ease),visibility .35s}
.lightbox.open{opacity:1;visibility:visible;transform:scale(1)}
.lightbox img{transform:scale(.94);transition:transform .6s var(--motion-ease)}.lightbox.open img{transform:scale(1)}
.topbar{transition:background .45s,height .45s,transform .45s var(--motion-ease)}
.topbar.scrolled{box-shadow:0 8px 30px #101b1730}
.review{transition:transform .5s var(--motion-ease),box-shadow .5s}.review:hover{transform:translateY(-6px);box-shadow:0 18px 45px #1b292312}
#pageTransition{position:fixed;inset:0;z-index:9998;background:#17231f;transform:scaleY(0);transform-origin:bottom;pointer-events:none;transition:transform .55s var(--motion-ease)}#pageTransition.active{transform:scaleY(1);transform-origin:top}
.wv-ripple{position:absolute;border-radius:50%;pointer-events:none;background:#c5a77755;transform:scale(0);animation:rippleOut .65s ease-out forwards}
@keyframes rippleOut{to{transform:scale(1);opacity:0}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}#motionIntro{display:none}.reveal{opacity:1;transform:none;filter:none}}
