﻿@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Playfair+Display:ital,wght@0,400;0,500;1,400&display=swap');
:root{--green:#0E4F3B;--dark:#083C2D;--rose:#B97979;--cream:#F8F4EC;--text:#1D2924;--grey:#EEF2EF}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:110px}body{margin:0;color:var(--text);background:#fff;font:16px/1.75 'DM Sans',Arial,sans-serif}h1,h2,h3,p{margin-top:0}h1,h2{font-family:'Playfair Display',Georgia,serif;font-weight:400;line-height:1.15;letter-spacing:-.035em}h1{font-size:clamp(42px,5vw,76px)}h2{font-size:clamp(32px,3.4vw,48px);margin-bottom:25px}h3{font-size:21px;line-height:1.4}p{color:#5a6860}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit}button,a,input,textarea,select,summary{outline-offset:5px}button{cursor:pointer}img{display:block;width:100%;height:auto;object-fit:cover}address{font-style:normal}[hidden]{display:none!important}.container{max-width:1240px;width:calc(100% - 96px);margin:auto}.section{padding:100px 0}.cream{background:var(--cream)}.eyebrow{font-size:11px;letter-spacing:.2em;font-weight:700;color:var(--green);margin-bottom:23px}.lead{max-width:780px;font-size:18px}.button{display:inline-flex;gap:24px;align-items:center;justify-content:center;background:var(--green);color:white;border:1px solid var(--green);padding:15px 24px;font-size:11px;letter-spacing:.09em;text-transform:uppercase;font-weight:700;transition:background .2s}.button:hover{background:var(--dark)}.button.light{background:var(--cream);color:var(--dark);border-color:var(--cream)}.button.outline{background:transparent;border-color:#ffffff75}.button-row{display:flex;gap:15px;flex-wrap:wrap}.text-link{display:inline-flex;gap:24px;color:var(--green);border-bottom:1px solid var(--rose);padding:9px 0;font-size:13px;font-weight:600}.site-header{position:sticky;top:0;z-index:30;background:white;border-bottom:1px solid #e6ebe6}.site-header.scrolled{box-shadow:0 3px 15px #083c2d0a}.header-inner{max-width:1500px;margin:auto;min-height:100px;display:flex;align-items:center;gap:24px;padding:12px 32px}.brand{width:178px;flex-shrink:0}.brand img{height:66px;object-fit:contain}.site-header nav{display:flex;align-items:center;gap:19px;margin-left:auto}.site-header nav>a,summary{font-size:12px;font-weight:600;white-space:nowrap}.site-header nav>a{padding:10px 0;border-bottom:2px solid transparent}.site-header nav>a[aria-current],.site-header nav>a:hover{color:var(--green);border-bottom-color:var(--rose)}.header-cta{padding:13px 16px;font-size:9px;gap:12px}.menu-toggle{display:none}.nav-dropdown{position:relative}summary{cursor:pointer}.nav-dropdown>a{position:absolute;top:35px;left:0;background:white;padding:16px;width:200px;border:1px solid var(--grey);font-size:13px}.skip-link{position:absolute;top:-100px;z-index:100;padding:12px;background:white}.skip-link:focus{top:0}.home-hero{position:relative;background:var(--dark);min-height:680px;display:flex;align-items:center;color:white}.hero-image,.hero-overlay{position:absolute;inset:0;width:100%;height:100%}.hero-overlay{background:linear-gradient(90deg,rgba(8,60,45,.91),rgba(8,60,45,.50) 57%,rgba(8,60,45,.2))}.hero-content{position:relative;padding:95px 0 110px}.hero-content h1{max-width:850px}.hero-content h1 em{font-weight:400;color:#ede5d8}.hero-content p:not(.eyebrow){max-width:570px;color:#f0f1ed;font-size:17px;margin-bottom:35px}.hero-content .eyebrow{color:#e6cbc1}.hero-caption{position:absolute;bottom:0;width:100%;display:flex;justify-content:space-between;border-top:1px solid #ffffff30;padding:20px 48px;font-size:10px;letter-spacing:.13em}.hero-caption span{letter-spacing:.02em}.service-strip{display:flex;justify-content:space-between;gap:20px;padding:28px 0;border-bottom:1px solid #e2e8e2;font-size:10px;letter-spacing:.14em;font-weight:600;color:var(--green)}.split{display:grid;grid-template-columns:1fr 1fr;gap:80px;align-items:center}.split>img,.image-wrap>img{height:500px}.image-wrap{position:relative}.image-tag{position:absolute;bottom:25px;left:25px;background:var(--cream);padding:16px 25px;font-family:Georgia,serif;font-style:italic;color:var(--green)}.cards{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}.card{padding:32px;border:1px solid #dfe6de;background:white}.card p{font-size:14px;margin-bottom:12px}.card-index{font-size:11px;color:var(--rose);display:block;margin-bottom:25px;letter-spacing:.12em}.services-grid{grid-template-columns:repeat(4,1fr)}.service-icon{display:block;font-size:36px;color:var(--rose);line-height:1;margin:0 0 35px}.services-grid .card{padding:30px 24px}.services-grid .text-link{margin-top:20px}.feature-list{list-style:none;padding:0;margin:30px 0}.feature-list li{border-bottom:1px solid #dce3d9;padding:13px 0;font-size:14px}.feature-list li:before{content:'↗';color:var(--rose);margin-right:15px}.feature-images{display:grid;grid-template-columns:1fr 1fr;gap:15px}.feature-images img{height:290px}.feature-images img:nth-child(2){margin-top:40px}.feature-note{grid-column:1/-1;border-top:1px solid #d8dfd6;padding-top:20px}.feature-note p{font-size:13px;margin:8px 0 0}.cta{background:var(--green);padding:75px 0;color:white}.cta-inner{display:flex;align-items:center;gap:70px;justify-content:space-between}.cta-inner>div{max-width:760px}.cta h2{font-size:40px}.cta p{color:#dbe7de;font-size:14px}.cta .eyebrow{color:#d9b4ae}.cta .button{flex-shrink:0}footer{background:var(--dark);color:#dde5df;padding-top:70px}.footer-grid{display:grid;grid-template-columns:1.5fr .8fr 1fr 1.1fr;gap:45px}.footer-logo{width:190px;height:75px;object-fit:contain;object-position:left;margin-bottom:20px}.footer-grid p,.footer-grid address{font-size:12px;color:#b6cabf}.footer-grid h2{font-family:'DM Sans',Arial,sans-serif;font-size:13px;letter-spacing:0;color:white;margin:0 0 23px}.footer-grid a{display:block;font-size:12px;margin:9px 0}.footer-grid a:hover{color:white;text-decoration:underline}.footer-grid address{margin:15px 0}.footer-bottom{display:flex;justify-content:space-between;margin-top:45px;padding:22px 0;border-top:1px solid #ffffff22;font-size:10px;color:#b6cabf}.page-hero{background:var(--cream);padding:85px 0 75px;border-bottom:1px solid #e1e6db}.page-hero h1{max-width:920px}.values{display:grid;grid-template-columns:repeat(3,1fr);gap:15px;list-style:none;padding:0}.values li{border:1px solid #dce4d9;padding:22px;background:var(--cream);font-size:14px}.service-detail{display:grid;grid-template-columns:80px 1fr 1fr;gap:45px;align-items:start}.large-index{font:52px Georgia,serif;color:var(--rose)}.service-detail .feature-list{margin:0}.process{display:grid;grid-template-columns:repeat(5,1fr);padding:0;list-style:none;gap:12px}.process li{border-top:2px solid var(--rose);padding:25px 15px;background:var(--cream);position:relative}.process li:not(:last-child):after{content:'→';position:absolute;right:10px;top:20px;color:var(--green)}.process span{font-size:11px;color:var(--rose)}.process h3{font-size:16px;margin:15px 0 0}.notice{padding:20px;border-left:3px solid var(--rose);background:var(--cream);font-size:14px}.filters{display:flex;gap:10px;flex-wrap:wrap;margin:30px 0 15px}.filters button{padding:10px 20px;border:1px solid #dce3dc;background:white;color:var(--green);font-size:13px}.filters button[aria-pressed=true]{background:var(--green);color:white}.property-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:30px}.property-card{border:1px solid #dce3dc}.property-card>img{height:300px}.property-content{padding:30px}.template-label{font-size:10px;letter-spacing:.12em;color:#995656}.property-content h3{margin:15px 0}.property-content p{font-size:13px}.property-content dl{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:25px 0}.property-content dt{font-size:11px;font-weight:700}.property-content dd{margin:0;font-size:12px;color:#627068}.contact-layout{display:grid;grid-template-columns:.8fr 1.2fr;gap:90px}.contact-layout aside h3{font-size:13px;margin:30px 0 10px}.contact-phone{font-size:26px;color:var(--green)}.contact-layout address{color:#627068;margin-bottom:30px}.enquiry-form{display:grid;grid-template-columns:1fr 1fr;gap:22px}.enquiry-form label{display:flex;flex-direction:column;gap:9px;font-size:12px;font-weight:600}.enquiry-form input,.enquiry-form select,.enquiry-form textarea{width:100%;border:1px solid #d4ded4;background:#fafbf9;border-radius:0;padding:13px;min-height:48px;color:var(--text)}.enquiry-form textarea{resize:vertical}.enquiry-form input:focus,.enquiry-form select:focus,.enquiry-form textarea:focus{outline:2px solid var(--green)}.full{grid-column:1/-1}.form-note{font-size:12px;font-weight:400}.form-status{font-size:13px;margin-top:15px}.whatsapp-review{color:var(--green);text-decoration:underline}.map-placeholder{text-align:center;padding:60px 20px;background:var(--grey);border:1px solid #d5dfd5}.map-placeholder>span{font-size:50px;color:var(--rose)}.map-placeholder h3{margin-top:20px}.map-placeholder p{font-size:13px}.back-top{position:fixed;right:22px;bottom:22px;background:var(--green);color:white;border:1px solid #dce7dd;width:44px;height:44px;z-index:20}dialog{border:0;padding:30px;max-width:90vw;width:1000px;background:var(--cream)}dialog::backdrop{background:#083c2dde}dialog img{max-height:75vh;object-fit:contain}.close-lightbox{position:absolute;right:6px;top:0;border:0;background:transparent;font-size:28px}

/* Photo gallery */
.gallery-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:30px;margin-top:35px}
.gallery-card{margin:0;min-width:0}
.gallery-card button{position:relative;display:block;width:100%;padding:0;border:0;background:var(--cream);overflow:hidden;color:white}
.gallery-card img{height:390px;object-fit:cover;transition:transform .25s}
.gallery-card button:hover img{transform:scale(1.035)}
.gallery-card button:focus-visible{outline:3px solid var(--green)}
.gallery-open{position:absolute;bottom:16px;right:16px;background:var(--green);padding:8px 14px;font-size:12px}
.gallery-card figcaption{padding:16px 0;border-bottom:1px solid #dce3dc;font-size:13px;color:var(--green)}
.gallery-card figcaption span{color:var(--rose);margin-right:10px}
@media(max-width:1000px){.gallery-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:700px){.gallery-grid{grid-template-columns:1fr;gap:25px}.gallery-card img{height:auto;max-height:520px;object-fit:contain}}
@media(prefers-reduced-motion:reduce){.gallery-card img{transition:none}}