:root{--ink:#111;--paper:#fff;--grey:#dedede;--line:#c8c8c8;--max:1130px}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;color:var(--ink);background:var(--paper);font:18px/1.55 "Avenir Next",Avenir,Arial,sans-serif}img{display:block;max-width:100%;height:auto}a{color:inherit;text-underline-offset:4px}button,input,select,textarea{font:inherit}button{cursor:pointer}h1,h2,h3,p{margin-top:0}h1,h2,h3{font-weight:400;line-height:1.18;letter-spacing:-.025em}h1{font-size:clamp(2.8rem,4.5vw,4.4rem)}h2{font-size:clamp(2.2rem,3vw,3.4rem)}h3{font-size:clamp(1.6rem,2vw,2.1rem)}p{max-width:68ch}.wrap{width:min(calc(100% - 64px),var(--max));margin-inline:auto}.narrow{max-width:900px}.skip{position:absolute;left:-10000px;top:0;padding:12px;background:#fff;z-index:100}.skip:focus{left:12px}:focus-visible{outline:3px solid #555;outline-offset:3px}
.header{position:sticky;top:0;z-index:40;background:#fff;border-bottom:1px solid var(--ink)}.header-inner{min-height:112px;display:flex;align-items:center;justify-content:space-between;gap:30px;padding-block:10px}.brand{display:flex;align-items:center}.brand a{display:block;text-decoration:none}.brand-logo{flex:none}.brand-logo img{width:380px;height:auto;object-fit:contain}.header nav{display:flex;align-items:center;gap:12px;margin-top:1px}.header nav a{padding:4px 10px 7px;font:16px/1.3 Georgia,serif;text-decoration:none;white-space:nowrap}.header nav a[aria-current=page]{border-block:1px solid var(--ink)}.menu{display:none;background:#fff;border:1px solid #333;padding:7px 11px}
.hero{display:grid;grid-template-columns:1fr 1fr;min-height:600px}.hero-photo{overflow:hidden;min-height:600px}.hero-photo img{width:100%;height:100%;object-fit:cover;object-position:center}.hero-text{display:flex;flex-direction:column;align-items:flex-start;justify-content:center;padding:70px clamp(35px,5vw,90px)}.hero-text h1{max-width:570px;margin-bottom:18px}.hero-text p{font-size:23px;line-height:1.48;max-width:480px}.hero-text .text-link{margin-top:15px}.text-link{display:inline-block;font-size:17px;text-decoration:underline;text-decoration-thickness:1px}.button{display:inline-block;padding:12px 22px;background:#111;border:1px solid #111;color:#fff;text-decoration:none}.button:hover{background:#444}
.about-section{background:var(--grey);padding:70px 0}.about-section .narrow{max-width:935px}.about-section h2{margin-bottom:22px}.about-section p,.about-section li{font-size:19px}.about-section ul{margin:24px 0 32px;padding-left:32px}.services-section{padding-block:52px 90px}.services-section>h2{text-align:center;margin-bottom:22px}.services-section>p:first-of-type{text-align:center;margin:0 auto 62px}.services-section h3{margin-bottom:16px}.services-section .text-link{margin-top:12px}
.buildings-section{background:var(--grey);padding:85px 0 95px}.buildings-section h2{text-align:center;margin-bottom:42px}.building-grid{display:grid;grid-template-columns:1fr 1fr;gap:55px}.building-grid img{width:100%;aspect-ratio:3/2;object-fit:cover}.building-grid h3{margin:23px 0 8px}.building-grid h3 a{text-decoration:none}.building-grid h3 a:hover{text-decoration:underline}.building-grid p{font-size:18px}.building-image-link{display:block;overflow:hidden}.building-image-link img{transition:transform .2s ease}.building-image-link:hover img{transform:scale(1.02)}.contact-strip{padding-block:82px 95px}.contact-strip h2{margin-bottom:20px}.contact-strip .text-link{margin-top:6px}
.page-title{padding-block:70px 60px}.page-title h1{margin-bottom:18px}.page-title p{font-size:21px}.content-grid{display:grid;grid-template-columns:1fr 1fr;align-items:center;gap:70px;padding-block:0 90px}.content-grid img{width:100%;aspect-ratio:4/3;object-fit:cover}.about-section .content-grid{padding-block:0}.content-grid h2{margin-bottom:20px}.content-grid p{font-size:19px}.check-list{padding-left:25px;margin:25px 0}.check-list li{padding-bottom:5px}.construction-section{padding-block:20px 75px}.construction-section p{font-size:19px}
.contact-grid{display:grid;grid-template-columns:1fr 1.35fr;gap:80px;padding-bottom:100px}.contact-grid form{display:grid;gap:18px}.contact-grid label{display:grid;gap:5px;font-size:16px}.contact-grid input,.contact-grid select,.contact-grid textarea{width:100%;padding:11px;border:1px solid #888;background:#fff;border-radius:0}.contact-grid button{justify-self:start}.hidden{position:absolute;left:-10000px}
.article-list{display:grid;grid-template-columns:1fr 1fr;gap:0 55px;padding-bottom:95px}.article-list article{border-top:1px solid var(--line);padding:27px 0 35px}.article-list h2{font-size:28px}.article-list h2 a{text-decoration:none}.article-list h2 a:hover{text-decoration:underline}.article-list p{font-size:17px}.article{max-width:820px;padding-block:58px 100px}.back-link{font-size:15px}.article h1{margin-top:40px}.article .lead{font-size:23px;line-height:1.5;margin:22px 0 40px}.article-body{border-top:1px solid var(--line);padding-top:30px}.article-body p{font-size:18px;line-height:1.7;margin-bottom:25px}.article-faq{border-top:1px solid var(--line);margin-top:45px;padding-top:35px}.article-faq h2{font-size:32px}.article-faq dl{margin:0}.article-faq dl>div{margin-top:28px}.article-faq dt{font-size:21px;font-weight:600}.article-faq dd{margin:8px 0 0;line-height:1.7}.article-close{margin-top:40px}.case-intro{max-width:900px;padding-block:58px 25px}.case-intro h1{margin:35px 0 8px}.case-intro .lead{font-size:23px}.case-intro img{width:100%;aspect-ratio:3/2;object-fit:cover;margin-top:35px}.case-body{max-width:780px;padding-bottom:95px}.case-body>div{padding-top:26px}.case-body h2{font-size:30px;margin-bottom:12px}.case-body p{line-height:1.7}.case-gallery{display:grid;grid-template-columns:1fr 1fr;gap:22px;margin-top:45px}.case-gallery figure{margin:0}.case-gallery img{width:100%;aspect-ratio:4/3;object-fit:cover}.case-gallery figcaption{font-size:14px;color:#444;margin-top:9px}.source-note{font-size:14px;color:#444}.building-grid img.harbour-photo,.content-grid img.harbour-photo,.case-intro img.harbour-photo{aspect-ratio:1/1;object-fit:contain}
.footer{background:#f5f5f5;padding:48px 0 25px;border-top:1px solid var(--line)}.footer-grid{display:grid;grid-template-columns:1.4fr 1fr .65fr;gap:40px}.footer strong{font-weight:500;font-size:20px}.footer p{margin-top:10px}.footer-bottom{display:flex;justify-content:space-between;gap:20px;margin-top:45px;padding-top:20px;border-top:1px solid var(--line);font-size:13px}
.construction-video{padding-bottom:60px}.construction-video video{display:block;width:100%;aspect-ratio:16/9;object-fit:cover;background:#dedede}
.levels{display:grid;grid-template-columns:1fr 1fr;gap:0 55px;margin-top:10px}.levels article{border-top:1px solid #9a9a9a;padding:24px 0 30px}.levels h3{font-size:clamp(1.45rem,1.8vw,1.8rem);margin-bottom:10px}.levels p{font-size:18px;margin:0}.levels .level-full{grid-column:1/-1}.package-section{padding-top:85px}.tagline{font:22px/1.4 Georgia,serif;margin-top:6px}
@media(max-width:1000px){.header-inner{gap:15px;min-height:104px}.brand-logo img{width:325px;height:auto}.header nav{gap:3px}.header nav a{font-size:14px;padding-inline:6px}.hero{min-height:520px}.hero-photo{min-height:520px}.content-grid{gap:35px}}
@media(max-width:760px){.wrap{width:min(calc(100% - 36px),var(--max))}.header-inner{min-height:100px}.brand-logo img{width:295px;height:auto}.menu{display:block;margin-left:auto}.header nav{display:none;position:absolute;top:100%;left:0;right:0;z-index:20;background:#fff;border-bottom:1px solid #111;padding:12px 18px}.header nav.open{display:grid;gap:0}.header nav a{font-size:17px;padding:10px}.hero{grid-template-columns:1fr}.hero-photo{min-height:330px;height:330px}.hero-text{padding:55px 28px 64px}.hero-text p{font-size:20px}.about-section,.buildings-section{padding:60px 0}.services-section{padding-block:45px 62px}.contact-strip{padding-block:62px}.building-grid,.content-grid,.contact-grid,.article-list,.case-gallery{grid-template-columns:1fr}.building-grid{gap:48px}.page-title{padding-block:54px 42px}.construction-video{padding-bottom:42px}.levels{grid-template-columns:1fr}.package-section{padding-top:60px}.content-grid{padding-bottom:65px}.about-section .content-grid{padding:0}.contact-grid{gap:30px}.article{padding-block:40px 70px}.footer-grid{grid-template-columns:1fr 1fr}.footer-grid>div:first-child{grid-column:1/-1}.footer-bottom{display:block}.footer-bottom span{display:block}}
@media(max-width:440px){.header-inner{min-height:92px}.brand-logo img{width:min(270px,calc(100vw - 120px));height:auto}.hero-photo{height:260px;min-height:260px}.footer-grid{grid-template-columns:1fr}.footer-grid>div:first-child{grid-column:auto}}
