
:root{--paper:#fdfcf9;--ink:#343434;--muted:#6b6864;--orange:#fe8f24;--orange-dark:#d97616;--line:#e9e3dc;--white:#fff}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--paper);color:var(--ink);font-family:'Plus Jakarta Sans',sans-serif;line-height:1.65}
body.dialog-open{overflow:hidden}
img{display:block;max-width:100%}
a{color:inherit}
button,input,textarea{font:inherit}
button{cursor:pointer}
h1,h2,h3{font-family:'Playfair Display',serif;line-height:1.16;margin:0 0 .7em}
h1{font-size:clamp(3.25rem,7vw,6.7rem);font-style:italic}
h2{font-size:clamp(2.4rem,4.8vw,4rem);font-style:italic}
h3{font-size:1.65rem}
p{margin:0 0 1.25rem}
.container{width:min(1180px,calc(100% - 48px));margin-inline:auto}
.eyebrow{text-transform:uppercase;letter-spacing:.2em;font-size:.76rem;font-weight:700;color:var(--orange-dark);margin-bottom:1rem}
.section{padding:clamp(72px,9vw,120px) 0}
.section-header{text-align:center;max-width:760px;margin:0 auto 3rem}
.section-header p:last-child{color:var(--muted)}
.button{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;border:1px solid var(--orange);border-radius:2px;padding:14px 24px;background:var(--orange);color:#25201c;text-decoration:none;font-weight:700;line-height:1.2;transition:background .2s,transform .2s}
.button:hover{background:#ffad58;transform:translateY(-2px)}
.button-outline{background:transparent;color:var(--ink)}
.button-outline:hover{background:#fff0df}
.button-light{background:transparent;color:#fff;border-color:#fff}
.button-light:hover{background:#ffffff20}
.site-header{position:absolute;inset:0 0 auto;z-index:10;color:#fff}
.site-header.property-header{position:fixed;z-index:20;transition:background-color .4s ease,box-shadow .4s ease,color .4s ease}
.property-header.is-scrolled{background:rgba(255,255,255,.95);color:var(--ink);box-shadow:0 2px 10px rgba(0,0,0,.05);backdrop-filter:blur(10px)}
.property-header .brand{display:grid}
.property-header .brand img{grid-area:1/1;transition:opacity .4s ease}
.property-header .logo-coloured{opacity:0}
.property-header.is-scrolled .logo-white{opacity:0}
.property-header.is-scrolled .logo-coloured{opacity:1}
.property-header.is-scrolled .nav-toggle{color:var(--ink);border-color:var(--line)}
.property-header.is-scrolled .site-nav{background:transparent}
.property-header~main section[id]{scroll-margin-top:90px}
@media(max-width:640px){.property-header.is-scrolled .site-nav{background:rgba(255,255,255,.98)}.property-header~main section[id]{scroll-margin-top:74px}}
.nav-wrap{display:flex;align-items:center;justify-content:space-between;gap:24px;min-height:90px}
.brand{display:inline-flex;align-items:center;gap:12px;text-decoration:none;font-family:'Playfair Display',serif;font-size:1.45rem;font-weight:700;line-height:1.15}
.brand img{height:47px;width:auto;max-width:160px;object-fit:contain}
.brand-text{display:none}
.site-nav{display:flex;align-items:center;gap:26px}
.site-nav a{text-decoration:none;font-size:.87rem;font-weight:700;letter-spacing:.03em}
.site-nav a:hover{text-decoration:underline;text-underline-offset:7px}
.nav-toggle{display:none;background:transparent;border:1px solid #ffffffa0;color:#fff;border-radius:2px;padding:7px 12px;font-size:1.4rem;line-height:1}
.hero{position:relative;min-height:min(790px,100svh);min-height:100svh;display:grid;place-items:center;overflow:hidden;color:#fff;text-align:center;background:#2b302e}
.hero-image,.hero-shade{position:absolute;inset:0;width:100%;height:100%}
.hero-image{object-fit:cover;object-position:center}
.hero-slide{opacity:0;transition:opacity .8s ease-in-out}
.hero-slide.is-active{opacity:1}
.hero-slideshow-toggle{position:absolute;bottom:24px;left:24px;z-index:2;border:1px solid #ffffff80;border-radius:3px;padding:7px 11px;background:#0004;color:#fff;font-size:.75rem}
.hero-slideshow-toggle:hover{background:#0008}
.hero-slideshow-toggle:focus-visible{outline:2px solid #fff;outline-offset:4px}
@media(max-width:640px){.hero-slideshow-toggle{bottom:65px;left:16px}}
.hero-shade{background:linear-gradient(180deg,rgba(0,0,0,.53),rgba(0,0,0,.37) 48%,rgba(0,0,0,.61))}
.hero-content{position:relative;z-index:1;max-width:880px;padding:135px 24px 85px}
.hero .eyebrow{color:#ffc387}
.hero h1{color:#fff;text-shadow:0 2px 16px #0005;margin-bottom:.35em}
.hero p{font-size:clamp(1rem,2vw,1.2rem);max-width:660px;margin:0 auto 2rem}
.hero-actions{display:flex;flex-wrap:wrap;justify-content:center;gap:12px}
.hero-scroll{position:absolute;bottom:26px;left:50%;transform:translateX(-50%);z-index:1;color:#fff;text-decoration:none;font-size:.75rem;text-transform:uppercase;letter-spacing:.16em}
.split{display:grid;grid-template-columns:1fr 1fr;gap:clamp(36px,6vw,88px);align-items:center}
.split.reverse .split-image{order:2}
.split-image{aspect-ratio:4/4.3;width:100%;object-fit:cover;border-radius:3px;box-shadow:0 20px 45px #30251b22}
.split-copy p{color:var(--muted)}
.feature-list{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin:30px 0 0;padding:0;list-style:none}
.feature-list li{border-top:1px solid var(--line);padding-top:12px;font-weight:600}
.feature-list li::before{content:'✦';color:var(--orange);margin-right:10px}
.soft-section{background:#fff}
.card-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:25px}
.feature-card,.villa-card{background:#fff;box-shadow:0 10px 35px #30251b0d;overflow:hidden}
.feature-card img{width:100%;height:255px;object-fit:cover}
.feature-card-body{padding:24px}
.feature-card-body p{color:var(--muted);margin-bottom:0}
.gallery-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}
.gallery-item{border:0;padding:0;background:#eee;overflow:hidden;aspect-ratio:1.1;position:relative}
.gallery-item img{width:100%;height:100%;object-fit:cover;transition:transform .35s}
.gallery-item:hover img,.gallery-item:focus-visible img{transform:scale(1.05)}
.gallery-item:focus-visible{outline:3px solid var(--orange);outline-offset:3px}
.gallery-more{text-align:center;margin-top:28px}
.contact-band{background:#292725;color:#fff;text-align:center}
.contact-band h2{color:#fff}
.contact-band p{color:#e1dcd5;max-width:650px;margin-inline:auto}
.inquiry-form{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;text-align:left;margin:34px auto 0;max-width:980px}
.inquiry-form label{font-size:.78rem;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:#e9e1d9}
.inquiry-form input{display:block;width:100%;margin-top:8px;padding:12px 13px;border:1px solid #8a8177;border-radius:2px;background:#fff;color:var(--ink);height:50px}
.inquiry-form button{grid-column:1/-1;justify-self:center;margin-top:8px}
.homepage-inquiry{grid-template-columns:repeat(2,minmax(0,1fr));max-width:800px}
.homepage-inquiry .contact-full{grid-column:1/-1}
.homepage-inquiry label{min-width:0}
.homepage-inquiry input{min-width:0}
.homepage-inquiry select,.homepage-inquiry textarea{display:block;width:100%;margin-top:8px;padding:12px 13px;border:1px solid #8a8177;border-radius:2px;background:#fff;color:var(--ink);font:inherit;letter-spacing:normal;text-transform:none}
.homepage-inquiry select{height:50px}
.homepage-inquiry textarea{resize:vertical}
.homepage-inquiry input:focus,.homepage-inquiry select:focus,.homepage-inquiry textarea:focus{outline:2px solid var(--orange);outline-offset:2px}
.site-footer{background:#1d1c1b;color:#d4d0ca;padding:48px 0 25px}
.footer-grid{display:flex;justify-content:space-between;gap:40px;flex-wrap:wrap}
.footer-grid .brand{color:#fff;margin-bottom:14px}
.footer-grid p{max-width:440px}
.footer-links{display:flex;gap:16px 26px;align-items:flex-start;flex-wrap:wrap}
.footer-links a{text-decoration:none}
.footer-links a:hover{text-decoration:underline}
.copyright{border-top:1px solid #ffffff24;margin-top:35px;padding-top:20px;font-size:.8rem}
.whatsapp-float{position:fixed;right:25px;bottom:25px;z-index:1000;background:#25d366;color:#fff;text-decoration:none;padding:10px 15px;border-radius:50px;font-size:.9rem;font-weight:600;line-height:1.5;display:flex;align-items:center;box-shadow:0 4px 15px rgba(0,0,0,.2);transition:transform .3s ease,box-shadow .3s ease}
.whatsapp-float:hover{color:#fff;transform:translateY(-3px);box-shadow:0 6px 20px rgba(0,0,0,.25)}
.whatsapp-float i{font-size:1.5rem;margin-right:8px}
.lightbox{position:fixed;inset:0;z-index:1100;display:none;align-items:center;justify-content:center;background:#080808ec;padding:60px 74px}
.lightbox.open{display:flex}
.lightbox img{max-width:100%;max-height:100%;object-fit:contain}
.lightbox button{position:absolute;background:transparent;color:#fff;border:0;font-size:2.3rem;line-height:1;padding:10px}
.lightbox-close{top:15px;right:22px}.lightbox-prev{left:15px}.lightbox-next{right:15px}
.villa-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:28px}
.villa-card img{width:100%;height:350px;object-fit:cover}
.villa-card-body{padding:30px}
.villa-card-body p{color:var(--muted)}
.villa-card .eyebrow{margin-bottom:10px}
.coming-soon{border:1px solid var(--line);padding:30px;text-align:center;color:var(--muted);margin-top:28px}
.inquiry-popup{width:min(500px,calc(100% - 32px));max-height:calc(100svh - 32px);padding:0;border:1px solid #0003;border-radius:8px;background:#fff;color:var(--ink);overflow-y:auto;box-shadow:0 20px 60px #0003}
.inquiry-popup::backdrop{background:rgba(0,0,0,.5)}
body:has(.inquiry-popup[open]){overflow:hidden}
.popup-header{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:16px;border-bottom:1px solid #dee2e6}
.popup-header h2{font-size:1.25rem;font-style:normal;line-height:1.5;margin:0}
.popup-close{flex-shrink:0;border:0;background:none;color:#666;font-size:1.8rem;line-height:1;padding:0 4px}
.popup-close:hover{color:#111}
.popup-body{padding:16px}
.popup-body>p{text-align:center;line-height:1.5;margin-bottom:16px}
.popup-body hr{border:0;border-top:1px solid #d5d5d5;margin:16px 0}
.inquiry-form.popup-form{grid-template-columns:1fr 1fr;gap:16px;margin:0}
.popup-form .popup-full{grid-column:1/-1}
.inquiry-form.popup-form label{font-size:1rem;font-weight:400;letter-spacing:normal;text-transform:none;color:var(--ink)}
.inquiry-form.popup-form input,.inquiry-form.popup-form textarea{display:block;width:100%;margin-top:8px;padding:6px 12px;border:1px solid #dee2e6;border-radius:6px;background:#fff;color:var(--ink);line-height:1.5}
.inquiry-form.popup-form input{height:38px;min-width:0}
.inquiry-form.popup-form textarea{resize:vertical}
.inquiry-form.popup-form select{display:block;width:100%;margin-top:8px;padding:8px 12px;border:1px solid #dee2e6;border-radius:6px;background:#fff;color:var(--ink);font:inherit}
.inquiry-form.popup-form select:focus{outline:2px solid var(--orange);outline-offset:1px}
.inquiry-form.popup-form input:focus,.inquiry-form.popup-form textarea:focus{outline:2px solid var(--orange);outline-offset:1px}
.inquiry-form.popup-form button{width:100%;margin-top:0}
@media(max-width:767px){.inquiry-form.popup-form{grid-template-columns:1fr}}
@media(max-width:800px){.card-grid,.villa-grid{grid-template-columns:1fr 1fr}.gallery-grid{grid-template-columns:repeat(3,1fr)}.inquiry-form{grid-template-columns:1fr 1fr}.site-nav{gap:16px}.site-nav a{font-size:.8rem}}
@media(max-width:640px){.container{width:min(100% - 32px,1180px)}.nav-wrap{min-height:74px}.brand img{height:40px}.nav-toggle{display:block}.site-nav{display:none;position:absolute;top:74px;left:0;right:0;background:#282522;padding:18px 24px 24px;flex-direction:column;align-items:flex-start;box-shadow:0 15px 25px #0003}.site-nav.open{display:flex}.site-nav a{font-size:.95rem}.hero{min-height:680px;min-height:100svh}.hero-content{padding-top:110px}.split,.villa-grid{grid-template-columns:1fr}.split.reverse .split-image{order:0}.split-image{aspect-ratio:4/3}.feature-list,.card-grid,.inquiry-form{grid-template-columns:1fr}.feature-card img{height:230px}.gallery-grid{grid-template-columns:repeat(2,1fr)}.gallery-item{aspect-ratio:1}.inquiry-form button{width:100%}.lightbox{padding:60px 42px}.lightbox-prev{left:0}.lightbox-next{right:0}.villa-card img{height:260px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{transition-duration:.01ms!important;animation-duration:.01ms!important}}

.villa-breadcrumb{padding-top:28px;font-size:.85rem;color:var(--muted)}
.villa-breadcrumb a{color:var(--ink);text-underline-offset:3px}
