:root{--forest:#14342a;--forest2:#1d4a3b;--moss:#5b8a5a;--sand:#f3ecdd;--sand2:#e9dfc9;--clay:#c4793f;--clay2:#e09a5f;--ink:#17231e;--mute:#5a6b62;--line:#dcd2bb;--paper:#fffdf8;--r:18px}
*{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:64px}
body{margin:0;font-family:"DM Sans",system-ui,-apple-system,Segoe UI,Roboto,sans-serif;font-size:16px;line-height:1.6;color:var(--ink);background:var(--sand);-webkit-text-size-adjust:100%}
img{max-width:100%;display:block}
h1,h2,h3{font-family:Fraunces,Georgia,serif;font-weight:500;line-height:1.08;margin:0;color:var(--forest)}
h2{font-size:clamp(30px,7.5vw,48px)}h3{font-size:22px}
a{color:inherit}
.wrap{max-width:1160px;margin:0 auto;padding-inline:18px}
section{padding-block:60px}
.kicker{display:inline-block;font-size:12px;letter-spacing:.18em;text-transform:uppercase;color:var(--clay);font-weight:700;margin-bottom:12px}
.lead{color:var(--mute);max-width:620px;margin:14px 0 0}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;border:0;border-radius:12px;padding:14px 24px;font:700 15px "DM Sans",sans-serif;cursor:pointer;text-decoration:none;min-height:50px;transition:.2s}
.btn-clay{background:var(--clay);color:#fff}.btn-clay:hover{background:#b06a35}
.btn-ghost{background:rgba(255,255,255,.12);color:#fff;border:1.5px solid rgba(255,255,255,.55)}
.btn-forest{background:var(--forest);color:#fff}
.fine{font-size:12.5px;color:var(--mute);margin:14px 0 0}
/* top bar */
header{position:sticky;top:0;z-index:50;background:var(--forest);color:#fff}
header .wrap{display:flex;align-items:center;justify-content:space-between;height:56px;gap:12px}
.brand{font-family:Fraunces,serif;font-size:19px;letter-spacing:.04em;text-decoration:none;white-space:nowrap}
.brand small{display:block;font:500 10px "DM Sans";letter-spacing:.16em;opacity:.7;margin-top:-2px}
header nav{display:none;gap:22px;font-size:14px}
header nav a{text-decoration:none;opacity:.85}header nav a:hover{opacity:1;color:var(--clay2)}
header .btn{padding:8px 16px;min-height:38px;font-size:14px}
@media(min-width:900px){header nav{display:flex}}
/* hero: image block + overlapping panel */
.hero{padding:0;background:var(--forest)}
.hero-img{position:relative;height:56svh;min-height:340px;max-height:640px;overflow:hidden}
.hero-img img{width:100%;height:100%;object-fit:cover}
.hero-img:after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(20,52,42,.1),rgba(20,52,42,.7))}
.badge{position:absolute;left:18px;bottom:16px;z-index:2;color:#fff;font-size:12px;letter-spacing:.14em;text-transform:uppercase;font-weight:700;background:rgba(20,52,42,.7);padding:8px 12px;border-radius:8px;backdrop-filter:blur(4px)}
.hero-panel{position:relative;z-index:3;margin:-58px 14px 0;background:var(--paper);border-radius:var(--r);padding:26px 20px 24px;box-shadow:0 18px 44px rgba(20,52,42,.22)}
.hero-panel h1{font-size:clamp(34px,9.5vw,60px);color:var(--forest)}
.hero-panel h1 em{font-style:italic;color:var(--clay)}
.hero-panel p{margin:14px 0 18px;color:var(--mute);max-width:560px}
.cta-row{display:flex;gap:10px;flex-wrap:wrap}
.cta-row .btn{flex:1 1 180px}
.hero-panel .btn-ghost{background:transparent;color:var(--forest);border-color:var(--forest)}
@media(min-width:900px){
 .hero{position:relative}
 .hero-img{height:min(86vh,760px);min-height:660px;max-height:none}
 .hero-panel{position:absolute;left:max(24px,calc((100vw - 1160px)/2 + 18px));bottom:64px;margin:0;width:540px;padding:34px 32px}
}
/* facts strip */
.strip{background:var(--forest);color:#fff;padding-block:0}
.strip .wrap{display:grid;grid-template-columns:repeat(2,1fr);padding-block:14px}
.strip div.f{padding:14px 6px;border-bottom:1px solid rgba(255,255,255,.14);font-size:13px;line-height:1.35;color:#c9d8cf}
.strip div.f:nth-last-child(-n+2){border-bottom:0}
.strip b{display:block;font:500 24px Fraunces,serif;color:var(--clay2)}
@media(min-width:900px){.strip .wrap{grid-template-columns:repeat(6,1fr)}.strip div.f{border-bottom:0;border-left:1px solid rgba(255,255,255,.14);padding-left:18px}.strip div.f:first-child{border-left:0;padding-left:6px}}
.strip{padding-top:0}
@media(max-width:899px){.hero+.strip{padding-top:0}.hero-panel{margin-bottom:0}.hero{padding-bottom:26px;background:var(--sand)}}
/* intro */
.intro{display:grid;gap:28px}
@media(min-width:900px){.intro{grid-template-columns:1fr 1fr;align-items:center;gap:56px}}
.intro img{border-radius:var(--r);width:100%;aspect-ratio:4/3;object-fit:cover}
.tick{list-style:none;padding:0;margin:20px 0 0;display:grid;gap:10px}
.tick li{padding-left:28px;position:relative;font-size:15px}
.tick li:before{content:"";position:absolute;left:0;top:7px;width:14px;height:14px;border-radius:50% 0 50% 0;background:var(--moss)}
/* tabs */
.tabs{display:inline-flex;background:var(--sand2);border-radius:12px;padding:4px;gap:4px;margin:24px 0 20px;max-width:100%}
.tabs button{border:0;background:transparent;font:700 14px "DM Sans";color:var(--forest);padding:11px 16px;border-radius:9px;cursor:pointer;min-height:44px}
.tabs button.on{background:var(--forest);color:#fff}
.pane{display:none}.pane.on{display:block}
.units{display:grid;gap:16px}
@media(min-width:700px){.units.two{grid-template-columns:1fr 1fr}}
.ucard{background:var(--paper);border:1px solid var(--line);border-radius:var(--r);padding:22px}
.ucard .t{font:500 28px Fraunces,serif;color:var(--forest)}
.ucard .pr{margin:6px 0 0;color:var(--clay);font-weight:700;font-size:17px}
.ucard .pr small{color:var(--mute);font-weight:500;font-size:12px;display:block;letter-spacing:.06em;text-transform:uppercase}
.ucard p{margin:10px 0 0;font-size:14.5px;color:var(--mute)}
.tbl{overflow-x:auto;border:1px solid var(--line);border-radius:14px;background:var(--paper);margin-top:16px}
table{border-collapse:collapse;width:100%;min-width:560px;font-size:14px}
th,td{padding:11px 14px;text-align:left;border-bottom:1px solid var(--line);white-space:nowrap}
th{background:var(--sand2);color:var(--forest);font-size:12px;letter-spacing:.08em;text-transform:uppercase}
tr:last-child td{border-bottom:0}
td.grp{font-weight:700;color:var(--forest);background:#faf5e8}
.villapics{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-top:16px}
.villapics img{border-radius:12px;aspect-ratio:4/3;object-fit:cover;width:100%}
/* payment */
.pay{background:var(--forest);color:#fff}
.pay h2{color:#fff}.pay .lead{color:#c9d8cf}
.bar{display:flex;height:76px;border-radius:14px;overflow:hidden;margin-top:30px;font-weight:700}
.bar div{display:flex;flex-direction:column;justify-content:center;padding:0 16px;font-size:13px}
.bar div b{font:500 30px Fraunces,serif;line-height:1}
.bar .a{flex:60;background:var(--clay)}.bar .b{flex:40;background:var(--moss)}
.pay .row{display:grid;gap:12px;margin-top:22px}
@media(min-width:700px){.pay .row{grid-template-columns:repeat(3,1fr)}}
.pay .row div{border:1px solid rgba(255,255,255,.2);border-radius:14px;padding:16px;font-size:14px;color:#dbe7df}
.pay .row b{display:block;font:500 22px Fraunces,serif;color:var(--clay2)}
/* amenities */
.amen{display:grid;gap:14px;margin-top:28px}
@media(min-width:620px){.amen{grid-template-columns:1fr 1fr}}@media(min-width:960px){.amen{grid-template-columns:repeat(3,1fr)}}
.am{background:var(--paper);border:1px solid var(--line);border-radius:var(--r);padding:20px}
.am h3{font-size:19px;margin-bottom:10px}
.am ul{margin:0;padding:0;list-style:none;display:flex;flex-wrap:wrap;gap:6px}
.am li{background:var(--sand);border-radius:99px;padding:4px 11px;font-size:13px}
.am.dark{background:var(--forest2);border-color:var(--forest2)}.am.dark h3{color:#fff}.am.dark li{background:rgba(255,255,255,.12);color:#e6efe9}
/* gallery */
.chips{display:flex;gap:8px;flex-wrap:wrap;margin:22px 0 14px}
.chips button{border:1.5px solid var(--forest);background:transparent;border-radius:99px;padding:8px 16px;font:700 13px "DM Sans";cursor:pointer;color:var(--forest);min-height:40px}
.chips button.on{background:var(--forest);color:#fff}
.gal{columns:2;column-gap:8px}
@media(min-width:760px){.gal{columns:3}}
.gal button{display:block;width:100%;padding:0;border:0;background:#ddd;border-radius:12px;overflow:hidden;cursor:zoom-in;margin-bottom:8px;break-inside:avoid}
.gal img{width:100%;height:auto;transition:.3s}.gal button:hover img{transform:scale(1.04)}
/* location */
.loc{display:grid;gap:26px}
@media(min-width:900px){.loc{grid-template-columns:.9fr 1.1fr;align-items:center;gap:48px}}
.loc img{border-radius:var(--r);width:100%}
.stats{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:20px}
.stats div{background:var(--paper);border:1px solid var(--line);border-radius:14px;padding:14px;font-size:13px;color:var(--mute)}
.stats b{display:block;font:500 24px Fraunces,serif;color:var(--forest)}
.note{background:var(--sand2);border-radius:12px;padding:12px 14px;font-size:14px;margin-top:16px}
/* why */
.why{background:var(--sand2)}
.whyg{display:grid;gap:14px;margin-top:28px}
@media(min-width:700px){.whyg{grid-template-columns:1fr 1fr}}
.whyg div{display:flex;gap:16px;background:var(--paper);border-radius:var(--r);padding:20px}
.whyg i{font:500 34px Fraunces,serif;font-style:normal;color:var(--clay);line-height:1;min-width:40px}
.whyg h3{font-size:19px;margin-bottom:4px}.whyg p{margin:0;font-size:14.5px;color:var(--mute)}
/* form */
.formsec{background:linear-gradient(170deg,var(--forest),#0e241d);color:#fff}
.formsec h2{color:#fff}
.fgrid{display:grid;gap:28px}
@media(min-width:900px){.fgrid{grid-template-columns:1fr 1fr;align-items:center;gap:56px}}
.formsec .tick li{color:#dbe7df}
form{background:var(--paper);color:var(--ink);border-radius:var(--r);padding:24px 18px;display:grid;gap:14px}
form h3{font-size:24px}
label{font-size:13px;font-weight:700;display:block;margin-bottom:5px}
input,select{width:100%;font:16px "DM Sans",sans-serif;padding:13px 12px;border:1.5px solid #c9d3cc;border-radius:10px;background:#fff;color:var(--ink);min-height:50px}
input:focus,select:focus{outline:0;border-color:var(--clay);box-shadow:0 0 0 3px rgba(196,121,63,.25)}
.phone{display:grid;grid-template-columns:112px 1fr;gap:8px}
.chk{display:flex;gap:10px;align-items:flex-start;font-size:12.5px;color:var(--mute);font-weight:400}
.chk input{width:20px;min-height:20px;height:20px;margin-top:2px;flex:none}
.err{color:#b3261e;font-size:12.5px;margin-top:4px;display:none}
.bad+.err,.bad~.err{display:block}.bad{border-color:#b3261e}
#ok,#mok{display:none;background:#eaf6ef;border:1px solid #9bd3b2;color:#14532d;border-radius:var(--r);padding:24px;text-align:center}
#ok b,#mok b{font-size:20px;display:block;margin-bottom:6px}
.hp{position:absolute;left:-9999px}
/* footer */
footer{background:#0b1a15;color:#9fb0a7;font-size:12.5px;padding:38px 0 120px}
footer .brand{color:#fff}
footer p{margin:10px 0}
footer .reg{border:1px dashed #3d5249;border-radius:10px;padding:10px 12px;color:#d3dfd8;display:inline-block}
/* sticky mobile bar + floats */
.sbar{position:fixed;left:0;right:0;bottom:0;z-index:60;display:flex;gap:8px;padding:10px 12px calc(10px + env(safe-area-inset-bottom,0px));background:var(--forest);box-shadow:0 -6px 20px rgba(0,0,0,.25)}
.sbar a{flex:1;display:flex;align-items:center;justify-content:center;gap:6px;min-height:48px;border-radius:10px;text-decoration:none;color:#fff;font:700 14px "DM Sans"}
.sbar .e{flex:1.6;background:var(--clay)}.sbar .w{background:#25d366}.sbar .c{background:transparent;border:1.5px solid rgba(255,255,255,.5)}
.sbar svg{width:20px;height:20px;fill:#fff;flex:none}
@media(min-width:900px){.sbar{display:none}footer{padding-bottom:40px}
 .fab{position:fixed;right:18px;bottom:22px;z-index:60;display:flex;flex-direction:column;gap:10px}
 .fab a{width:54px;height:54px;border-radius:50%;display:grid;place-items:center;box-shadow:0 6px 18px rgba(0,0,0,.3);text-decoration:none}
 .fab .w{background:#25d366}.fab .c{background:var(--forest);border:2px solid var(--clay2)}.fab svg{width:27px;height:27px;fill:#fff}}
@media(max-width:899px){.fab{display:none}}
/* lightbox */
#lb{position:fixed;inset:0;background:rgba(6,14,10,.95);z-index:100;display:none;align-items:center;justify-content:center;touch-action:pan-y}
#lb.on{display:flex}
#lb img{max-width:100%;max-height:82vh;object-fit:contain}
#lb button{position:absolute;background:rgba(255,255,255,.14);color:#fff;border:0;width:46px;height:46px;border-radius:50%;font-size:24px;cursor:pointer}
#lb .x{top:calc(12px + env(safe-area-inset-top,0px));right:12px}#lb .p{left:10px;top:50%}#lb .n{right:10px;top:50%}
#lb .cap{position:absolute;bottom:calc(14px + env(safe-area-inset-bottom,0px));left:0;right:0;text-align:center;color:#dfe8e2;font-size:13px;padding:0 60px}
/* enquiry popup modal */
html.modal-open,html.modal-open body{overflow:hidden}
.modal{position:fixed;inset:0;z-index:200;display:flex;align-items:center;justify-content:center;padding:16px;backdrop-filter:blur(3px);overscroll-behavior:contain}
.modal[hidden]{display:none}
.modal-card{position:relative;width:min(460px,100%);max-height:calc(100vh - 32px);max-height:calc(100dvh - 32px);overflow-y:auto;overscroll-behavior:contain;padding:28px 22px 22px;box-shadow:0 24px 60px rgba(0,0,0,.4);outline:0;animation:mIn .22s ease-out}
.modal-card form{padding:0;background:transparent;border-radius:0}
.modal-card h3{padding-right:36px}
.modal-sub{margin:6px 0 16px;font-size:14px;color:var(--mute)}
.modal-x{position:absolute;top:10px;right:10px;width:40px;height:40px;border:0;border-radius:50%;font-size:26px;line-height:1;cursor:pointer}
.modal-card :focus-visible{outline:2px solid #888;outline-offset:2px}
.phone:has(.bad)+.err{display:block}
@keyframes mIn{from{opacity:0;transform:translateY(14px)}}
@keyframes mUp{from{transform:translateY(100%)}}
@media(max-width:600px){.modal{align-items:flex-end;padding:0}.modal-card{width:100%;max-height:92vh;max-height:92dvh;padding:26px 18px calc(18px + env(safe-area-inset-bottom,0px));animation-name:mUp}}
@media(prefers-reduced-motion:reduce){.modal-card{animation:none}}
.modal{background:rgba(10,24,19,.72)}.modal-card{background:var(--paper);color:var(--ink);border-radius:var(--r)}.modal-x{background:var(--sand);color:var(--forest)}.modal-card h3{font-size:26px}
@media(max-width:600px){.modal-card{border-radius:var(--r) var(--r) 0 0}}
